Git(四): 分支

本文介绍Git分支的使用方法

figure

查看分支

使用如下命令,会列出当前仓库的所有分支,并在当前分支的分支名前用 * 标示

1
git branch

添加 -a 参数可以同时查看,当前仓库的所有分支及远程仓库的分支

1
git branch -a

创建分支

在 git branch 命令后,添加一个新的分支名,即可创建该分支

1
2
git branch <branchname>     # 创建指定分支名的分支
git branch dev # 创建 dev 分支

切换分支

使用如下命令,将当前分支切换到指定分支上

1
2
git checkout <branchname>   # 切换到指定分支名的分支
git checkout dev # 切换到 dev 分支

添加 - 参数,表示切换到上一个使用的分支

1
git checkout -

Note:

  • Git的工作区和暂存区为不同分支共享,所以在切换分支前,最好先提交当前更改到当前分支下。以保证工作区和暂存区干净,再进行切换分支;否则,在dev分支下做的修改,没有提交到dev分支中就直接切换到master分支,此时在master分支下其工作区和暂存区的内容依然为之前在dev分支下的所做的修改,如果此时在master下发生提交的误操作,将会直接导致版本的混乱和错误

创建并切换

很多时候,创建一个新的分支并切换到该分支时,虽然可以通过执行上面所述2条命令完成。其实还可以通过在 git checkout命令 后添加-b参数 这一条命令实现创建切换

1
2
3
4
5
# 创建指定分支名的分支,并当前分支切换到该分支上
git checkout -b <branchname>

# 创建 fix 分支,并当前分支切换到该分支上
git checkout -b fix

拉取远程分支

多人协作的情况下,我们经常需要从远程仓库拉取本地所没有的分支。使用如下命令创建本地分支(一般建议本地分支名和远程分支名保持一致),并将指定的远程分支的内容拉到新建的本地分支下,同时建立本地分支和远程分支的关联

1
2
git checkout -b <localBranchName> <remoteName>/<remoteBranchName>
git checkout -b dev origin/dev # 拉取远程分支dev,并关联新建立的本地分支dev

删除分支

使用下述命令删除指定分支

1
2
git branch -d <branchname>  
git branch -d dev # 删除dev分支

合并分支

使用下述命令自动合并指定分支到当前分支下,该命令如果发现无法自动合并则会失败,需要手动合并,修改冲突然后提交

1
2
git merge <branchname>  
git merge dev # 合并dev分支到当前分支下

自动合并分支时,有可能使用 Fast forward 模式,该合并模式在删除分支后,会丢失分支信息。可以在 git merge 中添加 —no-ff 参数,禁用 Fast forward 模式,合并时生成一个新的commit(故需添加 commit nessage),这样就可以从分支历史中看出分支信息

1
git merge --no-ff <branchname> -m <new commit message>
0%