[git] git에서 파일을 일시적으로 추적 해제

내 컴퓨터에 로컬 자식을 설정했습니다. git을 초기화 할 때 미리 컴파일 된 라이브러리와 바이너리를 추가했습니다. 그러나 현재 개발 중에는 해당 파일을 간헐적으로 체크인하고 싶지 않습니다. repo에서 이러한 파일을 제거하고 싶지 않습니다. 개발을 완료 할 때까지 이러한 파일을 추적하지 않는 방법이 있습니까? (gitgitore는 git에없는 파일에 대해서만 작동하므로 .gitignore를 사용할 수 없다고 생각합니다. 파일 추적을 일시적으로 비활성화하고 싶습니다.)



답변

git update-index 는 원하는 것을해야합니다.

이것은 git에게 파일에 대한 변경 사항을 무시하고 싶다고 알려줍니다.
git update-index --assume-unchanged path/to/file

다시 추적을 시작하고 싶을 때
git update-index --no-assume-unchanged path/to/file

Github 문서 : 업데이트 색인


답변

당신은 당신의 파일을 추적하지 않은 채로 유지할 수 있습니다

git rm -r --cached <file>

파일을 추가하십시오

git add -u

그들은 당신이 원하는 것을 밀거나 행합니다.


답변

git rm --cached

그러나 처음에는 컴파일 된 바이너리 및 외부 종속성을 커밋해서는 안됩니다. 대신 번 들러와 같은 도구를 사용하십시오.


답변

다음 명령을 사용하여 파일을 추적 해제하십시오

git rm --cached <file path>


답변

git-book은 2.4 절 : “Undoing Things”에서 이것을 언급합니다. 기본적으로 수행해야 할 일은 일부 파일의 인덱스 상태를 HEAD 상태, 즉 최신 체크 아웃 (또는 커밋) 상태로 다시 설정하는 것입니다. 이렇게하면 파일을 현재 인덱스에 스테이징하지 않습니다. 이 작업의 명령은 git reset. [1] 입니다 .

따라서 실행해야하는 명령은 다음과 같습니다.

git reset HEAD /path/to/file

최신 버전의 git (1.6 이후로 믿습니다) 은이 명령을 실행할 때 팁으로 제공합니다 git status. 이 버전은 매우 사용자 친화적입니다. 개인 팁 : 몇 개의 파일 만 준비하는 경우을 사용하십시오 git add -i. 대화 형 스테이징 도구가 시작되어 특히 쉽습니다. 또한 실제 상황에서 git을 사용하는 것에 대해 매우 명확하므로 책을 읽는 것이 좋습니다.

[1] http://www.git-scm.com/book


답변

원래 질문에 대한 답변이 아닙니다. 그러나 이것은 누군가를 도울 수 있습니다.

당신이 수행 한 변경 사항을 확인하려면 ( –assume-변경으로 표시되는 파일을 알고 )

git ls-files -v

결과 파일 목록에는 하나의 문자 (예 : H 또는 h)가있는 접두사가 붙습니다. 소문자 (예 : h) 인 경우 파일은 –assume-unchanged


답변

각 파일을 개별적으로 선택하지 않고 빌드 폴더 또는 bin 폴더의 모든 파일 을 제거하는 방법을 묻고 있다고 가정합니다 .

이 명령을 사용할 수 있습니다

git rm -r -f /build\*

. 빌드 디렉토리의 상위 디렉토리에 있는지 확인하십시오.
이 명령은 bin / 또는 build / 폴더에있는 모든 파일을 재귀 적으로 “삭제”합니다. delete라는 단어는 git이 해당 파일이 “삭제 된”척하고 해당 파일을 추적하지 않는 것을 의미합니다. git은 실제로 해당 파일을 삭제 모드로 표시합니다.

다음 커밋을 위해 .gitignore가 준비되어 있는지 확인하십시오.
문서 : git rm