适用情景: 项目开发过程中,会遇到多人合作开发的情况,如果人人都把未开发完的代码推到
master
上,会对整体的开发有影响,容易造成代码的混乱。那不能推送到master
,此时应该怎么办呢?
此时 git 的 分支管理 就派上用场了。我们在本地创建属于自己的开发分支,当一个需求开发完成之后,与主分支合并,这样推送到主分支上的代码就是成熟的代码啦~~
1.创建分支
首先,我们创建 dev 分支,然后切换到 dev 分支:
$ git checkout -b dev
// 创建并切换至新的分支
git checkout
命令加上 -b
参数表示创建并切换,相当于以下两条命令:
$ git branch dev
$ git checkout dev
Switched to branch 'dev'
然后,用 git branch
命令查看当前分支:
$ git branch
*dev
master
git branch
命令会列出所有分支,当前分支前面会标一个 *
号。
然后,我们就可以在 dev 分支上正常提交,比如修改文件、删除文件等
然后提交:
$ git add readme.txt
$ git commit -m "branch test"
[dev b17d20e] branch test
1 file changed, 1 insertion(+)
现在,dev 分支的工作完成,我们就可以切换回 master 分支:
$ git checkout master
Switched to branch 'master'
2.合并分支
现在,我们把 dev 分支的工作成果合并到 master 分支上:
$ git merge dev
Updating d46f35e..b17d20e
Fast-forward
readme.txt | 1 +
1 file changed, 1 insertion(+)
git merge
命令用于合并指定分支到当前分支。合并后,再查看 readme.txt
的内容,就可以看到,和 dev 分支的最新提交是完全一样的。
注意到上面的 Fast-forward
信息,Git 告诉我们,这次合并是“快进模式”,也就是直接把 master 指向 dev 的当前提交,所以合并速度非常快。
合并完成后,就可以放心地删除 dev 分支了:
$ git branch -d dev
Deleted branch dev (was b17d20e).
删除后,查看 branch,就只剩下 master 分支了:
$ git branch
* master
3.远程分支的拉取
分支不仅可以在本地仓库中创建多个,还可以存储在远程分支当中。
使用场景:当你有多台设备,且向远程仓库推送了多个分支的代码时。
按照前两篇的文章先与远程仓库建立连接,然后拉取远程分支的代码到本地,并在本地创建同名的分支
// fetch远程分支
git fetch origin long(远程分支名)
// 在本地创建分支long并切换到该分支
git checkout -b long origin/long
// 拉取代码
git pull origin long
这三行命令就实现了对远程分支代码的本地创建与拉取
4.更新本地分支代码到远程仓库
若是本地对分支的修改希望保存至远程
则执行以下命令
git push origin long:long
// 冒号前是本地分支名称,冒号后是远程分支名称
5.删除远程分支
前面已经写过-d可以删除本地分支,那么如何删除远程分支呢
git push origin --delete <远程分支名称>
关于git的分支管理就先记录这些,一些复杂场景中用到的命令,日后补充~~