首页 > 解决方案 > 如何使用远程 git 分支的更改更新本地分支,而无需“合并”提交

问题描述

我有一个远程分支,我从PC A推送了一些更改(我是唯一一个在这个分支上工作的人)。我也有PC B克隆了相同的分支(正在跟踪与 PC A 相同的远程分支,但它缺少我刚刚从PC A推送到分支的最新更改。当我git pullPC B上运行以获取最新更改时,git 显然抱怨“合并冲突”。由于我正在跟踪来自PC APC B的同一个远程分支,因此我不想每次都进行合并提交,也不想重新设置基准。我只想要PC B上的分支无需进行任何提交即可更新到远程分支的确切状态。如何在 git 中实现这一点?

标签: gitgithub

解决方案


您可以通过以下方式轻松重置:

git fetch
git reset --hard @{u}

Note通常@{u}上游分支的简写origin/your-branch-name

注意:由于您有时会遇到冲突,这意味着您正在重写您的提交并强制推送。(可能使用 rebase 或修改。)这是一个非常好的工作流程(我在自己的分支上也这样做),但是,当你强制推送时,使用它是一个好习惯:

git push --force-with-lease

通过以这种方式强制推动,您不太可能意外地将您在另一台尚未看到的计算机上所做的更改吹走。如果你这样做并得到一个错误,那么你需要git fetch比较你的本地和远程分支,看看你是否需要先重置(或使用 rebase 拉取),然后再推出最新的更改。

如果您不总是立即强制推动您的修正/变基,那么您可能还想在进行重置之前比较本地和远程,这样您就不会在本地吹走您从未推出过的东西。


推荐阅读