你的位置:首页 > 软件开发 > 操作系统 > 记一次git amend事故处理方案

记一次git amend事故处理方案

发布时间:2016-08-30 10:00:09
一、问题回顾问题是git commit --amend 引起的。 一条commit已经push到远端develop了,但是后来又在这条commit上进行了amend操作,导致这条commit的哈希码发生了变化。并且后续又在这条commit之后进行了N条commit操作。<B ...

记一次git amend事故处理方案

一、问题回顾

问题是git commit --amend 引起的。 一条commit已经push到远端develop了,但是后来又在这条commit上进行了amend操作,导致这条commit的哈希码发生了变化。并且后续又在这条commit之后进行了N条commit操作。

记一次git amend事故处理方案<Begin>

大概的情况画了个简图,如图所示。下面的绿色就是最后相同的地方,红色的那条做的是相同的功能message是一样的,但是提完develop之后又改动了很多然后使用amend挤压了。

这个时候比较头疼了,因为那条amend的commit里面是发生了太多改动,我采用的是可以避免冲突的方法,但是会改develop的commit树

git checkout developgit reset 2c4532 //上面97,98,99的改动会被放出来git stash //先把这些改动存起来git reset --hard 5d67bc //等于是把96完全剔除了,代码回到了95的状态git cherry-pick 8a6f7f //把那一条修改后的功能commit(96的feature)粘贴过来,这一步100%不会有冲突git stash pop //把之前存起来的那些改动再放出来,这一步不能保证100%无冲突,但实际由于两个功能模块离得比较开,所以也没有发生冲突。git add .  git commit -m " " //把develop上面的97,98,99三条commit 挤压成了一条后commitgit cherry-pick 86f6cc d34c7 2817f5 //这一步把feature分支的97,98,99三条commit粘贴过来,因为这三条基本是基于8a6f7f开发的,所以也没有发生冲突。 董铂然博客园

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:记一次git amend事故处理方案

关键词:Git

Git
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。