Git分支管理

Posted 玉曲风

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git分支管理相关的知识,希望对你有一定的参考价值。

分支就好比一个人有分身术,一个在学习英语,一个在学习数学,当元神归一的时候,你就同时学会了两个东西。

 

分支在实际开发中有什么用呢?假设开发一个功能,你的代码需要两周写完,但是你在一个分支上每天提交部分代码会影响别人的不能干活。

但是等你写完,别人再开发,这样影响开发进度。现在有了分支就不怕了。你创建一个属于你自己的分支,别人看不到。当你开发完毕后,再

一次性合并到原来的分支上。这样既安全又不影响别人的工作。

其他的版本控制系统,如SVN等都有分支管理,但是用过之后你会发现,这些版本控制系统创建和切换分支比乌龟都慢,简直让人无法忍受,

结果导致分支功能成了摆设,大家都不去使用了。

但是Git的分支管理与众不同,不管是创建、切换、和删除分支,Git会快速的完成。

 

首先,我们创建dev分支,然后切换到dev分支:

$ git checkout -b dev
Switched to a new branch ‘dev‘

相当于以下两条命令:

$git branch dev

$git checkout dev

 

然后,用git branch命令查看当前分支:

$ git branch
* dev
master

git branch命令会列出所有分支,当前分支前面会标一个*号。

我们就可以在dev上正常提交了,比如在readme.txt做个修改,加上一句话:

添加dev分支内容

现在我们再切回master分支上:

$ git checkout master
Switched to branch ‘master‘
Your branch is ahead of ‘origin/master‘ by 1 commit.
(use "git push" to publish your local commits)

[email protected] MINGW32 /c/gitskill (master)
$ ls
README.md readme.txt

[email protected] MINGW32 /c/gitskill (master)
$ cat readme.txt
master分支内容

我们会发现,切换到master分支后,刚才添加的内容不见了,因为那个提交在dev分支上,而master分支此刻的提交点并没有变。

 

我们把dev分支上的工作内容合并到master分支上:

$ git merge dev
Updating d5aea29..0d0bbca
Fast-forward
readme.txt | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

再看看master分支下的readme.txt文件:

[email protected] MINGW32 /c/gitskill (master)
$ cat readme.txt
master分支内容
添加dev分支内容

合并成功后,就可以放心的删除dev分支了:

[email protected] MINGW32 /c/gitskill (master)
$ git branch -d dev
Deleted branch dev (was 0d0bbca).

[email protected] MINGW32 /c/gitskill (master)
$ git branch
* master

小结:因为创建、合并和删除分支非常快,所以Git鼓励你使用分支完成某个任务后,合并后再删除分支,这和直接在master分支上工作的

效果是一样的,但是过程更安全。

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>

创建+切换分支:git checkout -b name

合并某某分支到当前分支:git merge name

删除分支:git branch -d name

 

以上是关于Git分支管理的主要内容,如果未能解决你的问题,请参考以下文章

Git----分支管理之分支管理策略04

GIT 版本管理 - 3 (分支管理)

Git安装教程分支管理之分支管理策略

Git分支管理

git分支标签管理与别名

Git:分支管理