我搞砸了我的历史,想对其进行一些更改。问题是,我有一个包含两个不相关更改的提交,并且这个提交被我本地(非推送)历史记录中的一些其他更改所包围。
我想在推出之前拆分此提交,但我看到的大多数指南都与拆分您最近的提交或未提交的本地更改有关。是否可以对已埋没在历史中的提交执行此操作,而不必从那时起“重做”我的提交?
最佳答案
有一个拆分提交的指南 in the rebase manpage 。快速总结是:
执行包含目标提交(例如
git rebase -i <commit-to-split>^ branch
)的交互式 rebase 并将其标记为要编辑。当 rebase 到达那个提交时,使用
git reset HEAD^
重置到提交之前,但保持您的工作树完好无损。逐步添加更改并提交它们,根据需要进行尽可能多的提交。
add -p
可用于仅添加给定文件中的部分更改。如果您想为某个提交重新使用原始提交消息,请使用commit -c ORIG_HEAD
。如果你想测试你提交的内容(好主意!)使用
git stash
stash 你没有提交的部分(或者在你提交之前使用stash --keep-index
),测试,然后git stash pop
返回休息到工作树。继续提交,直到您提交所有修改,即拥有一个干净的工作树。运行
git rebase --continue
以在现在拆分的提交之后继续应用提交。
关于git - 我如何拆分埋藏在历史中的 Git 提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4307095/