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)

LV@LV-PC MINGW32 /c/gitskill (master)
$ ls
README.md readme.txt

LV@LV-PC 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文件:

LV@LV-PC MINGW32 /c/gitskill (master)
$ cat readme.txt
master分支内容
添加dev分支内容

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

LV@LV-PC MINGW32 /c/gitskill (master)
$ git branch -d dev
Deleted branch dev (was 0d0bbca).

LV@LV-PC 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

原文地址:https://www.cnblogs.com/LvLoveYuForever/p/5522037.html