Git 工作流程:"Your local changes would be overwritten by merge"

Git workflow: "Your local changes would be overwritten by merge"

我一直在与另一位开发人员在三台服务器上合作:

  1. 我的本地虚拟机
  2. 开发服务器
  3. 实时服务器

我采用的工作流程是,很明显,在我的本地 VM 上完成所有工作,然后将更改从 repomote 存储库拉到开发服务器(开发分支)和实时服务器(与开发合并后的主 beanch)分支机构)。

不幸的是,另一个开发者修改了一些文件,直接在live服务器上安装了Wordpress插件。因此,当我尝试将实时服务器上的 master 分支更新为远程存储库上的 master 时,我收到如下消息:

Error: Your local changes to 'plugins/bulk-page-creator/bulk-page-creator.php' would be overwritten by merge.  Aborting.

请在合并之前提交您的更改或将其隐藏起来。

我猜这些文件没有被跟踪。我真的想避免从本地 VM 以外的服务器提交到远程仓库。

我有什么意见可以解决这个问题。我只需要将实时服务器上的代码库与远程存储库一起更新 - 就是这样。

我应该以某种方式放弃这些本地更改吗?

我还尝试将代码库同步到:

git fetch git merge FEATCH_HEAD

运气不好。

我有哪些选择?

你是对的,你收到这条消息是因为文件已经存在于本地,在当前签出的版本中没有被跟踪,你试图合并的提交包含文件。

当Git在合并之前已经知道该文件,那么它可以安全地同意覆盖它,但在这种情况下,您有可能拥有该文件而不知道Git 现在会覆盖它,所以 Git 根本不会这样做。

要解决这个问题,您只需要为Git腾出空间来执行合并。您可以通过两种简单的方式做到这一点:

  1. 删除文件。这样,Git 将能够在没有任何冲突的情况下从新提交中检出文件。
  2. 重命名文件。同上,但如果您想确保您在本地所做的一切也包含在跟踪文件中,您有机会恢复您的本地更改。