可以说我已经提交了1,2,3,4,5。提交2和5是我的,其余的是由别人完成的。因为3,4提交有一些错误! 我推送了提交。 承诺5是我想申请在提交2.Git删除具体提交
我要回滚提交2和应用更改我的新变化commmit 5.
我应该如何删除特定承诺3和4孤独?
可以说我已经提交了1,2,3,4,5。提交2和5是我的,其余的是由别人完成的。因为3,4提交有一些错误! 我推送了提交。 承诺5是我想申请在提交2.Git删除具体提交
我要回滚提交2和应用更改我的新变化commmit 5.
我应该如何删除特定承诺3和4孤独?
做一个变基:
git rebase -i HEAD~5
这将打开一个编辑器窗口;只需删除对应于提交3和4的pick
行。退出编辑器:rebase将继续。
注意:危险和冲突的来源;如果底垫由于某种原因失败,或者修复它(手;看到git rebase
手册页)或git rebase --abort
终止它)
当底垫被完成后,按与-f
选项。但与你在这个回购工作的人不会感谢你!
这里是另一种方法,只是为了变化。
您应做的是对的5个顶级的承诺3和4
将恢复代码如果您还没有推开这些提交创建新的提交,你也可以做一个摘樱桃。说你的回购HEAD指向5点,它是分行主。
1 -> 2 -> 3 -> 4-> 5 (HEAD, master)
git co -b temp
1 -> 2 -> 3 -> 4 -> 5 (HEAD, master, temp)
git co master
git reset --hard HEAD~3
1 -> 2 (HEAD, master)-> 3 -> 4 -> 5 (temp)
git cherry-pick temp
1 -> 2 -> 3 -> 4 -> 5 (temp)
|
-> 5' (HEAD, master)
git branch -D temp
1 -> 2 -> 5' (master, HEAD)
我想这是你想要的。尽管你会做的更好,以创建还原上的5
注意顶部承诺:通过@fge给出的方法更简洁,最好的,如果你以前做过一个互动变基。如果没有,这个人会给你一个战斗的机会,因为你永远可以合并主回温,并得到从你开始点在哪里。
我已经承诺最近的变化! – Dineshkumar
然后跳过藏匿一部分;)编辑 – fge
还我已经推了! – Dineshkumar