我经常有以下这样的工作流程:
- 提交一组文件的更改
- 提交另一组文件的更改
- 意识到错过了应该包含在第一个提交中的一些更改
- 咒骂
我不能使用 git commit --amend
,因为我需要修改的不是最近的提交。那么,在不影响第二个提交的情况下,如何将更改添加到第一个提交中最好的方法是什么?
我经常有以下这样的工作流程:
我不能使用 git commit --amend
,因为我需要修改的不是最近的提交。那么,在不影响第二个提交的情况下,如何将更改添加到第一个提交中最好的方法是什么?
git rebase
来解决这个问题。运行git rebase -i sha1~1
,其中sha1是要更改的提交哈希值。找到要更改的提交,按照rebase编辑器中的注释将"pick"替换为"edit"。从那里继续,您可以编辑该提交。sha1
是你想要更改的提交记录的哈希值,那么在 rebase 命令中你应该指定 sha1^
。否则,要更改的提交记录将不会出现在列表中。 - Rob Kennedygit rebase --continue
来重新应用其后的提交。 - Artyomgit stash
3) git rebase -i sha1^
4) 将要更改的旧提交上的 pick
改为 edit
5) 现在您的工作区看起来像是在旧提交期间的样子,将(旧)文件替换为新文件的副本 6) git add path/to/file
将该文件添加到提交中 7) git commit --amend
8) git rebase --continue
退出变基 9) git stash pop
。 - woojoo666git stash; git rebase -i sha1~1; git stash apply; git commit --amend; git rebase --continue; git push --force
- snlehton
,其中
abcd123` 是您想要用暂存的更改修正的旧提交。希望对某人有所帮助! - Colin O'Dell