在 `git rebase -i` 中编辑提交时,必须还原单个文件中的更改
While editing a commit in `git rebase -i`, have to revert changes in a single file
在较早的提交中,我需要撤消对某些文件的所有更改,但保留其他文件的更改。
我在做什么:
git rebase -i [sha-ref]
- 编辑
git-rebase-todo
将受影响的提交的 pick
更改为 edit
。
我的文件现在都处于 [sha-ref]
提交时的状态。
我试过 git restore [file-name]
,但它什么也没做。 git restore --staged [file-name]
显然没有做任何事情,因为更改没有上演。
如何只撤销一个文件的更改?
终于找到了:
git checkout [sha-ref]~ [file-name]
git commit --amend
git rebase --continue
在较早的提交中,我需要撤消对某些文件的所有更改,但保留其他文件的更改。
我在做什么:
git rebase -i [sha-ref]
- 编辑
git-rebase-todo
将受影响的提交的pick
更改为edit
。
我的文件现在都处于 [sha-ref]
提交时的状态。
我试过 git restore [file-name]
,但它什么也没做。 git restore --staged [file-name]
显然没有做任何事情,因为更改没有上演。
如何只撤销一个文件的更改?
终于找到了:
git checkout [sha-ref]~ [file-name]
git commit --amend
git rebase --continue