Comment git ignorer les points de contrôle du notebook ipython n'importe où dans le référentiel


100

C'est principalement une question git. Je veux valider mes notebooks ipython mais gitignore les points de contrôle.

Le dépôt a plusieurs dossiers qui ont chacun des notebooks ipython, donc ignorer un seul répertoire ne le résout pas. Je veux continuer à ajouter de nouveaux dossiers avec des cahiers à l'intérieur sans m'en soucier.

Mon intuition est qu'il doit y avoir un moyen d'utiliser un caractère générique pour gitignore tout ce qui se trouve dans un dossier appelé * /. Ipynb_checkpoints / mais qui n'a pas été en mesure de le comprendre.

Alors, comment puis-je ignorer tous les points de contrôle des notebooks ipython dans un référentiel, où qu'ils se trouvent?

Réponses:


132

Si vous ajoutez à .gitignore:

.ipynb_checkpoints

(aucune barre oblique nulle part), tout fichier ou répertoire du dépôt portant ce nom sera ignoré. Les chemins ne sont vérifiés que si vous les incluez /.

À partir de cette réponse, vous pouvez également avoir un gitignore global pour votre ordinateur:

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

1
Cela semble que cela devrait fonctionner, mais pour une raison quelconque, cela ne fonctionne pas pour moi. À partir du dossier racine du référentiel, mes points de contrôle sont situés dans notebooks/.ipynb_checkpoints/, et je ne peux pas pour la vie de moi les ignorer! J'ai essayé d'ajouter ce chemin, avec et sans la barre oblique finale à mon .gitignore. J'ai essayé votre suggestion. J'ai essayé d'ajouter beaucoup d'étoiles. Des idées?
Engineero

@Engineero avez-vous dit à git où se trouve votre .gitignorefichier git config?
Ciprian Tomoiagă

5
@Engineero: en avez-vous déjà engagé une partie? .gitignorene peut pas ignorer les choses après le fait (si elles sont déjà validées)
Mr_and_Mrs_D

@CiprianTomoiaga il trouve mon .gitignoretrès bien, et les autres fichiers et dossiers seront ignorés. Je ne sais pas pourquoi cela ne fonctionne pas, mais j'ai trouvé quelque chose qui fonctionne. Je vais l'ajouter comme réponse.
Engineero

@Mr_and_Mrs_D J'ai aussi eu ce problème, mais j'ai simplement désindexé les fichiers et essayé autre chose .gitignore. J'ai finalement pu le faire fonctionner avec quelque chose que j'ajouterai en réponse.
Engineero

25

Je recommanderais d'utiliser **/*.ipynb_checkpoints/dans votre .gitignorefichier.


11

Ajoutez à votre .gitignore:

.ipynb_checkpoints
*/.ipynb_checkpoints/*

Et vous devriez être prêt à partir.



2

Parfois, vous pouvez oublier que vous suivez déjà le fichier dans votre référentiel git (comme c'était le cas dans mon cas). Donc, vous devrez peut-être d'abord le décoller

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

puis ajoutez à votre .gitignoreligne:

*/.ipynb_checkpoints/*.ipynb

-1

Pour une raison quelconque, aucune des réponses actuelles n'a fonctionné pour moi. J'ai finalement réussi à faire en sorte que git ignore tous mes fichiers de point de contrôle (et tous les autres fichiers et dossiers cachés indésirables) en ajoutant:

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

dans mon .gitignorefichier dans le répertoire de base du dépôt. Il s'agit d'un large balayage, et sera difficile à maintenir si vous souhaitez conserver des fichiers cachés dans votre dépôt, mais je n'en ai pas besoin sauf le mien .gitignore, donc cela fonctionne pour moi!


Oui pour moi aussi, aucune de ces solutions ne fonctionne. Même ce que vous avez proposé. Lorsqu'un point de contrôle est créé, il apparaît dans l'état git.
pebox11

-2

J'ai utilisé la commande rm -rf .ipynb_checkpoints. Cela a fonctionné pour moi.


2
C'est supprimer le dossier, sans l'ignorer. C'est une réponse trompeuse.
Chandra Kanth le
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.