前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何克服解决Git冲突的恐惧症?(Git高级话题)

如何克服解决Git冲突的恐惧症?(Git高级话题)

作者头像
前端黑板报
发布2020-12-10 10:17:07
5290
发布2020-12-10 10:17:07
举报
文章被收录于专栏:前端黑板报前端黑板报

多分支rebase

多分支的情况下,我们往往希望得到有序的提交历史,看下面的例子:

执行如下步骤进行多分支rebase:

代码语言:javascript
复制
git rebase master bugFix
git rebase bugFix side
git rebase side another
git rebase another master

两个父节点

操作符^~符一样,后面也可以跟一个数字。

但是该操作符后面的数字与~后面的不同,并不是用来指定向上返回几代,而是指定合并提交记录的某个父提交。还记得前面提到过的一个合并提交有两个父提交吧,所以遇到这样的节点时该选择哪条路径就不是很清晰了。

Git默认选择合并提交的“第一个”父提交,在操作符^后跟一个数字可以改变这一默认行为。

废话不多说,举个例子:

代码语言:javascript
复制
//链式操作
git branch bugWork master~^2~

纠缠不清的分支

如上图,现在我们的master分支是比one、two和three要多几个提交。出于某种原因,我们需要把master分支上最近的几次提交做不同的调整后,分别添加到各个的分支上。

one需要重新排序并删除C5,two仅需要重排排序,而three只需要提交一次。

执行如下命令:

代码语言:javascript
复制
git checkout one
git cherry-pick C4 C3 C2
git checkout two
git cherry-pick C5 C4 C3 C2
git branch -f three C2

相信大家对Git高级话题已经基本掌握,不妨在自己的git环境中动手试一试吧~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-07-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前端黑板报 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 多分支rebase
  • 两个父节点
  • 纠缠不清的分支
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档