Jak git ignorować punkty kontrolne notatnika ipython w dowolnym miejscu repozytorium


105

To głównie kwestia gita. Chcę zatwierdzić moje zeszyty ipython, ale gitignore punkty kontrolne.

Repozytorium ma wiele folderów, z których każdy ma notatniki ipython, dlatego samo zignorowanie jednego katalogu nie rozwiązuje problemu. Chcę nadal dodawać nowe foldery z notatnikami w środku, nie martwiąc się o to.

Moje przeczucie jest takie, że musi istnieć sposób na użycie jakiegoś symbolu wieloznacznego, aby gitignore wszystko, co jest w folderze o nazwie * /. Ipynb_checkpoints /, ale nie był w stanie tego rozgryźć .

Jak więc mogę git zignorować wszystkie punkty kontrolne notebooka ipython w repozytorium, gdziekolwiek się one znajdują?

Odpowiedzi:


139

Jeśli dodasz do .gitignore:

.ipynb_checkpoints

(bez ukośników) każdy plik lub katalog w repozytorium o tej nazwie zostanie zignorowany. Ścieżki są sprawdzane tylko w przypadku uwzględnienia /.

Z tej odpowiedzi możesz również mieć globalny gitignore dla swojego komputera:

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

2
Wygląda na to, że powinno działać, ale z jakiegoś powodu nie działa dla mnie. Z głównego folderu repozytorium moje punkty kontrolne znajdują się w notebooks/.ipynb_checkpoints/i nie mogę ich ignorować! Próbowałem dodać tę ścieżkę, z końcowym ukośnikiem do mojego .gitignore i bez niego. Wypróbowałem twoją sugestię. Próbowałem dodać wiele gwiazdek. Jakieś pomysły?
Engineero

@Engineero Czy powiedziałeś gitowi, gdzie jest twój .gitignoreplik git config?
Ciprian Tomoiagă

6
@Engineero: czy wykonałeś już część z tego? .gitignorenie można ignorować rzeczy po fakcie (jeśli są już popełnione)
Mr_and_Mrs_D

@CiprianTomoiaga znajduje się .gitignoredobrze, a inne pliki i foldery zostaną zignorowane. Nie wiem, dlaczego to nie działa, ale znalazłem coś, co działa. Dodam to jako odpowiedź.
Engineero

@Mr_and_Mrs_D Też miałem ten problem, ale po prostu usunąłem indeksowanie plików i spróbowałem czegoś innego .gitignore. W końcu udało mi się sprawić, że zadziała z czymś, co dodam jako odpowiedź.
Engineero


12

Dodaj do .gitignore:

.ipynb_checkpoints
*/.ipynb_checkpoints/*

I powinieneś być gotowy.



2

Czasami możesz zapomnieć, że już śledzisz plik w swoim repozytorium git (tak jak było w moim przypadku). Więc być może będziesz musiał go najpierw wyśledzić

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

a następnie dodaj do swojej .gitignorelinii:

*/.ipynb_checkpoints/*.ipynb

0

Jeśli jeszcze nie przekazałeś swojego kodu, dodaj

.ipynb_checkpoints

do twojego .gitignore

Jeśli już wcześniej przekazałeś swój kod, dodaj .ipynb_checkpoints przekazałeś swój do swojego .gitignore. Zapewni to, że .ipynb_checkpoints będą w przyszłości ignorowane, ale nie usunie starych .ipynb_checkpoints

Musisz ręcznie usunąć pamięć podręczną w każdym folderze w odpowiedniej gałęzi. Przejdź najpierw do folderu zawierającego .ipynb_checkpoints i zrób

git rm -r --cached .ipynb_checkpoints

-1

Z jakiegoś powodu żadna z obecnych odpowiedzi nie zadziałała. W końcu udało mi się zmusić git do zignorowania wszystkich moich plików punktów kontrolnych (i wszelkich innych niechcianych ukrytych plików i folderów), dodając:

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

do mojego .gitignorepliku w katalogu podstawowym repozytorium. Jest to obszerny przegląd i będzie trudny do utrzymania, jeśli chcesz zachować ukryte pliki w swoim repozytorium, ale nie potrzebuję żadnego z wyjątkiem mojego .gitignore, więc działa dla mnie!


Tak, dla mnie też żadne z powyższych nie działa. Nawet to, co zaproponowałeś. Po utworzeniu punktu kontrolnego pojawia się on w statusie git.
pebox

-3

Użyłem polecenia rm -rf .ipynb_checkpoints. To zadziałało dla mnie.


3
Oznacza to usunięcie folderu, a nie jego ignorowanie. To jest myląca odpowiedź.
Chandra Kanth
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.