ser*_*iuz 2 git git-revert git-rewrite-history
假设我有一个提交列表:
A > B > C > D > E ,如何从历史记录中删除C中所做的更改A > B > D > E?
您始终可以还原更改.
git revert C
Run Code Online (Sandbox Code Playgroud)
如果你想重写历史,那rebase就是为了什么.你需要:
git rebase -i A
Run Code Online (Sandbox Code Playgroud)
然后从提交列表中删除C.
更长的解释:
第一个选项通过创建与原始提交相反的新提交来恢复更改.所以存储库看起来像:
A> B> C> D> E> C`
其中C`与C相反.基本相同 patch --reverse
第二个选项更改历史记录.rebase允许您选择特定提交,更改提交顺序等等.我建议阅读git-rebase.该-i标志用于交互模式,允许用户在重新定位之前编辑提交列表.
如果从提交列表中删除C并执行rebase,则实际输出将是
A> B> D> E.
您在分支中不再有C历史记录.
注意:在这两种情况下,您可能会在此过程中发生冲突.在第一种情况下,因为你在E上应用C`,在第二种情况下,因为你在D上应用D
| 归档时间: |
|
| 查看次数: |
387 次 |
| 最近记录: |