Cara git mengabaikan pos pemeriksaan notebook ipython di mana saja di repositori

100

Ini sebagian besar adalah pertanyaan git. Saya ingin memasukkan notebook ipython saya tetapi mengabaikan checkpoint.

Repo memiliki beberapa folder yang masing-masing memiliki notebook ipython, oleh karena itu mengabaikan satu direktori tidak akan menyelesaikannya. Saya ingin terus menambahkan folder baru dengan buku catatan di dalamnya tanpa mengkhawatirkannya.

Firasat saya adalah bahwa pasti ada cara untuk menggunakan beberapa wildcard untuk mengabaikan apa pun yang ada di folder yang bernama * /. Ipynb_checkpoints / tetapi belum bisa mengetahuinya.

Jadi, bagaimana saya bisa mengabaikan semua pos pemeriksaan notebook ipython di repositori, di mana pun mereka berada?

sapo_cosmico
sumber

Jawaban:

132

Jika Anda menambahkan ke .gitignore:

.ipynb_checkpoints

(tidak ada garis miring di mana pun), file atau direktori apa pun dalam repo dengan nama itu akan diabaikan. Jalur hanya dicentang jika Anda menyertakan /.

Dari jawaban ini Anda juga dapat memiliki gitignore global untuk komputer Anda:

git config --global core.excludesfile '~/.gitignore'
echo '.ipynb_checkpoints' >> ~/.gitignore
minrk
sumber
1
Sepertinya ini seharusnya berhasil, tetapi untuk beberapa alasan tidak berhasil untuk saya. Dari folder repositori root, pos pemeriksaan saya berada di notebooks/.ipynb_checkpoints/, dan saya tidak bisa mengabaikannya seumur hidup saya! Saya mencoba menambahkan jalur itu, dengan dan tanpa garis miring ke .gitignore saya. Saya mencoba saran Anda. Saya mencoba menambahkan banyak bintang. Ada ide?
Engineero
@Engineero sudahkah Anda memberi tahu git di mana .gitignorefile Anda berada git config?
Ciprian Tomoiagă
5
@Engineero: apakah Anda sudah melakukan sebagian? .gitignoretidak dapat mengabaikan hal-hal setelah fakta (jika mereka sudah berkomitmen)
Mr_and_Mrs_D
@CiprianTomoiaga menemukan saya .gitignorebaik-baik saja, dan file serta folder lain akan diabaikan. Saya tidak tahu mengapa ini tidak berhasil, tetapi saya menemukan sesuatu yang berhasil. Saya akan menambahkannya sebagai jawaban.
Engineero
@Mr_and_Mrs_D Saya juga mengalami masalah itu, tetapi saya baru saja membatalkan indeks file dan mencoba sesuatu yang lain .gitignore. Saya akhirnya bisa membuatnya bekerja dengan sesuatu yang akan saya tambahkan sebagai jawaban.
Engineero
25

Saya akan merekomendasikan untuk digunakan **/*.ipynb_checkpoints/dalam .gitignorefile Anda .

Anton Karazeev
sumber
11

Tambahkan ke Anda .gitignore:

.ipynb_checkpoints
*/.ipynb_checkpoints/*

Dan Anda harus pergi.

djwbrown
sumber
2

Ini bekerja.

Folder/.ipynb_checkpoints/*.ipynb
Merlin
sumber
2

Beberapa kali Anda mungkin lupa bahwa Anda sudah melacak file di repositori git Anda (seperti dalam kasus saya). Jadi, Anda mungkin harus melepaskannya terlebih dahulu

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

dan kemudian tambahkan ke .gitignorebaris Anda:

*/.ipynb_checkpoints/*.ipynb
Alexander
sumber
-1

Untuk beberapa alasan, tidak ada jawaban saat ini yang berhasil untuk saya. Saya akhirnya bisa mendapatkan git untuk mengabaikan semua file pos pemeriksaan saya (dan file dan folder tersembunyi yang tidak diinginkan lainnya) dengan menambahkan:

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

ke .gitignorefile saya di direktori dasar repo. Ini adalah sapuan luas, dan akan merepotkan jika Anda ingin menyimpan file tersembunyi di repo Anda, tetapi saya tidak memerlukan file apa pun kecuali milik saya .gitignore, jadi ini berfungsi untuk saya!

Engineero
sumber
Ya bagi saya juga tidak ada yang berhasil di atas. Bahkan apa yang kamu usulkan. Ketika sebuah checkpoint dibuat, itu muncul dalam status git.
pebox11
-3

Saya menggunakan perintah rm -rf .ipynb_checkpoints. Ini berhasil untuk saya.

Sahar Nasser
sumber
2
Itu untuk menghapus folder, bukan mengabaikannya. Ini jawaban yang menyesatkan.
Chandra Kanth