물론, 나는 이것을 사용하여 때때로 정확하게
git update-index --assume-unchanged [<file> ...]
추적을 취소하고 다시 시작하려면 (추적되지 않은 파일을 잊어 버린 경우이 질문 참조 ) :
git update-index --no-assume-unchanged [<file> ...]
관련 문서 :
-[no-] 가정하지 않은 것으로 가정
이 플래그를 지정하면 경로에 대해 기록 된 객체 이름이 업데이트되지 않습니다. 대신이 옵션은 경로에 대해 "변경되지 않은 것으로 가정"비트를 설정 / 설정 해제합니다. "변경되지 않은 것으로 가정"비트가 켜져 있으면, 사용자는 파일을 변경하지 않겠다고 약속하고 Git이 작업 트리 파일이 인덱스에 기록 된 것과 일치한다고 가정 할 수 있습니다. 작업 트리 파일을 변경하려면 Git에 알리기 위해 비트를 설정 해제해야합니다. lstat(2)
시스템 호출 이 매우 느린 파일 시스템 (예 : cifs) 에서 큰 프로젝트로 작업 할 때 유용 합니다.
커밋에서 병합 할 때 인덱스에서이 파일을 수정해야하는 경우 Git은 (정상적으로) 실패합니다. 따라서 추적되지 않은 것으로 가정 된 파일이 업스트림으로 변경되는 경우 상황을 수동으로 처리해야합니다.
이 경우 정상적으로 실패하면 풀을 수행 할 때 해당 파일의 업스트림 변경 사항 (적당한 변경 사항 등)이 있으면 다음과 같이 표시됩니다.
$ git pull
…
From https://github.com/x/y
72a914a..106a261 master -> origin/master
Updating 72a914a..106a261
error: Your local changes to the following files would be overwritten by merge:
filename.ext
병합을 거부합니다.
이 시점에서 로컬 변경 사항을 되 돌리면이를 극복 할 수 있습니다. 한 가지 방법이 있습니다.
$ git checkout filename.ext
그런 다음 다시 당겨서 로컬 파일을 수정하거나 –no-assume-unchanged
, 그 시점에서 정상적인 숨김 및 병합 등을 수행하십시오.