Working off a commit 5 commits ago. How does one do this best?
本问题已经有最佳答案,请猛点这里访问。
假设我有一个像这样的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | commit 8379fef8952c9fde4c4f8bb9b3fb5dab80a61bc9 ... commit cc6c393f707da82aa3f0753db81b148d7eddaaf1 ... commit 6668e9087e3561b7797c91730f4ac0057fa85904 ... commit 2da2d26974d1ef57a02f3dfe2c7b5aa310f2efac ... commit a625c16a2985d06f10fb72db9e6952fdf51e5000 ... |
假设我想回到最底层的一个
如果你没有推这个,你可以
1 | git reset --hard a625c16a2985d06f10fb72db9e6952fdf51e5000 |
这将完全放弃所有更改,并忘记所有发生的更改。但是,这意味着如果你在任何地方发布了这篇文章,你就必须执行
如果你想避免,你可以
1 2 3 | git revert 8379fef8952c9fde4c4f8bb9b3fb5dab80a61bc9 ... git revert 2da2d26974d1ef57a02f3dfe2c7b5aa310f2efac |
号
它将彻底地消除所有的更改,并且您可以在不使用--force的情况下进行推送。这确实意味着你所有的改变和逆转都将在历史中可见。
如果您已经有了要作为独立头签出的提交,那么只需执行