128
votes

This is mostly a git question. I want to commit my ipython notebooks but gitignore the checkpoints.

The repo has multiple folders which each have ipython notebooks, therefore just ignoring a single directory does not solve it. I want to keep adding new folders with notebooks inside without worrying about it.

My hunch is that there must be a way to use some wildcard to gitignore anything that is in a folder that is called */.ipynb_checkpoints/ but haven't been able to figure it out.

So, how can I git ignore all ipython notebook checkpoints in a repository, wherever they are?

8

8 Answers

168
votes

If you add to .gitignore:

.ipynb_checkpoints

(no slashes anywhere), any file or directory in the repo with that name will be ignored. Paths are only checked if you include /.

From this answer you can also have a global gitignore for your computer:

git config --global core.excludesfile '~/.gitignore'
echo '.ipynb_checkpoints' >> ~/.gitignore
30
votes

I would recommend to use **/*.ipynb_checkpoints/ in your .gitignore file.

15
votes

Add to your .gitignore:

.ipynb_checkpoints
*/.ipynb_checkpoints/*

And you should be good to go.

7
votes

Some times you may forget that you are already tracking the file in your git repository (as it was in my case). So you may have to untrack it first

git rm --cached Folder_with_ipynb/.ipynb_checkpoints/news-checkpoint.ipynb

and then add to your .gitignore the line:

*/.ipynb_checkpoints/*.ipynb
5
votes

If you haven't pushed your code yet, add

.ipynb_checkpoints

to your .gitignore

If you have already pushed your code before, add .ipynb_checkpoints to your .gitignore. This will ensure that .ipynb_checkpoints will be ignored in the future but doesn't remove your old .ipynb_checkpoints

You have to manually remove the cache in every folder in the respective branch. Go to the folder that has the .ipynb_checkpoints at first and do

git rm -r --cached .ipynb_checkpoints
2
votes

This works.

Folder/.ipynb_checkpoints/*.ipynb
0
votes

For some reason, none of the current answers worked for me. I was eventually able to get git to ignore all of my checkpoint files (and any other unwanted hidden files and folders) by adding:

.*  # ignore all hidden files and folders
!/.gitignore  # explicitly do not ignore .gitignore

to my .gitignore file in the repo's base directory. This is a broad sweep, and will be a pain to maintain if you want to keep hidden files in your repo, but I have no need for any except my .gitignore, so it works for me!

-4
votes

I used the command rm -rf .ipynb_checkpoints. This worked for me.