问题描述
通常,我使用git rebase -i HEAD~<number of commits I added>
编辑旧的提交,将edit
放在要编辑的提交上,进行更改,添加文件和git rebase --continue
。
是否可以使用rebase编辑提交,但可以查看过去的提交更改?
示例:
假设我已经提交了commitA
,commitB
,commitC
(位于commitC的HEAD)。
现在我要编辑commitA。我是git rebase -i HEAD~3
,并将edit
放在commitA上。现在我处于改组的中间,但我想要commitA
更改显示为更改,这种情况使我在commitA
更改已提交的情况下写了我的修订。
如果有另一种方法可以修复过去的提交并将该提交更改为staged
,那就太好了
谢谢!
解决方法
o.k似乎比我想象的要容易!只需执行以下步骤: 假设我要编辑5次提交:
-
git rebase -i HEAD~5
- 更改选择以对要编辑的提交进行编辑。
- 如果您希望查看当前的提交更改类型
git reset HEAD~1
,因为您已经在此处进行提交,则您的交互式rebase将开始。 - 进行更改。
-
git add <files of your change and past commit files>
或仅git add -u
来添加所有跟踪的文件。 -
git commit
-
git rebase --continue
快乐的混蛋:)