将工作/暂存更改直接应用于提交

时间:2015-11-04 08:25:24

标签: git

我对一些文件进行了更改。我意识到这些更改最适合修改为特定的先前提交(例如HEAD~5,5提交回来)。一般来说,我可以git rebase来提交,执行修改,然后返回HEAD。是否有任何快捷方式可以简单地将一组更改应用于特定提交,并且在完成所有重新定位后仍然位于HEAD位置?

1 个答案:

答案 0 :(得分:1)

这里的一般规则是,kcraigie noted in a comment,只是让提交“现在”,然后使用交互式rebase移动它并将其变成壁球或修正。

交互式rebase和commit可以协调以支持可以“自动压缩”的功能。请参阅the git commit documentation中的--squash--fixup说明。

这种方式的工作方式非常简单:使用这些选项提交的提交只是作为其提交消息的正确字符串(以squash!fixup!开头,后跟一行来自您正在修复的提交的消息)。然后,当您稍后运行git rebase -i --autosquash时,rebase代码会自动移动pick行,并按照指示自动将pick更改为squashfixup。< / p>

(如果您愿意,可以进行提交,然后立即运行rebase。)