我想将文件更改添加到尚未推送的提交(不是最后一个)。
我们说我有以下情况:
git init
touch test.txt
// do some changes to the text file
git commit -a -m "First change"
# if I now change something I can add it to the previous commit with:
git add test.txt
git commit --amend -C HEAD
# more changes to test.txt
git commit -a -m "Second change"
# more changes to test.txt
git commit -a -m "Third change"
# one more change
# how can I add the change to my second commit (second change)?
我希望问题很清楚。如果没有,请告诉我。我试过了git commit --amend -C HEAD~2
,但那个在我真正的git项目中引起了一些奇怪的麻烦。
答案 0 :(得分:5)
您可以使用git rebase
。我建议您阅读git help rebase
,特别是INTERACTIVE_MODE
部分,因为在执行rebase时要小心谨慎。
假设您的上次提交是“第三次更改”,您可以:
git rebase -i HEAD~2
edit xxxxxxx Second change pick xxxxxxx Third change
git add
其他文件,一旦你准备好了git commit --amend
,它将加载一个编辑器,你可以编辑第二个更改的提交日志消息。git rebase --continue
。这将重新修改第二次修改后的第三次更改。