我在执行git pull origin master
时遇到问题
我有一些文件有本地配置设置,与原始文件不同我已将它们标记为未被代码跟踪->git update-index --assume-unchanged html/index.php
现在,只要远程index.php文件不更改,我就可以轻松地执行git pull
,但当index.php文件更改时,我会git pull原始主机我收到以下错误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
我不需要在本地更改远程配置文件,因此不需要更新这些文件我无法更改远程文件,所以我可以在本地做什么这样我就不会在远程中更新这些配置文件时遇到问题
尝试使用--skip-worktree
:
git update-index --no-assume-unchanged -- a file
git update-index --skip-worktree -- a file
请参阅"'assume-unchanged
'和'skip-worktree
'之间的差异"了解更多信息:--skip-worktree
应该更好地抵抗git pull
。
我建议采用以下流程。让Git了解这些变化:
git update-index --no-assume-unchanged html/index.php
阻止这些变化:
git stash save "Save local conf"
您现在可以提取然后恢复您的本地更改:
git stash pop
并且您可以通过接受本地更改来修复冲突。
最后,我会使用--skip工作树来保护文件。为什么?请参阅此处