git 选择性还原(相当于 `git revert --patch`)
git selective revert (equivalent of `git revert --patch`)
是否有一种首选的方法来恢复之前提交的一部分,沿着部分恢复未暂存的更改(git checkout -p
)和部分添加未暂存的更改(git add -p
)?
即我有几个(甚至很多)提交,其中包含想要的和不需要的更改,我想有选择地还原其中一些更改,同时保留其他更改。
我目前的工作流程不好玩:
git diff commit commit^ > selective.diff
cp selective.diff selective2.diff
nvim selective2.diff
# change unwanted - to ' ' and remove unwanted +, then save
rediff selective.diff selective2.diff | rewrite selective2.diff
git apply selective2.diff
并祈祷补丁能够
我只能想到类似
git revert commit --no-commit
git reset # now the changes are unstaged
git add -p
...
git commit
但我不知道它是否比你的解决方案更可行。
git revert --no-commit
git reset --patch # or `git checkout --patch` if you're sure
是否有一种首选的方法来恢复之前提交的一部分,沿着部分恢复未暂存的更改(git checkout -p
)和部分添加未暂存的更改(git add -p
)?
即我有几个(甚至很多)提交,其中包含想要的和不需要的更改,我想有选择地还原其中一些更改,同时保留其他更改。
我目前的工作流程不好玩:
git diff commit commit^ > selective.diff
cp selective.diff selective2.diff
nvim selective2.diff
# change unwanted - to ' ' and remove unwanted +, then save
rediff selective.diff selective2.diff | rewrite selective2.diff
git apply selective2.diff
并祈祷补丁能够
我只能想到类似
git revert commit --no-commit
git reset # now the changes are unstaged
git add -p
...
git commit
但我不知道它是否比你的解决方案更可行。
git revert --no-commit
git reset --patch # or `git checkout --patch` if you're sure