我正在尝试运行以下内容:
git update-index --assume-unchanged myFolderToIgnore
myFolderToIgnore
是一个文件夹。但它没有说它“无法标记”它。
所以我试过了:
git update-index --assume-unchanged myFolderToIgnore/
哪个GIT使用Ignoring path myFolderToIgnore/
回复,但没有做任何事情(它仍会看到我的更改并尝试检查它们)。
最后,我必须进入并手动将每个文件标记为未更改。我在这里缺少什么?
答案 0 :(得分:60)
update-index
是一个内部管道命令,因此不如真正的前端命令那么舒服。你必须自己处理递归:
git ls-files -z myFolderToIgnore/ | xargs -0 git update-index --assume-unchanged
答案 1 :(得分:1)
我遇到了这个问题,我的文件夹中有数十万个文件和数千个文件夹。
这导致"参数列表太长"。
以下解决方案将为每个文件夹运行命令并遍历这些文件夹中的内容。因此,只要您的数十万个文件在文件夹中分开,那么这将起作用。
find . -maxdepth 1 -type d \( ! -name . \) -exec bash -c "cd '{}' && pwd && git ls-files -z ${pwd} | xargs -0 git update-index --assume-unchanged" \;