我在git中有以下历史记录
A-B-C-D-E-F
我想回滚我在提交E中所做的更改,但是希望我提交F中的更改。所以我做了git rebase
这样的
git rebase -i D
并且只选择提交F并忽略提交E.我的历史现在看起来像
A-B-C-D-F
但是,我想要做的是,回滚在提交E中完成的更改,但仍然保留在历史记录中添加E然后删除。像这样的东西
A-B-C-D-E-F-E1
其中E1是一个提交,用于恢复提交E所做的更改。
如何在git中执行此操作?
答案 0 :(得分:4)
答案 1 :(得分:2)
您使用revert command。这会创建一个提交,它与提供的SHA相反。
git revert <SHA E>
答案 2 :(得分:2)
我认为rebase
不是最佳选择。我的第一个建议是使用revert
git revert E
这将创建一个新的提交,恢复E已应用
另一种选择是反转补丁。
git show E | patch -R -p1 && git commit .
将取消E
中的内容。