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 com
Aha! I simply want:
git update-index --no-skip-worktree <file>
Based 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)
For all of you that love Bash aliases, here is my set to rule them all(based on C0DEF52)
alias gitskip='git update-index --skip-worktree ' #path to file(s)
alias gitlistskiped='git ls-files -v | grep ^S'
alias gitunskip='git update-index --no-skip-worktree ' #path to file(s)
alias gitunskipall='git ls-files -v | grep -i ^S | cut -c 3- | tr ''\\012'' ''\\000'' | xargs -0 git update-index --no-skip-worktree'
For those using Tortoise Git:
TortoiseGit > Check for modificationsShow ignore local changes flagged files. You should see the file that you ignored (or all the files you've ignored, if you've right clicked on the folder)Unflag as skip-worktree and assume-unchangedIf 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 undoAccording 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!