为什么GitHub想保存本地就强制拉取?

Why GitHub force me to pull when I want to save local?

我想保存所有本地更改。但是我的 GitHub 上有一个远程版本。 GitHub 在我可以 push 之前强迫我 pull。但是当我 pull 远程版本时,我的本地版本已损坏。我想 push 我的本地版本并覆盖远程版本。我不需要远程版本。我怎么能那样做?我不想混合那些版本我只想保留我的本地版本。

我的origin/master是远程版本,我的master是本地版本。

我在使用 VisualStudio。

谢谢。

I want to push my local version and overwrite the remote version. I dont need the remote version. How could I do that ?

就是这样

git push -f

… ("force") 是为了。但是,在您这样做之前,我强烈 鼓励您在当前本地和远程分支上设置一个标记,这样您就可以在出现问题时检索它们。

重写我们自己的分支以使其干净是有些常见的事情,但尽量避免使用 push -f 直到你真正知道它是如何工作的,因为它可能是工作的原因损失,包括您和您的一位合作者(如果有的话)。

我们可以强制推送,这样它就会覆盖远程更改。

git push origin <your_branch_name> --force

添加我的答案,这样不仅有人提议使用 --force 存在....

您更改了 git 历史记录,因此 git 防止您默认丢失已推送的历史记录(即一些提交)。

你必须通过告诉他放弃一些已经推送的提交来强制它。

您可以使用 --force--force-with-lease 标志。

但强烈推荐 --force-with-lease,因为它可以防止您丢失您不知道的其他人推送的历史记录,因此,必须首选。

请参阅此处,了解为什么使用 --force-with-lease 更好并为您带来一些安全性。