git常用基本命令(下)

简单介绍一下团队协同开发时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 选项强制删除它。

你可能感兴趣的:(git常用基本命令(下))