다음 질문이 너무 일반적이지 않기를 바랍니다. Plz telle 만약 그렇지 않다면,이 게시물은 elswhere를 마이 그 레이션 수 있습니다. 그래서이 커밋을 자체적으로 브랜치로 간주 할 수있는이 매우 좋은 doc (10 페이지 아래)을 읽었습니다. 어떤면에서 그렇게 말할 수 있겠습니까? 커밋은 어떻게 지사의 전체 역사를 지원합니까? (수학에 관심있는 사람들의 경우, 어떤 트리를 통해 (소위 지사의 역사를 지원하는) 진동을 생각할 수 있습니까?)분기 자체를 커밋합니까? - git
1
A
답변
3
"브랜치"개념에 대한 논의가 너무 복잡하다고 생각하지만, 그다지 중요하지 않습니다.
효과는 모든 커밋이 HEAD가 커밋 인 분기를 나타내며 일반적인 분기와 다른 점은 분기 이름 (커밋의 SHA-1 임)이 불변하다는 것입니다. hash-as-branch-name은 항상 hash-as-commit을 가리 킵니다.
다음 명령을 사용하여 직접 시도하십시오. git checkout 2ae907
(참조는 이전 커밋을 참조하십시오). 다음과 같은 텍스트가 표시됩니다.
참고 : '2a9e07'을 확인하십시오.
당신은 'HEAD'상태에 있습니다. 둘러보고 실험 변경 사항을 적용하고 커밋하고 다른 결제를 수행하여 분기에 영향을주지 않고 의 상태를 만들 수 있습니다.
커밋은 커밋 그래프에 추가되므로 모든 커밋은 모든 이전 기록을 포함하는 하위 그래프의 루트입니다.
1
git에서 커밋에는 항상 그 시점에서 트리의 완전한 히스토리 (부모 커밋에 대한 참조 포함). 그 의미에서, 당신은 그것을 지점으로 생각할 수 있습니다. 유일한 차이점은 분기에 기호 이름이 있으므로 해시로 참조 할 필요가 없다는 것입니다.
관련 문제
- 1. git 자체를 사용하지 않고 코드에서 현재 Git 분기 이름을 어떻게 찾을 수 있습니까? .git/HEAD 파일?
- 2. 내 Xcode가 BitBucket에 연결됩니다. 이제 언제 포크, 분기 및 커밋합니까?
- 3. GIT 분기 - IOS App
- 4. 이클립스에서 git 분기 변경
- 5. Git Checkout 특정 분기
- 6. GIT 리포지토리의 분기 개정
- 7. 분기 된 GIT 지점에서
- 8. Git 분기 django
- 9. git 원격 분기 모니터링
- 10. git 분기 이해하기
- 11. Eclipse에서 원격으로 Git 분기
- 12. Git 푸시 분기 오류
- 13. git - 로컬 저장소에서 분기
- 14. Git : 분기 대신 stashing
- 15. git 저장소에서 분기 간 병합
- 16. 참조 Git 분기 시작 커밋
- 17. git : "임시"통합 분기 만들기
- 18. GIT bitbucket의 정책에 기반한 분기
- 19. 다른 이름의 git 트랙 분기
- 20. 별도의 Git 저장소 분기 결합
- 21. git 버그 또는 분기 오용?
- 22. 장고 생산 사이트를위한 Git 분기
- 23. GIT repo에서 각 개발자를위한 분기
- 24. 디렉토리 트리 차이로 Git 분기
- 25. Git 로컬 분기 자동 병합
- 26. 병합 후 git 분기 복원
- 27. 다중 분기 diff with git?
- 28. Git 현재 분기 커밋 목록
- 29. `git commit`은 추가되지 않은 변경 사항을 커밋합니까
- 30. mysql_query가 모든 것을 커밋합니까?
네,하지만 부모와의 커밋 사이의 링크와 관련된 데이터가 저장되는 곳은 어디입니까? – Newben
git은 커밋 간의 관계를 저장하기 위해 Directed Acyclic Graph를 구현합니다. DAG가 구현되는 방식은 커밋이 서로 관련되어 있다는 추상적 인 개념을 이해하는 데 중요하지 않습니다. –
@Newben : 모든 커밋은 부모에 대한 참조를 포함합니다. 예를 들면 다음과 같이 볼 수 있습니다. 'git show --format = raw'- 부모 커밋의 ID를 나열합니다. 커밋에는 둘 이상의 부모 (병합 커밋) 또는 없음 (초기 커밋)이있을 수 있습니다. –
sleske