git更新索引的git pull错误--假定文件未更改


git pull error for git update-index --assume-unchanged files

我在执行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工作树来保护文件。为什么?请参阅此处