git中怎么撤销几乎所有的操作【翻译】

原文链接

https://github.com/blog/2019-how-to-undo-almost-anything-with-git/

在版本控制系统中最有用的功能之一就是可以”撤销“错误。在git中可以“撤销”非常细微的不同。

当你做了一次新的commit,git会保存代码库的快照,以便以后可以用git找回项目更早的版本。

这篇文章将介绍在使用git时“撤销”修改的案例和最佳解决的方法。

撤销一个“公开”的修改

案例: 你执行 git push,把修改推送到了github,这时你意识到之前的提交有个错误,你可能要撤销哪些提交。

方法: git revert <SHA>

发生了什么: git revert 将根据提供的SHA创建一个新的commit,如果旧的提交是“影响性的”,那么新的提交就是“非影响性的”—所有在旧的提交中移除的都会添加在新的提交中并且旧提交的中的添加的也会在新的提交中移除。

Git的安全性,大多基于“撤销”操作,因为它不修改历史记录—-因此你可以 git push 这个新的“相反”提交来撤销之前错误的commit。

修改上次commit的信息

案例: 你刚刚在上次commit信息中打错了字,git commit -m "Fxies bug #42" 在执行 git push 之前你意识到提交信息应该是“Fixes bug #42”。

方法: git comit --amend or git commit --amend -m "Fixes bug #42"

发生了什么: git commit --amend

未完待续。。。