힘내 : 추적 된 파일 무시


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.