放弃服务器的更改

时间:2014-07-11 07:23:14

标签: git

我使用此命令跟随此answer不包括要提交的本地内容:

git update-index --assume-unchanged  <filename>

但当有人更改并推送到服务器时,我会在从服务器拉出时收到此消息:

error: Your local changes to the following files would be overwritten by checkout:
        <filename>
Please, commit your changes or stash them before you can switch branches.

无论如何不将更改从服务器应用到本地文件?

1 个答案:

答案 0 :(得分:1)

尝试合并被update-index --assume-unchanged忽略的文件时,这是一个已知问题。

可悲的是,没有干净的解决方案,只有解决方法 您应该还原--assume-unchanged,然后存储更改,以便您可以拉出,之后您应该弹出存储并解决任何可能的合并冲突。

git update-index --no-assume-unchanged <filename>
git stash
git pull
git stash pop
<Solve merge conflicts>

如果您仍然想在此之后忽略该文件,则可以再次使用update index --assume-unchanged

希望有所帮助。


注意:如果在使用assume-unchanged后切换分支时出现类似问题,则应使用skip-worktreegit update-index --skip-worktree <filename>)。

您可以在this question中找到有关此主题的更多信息,当然也可以在documentation for update-index中找到。