简单介绍一下团队协同开发时git分支管理
关注我的个人博客:https://pinbolei.cn,获取更多内容
1.开新分支
git branch 新分支名
例:在master分支下,新开一个开发分支:git branch dev
2.切换到新分支
git checkout 分支名
例:在master分支下,切换到新开的dev分支:git checkout dev
3.将开分支和切换分支合并
git checkout -b 新分支名
例:在master分支下,新开一个开发分支dev,并切换到dev分支
:git checkout -b dev
4.切换回原分支
git checkout 原分支名
例:从dev分支切换到master分支:git checkout master
注意:当前分支有修改,还未commit
的时候,会切换失败,应当先commit
,但可以不用push
5.合并分支
git merge 需要合并的分支名
例:假如现在在master分支,需要将dev分支的内容合并到master分支下:git merge dev
注意:正常开发中,开发分支被合并以后就不要在原来的分支上修改内容了,因为这时master分支已经是最新的代码了。如果要修改内容需要重新拉取一个分支,在新的分支上修改
6.查看本地分支列表
git branch -a
前面带remotes/origin
的,是远程分支
7.查看远程分支列表
git branch -r
8.向远程提交本地新开的分支
git push origin 新分支名
例:假如现在在master分支上,提交刚刚新建的dev分支:git push origin dev
注意:除了用git push 新分支名
之外,也可以直接用git push -u 新分支名
,以后再推送的时候直接git push
就可以了,这个-u
的作用就是指定origin
为默认主机,后面就可以不加任何参数使用git push
了。
9.删除远程分支
git push origin :远程分支名
例:删除刚刚提交到远程的dev分支:git push origin :dev
10.删除本地分支
git branch -d 分支名
例:在master分支下,删除新开的dev分支:git branch -d 分支名
注意:如果dev更改,push到远程,在GitLab(或者其他git系统)上面进行了merge操作,但是本地master没有pull最新的代码,会删除不成功,可以先git pull origin master
,或者强制删除git branch -D dev
11.更新分支列表信息
git fetch -p
12.git branch
下面介绍一些git官方文档中的知识
git branch
命令不只是可以创建与删除分支。 如果不加任何参数运行它,会得到当前所有分支的一个列表:
$ git branch
iss53
* master
testing
注意 master 分支前的 * 字符:它代表现在检出的那一个分支(也就是说,当前 HEAD 指针所指向的分支)。 这意味着如果在这时候提交,master 分支将会随着新的工作向前移动。
如果需要查看每一个分支的最后一次提交,可以运行 git branch -v
命令:
$ git branch -v
iss53 93b412c fix javascript issue
* master 7a98805 Merge branch 'iss53'
testing 782fd34 add scott to the author list in the readmes
git branch --merged
:过滤这个列表中已经合并的到当前分支的分支
git branch --no-merged
过滤这个列表中尚未合并的到当前分支的分支
如果要查看哪些分支已经合并到当前分支,可以运行 git branch --merged
$ git branch --merged
iss53
* master
因为之前已经合并了 iss53 分支,所以现在看到它在列表中。 在这个列表中分支名字前没有 * 号的分支通常可以使用 git branch -d
删除掉;
你已经将它们的工作整合到了另一个分支,所以并不会失去任何东西。
查看所有包含未合并工作的分支,可以运行 git branch --no-merged
:
$ git branch --no-merged
testing
这里显示了其他分支。 因为它包含了还未合并的工作,尝试使用 git branch -d
命令删除它时会失败:
$ git branch -d testing
error: The branch 'testing' is not fully merged.
If you are sure you want to delete it, run 'git branch -D testing'.
如果真的想要删除分支并丢掉那些工作,如同帮助信息里所指出的,可以使用 -D 选项强制删除它。