GIT의 맥락에서 추적된 파일과 추적되지 않은 파일은 무엇입니까?

StackOverflow https://stackoverflow.com//questions/9663507

  •  12-12-2019
  •  | 
  •  

문제

저는 Git을 처음 사용합니다.나는 무엇인지 알고 싶습니다. 추적됨 그리고 추적되지 않은 파일?"Pro Git"을 읽었지만 여전히 잘 이해할 수 없었습니다.

누군가 예를 들어 둘 사이의 차이점을 설명해 줄 수 있나요?

도움이 되었습니까?

해결책

버전 제어가 적용되는 파일은 추적됩니다.

작은 예로, C++ 프로젝트는 다음과 같습니다.

Makefile
main.cpp
interface.hpp
worker.cpp

소스 파일로;이를 버전 관리하에 두게 됩니다.빌드하는 동안

main.o
worker.o
myapp

생성됩니다;이는 버전 관리에 속하지 않으므로 사용하지 않습니다. git add 그들에.그들은 남아있다 추적되지 않은, 자식은 그들에게 무슨 일이 일어나는지 신경 쓰지 않기 때문입니다.다음에 추가할 때까지 .gitignore (.o 파일은 기본적으로 무시됩니다.) git은 해당 파일을 추가할지 무시할지 모르므로 다음과 같이 표시합니다. git status 결정을 내릴 때까지 명령을 내리십시오.

파일이 추적되는지 여부도 버전에 따라 다릅니다. 자동 생성한다고 가정해 보겠습니다. worker.cpp 이후 버전의 버전 관리에서 제거하세요.이제 해당 버전에서는 파일이 추적되지 않습니다.파일이 여전히 버전 제어 대상이었던 버전으로 돌아가면 git은 체크아웃 중에 해당 파일 덮어쓰기를 거부합니다.

다른 팁

Git Pro 책 장 untracked 파일의 개념을 자세히하려고 시도합니다.

주어진 SHA1을 체크 아웃하면 모든 버전 파일의 "스냅 샷"을 얻습니다.
이 스냅 샷이 참조하지 않은 파일은 을 untracked가 묻지 않습니다. 그것은 git 나무의 일부가 아닙니다 :

" git - 파일이 git 추적 (쉘 종료 코드로)인지 알려주는 방법은 무엇입니까? "

무시할 파일은 untracked해야합니다 (이 github 도움말 페이지 ).

jit은 규칙 이이 파일에 추가되기 전에 이미 추적 된 파일을 무시하지 않습니다. 이러한 경우 파일을 추적해야합니다. 일반적으로 git rm --cached filename

여기에 이미지 설명

추적 된 파일은 한 번 추가되고 커밋 된 Git가 처리 한 것 (버전 관리)입니다.untracked 파일은 컴파일러가 생성하기 때문에 제어되지 않는 대부분의 시간 파일입니다.

untracked 파일을 .gitignore 파일에 추가하므로 git가 트랙을 추적하고 싶은지 묻지 않도록하십시오.

순전히 기술적 인 관점에서 : 추적 된 파일은 단순히 git 인덱스에있는 파일입니다.이것이 "버전 관리하에있는 파일"이라고 말하면 오해가있는 것입니다. 왜냐하면 이것이 REPO로 만들어진 파일이라는 파일이고 파일을 추적 할 필요가 없습니다.

새 GIT REPO를 int하면 인덱스가 비어 있고 작업 디렉토리의 모든 파일이 untracked됩니다.파일이 인덱스에 추가 될 때 파일이 추적됩니다. 여기서 SHA-1 해시가 생성되고 객체 항목이 .git \ objects 폴더에 배치됩니다.그 순간부터 Git은 변경, 이름> 및 삭제를 추적하기 위해 작업 디렉토리의 동일한 파일의 내용 / 이름을 비교할 수 있습니다.파일이 인덱스에 존재하는 한 추적됩니다.

작업 디렉토리의 각 파일은 추적되거나 untracked 두 개의 상태 중 하나 일 수 있음을 기억하십시오.짧게 추적 된 파일은 git 알고있는 파일입니다.untracked 파일은 마지막 스냅 샷에 있지 않은 작업 디렉토리의 모든 파일이며 스테이징 영역에 있지 않은 파일입니다.추적 된 파일은 마지막 스냅 샷에있는 파일입니다.수정되지 않거나 수정 또는 단계적으로 설정할 수 있습니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top