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