180

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 Answers 8

229

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
8
  • 8
    This seems like it should work, but for some reason is not working for me. From the root repository folder, my checkpoints are located in notebooks/.ipynb_checkpoints/, and I cannot for the life of me ignore them! I tried adding that path, with and without the trailing slash to my .gitignore. I tried your suggestion. I tried adding lots of stars. Any ideas?
    – Engineero
    Aug 23, 2017 at 20:42
  • @Engineero have you told git where your .gitignore file is with git config ? Oct 17, 2017 at 12:33
  • 9
    @Engineero: have you already commited some of it ? .gitignore can't ignore stuff after the fact (if they are already committed) Oct 24, 2017 at 10:17
  • @CiprianTomoiaga it is finding my .gitignore just fine, and other files and folders will be ignored. I don't know why this doesn't work, but I found something that does. I will add it as an answer.
    – Engineero
    Oct 24, 2017 at 15:32
  • @Mr_and_Mrs_D I had that problem too, but I just de-indexed the files and tried something else in .gitignore. I was eventually able to make it work with something that I will add as an answer.
    – Engineero
    Oct 24, 2017 at 15:33
37

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

31

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
1
  • I had this problem and looked through the various answers but this one solved it for me. In fact, I found the solution independently first and only saw this when checking. To be clear, if you have persistent files in git status even after you include their folder in .gitignore, check whether these files have previously been committed. The easiest way to do that is with the git rm command above. The --cached flag will ensure you retain a local copy. Nov 25, 2020 at 10:28
22

Add to your .gitignore:

.ipynb_checkpoints
*/.ipynb_checkpoints/*

And you should be good to go.

0
8

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
2

This works.

Folder/.ipynb_checkpoints/*.ipynb
2

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!

2
  • 1
    Yes for me too none of the above works. Even what you proposed. When a checkpoint is created it appears in git status.
    – pebox11
    Jun 14, 2019 at 22:28
  • 1
    @pebox11 Same for me, it seemed crazily impossible to not have checkpoints, but finally Ashok Kumar's answer about cached files helped me.
    – Gero
    Feb 24, 2022 at 19:20
-7

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

2
  • 9
    That is to delete the folder, not ignoring it. This is a misleading answer. Apr 27, 2020 at 14:47
  • This answer is potentially dangerous to new users. Deleting the folder and adding it to .gitignore are two very different things.
    – liakoyras
    Mar 16, 2022 at 11:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.