Git分支操作(Git branch)

前言

标题已经透露了本篇博文的目标:熟悉GIT的基本分支操作。

假定你已经熟悉GIT的基本操作,如克隆仓库,提交代码等等。

你也需要了解GIT的基本概念,例如GIT的branch,commit等。

如果你还不熟悉这些,请移步https://git-scm.com/

正文

创建分支

从develop创建一个分支

切换到develop

 

$ git checkout develop

更新develop

$ git pull origin develop

 

创建分支

 

$ git checkout -b hfd_project_A_local

 

此时我们就拥有了一个名为hfd_project_A_local的分支。它和develop分支是一模一样的,名字除外。

将分支提交到远程仓库

$ git push origin <本地分支名>:<远程分支名>
$ git push origin hfd_project_A_local:hfd_project_A
此时,你在origin指向的远程仓库创建了 hfd_project_A,它是 hfd_project_A_local的拷贝。

获取远程分支

有时你需要在他人已经创建好的分支上进行开发,此时你就要用到这个技能了。

$ git fetch origin <远程分支名>:<本地分支名>
$ git fetch origin hfd_project_A:hfd_project_A_local
此时,你本地拥有了 hfd_project_A_local,它是远程分支 hfd_project_A的拷贝。

更新分支

在团队合作时,你和同事都不断将自己的代码提交到远程仓库,为了将远程的代码同步到本地,你可以:

$ git checkout hfd_project_A_local
$ git pull origin <远程分支名>
$ git pull origin hfd_project_A

 

如果一切顺利的话,远程的代码就已经合并到你的本地分支了。

合并分支

在并行开发等情况下,你可能需要将一个分支合并到另一个分支

 

$ git checkout hfd_project_B
$ git pull origin hfd_project_B
$ git checkout hfd_project_A
$ git pull origin hfd_project_A
$ git merge hfd_project_B

 

一切顺利,此时hfd_project_B成功合并到了hfd_project_A

解决冲突

在更新分支、合并分支时,如果遇到阻碍,那往往是因为遇到了冲突,这意味着GIT不能自动合并两个文件了。

如此,我们只能手动解决冲突。

$ git merge hfd_project_B
Auto-merging app-trade-hfb /lib/dao/hfd/kernel/orderdetail .php
CONFLICT (content): Merge conflict  in  app-trade-hfb /lib/dao/hfd/kernel/orderdetail .php
Automatic merge failed; fix conflicts and  then  commit the result.
上面的提示告诉我们,在合并app-trade-hfb/lib/dao/hfd/kernel/orderdetail.php时遇到了冲突。

 

$ git status
  # On branch hfd_project_A
# Unmerged paths:
#   (use "git add/rm <file>..." as appropriate to mark resolution)
#
# both modified:      app-trade-hfb/lib/dao/hfd/kernel/orderdetail.php

 

打开遇到冲突的文件,找到类似如下的内容

 

<<<<<<< HEAD
         $oORM->addFilter( 'iStatus' '=' , 1);
=======
         $oORM->addFilter( 'iStatus' '=' , 0);
>>>>>>> hfd_project_B

 

经过确认,我们确定了应该保留哪一行,上面的内容改为

 

$oORM->addFilter( 'iStatus' '=' , 1);

 


告诉GIT我们已经解决冲突了

 

$ git add app-trade-hfb /lib/dao/hfd/kernel/orderdetail .php
 
 
$ git status
# On branch hfd_project_A
# Changes to be committed:
#
# modified:   app-trade-hfb/lib/dao/hfd/kernel/orderdetail.php
#

 


Nice,可以提交代码了。

合并develop

这往往发生在QA同事已经测试完毕,恭喜你,你的分支通过测试了。

然后,你就可以按照“合并分支”部分的描述,将你的开发分支合并到develop。

别忘记提交到远程仓库哦(微笑)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值