git update-index --assume-unchanged <filename>
回报fatal: Unable to mark file <filename>
.
我需要做些什么来解决这个问题?抱怨什么,为什么?
Ped*_*nto 14
难道添加到库中,而不是在.git/info/exclude
不上.gitignore
?
如果其中任何一个的答案都是肯定的,那么该文件不在存储库中,这就是错误的原因.
尝试git ls-files -o
查看该文件是否存在.它不应该.
您正在运行git update-index --assume-unchanged
是因为您有文件已签入存储库,但您想忽略本地编辑。
正如 Pedro 指出的那样,给您错误的文件不会被检入存储库。(它出现在git ls-files -o
这意味着它没有被跟踪。)
这可能是因为您试图递归地忽略整个目录,如下所示:
find ./folder/ -type f | xargs git update-index --assume-unchanged
Run Code Online (Sandbox Code Playgroud)
但不仅该文件夹中的文件被修改,新文件也被创建。(例如通过构建脚本。)
如果您确定要忽略所有修改过的文件,可以使用以下命令:
git ls-files -m | xargs git update-index --assume-unchanged
Run Code Online (Sandbox Code Playgroud)
但要小心。请注意,弄乱--assume-unchanged
可能会很痛苦。
考虑重新工作,以便这些文件根本不需要在 repo 中。然后,您可以将它们添加到您.gitignore
的存储库中并使用git rm --cached
.
如果您可以将文件保留在 repo 和用户工作目录之外,那可能是理想的。例如,如果文件是作为构建的一部分创建的,您可以创建一个静态库,而不是让每个开发人员在本地运行构建过程。