git 同步、分支切换、分支合并等 常用操作

  • Post author:
  • Post category:其他


git有好几个区,工作区(workspace)、暂存区(index)、本地仓库(local repository)、还有远程仓库(remote repository)。远程仓库为我们保存一份代码,如github,而工作区、暂存区和本地仓库都在本地,这也就是为什么我们在没有网络的环境下也能使用git提交(commit)代码,因为提交仅仅是提交到本地仓库中,待有网络之后在推送(push)到远程仓库。

在这里插入图片描述



一、常规操作



1、git add

git add 命令主要是用于把我们要提交的文件的信息添加到暂存区中。

用法有

git add -u [ ],表示把 中所有tracked文件中被修改过或者已经删除的信息添加到暂存库中。它不会处理untracked的文件。

git add -a [ ],表示把 中所有tracked文件中被修改或者被删除文件和所有untracked的文件信息添加到暂存区。

git add -i [ ],表示查看 中所有被修改过或者被删除过但是没有提交的文件。



1.1 update子命令表示把已经tracked的文件加入到暂存区。

先输入2,然后回车,然后开始选择update的文件,选1后回车,如果没有结束当前update输入,再输入回车



1.2 revert子命令表示把已经加入到暂存区的文件从暂存区中剔除。

操作方法和上面一样,下输入3,代表选择的是revert操作,然后选择要操作的文件,回车确定,在回车退出revert操作,文件就从暂存区中剔除了。



1.3 diff子命令

通过diff子命令,可以比较暂存区中文件和原版本的差异。



2 commit命令



2.1 git commit -m “提交的描述信息”

将暂存区中的文件提交到本地仓库中



2.2 git commit – a -m “提交的描述信息”

或者git commit -am “提交的描述信息”,这个方法就是可以把tracked的文件提交到本地仓库,就算这件没有git add,也能提交。这个就是省略了git add这一步。



3 git push <远程主机名> <本地分支名> : <远程分支名>

注意,分支推送顺序的写法是<来源地>:<目的地>,所以git pull是<远程分支>:<本地分支>,而git push是<本地分支>:<远程分支>。



3.1 git push origin master

如果省略远程分支名,则表示将本地分支推送与之存在”追踪关系”的远程分支(通常两者同名),如果该远程分支不存在,则会被新建。

上面命令表示,将本地的master分支推送到origin主机的master分支。如果后者不存在,则会被新建。



3.2 git push origin :master

如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支,等同于 git push origin –delete master



二、分支查看与切换



1.查看所有分支

git branch -a



2.查看当前使用分支(结果列表中前面标*号的表示当前使用分支)

git branch



3.切换分支

git checkout 分支名



三、合并分支

1、进入要合并的分支(如开发分支合并到master,则进入master目录)

git checkout master

2、拉取最新代码

git pull 

3、查看所有分支是否都pull下来

git branch -a

4、使用merge合并开发分支

git merge 分支名

5、查看合并后的状态

git status

6、有冲突的话,通过开发软件解决冲突

7、解决冲突之后,将冲突文件提交暂存区

git add 冲突文件

8、提交merge之后的结果

git commit

如果不是使用git commit -m “备注” ,那么git会自动将合并的结果作为备注,提交本地仓库

9、本地仓库代码提交远程仓库

git push



四、强制覆盖分支



注意:此操作将覆盖当前分支内容。



将master分支的代码完全被dev分支代码覆盖:

git checkout master
git reset --hard dev
git push origin master --force

git push origin –force 可能会报错:

You are not allowed to force push code to a protected branch on this project

在这里插入图片描述

解决:

如果用的是gitlab版本库,这说明gitlab对仓库启用了保护,需要在仓库中设置一下:

“Settings” -> “Repository” -> scroll down to “Protected branches”.

在这里插入图片描述



版权声明:本文为qq_18982889原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。