以/
结尾的 路径,例如Server/
,永远不能在索引中命名文件。这样的路径将目录命名为目录(或文件夹,如果您愿意的话)。
与许多面向用户的命令不同,git update-index
是一个非常基本的管道命令,仅通过命名目录就无法对目录中的所有文件进行操作。因此,如果您确实给它指定了一个目录名,即使它不存在,它也会像上面这样抱怨:
$ git update-index --no-assume-unchanged abcdefg/
Ignoring path abcdefg/
尽管完全缺少abcdefg/
个文件,甚至缺少abcdefg
目录:
$ file abcdefg/
abcdefg/: cannot open `abcdefg/' (No such file or directory)
如果您确实在Server/
中有文件,并希望在索引中当前存在的这些文件的条目上设置这些索引标志,则必须分别命名每个这样的文件:
$ git ls-files --stage builtin/
100644 dd18e5c9b67038307401e8d33970d5c424c03cb7 0 builtin/add.c
100644 761cac39e02a7f45dd7f95f05d31e0ad373be214 0 builtin/am.c
100644 da413ae0d178b53d6b1e6c193577c23923255245 0 builtin/annotate.c
100644 3f099b960565ff2944209ba514ea7274dad852f5 0 builtin/apply.c
[many more lines,snipped]
要在每个这些索引条目上设置或清除假定不变的标志,您(或I)将必须为每个此类文件调用一次git update-index
。有112个此类文件,因此需要对git update-index
进行112次调用。
(直接直接使用git update-index
几乎总是表明您做错了。如果您设置了许多假设不变的标志,那可能是真正的错误;您必须取消设置它们我确实写了自己的Python script来处理这类事情,部分是作为实验,部分是当我要处理经常设置和清除标志的恶劣情况时。现在已纠正,但我仍然有脚本。)
本文链接:https://www.f2er.com/3141840.html