Как git игнорировать контрольные точки записной книжки ipython в любом месте репозитория

105

Это в основном вопрос git. Я хочу зафиксировать свои записные книжки ipython, но игнорирую контрольные точки.

В репо есть несколько папок, в каждой из которых есть записные книжки ipython, поэтому простое игнорирование одного каталога не решает эту проблему. Я хочу продолжать добавлять новые папки с записными книжками внутри, не беспокоясь об этом.

Я догадываюсь, что должен быть способ использовать какой-то подстановочный знак для gitignore всего, что находится в папке с именем * /. Ipynb_checkpoints /, но не смог понять это.

Итак, как я могу git игнорировать все контрольные точки записной книжки ipython в репозитории, где бы они ни находились?

sapo_cosmico
источник

Ответы:

139

Если вы добавите в .gitignore:

.ipynb_checkpoints

(нигде нет косой черты), любой файл или каталог в репо с таким именем будет проигнорирован. Пути проверяются, только если вы включаете /.

Из этого ответа у вас также может быть глобальный gitignore для вашего компьютера:

git config --global core.excludesfile '~/.gitignore'
echo '.ipynb_checkpoints' >> ~/.gitignore
minrk
источник
3
Кажется, это должно сработать, но у меня почему-то не работает. В корневой папке репозитория находятся мои контрольные точки notebooks/.ipynb_checkpoints/, и я не могу их игнорировать! Я попытался добавить этот путь с косой чертой в конце и без него в мой .gitignore. Я попробовал ваше предложение. Я пробовал добавить много звездочек. Любые идеи?
Engineero
@Engineero вы сказали git, где находится ваш .gitignoreфайл git config?
Чиприан Томоягэ
6
@Engineero: вы уже что-то сделали? .gitignoreне может игнорировать вещи постфактум (если они уже совершены)
Mr_and_Mrs_D
@CiprianTomoiaga считает, что я в .gitignoreпорядке, а другие файлы и папки будут проигнорированы. Не знаю, почему это не работает, но я нашел кое-что, что работает. Я добавлю это в качестве ответа.
Engineero
@Mr_and_Mrs_D У меня тоже была эта проблема, но я просто деиндексировал файлы и попробовал что-то еще .gitignore. В конце концов я смог заставить его работать с чем-то, что я добавлю в качестве ответа.
Engineero
26

Я бы рекомендовал использовать **/*.ipynb_checkpoints/в своем .gitignoreфайле.

Антон Каразеев
источник
12

Добавьте в свой .gitignore:

.ipynb_checkpoints
*/.ipynb_checkpoints/*

И тебе должно быть хорошо.

djwbrown
источник
2

Это работает.

Folder/.ipynb_checkpoints/*.ipynb
Мерлин
источник
2

Иногда вы можете забыть, что уже отслеживаете файл в своем репозитории git (как это было в моем случае). Так что вам, возможно, придется сначала отключить его

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

а затем добавьте в свою .gitignoreстроку:

*/.ipynb_checkpoints/*.ipynb
Александр
источник
0

По какой-то причине ни один из текущих ответов у меня не помог. В конце концов я смог заставить git игнорировать все мои файлы контрольных точек (и любые другие нежелательные скрытые файлы и папки), добавив:

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

в мой .gitignoreфайл в базовом каталоге репо. Это широкий диапазон, и будет сложно поддерживать его, если вы хотите сохранить скрытые файлы в своем репо, но мне не нужны никакие, кроме моего .gitignore, так что это работает для меня!

Engineero
источник
Да и для меня ничего из вышеперечисленного не работает. Даже то, что вы предложили. Когда создается контрольная точка, она отображается в статусе git.
pebox11
0

Если вы еще не отправили свой код, добавьте

.ipynb_checkpoints

на ваш .gitignore

Если вы уже .ipynb_checkpointsотправляли свой код раньше, добавьте в свой .gitignore. Это гарантирует, что .ipynb_checkpoints будет игнорироваться в будущем, но не удалит ваши старые .ipynb_checkpoints.

Вы должны вручную удалить кеш в каждой папке в соответствующей ветке. Сначала перейдите в папку с .ipynb_checkpoints и выполните

git rm -r --cached .ipynb_checkpoints
Ашок Кумар
источник
-3

Я использовал команду rm -rf .ipynb_checkpoints. Это сработало для меня.

Сахар Насер
источник
3
То есть удалить папку, не игнорируя ее. Это вводящий в заблуждение ответ.
Чандра Кант,