Git:做了错事不想让人知道怎么办

使用Git进行版本管理,如果某次commitpushremote之后发现刚才的提交有一个搞笑的问题,这个时候特别想把这个提交撤销掉,怎么办?

这种修改历史的行为Git可是非常在行,只需要用到两个命令。


git reset

参考这里

reset命令能够让本地的提交撤销到之前的某个版本,并选择保留或撤销本地的提交记录。所以,只要使用这个命令,就可以轻松撤销本地的最近提交历史了。

git push -f

但是单撤销本地commit远远不够。如果只是撤销了本地commit,当你想push的时候会发现和remote冲突无法push

所以这里用到了git push -f,也就是强制推送。remotecommit历史也会随之被修改。


但是强制推送要慎用,毕竟remote可能是多人共用的,强制推送很容易造成其他问题。不过对于小型或个人项目来说,问题应该不大。

当然,我不会说我刚刚就在 GitHub 上做了这事……