So ignorieren Sie ipython Notebook-Checkpoints an einer beliebigen Stelle im Repository


99

Dies ist meistens eine Git-Frage. Ich möchte meine Ipython-Notizbücher festschreiben, aber die Prüfpunkte gitignore.

Das Repo verfügt über mehrere Ordner mit jeweils ipython-Notizbüchern. Wenn Sie also nur ein einziges Verzeichnis ignorieren, wird dies nicht behoben. Ich möchte weiterhin neue Ordner mit Notizbüchern hinzufügen, ohne mir darüber Gedanken zu machen.

Meine Vermutung ist, dass es eine Möglichkeit geben muss, einen Platzhalter zu verwenden, um alles zu gitignore, was sich in einem Ordner befindet, der * /. Ipynb_checkpoints / heißt, es aber nicht herausfinden konnte.

Wie kann ich also alle Ipython-Notebook-Prüfpunkte in einem Repository ignorieren, wo immer sie sich befinden?

Antworten:


129

Wenn Sie zu .gitignore hinzufügen:

.ipynb_checkpoints

(keine Schrägstriche), jede Datei oder jedes Verzeichnis im Repo mit diesem Namen wird ignoriert. Pfade werden nur überprüft, wenn Sie einschließen /.

Aus dieser Antwort können Sie auch einen globalen Gitignore für Ihren Computer erstellen:

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

1
Dies scheint zu funktionieren, funktioniert aber aus irgendeinem Grund nicht für mich. Aus dem Stamm-Repository-Ordner befinden sich meine Checkpoints in notebooks/.ipynb_checkpoints/und ich kann sie für mein ganzes Leben nicht ignorieren! Ich habe versucht, diesen Pfad mit und ohne den abschließenden Schrägstrich zu meinem .gitignore hinzuzufügen. Ich habe Ihren Vorschlag ausprobiert. Ich habe versucht, viele Sterne hinzuzufügen. Irgendwelche Ideen?
Engineero

@Engineero hast du git gesagt, wo deine .gitignoredatei ist git config?
Ciprian Tomoiagă

4
@Engineero: hast du schon einiges davon begangen? .gitignore
Ich kann Dinge nachträglich

@CiprianTomoiaga es ist mein .gitignoreganz gut, und andere Dateien und Ordner werden ignoriert. Ich weiß nicht, warum das nicht funktioniert, aber ich habe etwas gefunden, das funktioniert. Ich werde es als Antwort hinzufügen.
Engineero

@Mr_and_Mrs_D Ich hatte auch dieses Problem, aber ich habe nur die Dateien deindiziert und etwas anderes ausprobiert .gitignore. Ich konnte es schließlich mit etwas zum Laufen bringen, das ich als Antwort hinzufügen werde.
Engineero

24

Ich würde empfehlen, **/*.ipynb_checkpoints/in Ihrer .gitignoreDatei zu verwenden.


10

Fügen Sie Ihrem hinzu .gitignore:

.ipynb_checkpoints
*/.ipynb_checkpoints/*

Und du solltest gut gehen.


2

Das funktioniert.

Folder/.ipynb_checkpoints/*.ipynb

2

Manchmal vergessen Sie möglicherweise, dass Sie die Datei bereits in Ihrem Git-Repository verfolgen (wie in meinem Fall). Möglicherweise müssen Sie es zuerst entfernen

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

und fügen Sie dann Ihrer .gitignoreZeile hinzu:

*/.ipynb_checkpoints/*.ipynb

-1

Aus irgendeinem Grund hat keine der aktuellen Antworten für mich funktioniert. Ich konnte git schließlich dazu bringen, alle meine Checkpoint-Dateien (und alle anderen unerwünschten versteckten Dateien und Ordner) zu ignorieren, indem ich Folgendes hinzufügte:

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

zu meiner .gitignoreDatei im Basisverzeichnis des Repos. Dies ist ein weitreichender Vorgang, und es wird schwierig sein, ihn beizubehalten, wenn Sie versteckte Dateien in Ihrem Repo behalten möchten, aber ich brauche keine außer meiner .gitignore, also funktioniert es für mich!


Ja, auch für mich funktioniert keines der oben genannten. Sogar was du vorgeschlagen hast. Wenn ein Checkpoint erstellt wird, wird er im Git-Status angezeigt.
Pebox11

-2

Ich habe den Befehl benutzt rm -rf .ipynb_checkpoints. Das hat bei mir funktioniert.


2
Das heißt, den Ordner zu löschen, nicht zu ignorieren. Dies ist eine irreführende Antwort.
Chandra Kanth
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.