.gitignore должен работать. Можете ли вы предоставить копию строк, которые вы добавили в .gitignore, чтобы попытаться решить эту проблему?
Al Riddoch
Ответы:
41
Вставьте это .gitignore. Но со gitignore(5)страницы руководства :
·If the pattern does not contain a slash /, git treats it as a shell
glob pattern and checks for a match against the pathname relative
to the location of the .gitignore file (relative to the toplevel of
the work tree ifnotfrom a .gitignore file).·Otherwise, git treats the pattern as a shell glob suitable for
consumption by fnmatch(3)with the FNM_PATHNAME flag: wildcards in
the pattern will not match a /in the pathname.For example,"Documentation/*.html" matches "Documentation/git.html" but not"Documentation/ppc/ppc.html"or"tools/perf/Documentation/perf.html".
Итак, либо укажите полный путь к соответствующей *.pycзаписи, либо поместите ее в .gitignoreфайл в любой из каталогов, ведущих от корня репозитория (включительно).
Во избежание путаницы, интерпретация страницы руководства Игнасио неверна. Вам не нужно помещать * .pyc в тот же каталог, достаточно поместить его в родительский каталог (или дедушку и т. Д.).
Godsmith
@Godsmith: Исправлено.
Игнасио Васкес-Абрамс,
241
Вы должны добавить строку:
*.pyc
в .gitignoreфайл в корневой папке вашего дерева репозитория git сразу после инициализации репозитория.
Как сказал ralphtheninja , если вы забыли сделать это заранее, если вы просто добавите строку в .gitignoreфайл, все ранее зафиксированные .pycфайлы все равно будут отслеживаться, поэтому вам нужно будет удалить их из репозитория.
Если вы работаете в системе Linux (или в системе «родители и сыновья», например в MacOSX), вы можете быстро сделать это с помощью этой однострочной команды, которую необходимо выполнить из корня репозитория:
find .-name "*.pyc"-exec git rm -f "{}" \;
Это просто означает:
начиная с каталога, в котором я сейчас нахожусь, найдите все файлы, имена которых оканчиваются на расширение .pyc, и передайте имя файла командеgit rm -f
После *.pycудаления файлов из git как отслеживаемых файлов зафиксируйте это изменение в репозитории, а затем вы, наконец, можете добавить *.pycстроку в .gitignoreфайл.
В качестве альтернативы, просто чтобы удалить файлы из git и с вашего локального компьютера, вы можете просто сделать это git rm --cached *.pycиз каталога верхнего уровня. Получил отсюда
Анупам
У меня он существует, но как только вы зафиксируете файлы .pyc, они все равно будут отслеживаться git, вы должны сначала удалить их и зафиксировать, если они у вас есть в репозитории
Махмуд Хбубати
84
Вы, наверное , добавили их в хранилище , прежде чем положить *.pycв .gitignore.
Сначала удалите их из репозитория.
Если вы хотите игнорировать файлы .pyc глобально (т.е. если вы не хотите добавлять строку в файл .gitignore в каждый каталог git), попробуйте следующее:
Шаблоны, которые пользователь хочет, чтобы Git игнорировал во всех ситуациях (например, резервные или временные файлы, созданные выбранным пользователем редактором), обычно помещаются в файл, указанный в core.excludesFile в ~ / .gitconfig пользователя.
Ведущий "**", за которым следует косая черта, означает совпадение во всех каталогах. Например, «** / foo» соответствует файлу или каталогу «foo» где угодно, так же, как шаблон «foo». «** / foo / bar» соответствует файлу или каталогу «bar» в любом месте, которое находится непосредственно в каталоге «foo».
Обратите внимание: если вы используете virtualenv, у вас будет еще несколько .pycфайлов в каталоге, в котором вы сейчас находитесь, которые будут захвачены его командой find.
Ответы:
Вставьте это
.gitignore
. Но соgitignore(5)
страницы руководства :Итак, либо укажите полный путь к соответствующей
*.pyc
записи, либо поместите ее в.gitignore
файл в любой из каталогов, ведущих от корня репозитория (включительно).источник
Вы должны добавить строку:
в
.gitignore
файл в корневой папке вашего дерева репозитория git сразу после инициализации репозитория.Как сказал ralphtheninja , если вы забыли сделать это заранее, если вы просто добавите строку в
.gitignore
файл, все ранее зафиксированные.pyc
файлы все равно будут отслеживаться, поэтому вам нужно будет удалить их из репозитория.Если вы работаете в системе Linux (или в системе «родители и сыновья», например в MacOSX), вы можете быстро сделать это с помощью этой однострочной команды, которую необходимо выполнить из корня репозитория:
Это просто означает:
После
*.pyc
удаления файлов из git как отслеживаемых файлов зафиксируйте это изменение в репозитории, а затем вы, наконец, можете добавить*.pyc
строку в.gitignore
файл.(адаптировано из http://yuji.wordpress.com/2010/10/29/git-remove-all-pyc/ )
источник
git rm --cached *.pyc
из каталога верхнего уровня. Получил отсюдаВы, наверное , добавили их в хранилище , прежде чем положить
*.pyc
в.gitignore
.Сначала удалите их из репозитория.
источник
Я пытаюсь использовать предложение из предыдущего сообщения и не работаю рекурсивно, затем прочтите справку и получите эту строку:
pd необходимо добавить * .pyc в файл .gitignore, чтобы поддерживать git clean
Наслаждаться.
источник
Если вы хотите игнорировать файлы .pyc глобально (т.е. если вы не хотите добавлять строку в файл .gitignore в каждый каталог git), попробуйте следующее:
[Ссылка]
https://git-scm.com/docs/gitignore
Шаблоны, которые пользователь хочет, чтобы Git игнорировал во всех ситуациях (например, резервные или временные файлы, созданные выбранным пользователем редактором), обычно помещаются в файл, указанный в core.excludesFile в ~ / .gitconfig пользователя.
Ведущий "**", за которым следует косая черта, означает совпадение во всех каталогах. Например, «** / foo» соответствует файлу или каталогу «foo» где угодно, так же, как шаблон «foo». «** / foo / bar» соответствует файлу или каталогу «bar» в любом месте, которое находится непосредственно в каталоге «foo».
источник
Спасибо @Enrico за ответ.
Обратите внимание: если вы используете virtualenv, у вас будет еще несколько
.pyc
файлов в каталоге, в котором вы сейчас находитесь, которые будут захвачены его командой find.Например:
Я полагаю, что удаление всех файлов безвредно, но если вы хотите удалить только
.pyc
файлы в основном каталоге, просто выполнитеfind "*.pyc" -exec git rm -f "{}" \;
Это удалит только
app.pyc
файл из репозитория git.источник