Как удалить pycache из репозитория
Перейти к содержимому

Как удалить pycache из репозитория

  • автор:

Removing __pycache__ from git repository

You cannot remove files from existing commits: those commits are frozen for all time. You can make sure you do not add new files to future commits, though. Simply remove the files now, with git rm -r —cached __pycache__ , and list __pycache__ or __pycache__/ in your .gitignore (creating this .gitignore file if needed). Do this for each __pycache__ directory; use your OS’s facilities to find these (e.g., find . -name __pycache__ -type d ). Then git add .gitignore and git commit to commit the removal.

Note that any time anyone moves from any commit that has the files—where they’ll be checked out—to a commit that lacks the files, they will have their entire __pycache__ directory removed if Git is able to do that; at the least, any cached files that were committed and can be removed will be removed. So the —cached in the git rm -r —cached above only speeds things up for you by avoiding the removal of the cached compiled files this time. Others will have to rebuild their cache.

To make a new and different repository in which the __pycache__ files were ever accidentally committed in the first place, use git filter-branch (which is now deprecated) or the newfangled git filter-repo (which is not yet distributed with Git). Or, see any of these various existing questions and their answers, which you should already have found before you asked this:

  • Remove a file from a Git repository without deleting it from the local filesystem
  • Applying .gitignore to committed files
  • How can I make Git «forget» about a file that was tracked, but is now in .gitignore?
  • Remove sensitive files and their commits from Git history

Как сделать gitignore для файлов .idea и __pycache__*

введите сюда описание изображения

Для выгрузки на GitHub необходимо убрать папки .idea и pycache ,однако добавив их в gitignore.txt это сделать не получается.

Отслеживать
задан 14 июн 2022 в 10:33
157 1 1 серебряный знак 10 10 бронзовых знаков
pycache и __pycache__ это вообще-то разные вещи
14 июн 2022 в 10:34
Ну и файл должен называться не gitignore.txt , а .gitignore
14 июн 2022 в 10:35
А так же в начале нужно написать команду git init , а если нет гита то установить тут
14 июн 2022 в 10:48

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Не балуйтесь, добавьте уже устоявшуюся готовую «болванку» «.gitignore для python» например, эту

Если же Вы хотите непременно написать .gitignore самостоятельно — то папки добавляются туда со слешом на конце, чтобы отличать их от файлов, например, __pycache__/

Кстати, оказывается, написать и опубликовать .gitignore на github — отличный способ получить офигенно «форкаемый» проект! Тот репозиторий, который я привел в начале ответа, форкнут более 75 тысяч раз!

Также, важное замечание, которое сделал andreymal и которое позволит не биться головой об клавиатуру: файл имеет имя .gitignore . То есть, не gitignore.txt и не gitignore. То, что он начинается с точки, делает его «скрытым». С точки зрения пользователей Windows — это файл без имени и с расширением gitignore

Как удалить папку из удаленного репозитория git

Если вы хотите удалить директорию из удаленного репозитория, но оставить её на вашем компьютере (например, вы ошибочно запушили директорию с локальным окружением .venv ), то выполните следующие команды

rm --cached -r git commit -m "remove имя_директории from repository" git push origin main 

Также добавьте имя директории или паттерн для исключения в .gitignore , чтобы в дальнейшем она не добавлялась в индекс

Удаление файлов.pyc из удаленного репозитория Git

Нет, вы не можете удалить их напрямую из интерфейса BitBucket, но вы можете удалить их в своем локальном заказе и find./ -type f -name ‘*.pyc’ -exec git rm <> \; ( или просто git rm каждого файла pyc по одному). Затем зафиксируйте/отправьте ваши изменения.

Наконец, чтобы избежать повторения той же ошибки, вы можете создать файл в корне вашего репозитория и назвать его ‘.gitignore’ с содержимым:

*.pyc *~ *.swp 

*~ и ~.swp — это другие часто забытые типы файлов, которые часто случайно отправляются. См. документацию на GitHub по gitignore https://help.github.com/articles/ignoring-files (и их репозиторий файлов.gitignore для некоторых приятных по умолчанию).

Поделиться 29 сентября 2014 в 10:11

git rm *.pyc --cached git commit -a -m'remove pyc from index' git push 

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

Поделиться 14 февраля 2016 в 14:35

Это работает для меня,

find . -name '*.pyc' | xargs -n 1 git rm --cached 

Поделиться 28 июня 2017 в 08:05

Чтобы удалить все файлы .pyc , используйте git rm -rf *.pyc

Затем добавьте *.py[co] в ваш файл .gitignore. (Это предотвратит коммиты файлов.pyc и.pyo в будущих коммитах)

Поделиться 27 октября 2016 в 10:47

Я использовал решение Simeg, но также хотел удалить тонны файлов *.pyc, добавленных по ошибке в ветку. Я использовал awk, чтобы удалить их из кэша рекурсивно.

git status | awk '' 

Затем я удалил файлы из своего локального сервера

find . -name *.pyc -delete 

Поделиться 28 августа 2016 в 00:11

Быстрый способ с помощью PyDev для Eclipse .

Перейдите в проводник пакетов PyDev вашего проекта и выполните следующее:

    щелкните правой кнопкой мыши + Pydev / Удалите *.pyc *.pyo и *$py.class Файл

будет открыто окно, в котором будет указано, сколько файлов было удалено.

Необязательно: Зафиксируйте ваше изменение в команде/сервере:

В окне коммита вы не должны видеть доступных файлов.pyc для добавления, так как мы их удалили. Также, если вы зафиксировали такие файлы ранее, то теперь вы можете зафиксировать их «удаление».

===> Теперь ваш локальный и серверный репозитории свободны от файлов *.pyc *.pyo и *$py.class 🙂

Поделиться 27 июня 2016 в 10:44

Поскольку в Bitbucket по умолчанию нет файла.gitignore в репозитории, вы можете сделать следующее:

  1. вы можете создать локальный.gitignore (не должен быть отправлен) и добавить *.pyc как строку;
  2. вы можете скопировать.gitignore в репозиторий Github и добавить *.pyc как строку в этот файл! Вы можете отправить его или сохранить в своем локальном репозитории!

Поделиться 01 июня 2015 в 04:39

Однострочник для веселья:

git status | grep pyc | sed -e ‘s/ new file: //g’ | xargs -I <> git rm —cached <>

Поделиться 20 октября 2016 в 00:18

еще одна строка для развлечения, чтобы удалить все файлы pyc.

найти. -name ‘*.pyc’ -exec git rm <> \;

не забудьте следовать шагам в других ответах, чтобы зафиксировать и добавить gitignore.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *