Search code examples
gitgitignore

Recursive git update-index --assume-unchanged


I'm trying to run the following:

git update-index --assume-unchanged myFolderToIgnore

Where myFolderToIgnore is a folder. However it fails saying its "unable to mark" it.

So I tried:

git update-index --assume-unchanged myFolderToIgnore/

Which GIT responds to with Ignoring path myFolderToIgnore/ but doesn't do anything (it still sees my changes and tries to check them in).

In the end I had to go in and manually mark each individual file as unchanged. What am I missing here?


Solution

  • update-index is an internal plumbing command and thus not as comfortable as the real front-end commands. You will have to handle the recursion bit yourself:

    git ls-files -z myFolderToIgnore/ | xargs -0 git update-index --assume-unchanged
    

    PSA: There is a high chance that assume-unchanged is not what you are looking for and you should use skip-worktree instead. See here for more info.