您的位置:首页 > 其它

Git 分支管理-创建与合并

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

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

1.查看分支:git branch 

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

zxdeMacBook-Pro:hswallpager zs$ git branch
* master

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

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

2.创建分支:git branch branchName
zxdeMacBook-Pro:hswallpager zs$ git branch develop

zxdeMacBook-Pro:hswallpager zs$ git branch
develop
* master
上述建立一个develop分支,我们查看一下本地分支,分支仍然在master分支,那有没有新建分支后,自动切换到新建分支呢,先说切换分支吧。

3.切换分支:git checkout branchName

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

注意看*号,已经指向develop。接着上述,我们创建并切换分支feature,创建+切换 使用 git checkout -b feature
zxdeMacBook-Pro:hswallpager zs$ git checkout -b feature
Switched 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 master
Switched 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 develop
Auto-merging app/src/main/*****/Activity.java
CONFLICT (content): Merge conflict in app/src/main/*****/Activity.java
Automatic merge failed; fix conflicts and then commit the result

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

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

zxdeMacBook-Pro:hswallpager zs$ git branch -d feature
Deleted 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

合并冲突咱们放到下一篇讲解,因为合并时遇到冲突在正常不过,下一篇详解讲解下。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  git 分支管理