힘내 : 추적 된 파일 무시


182

코드를 빌드 할 때 자동으로 수정되는 저장소에 추적 된 파일이 있습니다. 나는 그것들을 추적 해제하고 싶지 않고, 그것들이 수정 된 것으로 나타나기를 원하지 않으며, 추가 할 때 그것들이 준비되는 것을 원하지 않습니다.

이게 가능해?



5
이러한 파일이 빌드에 의해 자동으로 생성 되면 git에서 추적해서는 안됩니다.
Codebling

다음은 유용한 gitignore에 대한 간단한 튜토리얼입니다 : learningpassion.wordpress.com/2016/06/17/…
joker

답변:


283

확실한.

git update-index --assume-unchanged [<file> ...]

실행 취소하고 다시 추적을 시작하려면 다음 단계를 따르세요.

git update-index --no-assume-unchanged [<file> ...]

3
파일을 수정하면이 상태의 파일은 어떻게됩니까?
haymansfield

2
명령에 대한 도움말 페이지 @haymansfield는 다음과 같이 말합니다Git will fail (gracefully) in case it needs to modify this file in the index e.g. when merging in a commit; thus, in case the assumed-untracked file is changed upstream, you will need to handle the situation manually.
Parham

3
--assume-unchanged복제시 적용 할 수있는 방법이 있습니까? 모든 사용자가 파일을 갖지만 diff로 파일에 대한 로컬 변경 사항을 볼 수는 없습니다.
Gauthier

10
@Tyler-아니요, git에서 파일을 추적하면 해당 파일이 .gitignore에 표시 되더라도 항상 추적됩니다. 내 유스 케이스는 "여기서 자격 증명을 저장할 파일의 기본 템플릿이 있습니다. 이제는 커밋하지 마십시오"와 같습니다.
Jon V

5
@watbywbarif 명령을 git update-index --no-assume-unchanged $(git ls-files $(git rev-parse --show-toplevel))git 별칭으로 설정했습니다. 내가이 shenanigans의 일부라고 의심 될 때마다 나는 단지 그렇게한다.
Philippe Carphin

6

또 다른 접근 방식 (Seth Robertson이 삭제 한 답변에서 복원 한 것이 도움이된다는 것을 알았습니다)은 "추적 된"템플릿 파일을 유지 한 다음 추적되지 않은 로컬 버전의 파일 (예 : "config.sample.ini"또는 " config.ini.template "에 대한 자세한 내용은 https://gist.github.com/canton7/1423106 을 참조 하십시오 .

그런 다음 파일이 git 등에서 변경 되어도 아무런 문제가 없으며 로컬 추적되지 않는 파일에서 .gitignore (최종)를 사용할 수 있습니다.


5

필터 명령에서 git 속성과 % f를 사용하는 또 다른 솔루션 :

git config filter.orig.clean "cat %f.orig"
cp filename filename.orig
echo "filename filter=orig" >> .git/info/attributes
echo "filename.orig" >> .git/info/exclude

16
이것이 의미하는 바와 우연히하는 일에 대해 더 자세히 설명해 주시겠습니까?
rogerdpack

원본 텍스트가있는 ".orig"파일에서 내용을 읽는 파일에 대한 필터를 추가합니다.
koct9i
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.