힘내네. 이 (가)이고 이 추적되지 않았 음을 알고 싶습니다. 파일이 있습니까? "Pro Git"을 읽었지만 여전히 이해할 수는 없습니다.GIT의 맥락에서 추적 된 파일 및 추적되지 않은 파일은 무엇입니까?
사례를 통해 두 사람의 차이점을 설명 할 수 있습니까?
감사합니다, Nayan
힘내네. 이 (가)이고 이 추적되지 않았 음을 알고 싶습니다. 파일이 있습니까? "Pro Git"을 읽었지만 여전히 이해할 수는 없습니다.GIT의 맥락에서 추적 된 파일 및 추적되지 않은 파일은 무엇입니까?
사례를 통해 두 사람의 차이점을 설명 할 수 있습니까?
감사합니다, Nayan
파일이 버전 제어하에있는 경우 추적됩니다.
작은 예로, C++ 프로젝트 소스 파일로
Makefile
main.cpp
interface.hpp
worker.cpp
것이다; 당신은 버전 제어하에 넣을거야. 빌드 중
main.o
worker.o
myapp
이 생성됩니다. 이것들은 버전 제어하에 속하지 않으므로 git add
을 사용하지 마십시오. git은 아무런 문제가 발생하지 않으므로 은 추적되지 않음으로 남습니다. 그것들을 .gitignore
에 추가 할 때까지 (.o 파일은 기본적으로 무시됩니다.) git은 추가 또는 무시할 것인지 여부를 모르기 때문에 결정하기 전까지 git status
명령을 사용하여 표시합니다.
파일 추적 여부는 버전에 따라 다릅니다. worker.cpp
을 자동 생성하고 이후 버전에서는 버전 제어에서 제거한다고 가정합니다. 이 파일은 이제 해당 버전에서 추적 할 수 없습니다. 파일이 여전히 버전 관리하에있는 버전으로 돌아 가면 git은 체크 아웃 중에 해당 파일을 덮어 쓰지 않습니다.
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
추적 파일입니다 유엔-추적 한 번 추가 저지른 망할 놈에 의해 처리 한 (버전 제어). 추적 할 수없는 파일은 대부분 사용자가 제어하고 싶지 않은 파일입니다. 예를 들어 파일이 컴파일러에 의해 생성되기 때문입니다.
추적하지 않은 파일을 .gitignore
파일에 추가하면 추적 할 것인지 물어 보지 않습니다.
기술적 인 관점에서 보면, 추적 된 파일은 단순히 Git 색인에있는 파일입니다. "버전 관리에서"파일이라고 말하는 것은 그것이 오인 된 것입니다. 이는 그것이 파일을 repo로 만든 파일을 제안하고 파일을 추적 할 필요가 없다는 것입니다.
새 Git 저장소를 초기화하면 인덱스가 비어 있고 작업 디렉토리의 모든 파일이 비 추적됩니다. 파일이 인덱스에 추가되면 파일이 추적됩니다. SHA-1 해시가 생성되고 개체 항목이 .Git \ Objects 폴더에 저장됩니다. 그 순간부터 Git은 작업 디렉토리에있는 동일한 파일의 내용/이름을 비교, 변경, 이름 변경 및 삭제를 추적 할 수 있습니다. 파일이 색인에있는 한 추적됩니다.
"추적 된 파일"은 한 번 추가되고 커밋 된 파일이라고 말하는 것은 완전히 잘못되었습니다. 추적 된 파일은 단순히 색인 트리에있는 파일입니다. 분기 기록은 어떻게 지사 체크 아웃으로 인한 것인지 또는 추가 또는 직접적인 Git 배관 명령으로 인한 것일 수 있습니다. – Jazimov