Git 分支管理-创建与合并

来源:互联网 发布:炉石传说新手入门知乎 编辑:程序博客网 时间:2024/06/09 20:45

上一篇博客讲了即时分支合并是git的杀手锏,Git是非常鼓励大家使用分支的,日常开发中打断你思维的连续性是会大大降低生产力的,并且切换上下文也更繁琐,更大的损失。使用中心版本控制我们必须从中心服务器下载一个新的工作拷贝,而分布式系统就好多了,我们可以从本地克隆所需的版本。但是克隆仍然需要拷贝整个工作目录,还有直到给定点的整个历史记录。尽管Git使用文 件共享和硬链接减少了花费,项目文件自身还是必须在新的工作目录里重建。

Git有一个更好的工具对付这种情况,比克隆快多了而且节省空间:git branch。下边我们就逐步讲解branch的常用的操作。


1.查看分支:git branch 

如果没有其他参数,则显示的是本地分支,参数 -a 是显示本地和远程分支,-r是显示远程分支,*号表示当前分支。如下:

zxdeMacBook-Pro:hswallpager zs$ git branch * masterzxdeMacBook-Pro:hswallpager zs$ git branch -a* master  remotes/origin/HEAD -> origin/master  remotes/origin/develop  remotes/origin/masterzxdeMacBook-Pro:hswallpager zs$ git branch -r  origin/HEAD -> origin/master  origin/develop  origin/master

2.创建分支:git branch branchName

zxdeMacBook-Pro:hswallpager zs$ git branch developzxdeMacBook-Pro:hswallpager zs$ git branch  develop* master

上述建立一个develop分支,我们查看一下本地分支,分支仍然在master分支,那有没有新建分支后,自动切换到新建分支呢,先说切换分支吧。

3.切换分支:git checkout branchName

zxdeMacBook-Pro:hswallpager zs$ git checkout developSwitched to branch 'develop'zxdeMacBook-Pro:hswallpager zs$ git branch * develop  master

注意看*号,已经指向develop。接着上述,我们创建并切换分支feature,创建+切换 使用 git checkout -b feature

zxdeMacBook-Pro:hswallpager zs$ git checkout -b featureSwitched to a new branch 'feature'zxdeMacBook-Pro:hswallpager zs$ git branch   develop* feature  master


4.合并分支:git merge branchName

我们在开发分支上修改代码,commit等等,在master上是看不到这些操作的,我们需要把develop分支代码提交到master分支。这还是就需要合并分支。

合并分支的步骤以develop合并到master为例:

(1)先切换到master :git checkout master

(2)合并develop分支 :git merge develop

zxdeMacBook-Pro:hswallpager zs$ git checkout masterSwitched to branch 'master'Your branch is ahead of 'origin/master' by 6 commits.  (use "git push" to publish your local commits)zxdeMacBook-Pro:hswallpager zs$ git merge developAuto-merging app/src/main/*****/Activity.javaCONFLICT (content): Merge conflict in app/src/main/*****/Activity.javaAutomatic merge failed; fix conflicts and then commit the result


上边代码可以看到,合并后是有冲突的。这就要先解决合并冲突,这个咱们放到下一篇讲解。


5.删除本地分支 :git branch -d branchName

zxdeMacBook-Pro:hswallpager zs$ git branch -d featureDeleted branch feature (was 41754e3).zxdeMacBook-Pro:hswallpager zs$ git branch   develop* master

 

删除远程分支 :git push  origin  :<branchName>


简单做个小结吧:

(1)查看分支: git branch , git branch -r, git branch -a

(2)切换分支:git checkout branchName

(3)删除分支:git branch -d branchName


合并冲突咱们放到下一篇讲解,因为合并时遇到冲突在正常不过,下一篇详解讲解下。


0 0
原创粉丝点击