Gabriel Baker
Gabriel Baker

Reputation: 1219

How to tell git to ignore all further edit to a single file without removing it from the repo

I have forked a project on github and started messing around with it on my own machine, I want to commit the changes I have made back to my fork on github but without commiting the changes I have made to the .cfg file, since this contains things like db password etc

Upvotes: 34

Views: 4867

Answers (1)

jweyrich
jweyrich

Reputation: 32260

Use this:

git update-index --skip-worktree path/file.cfg

And to restore:

git update-index --no-skip-worktree path/file.cfg

Lastly, if you want to list files that are marked with skip-worktree:

git ls-files -v | grep ^S | awk '{print $2}'

To simplify, you can make an alias for that in your $HOME/.gitconfig:

[alias]
    ls-ignored-changes = !git ls-files -v | grep ^S | awk '{print $2}'

Then you can type just git ls-ignored-changes. It even works with auto-completion if you have the git-completion in place (for bash, tcsh, zsh).

Upvotes: 73

Related Questions