这是使用git push --force的好方案吗?我可以在这种情况下使用它吗?

时间:2013-12-18 19:58:19

标签: git

git的新手,如果这是一个愚蠢的问题,请道歉。

我在我正在处理的iOS项目中使用git,而且只有我推送到私有存储库。

我做了一些推动,意识到我想完全忘记/删除我做的提交,所以我git reset --hard进行了提交,进行了一些进一步的更改,并进行了新的提交。

我把它推到了我的存储库,当然我得到了一个警告,我已经落后了。我读了一下,感觉git push --force会覆盖远程存储库。我知道,如果它是一个公共存储库或者一个团队看着这样做会很糟糕,但事实并非如此,只是覆盖远程存储库似乎很合适。

这样做好吗?我无法看到任何问题。

1 个答案:

答案 0 :(得分:3)

你的结论是正确的。你可以这样做,因为只有你有一个存储库实例。

但是,如果您正在使用协作者,或者您有多个存储库克隆(例如在工作和家中),当您尝试从过时的副本推送或拉出时,可能会产生额外的复杂性。

一般情况下,如果您公开分享了提交,并且想删除提交,最好使用git revert

$ git revert <commit>...

这将恢复相关补丁引入的更改,并记录一些记录它们的新提交。优点是它保留了历史记录,您的同事不会遇到任何拉动或推动的问题。

但是,如果您需要完全删除提交,请说是因为您发布了一些超级秘密配方,此时唯一的方法是resetpush --force