git update-index --assume-unchanged文件的git pull error

时间:2016-05-03 06:11:54

标签: php git github

我在执行git pull origin master

时遇到问题

我有一些文件具有本地配置设置并且与源不同 我已经将它们标记为代码未加攻击 - >     git update-index --assume-unchanged html/index.php

现在只要远程index.php文件没有改变,我就可以轻松地做git pull,但是当index.php文件发生变化时我会这样做     git pull origin master 我得到以下错误     branch master -> FETCH_HEAD d532f8d..d01836e master -> origin/master error: Your local changes to the following files would be overwritten by
merge: html/index.php Please, commit your changes or stash them before you can merge. Aborting

每当我遇到这个问题,我都要运行命令     git update-index --no-assume-unchanged [filepath/filename]

然后执行git pull,然后使用我的更改更新该配置文件并再次运行     git update-index --assume-unchanged html/index.php

我不需要在本地中更改远程配置文件,因此无需更新这些文件 我无法更改远程文件,因此我可以在本地执行哪些操作我不会遇到远程更新这些配置文件的问题

2 个答案:

答案 0 :(得分:1)

请尝试使用--skip-worktree

git update-index --no-assume-unchanged -- a file
git update-index --skip-worktree -- a file

参见" Difference Between 'assume-unchanged' and 'skip-worktree'"更多:--skip-worktree应该更好地抵制git pull

答案 1 :(得分:1)

我建议以下过程。让Git知道更改:

git update-index --no-assume-unchanged html/index.php 

存储这些更改:

git stash save "Save local conf"

您现在可以拉出然后恢复本地更改:

git stash pop

,您可以接受本地更改来解决冲突。

最后,我将使用--skip-worktree保护文件。为什么? See here