Git 高级特性命令操作

1.什么是分支?

在开发软件时,可能有多人同时为同一个软件开发功能或修复BUG,可能存在多个Release版本,并且需要对各个版本进行维护。所幸,Git的分支功能可以支持同时进行多个功能的开发和版本管理。
分支是为了将修改记录的整体流程分叉保存。分叉后的分支不受其他分支的影响,所以在同一个数据库里可以同时进行多个修改。并且分叉的分支都可以合并。

2.merge与rebase区别

开辟topic分支,最后要合并回merge分支。合并分支有2种方法:使用merge或rebase。使用这2种方法,合并后分支的历史记录会有很大的差别。
2.1 merge
使用merge可以合并多个历史记录的流程,操作流比较复杂
在这里插入图片描述
master分支的历史记录有可能在bugfix分支分叉出去后有新的更新。这种情况下,要把master分支的修改内容和bugfix分支的修改内容汇合起来。

在这里插入图片描述
使用 merge合并两个修改会生成一个提交。这时,master分支的HEAD会移动到该提交上。

2.2 rebase
rebase跟merge的例子一样,如下图所示,bugfix分支是从master分支分叉出来的
在这里插入图片描述
rebase bugfix分支到master分支, bugfix分支的历史记录会添加在master分支的后面。如图所示,历史记录成一条线,相当整洁。
在这里插入图片描述
首先,rebase bugfix分支到master分支, bugfix分支的历史记录会添加在master分支的后面。如图所示,历史记录成一条线,相当整洁。
这时移动提交X和Y有可能会发生冲突,所以需要修改各自的提交时发生冲突的部分。

2.3 rebase 与 merge 区别和什么场景使用
2.3.1Merge和rebase都是合并历史记录,但是各自的特征不同。

  • merge保持修改内容的历史记录,但是历史记录会很复杂。
  • rebase历史记录简单,是在原有提交的基础上将差异内容反映进去。因此,可能导致原本的提交内容无法正常运行。
  • 您可以根据开发团队的需要分别使用merge和rebase。例如,想简化历史记录,

2.3.2 什么场景使用

  • 在topic分支中更新merge分支的最新代码,请使用rebase。
  • 向merge分支导入topic分支的话,先使用rebase,再使用merge。

3.建立分支

3.1可以通过branch命令来创建分支

$ git branch <branchname>

branchname 为创建名的分支名称。
3.2 查看分支

$ git branch
  dev
  pro
* master

不指定参数直接执行branch命令的话,可以显示分支列表。 前面有*的就是现在的分支。

4.分支切换

提示:若要在本分支进行提交,才能切换到其他分支,不然会出现分支合并或请求拒绝。

git checkout -b <branch>

branch 为分支名称 ; -b 选项执行,可以创建分支并进行切换 ;

$ git checkout dev
Switched to branch 'dev'

Switched to branc 表示切换成功!

5.合并分支

执行merge命令以合并分支请求。**

$ git merge <commit>

合并操作

$ git checkout master
Switched to branch 'master'
$ git merge dev
Updating b2b23c4..8f7aa27
Fast-forward
 myfile.txt |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

该命令将指定分支导入到HEAD指定的分支。先切换master分支,然后把dev分支merge到master分支。

注意:合并时可能有多个文件冲突他会让你选择

......
<<<<<<< HEAD
本地库内容
=======
pull 取得远端数据库的内容
>>>>>>> issue3

6.分支删除

branch命令指定-d选项执行,以删除分支。

$ git branch -d <branchname>
Deleted branch <branchname>(was b2b23c4).

branchname 为创建名的分支名称。
出现Deleted branch (was b2b23c4). 表示删除成功

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值