2012-03-12 4 views

답변

9

파일이 버전 제어하에있는 경우 추적됩니다.

작은 예로, C++ 프로젝트 소스 파일로

Makefile 
main.cpp 
interface.hpp 
worker.cpp 

것이다; 당신은 버전 제어하에 넣을거야. 빌드 중

main.o 
worker.o 
myapp 

이 생성됩니다. 이것들은 버전 제어하에 속하지 않으므로 git add을 사용하지 마십시오. git은 아무런 문제가 발생하지 않으므로 은 추적되지 않음으로 남습니다. 그것들을 .gitignore에 추가 할 때까지 (.o 파일은 기본적으로 무시됩니다.) git은 추가 또는 무시할 것인지 여부를 모르기 때문에 결정하기 전까지 git status 명령을 사용하여 표시합니다.

파일 추적 여부는 버전에 따라 다릅니다. worker.cpp을 자동 생성하고 이후 버전에서는 버전 제어에서 제거한다고 가정합니다. 이 파일은 이제 해당 버전에서 추적 할 수 없습니다. 파일이 여전히 버전 관리하에있는 버전으로 돌아 가면 git은 체크 아웃 중에 해당 파일을 덮어 쓰지 않습니다.

2

Git Pro book chapter 당신이 세부 사항에 대한 시도의 비 추적 파일의 개념을 언급 : 주어진 SHA1을 체크 아웃 할 때

, 당신은 모든 버전이 파일의 "스냅 샷"수 있습니다.
이 스냅 샷에서 참조하지 않는 파일은 모두입니다. 그것은 망할 놈의 나무의 일부가 아닌 :
페이지의 "git - how to tell if a file is git tracked (by shell exit code)?"

(이 GitHub help page에서 설명)의 비 추적해야합니다 무시하려는 모든 파일.

git은이 파일에 규칙을 추가하기 전에 이미 추적 된 파일을 무시하지 않습니다. 파일이 있어야합니다 이러한 경우
보통 git rm --cached filename

enter image description here

4

추적 파일입니다 유엔-추적 한 번 추가 저지른 망할 놈에 의해 처리 한 (버전 제어). 추적 할 수없는 파일은 대부분 사용자가 제어하고 싶지 않은 파일입니다. 예를 들어 파일이 컴파일러에 의해 생성되기 때문입니다.

추적하지 않은 파일을 .gitignore 파일에 추가하면 추적 할 것인지 물어 보지 않습니다.

+2

"추적 된 파일"은 한 번 추가되고 커밋 된 파일이라고 말하는 것은 완전히 잘못되었습니다. 추적 된 파일은 단순히 색인 트리에있는 파일입니다. 분기 기록은 어떻게 지사 체크 아웃으로 인한 것인지 또는 추가 또는 직접적인 Git 배관 명령으로 인한 것일 수 있습니다. – Jazimov

0

기술적 인 관점에서 보면, 추적 된 파일은 단순히 Git 색인에있는 파일입니다. "버전 관리에서"파일이라고 말하는 것은 그것이 오인 된 것입니다. 이는 그것이 파일을 repo로 만든 파일을 제안하고 파일을 추적 할 필요가 없다는 것입니다.

새 Git 저장소를 초기화하면 인덱스가 비어 있고 작업 디렉토리의 모든 파일이 비 추적됩니다. 파일이 인덱스에 추가되면 파일이 추적됩니다. SHA-1 해시가 생성되고 개체 항목이 .Git \ Objects 폴더에 저장됩니다. 그 순간부터 Git은 작업 디렉토리에있는 동일한 파일의 내용/이름을 비교, 변경, 이름 변경 및 삭제를 추적 할 수 있습니다. 파일이 색인에있는 한 추적됩니다.

관련 문제