← All posts

Git: Ignore deleted files

Sometimes working with other people you wish you didn’t have some of the files in the repository because they get in the way of your settings. .ruby-version for instance.

Sometimes working with other people you wish you didn’t have some of the files in the repository because they are getting in the way of your settings. .ruby-version for instance.

You check out the repository and what the…

$ git clone ...
...
rbenv: version '2.1.5' is not installed

Okay you delete the pesky .ruby-version but now it is there for every commit:

$ rm .ruby-version
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        deleted:    .ruby-version

It’s impossible to ignore it by adding it to .gitignore but fortunately in git there is an option for everything.

$ git update-index --assume-unchanged .ruby-version
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean

Done! Phew, at least this wasn’t too much typing, was it? Another option is to truncate the file:

$ cat >> ~/.gitignore
.ruby-version
^C
rbenv: version '2.1.5' is not installed
$ cat > .ruby-version
^C
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean

And as always be careful with git, don’t mess things up.