Scribbles Help

시작하기전 먼저 기억하고 있으면 도움될만한 사항

  1. git은 '분산 버전 관리 시스템(DVCS)'이다.

  2. '원격 저장소'의 브랜치를 '복제(clone)'한 '로컬 저장소'의 브랜치는 git 서버쪽에 설정되는 '커밋 훅'같은 것을 제외하고는 완전히 동일한 내용을 포함한다.

  3. 위 '2'와 같은 상황이기 때문에 '원격 저장소'가 손상되었을 경우 '로컬 저장소'를 사용해서 복원 가능하다.

  4. 하나의 'git commit 해쉬값'은 '커밋하는 사용자, 커밋 시간, 커밋 메시지, 커밋 내용' 등을 포함한 '커밋 정보'를 기반으로 생성되는 고유값이다.

  5. 하나의 'git commit'은 '부모 커밋'을 가리키는 '해쉬값'을 포함한다.

  6. 하나의 'git 저장소'에는 1개의 '루트 커밋'이 존재한다.

  7. 하나의 'git merge commit'의 경우는 2개의 '부모 커밋'을 가리키는 '커밋 해쉬값'을 포함한다.

  8. 위 '4~7'의 내용과 같은 방식으로 '커밋 트리/그래프'가 구성된다.

  9. 위 '8'에서 언급한 '커밋 트리/그래프'를 조작하는 다양한 'git verb'들이 존재한다.

  10. '저장소 레벨'에서 수행되는 'git verb'와 '저장소 브랜치 레벨'에서 수행되는 'git verb'가 존재한다.

  11. '병합(merge)'은 '저장소 브랜치' 간에 실행하는 '저장소 브랜치 레벨' 작업이다.

  12. 'git pull/push'는 '원격 저장소 브랜치'와 '로컬 저장소 브랜치' 간에 실행하는 '브랜치 레벨' 작업이다.

  13. 'git pull/push'를 어떤 '원격 저장소'에 대해서 실행시 대상이 되는 작업 '브랜치'는 원격과 로컬에 모두 같은 이름으로 존재해야한다.

  14. '현재 작업 브랜치'라는 '참조' 개념이 있다.

  15. 어떤 'git verb'에 '원격 저장소' 또는 '브랜치' 옵션을 누락했을 경우 '가정'되는 기본값이 존재한다.

  16. 'git 저장소' 로컬 작업 폴더내의 서브 폴더 위치에 상관없이 사용할 수 있는 'git verb'들이 존재한다.

  17. '파일 조작'과 관련된 'git verb'들은 파일 경로 정보를 옵션으로 받기 때문에 해당 명령어에 '상대 경로'를 지정할 경우 실행 위치에 주의할 필요가 있다.

  18. 하나의 '로컬 저장소'는 여러개의 '원격 저장소'를 참조할 수 있다.

  19. 위 '18'의 내용과 같은 상황에서 참조하는 여러 '원격 저장소'는 공통 커밋 조차 없는 완전히 상이한 내용을 가질 수 있다.

  20. 위 '18'의 내용과 같은 상황에서 참조하는 여러 '원격 저장소'의 '브랜치'를 로컬 작업 브랜치에 '병합(merge)'할 수 있다.

  21. (위 '18'의 내용과 같은 상황은 로컬 저장소와 원젹 저장소를 연결하는 가상의 '공통 루트 커밋' 노드가 있다고 가정하면 이해하기 쉽다.)

Last modified: 03 January 2024