Git:重置+强制推送与还原的优缺点是什么?

4

3
可能是Git Revert,Checkout和Reset有什么区别?的重复问题。 - hjpotter92
"硬推"是什么意思?你是指强制推送吗? - Tim
@TimCastelijns 我的意思是强制推送。 - Ilya Gazman
1个回答

7

Reset + 强制推送

优点: 更改提交历史,可以帮助您清理,如果您无意中推送了不应该被推送的提交。

缺点: 更改提交历史,可能会损坏其他开发人员克隆的存储库。如果您强制推送了某些内容,您将不得不通知所有其他开发人员您所做的工作,以便他们可以采取适当的措施来修复他们的本地存储库(如果需要)。通常建议在有多个开发人员的团队中不要进行强制推送。但是,如果您独自工作,则这不是问题,您可以自由使用它。Reset还会从历史记录中删除工作,这意味着您可能无法以后恢复它。

撤销

优点: 不更改提交历史。这里的优点基本上与重置+强制推送的缺点相反。保留提交记录,以防需要恢复(您可以撤销撤销)。不会干扰其他开发人员克隆的存储库。

缺点: 提交的任何敏感数据都将保存在您的git历史记录中。


3
还原操作的缺点可能是,如果您提交了某些敏感数据,它将永远保留在您的Git历史中。 - crea1
@crea1 是的,但敏感数据本来就不应该首先提交。 - Tim
快速问题,假设我有提交 A、B、C,其中 C 是一个意外提交。所有其他开发人员都有 A、B。我可以进行重置而不影响每个人的克隆吗? - javip
@javip 是的,你可以。 - Tim
在我的情况下,所有的CONS都被避免了吗? - javip
有点晚了,但是:重置加强制推送可能无法从分发视图中删除敏感数据。可能还有其他地方保留了对敏感数据的引用(例如分支、MR、缓存、尚未垃圾回收)。一定要重新生成敏感数据! - Martin B.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接