.pyc
git의 파일을 어떻게 무시할 수 있습니까?
내가 그것을 넣으면 .gitignore
작동하지 않습니다. 추적되지 않고 커밋을 확인하지 않아야합니다.
답변
에 넣어 .gitignore
. 그러나 gitignore(5)
man 페이지에서 :
· 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 if not from 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
.gitignore
저장소 초기화 직후 git 저장소 트리의 루트 폴더에 있는 파일에 추가합니다.
으로 ralphtheninja는 말했다 당신이 단지에 라인을 추가 할 경우, 사전에 그것을 할 것을 잊었다 경우, .gitignore
파일을 이전에 최선을 다하고 .pyc
당신이 저장소에서 제거해야하므로 파일은 여전히 추적됩니다.
Linux 시스템 (또는 MacOSX와 같은 “부모 및 아들”)을 사용하는 경우 저장소의 루트에서 실행해야하는 다음 한 줄 명령으로 빠르게 수행 할 수 있습니다.
find . -name "*.pyc" -exec git rm -f "{}" \;
이것은 단지 다음을 의미합니다.
내가 현재있는 디렉토리에서 시작하여 이름이 확장자로 끝나는 모든 파일을 찾고
.pyc
파일 이름을 명령에 전달합니다.git rm -f
*.pyc
추적 된 파일로 git에서 파일을 삭제 한 후이 변경 사항을 저장소에 커밋 한 다음 마지막으로 파일에 *.pyc
줄을 추가 할 수 있습니다 .gitignore
.
( http://yuji.wordpress.com/2010/10/29/git-remove-all-pyc/ 에서 수정 됨 )
답변
을 (를) 넣기 전에 저장소에 추가했을 것 *.pyc
입니다 .gitignore
.
먼저 저장소에서 제거하십시오.
답변
나는 이전 게시물의 문장을 사용하려고하고 재귀 적으로 작동하지 않습니다. 그런 다음 몇 가지 도움말을 읽고 다음 줄을 얻습니다.
find . -name "*.pyc" -exec git rm -f "{}" \;
pd는 .gitignore 파일에 * .pyc를 추가하여 git clean을 유지하는 데 필요합니다.
echo "*.pyc" >> .gitignore
즐겨.
답변
전역 적으로 ‘.pyc’파일을 무시하려면 (즉, 모든 git 디렉토리의 .gitignore 파일에 줄을 추가하지 않으려면) 다음을 시도하십시오.
$ cat ~/.gitconfig
[core]
excludesFile = ~/.gitignore
$ cat ~/.gitignore
**/*.pyc
[참조]
https://git-scm.com/docs/gitignore
-
사용자가 모든 상황에서 Git이 무시하기를 원하는 패턴 (예 : 사용자가 선택한 편집기가 생성 한 백업 또는 임시 파일)은 일반적으로 사용자의 ~ / .gitconfig에있는 core.excludesFile에 지정된 파일로 이동합니다.
-
앞에 슬래시가 오는 “**”는 모든 디렉토리에서 일치 함을 의미합니다. 예를 들어, “** / foo”는 “foo”패턴과 동일하게 어디서나 파일 또는 디렉토리 “foo”와 일치합니다. “** / foo / bar”는 “foo”디렉토리 바로 아래에있는 모든 파일 또는 디렉토리 “bar”와 일치합니다.
답변
답변에 대해 @Enrico에게 감사드립니다.
virtualenv를 사용하는 경우 .pyc
현재 디렉토리 내에 몇 개의 파일 이 더있을 것이며,이 파일은 그의 find 명령으로 캡처됩니다.
예를 들면 :
./app.pyc
./lib/python2.7/_weakrefset.pyc
./lib/python2.7/abc.pyc
./lib/python2.7/codecs.pyc
./lib/python2.7/copy_reg.pyc
./lib/python2.7/site-packages/alembic/__init__.pyc
./lib/python2.7/site-packages/alembic/autogenerate/__init__.pyc
./lib/python2.7/site-packages/alembic/autogenerate/api.pyc
모든 파일을 제거하는 것이 무해하다고 생각하지만 .pyc
기본 디렉토리 의 파일 만 제거하려면 다음을 수행하십시오.
find "*.pyc" -exec git rm -f "{}" \;
그러면 app.pyc
git 저장소에서 파일 만 제거됩니다 .