A while ago I did this to ignore changes to a file tracked by git:
git update-index --skip-worktree Now I actually want to commit changes to that file to source. How do I undo the effects of skip-worktree?
Thanks, Kevin
A while ago I did this to ignore changes to a file tracked by git:
git update-index --skip-worktree Now I actually want to commit changes to that file to source. How do I undo the effects of skip-worktree?
Thanks, Kevin
Aha! I simply want:
git update-index --no-skip-worktree According to http://www.kernel.org/pub/software/scm/git/docs/git-update-index.html, use
git ls-files -v
to see the "assume unchanged" and "skip-worktree" files marked with a special letter. The "skip-worktree" files are marked with S.
Edit: As @amacleod mentioned, making an alias to list all the hidden files is a nice trick to have so that you don't need to remember it. I use alias hidden="git ls-files -v | grep '^S'" in my .bash_profile. It works great!
If you want to undo all files that was applied skip worktree, you can use the following command:
git ls-files -v | grep -i ^S | cut -c 3- | tr '\012' '\000' | xargs -0 git update-index --no-skip-worktree git ls-files -v will print all files with their statusgrep -i ^S will filter files and select only skip worktree (S) or skip worktree and assume unchanged (s), -i means ignore case sensitivecut -c 3- will remove status and leave only paths, cutting from the 3-rd character to the endtr '\012' '\000' will replace end of line character (\012) to zero character (\000)xargs -0 git update-index --no-skip-worktree will pass all paths separated by zero character to git update-index --no-skip-worktree to undoBased on @GuidC0DE answer, here's a version for Powershell (I use posh-git)
git update-index --no-skip-worktree $(git ls-files -v | sls -pattern "^S"| %{$_.Line.Substring(2)}) And for reference also the opposite command to hide the files:
git update-index --skip-worktree $(git ls-files --modified)