本文介绍Git分支的使用方法
查看分支
使用如下命令,会列出当前仓库的所有分支,并在当前分支的分支名前用 * 标示
1 | git branch |
添加 -a 参数可以同时查看,当前仓库的所有分支及远程仓库的分支
1 | git branch -a |
创建分支
在 git branch 命令后,添加一个新的分支名,即可创建该分支
1 | git branch <branchname> # 创建指定分支名的分支 |
切换分支
使用如下命令,将当前分支切换到指定分支上
1 | git checkout <branchname> # 切换到指定分支名的分支 |
添加 - 参数,表示切换到上一个使用的分支
1 | git checkout - |
Note:
- Git的工作区和暂存区为不同分支共享,所以在切换分支前,最好先提交当前更改到当前分支下。以保证工作区和暂存区干净,再进行切换分支;否则,在dev分支下做的修改,没有提交到dev分支中就直接切换到master分支,此时在master分支下其工作区和暂存区的内容依然为之前在dev分支下的所做的修改,如果此时在master下发生提交的误操作,将会直接导致版本的混乱和错误
创建并切换
很多时候,创建一个新的分支并切换到该分支时,虽然可以通过执行上面所述2条命令完成。其实还可以通过在 git checkout命令 后添加-b参数 这一条命令实现创建切换
1 | # 创建指定分支名的分支,并当前分支切换到该分支上 |
拉取远程分支
多人协作的情况下,我们经常需要从远程仓库拉取本地所没有的分支。使用如下命令创建本地分支(一般建议本地分支名和远程分支名保持一致),并将指定的远程分支的内容拉到新建的本地分支下,同时建立本地分支和远程分支的关联
1 | git checkout -b <localBranchName> <remoteName>/<remoteBranchName> |
删除分支
使用下述命令删除指定分支
1 | git branch -d <branchname> |
合并分支
使用下述命令自动合并指定分支到当前分支下,该命令如果发现无法自动合并则会失败,需要手动合并,修改冲突然后提交
1 | git merge <branchname> |
自动合并分支时,有可能使用 Fast forward 模式,该合并模式在删除分支后,会丢失分支信息。可以在 git merge 中添加 —no-ff 参数,禁用 Fast forward 模式,合并时生成一个新的commit(故需添加 commit message),这样就可以从分支历史中看出分支信息
1 | git merge --no-ff <branchname> -m <new commit message> |