我试图运行以下命令:
git update-index --assume-unchanged myFolderToIgnore
凡myFolderToIgnore
是一个文件夹。 但是它不能说其“无法达标”了。
所以我想:
git update-index --assume-unchanged myFolderToIgnore/
其中GIT回应给Ignoring path myFolderToIgnore/
但没有做任何事情(它仍然看到我的变化,并试图签入)。
最后,我不得不去和手动标记每个单独的文件视为不变。 我缺少的是在这里吗?
update-index
是一个内部管道命令,因此不一样舒适实前端命令。 你将不得不处理递归位自己:
git ls-files -z myFolderToIgnore/ | xargs -0 git update-index --assume-unchanged
我就遇到了这个问题,在我的文件夹中有成百上千的文件中,文件夹数千人。
这导致“参数列表太长”。
以下解决方案将运行每个文件夹的命令和在这些文件夹遍历的内容。 所以,只要你的成百上千的文件的文件夹中是分开的,那么这将正常工作。
find . -maxdepth 1 -type d \( ! -name . \) -exec bash -c "cd '{}' && pwd && git ls-files -z ${pwd} | xargs -0 git update-index --assume-unchanged" \;