답변:
gitignore 에 따르면 Git이 고려하는 다른 "무시 패턴 소스"에는 우선 순위가 있다는 것을 잊지 마십시오 .
$GIT_DIR/info/exclude
.core.excludesfile
.마지막 두 가지는 문제에 대한 해결책이 될 수 있지만 다음과 같습니다.
(이 SO 질문 도 참조하십시오 )
다른 두 가지 솔루션에는 색인 업데이트 ( git update-index
)가 포함됩니다.
git update-index --assume-unchanged
: " Git : 로컬 저장소에서만 파일을 추적 해제하고 원격 저장소에 보관 하십시오"를 참조하십시오 . 엘리야 린 (Elijah Lynn) 은 그 의견 에 git update-index --assume-unchanged
디렉토리의 " 폴더 내용을 무시할 수도 있습니다 . --no-assume-unchange
효과를 되돌리려면 사용 하십시오. " 현재 ?로 보호 된 파일 이 가능 합니까?git add
assume-unchanged
"를 참조하십시오.그러나 다른 지점을 체크 아웃하거나을 방문하면 git pull
"무시"상태가 재설정 될 수 있습니다. 따라서 다른 옵션은 다음과 같습니다.
git update-index --skip-worktree
; 보다:
이 둘의 차이점은 " Git-차이점 ' assume-unchanged
'과 ' skip-worktree
' "에 설명되어 있습니다.
update-index --skip-work-tree
. 나는 그 두 update-index
명령을 보여주는 나의 오래된 답변에 대한 링크를 추가하기 위해 답변을 편집했습니다 .
수정 .git/info/exclude
이 가능한 경우 동일한 규칙을 적용 할 수 있습니다. 그러나 해당 파일은 로컬 리포지토리에만 있습니다.
.git
하위 모듈 에는 디렉토리 가 없습니다 ...
.git
폴더는 실제로 parent_repo/.git/modules/submodule_name
입니다. 당신은 편집 할 것parent_repo/.git/modules/submodule_name/info/exclude
무시할 파일을 GIT에 알리는 세 가지 방법이 있습니다.
.gitignore
파일들$GIT_DIR/.git/info/exclude
core.excludesfile
설정 을 통해 지정된 파일후자의 두 가지 점으로 문제를 해결할 수 있습니다.
자세한 내용은 gitignore (5)를 참조하십시오 .
비슷한 상황에 있었으므로 언급하지 않은 선호하는 솔루션을 추가하고 있습니다. git update-index --assume-unchanged
이 경우 문제 는 추적되지 않은 파일에 대해서는 그렇게 할 수 없다는 것입니다. 당신은 말했다
저장소의 .gitignore를 수정할 수 없습니다.
변경 사항 .gitignore
을 원점으로 푸시 할 수 없다는 것을 의미한다고 가정하겠습니다 . 즉 로컬에 비 추적 파일을 추가한다 할 수있는 경우라면 .gitignore
, 다음 할 git update-index --assume-unchanged .gitignore
로 변화되도록 .gitignore
밀어되지 않습니다. 이제 추적되지 않은 파일을 무시하고 원격 .gitignore
파일에 영향을 미치지 않습니다 .
추적 된 파일의 로컬 변경 사항을 무시하십시오.
git update-index --assume-unchanged my-file.php
추적 된 파일의 로컬 변경 사항을 무시하십시오.
git update-index --no-assume-unchanged my-file.php
출처: git help update-index
--[no-]assume-unchanged
...
This option can be also used as a coarse file-level mechanism to ignore uncommitted changes in tracked
files (akin to what .gitignore does for untracked files). 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.
https://help.github.com/articles/ignoring-files/#create-a-global-gitignore 프로젝트에서 메소드를 수정하는 대신 글로벌 gitignore 메소드를 사용할 수 있습니다
update-index --assume-unchanged
@see stackoverflow.com/a/25253144/292408