git中的force push和normal push之间有什么不同

What is the different between force push and normal push in git

本问题已经有最佳答案,请猛点这里访问。

我想知道力推和正常的力推有什么不同,在什么情况下,我应该在Git中执行力推?强行推进总分行是个好做法吗?


只有在需要用本地历史记录替换远程历史记录时才强制执行推送。

这种情况发生在重写本地历史时,通常是通过git rebase重写的。例如,如果您刚刚推送了一个不正确的提交,并在本地对其进行了修改,那么使用push --force可以帮助纠正最近的推送。

如果你是唯一一个在树枝上工作的人,那么这不是什么大问题。如果您不是唯一一个,那么您需要清楚地进行通信,以便其他用户将自己的本地分支重置为新的远程。或者你首先要避免用力推。

Is it a good practice to do force push into master branch?

一般来说,这不是一个好的实践(同样,除非您是唯一使用远程回购的人)。别忘了,一旦树枝被用力推了…你不知道是谁干的。


如果您在一个公共存储库中工作,那么强制推送是一种非常危险的方法。使用这种强制推送,您应该能够强制对远程存储库进行本地修订。

但强行推进远程回购并非一个好做法。如果存在提交之间的冲突,可以使用普通的push来解决冲突。