콘텐츠로 건너뛰기
GitTree

레슨 8 · 일상 업무

HEAD를 이동하지 않고 기록 읽기

남은 반경 편집 내용을 기록하고, 실제 기록을 문서화하고, 개정 세트를 파일 트리 차이점과 비교하십시오. 그래프 행을 선택하는 것은 분기 전환이 아닌 검사입니다.

이 브라우저에 진행 상황이 저장되었습니다.

재생하면 YouTube에서 동영상이 로드됩니다(개인정보 보호 강화 모드).

영어 내레이션 · English and Arabic 캡션

비디오 페이지 열기YouTube에서 시청하기

무엇을 배울 것인가

  • 선택한 커밋, 작성자, 커미터인 HEAD를 구분합니다.
  • 부모와 첫 번째 부모 조상을 따르십시오.
  • diff 엔드포인트와 혼동하지 않고 2점/3점 로그 세트를 읽으십시오.
  • 기록을 다시 작성하지 않고 GitTree에서 두 개의 실제 커밋을 비교합니다.

시작하기 전에

레슨 7이 끝난 곳에서 시작합니다. main에는 레슨 5에서 7까지의 3개의 커밋이 있습니다. CSS 반경만 수정된 상태로 유지됩니다. HEAD와 인덱스에는 CSS-02-INDEX, 작업 파일 CSS-02-WORKING이 포함됩니다. 원격이 없습니다. 동영상은 Ubuntu 24.04에서 Git 2.52.0 및 GitTree 2.0으로 녹화되었습니다. 커밋, 문서, 그래프 검사, 검색, HEAD로 이동 및 참조 비교가 모두 앱에서 작동되었으며 터미널 검사는 앱이 생성한 항목에 대해 실행되었으므로 표시된 커밋 ID는 앱에서 비교한 것입니다. 분기된 분기 사례는 다이어그램입니다. 기능 분기가 생성되지 않았습니다. macOS 또는 Windows에서는 아무것도 실행되지 않았으며 Ubuntu는 기록된 유일한 Linux 시스템입니다. GitTree의 소스 최소값은 Git 2.39.0입니다. 로그인하면 로컬 검사 및 커밋이 무료 플랜에 적용됩니다.

개념

커밋은 트리, 메타데이터 및 상위 ID를 기록합니다. 브랜치는 커밋의 이름을 지정합니다. HEAD는 일반적으로 현재 분기의 이름을 지정합니다. 다른 그래프 행을 클릭하면 HEAD가 아닌 앱의 selection, 분기 또는 디스크 파일이 변경됩니다. 작품을 쓴 작가 기록 이 커밋을 기록한 커미터 레코드입니다. 그들은 여기서 동일한 허구의 정체성을 갖고 있습니다.

선형 체인의 경우 HEAD~1은 하나의 첫 번째 상위 가장자리를 따릅니다. HEAD~2는 2개 뒤에 옵니다. HEAD^1은 첫 번째 부모입니다. HEAD^2는 "두 번의 커밋 백"이 아니라 second parent of one commit을 의미합니다. 비병합 커밋에는 두 번째 상위가 없습니다.

git log A..B는 A에서 연결 가능하지 않고 B에서 연결 가능함을 의미합니다. git log A...B는 연결 가능성의 대칭 차이를 의미합니다. git diff A B는 끝점 트리를 비교하는 반면, git diff A...B는 merge-base(A,B)를 B과 비교합니다. 3점 로그와 3점 diff는 동일한 질문을 하지 않습니다. 이 선형 역사에서 일부 결과는 일치합니다. 그 우연의 일치를 분기된 가지로 일반화하지 마십시오. 개정 표기법, 차이점 의미.

읽기/선택/검색 시 인덱스, 작업 바이트 또는 참조가 변경되지 않습니다. 이 강의의 두 가지 명시적 커밋은 로컬 메인을 이동합니다: 반경이 먼저, 문서가 두 번째로 이동합니다. 원격 변경이 없습니다.

완전한 역사 문서

먼저 아래와 같이 기존 반경 편집을 커밋합니다. 그런 다음 이 전체 UTF-8/LF 본문을 사용하여 docs/history.md를 만듭니다. 마지막 항목은 발명된 SHA가 아닌 문서를 포함할 커밋을 설명합니다.

파일 발췌 · markdown
# GitTree Features history

The first-parent chain on main, oldest first:

1. feat: add the GitTree Features hero
2. feat: add styling and local project checks
3. feat: refine the hero and card spacing
4. style: finish the card radius change
5. docs: record logs-and-revisions practice

After this document is committed, HEAD names item 5.
HEAD~1 names item 4; HEAD~2 names item 3.
Selecting a graph row does not move HEAD.
These labels are descriptions, not fabricated commit SHAs.

All identities in this project are fictional.

이 5개 커밋 체인에 선택적 연습 노트북이나 추가 정리 커밋을 추가하지 마세요.

GitTree에서

  1. 팔레트 Show Working Changes(팔레트를 열려면 Command/Ctrl+Shift+P). Unstaged Files 아래의 styles.css를 클릭하세요. 반경 0.5rem만 확인 → 0.75rem 남음; 이전 너비 변경을 반복하지 마십시오.
  2. 해당 Stage File 행 작업을 선택하고 요약 style: finish the card radius change을 입력하고 일반 옵션을 끈 다음 Commit Changes to 1 File(또는 Command/Ctrl+Enter를 한 번)를 입력합니다. 4개의 커밋을 확인하고 추적된 상태를 정리합니다.
  3. 팔레트 New File… → Path from the project folder = docs/history.md → Create. 전체 문서와 Save을(를) 붙여넣으세요. Back to Graph → Show Working Changes → docs/history.md용 스테이지 파일.
  4. 요약 docs: record logs-and-revisions practice; 파일 하나를 커밋합니다. 이제 예상되는 체인에는 5개의 커밋이 있습니다.
  5. 루트 Hero 행을 클릭합니다. 커밋 세부정보에서 실제 SHA, 주제, 작성자/커미터 및 root commit 상위 상태를 검사합니다. 최신 행을 클릭하세요. 상위 관계를 비교합니다. 단지 읽기 위해 Check Out This Commit을(를) 호출하지 마십시오.
  6. 커밋 세부정보에서 View all files를 전환하여 커밋의 전체 트리를 변경된 경로만 구별합니다. 기록된 개정판에서 문서를 검사합니다. 이는 작업 파일을 수정하지 않습니다.
  7. Back to Graph을(를) 반환합니다. 팔레트 Search Loaded History 또는 Command/Ctrl+F while the graph is active를 사용하고 radius를 입력하고 일치하는 로드 기록을 검사합니다. 편집기에서는 동일한 코드가 편집기 텍스트를 찾습니다. 나중에 검색을 삭제하세요. 로드된 기록 검색은 서버 전체 기록 쿼리가 아닙니다.
  8. 팔레트 Jump to HEAD, Command/Ctrl+Shift+H는 현재 팁을 찾습니다. 선택/검색은 기본 git symbolic-ref --short HEAD이 여전히 기본을 보고하는 동안 이동할 수 있습니다.
  9. real 커밋 ID를 얻으려면 기본 git rev-parse HEAD~2을(를) 사용하세요. 고정 코스 SHA는 제공되지 않습니다. 팔레트 Compare References…(repo.compareRefs)가 Compare References을(를) 엽니다. Old side에 측정된 ID를 붙여넣고 커밋 옵션을 선택합니다. New side에서 HEAD를 선택하세요. 선택기는 임의의 개정 표현식이 구문 분석된다는 약속이 아닌 커밋 ID를 허용합니다.
  10. What to compare에서 The two endpoints을 선택한 다음 Compare를 선택합니다. 이 체인에서는 docs/history.md와 styles.css 차이가 있을 것으로 예상됩니다. 비교를 다시 열고/변경하고 동일한 면이 있는 Changes since the merge base을 선택합니다. 선형 조상은 여기서 끝점 결과를 일치시킵니다. 해당 보기에서 대칭 로그 동작을 추론하지 마세요. Cancel는 기록을 변경하지 않고 종료됩니다.

터미널에서

해당 앱이 성공하기 전에만 기본 돌연변이 대안:

Command · bash
git add -- styles.css
git commit --quiet -m "style: finish the card radius change"

둘 다 조용히 성공했습니다. 전체 문서를 저장한 후:

Command · bash
git add -- docs/history.md
git commit --quiet -m "docs: record logs-and-revisions practice"
git log --reverse --format=%s

전체 관찰 체인:

출력
feat: add the GitTree Features hero
feat: add styling and local project checks
feat: refine the hero and card spacing
style: finish the card radius change
docs: record logs-and-revisions practice

세트와 트리를 검사합니다.

Command · bash
git log --format=%s HEAD~2..HEAD
git log --format=%s HEAD~2...HEAD

각 쿼리는 별도로 인쇄됩니다.

출력
docs: record logs-and-revisions practice
style: finish the card radius change

여기서는 이전 끝점이 조상이기 때문에 일치합니다.

Command · bash
git diff --name-only HEAD~2 HEAD
git rev-list --count HEAD
git symbolic-ref --short HEAD

순서대로 출력됩니다.

출력
docs/history.md
styles.css
5
main

두 개의 명명된 파일은 로그에서 반환된 두 커밋의 ID가 아니라 트리 차이점입니다.

Command · bash
git rev-parse --verify --quiet HEAD^2

stdout/stderr 및 종료 1이(가) 관찰되지 않았습니다. 최신 커밋이 병합이 아닙니다. 대신 두 개의 첫 번째 상위 단계에 HEAD~2를 사용하세요. 실제 비교 ID를 식별하려면:

Command · bash
git rev-parse HEAD~2

리허설 중에 실제 출력을 읽어보세요. 측정된 SHA는 커밋 메타데이터로 변경되므로 모델 레이블에서 복사하면 안 됩니다.

결과

이 강의가 끝나면 문서화된 순서대로 main에 5개의 커밋을 수행합니다. 추적된 작업/인덱스 정리, 원격 없음 또는 진행 중인 작업. 이제 CSS의 반경은 0.75rem이고 docs/history.md가 커밋됩니다. 과거 그래프 행을 읽어도 HEAD가 분리되지 않았습니다.

일반적인 실수

  • 선택한 행을 체크아웃된 커밋으로 처리: HEAD를 독립적으로 검사합니다.
  • ^2를 ~2로 읽기: 두 번째 상위 가장자리와 두 개의 첫 번째 상위 가장자리.
  • 3점 diff에 대칭 로그 의미 적용: diff는 병합 기준에서 오른쪽 방향입니다.
  • 그래프 검색이 언로드/패치되지 않은 기록을 포함한다고 가정합니다.

뭔가 잘못되면

누락된 개정은 손상이 아닌 조상 부족, 오타 또는 얕은 경계를 의미할 수 있습니다. 체인과 선택한 저장소를 확인하세요. 커밋을 완료하기 전에 앱 필터를 지우면 사라집니다. 단지 선택 항목을 복구하기 위해 임의의 공급자로부터 가져오거나 재설정하거나 체크아웃하지 마세요. 문서가 이미 존재하는 경우 이 새 파일 단계를 적용하기 전에 해당 내용을 검사하십시오.

이해도를 확인해보세요

각 질문에 답한 후 그 이유를 읽어보세요. '필수'라고 표시된 질문은 수업 완료에 반영됩니다.

  1. 질문 1/6

    이전 그래프 행을 클릭하면 여기서 어떤 작업이 수행되나요?

    답을 하나 선택하세요.

  2. 질문 2/6

    5개의 커밋 선형 체인에 대한 설명으로 옳은 것은 무엇입니까?

    해당하는 답을 모두 선택하세요.

  3. 질문 3/6
    필수

    History.md가 커밋된 후 HEAD~2..HEAD에 어떤 주제가 있습니까?

    답을 하나 선택하세요.

  4. 질문 4/6
    필수

    메인은 H5입니다. 기능 F는 H3에서 파생되었습니다. git log의 주요 기능은 무엇입니까?

    답을 하나 선택하세요.

  5. 질문 5/6

    git diff A...B는 대칭 로그 세트를 의미합니까?

    답을 하나 선택하세요.

  6. 질문 6/6
    필수

    완성된 체크포인트를 입증하는 관찰은 무엇입니까?

    해당하는 답을 모두 선택하세요.

6개 중 0개 정답

수업을 완료하려면 필수 질문에 올바르게 답하세요.

이 브라우저에서 확인했습니다.

연습

이전 행을 선택하고 HEAD가 기본으로 유지된다는 것을 증명하세요. 두 개의 로그 항목이 두 경로의 차이점에만 해당할 수 있는 이유를 설명하세요. 변경된 입력: main이 H5에 있는 동안 H3에서 하나의 커밋이 있는 별도의 분기의 경우 main..feature에는 해당 기능 커밋만 포함되지만 main...feature에는 H4/H5도 포함됩니다. 정식 체크포인트에 해당 분기를 만들지 마세요. 일회용 사본을 사용하십시오.

귀하의 확인: 사이트에서 귀하의 컴퓨터를 볼 수 없습니다.

수업을 완료하려면 필수 질문에 올바르게 답하고 실제 연습을 확인하세요.

요약

  • Selection과 HEAD의 소유자는 서로 다릅니다.
  • 상위 표기법 및 개정 세트는 파일 변경 사항이 아닌 조상을 설명합니다.
  • 실제 해결된 끝점을 비교하고 질문에 명확하게 레이블을 지정합니다.

용어집 소개

커밋 — إيداع; 부모 — إيداع ب; 심판 - مرجع; 개정판 — مراجعة; 범위 - ناق; 베이스 병합 — اساس الدمج; 저자 — المؤلب; 커미터 — المُودِع.

비디오 대본

영상의 나레이션, 큐별로.

성적표 표시
  1. 없이 기록 읽기 현재 지점을 이동합니다.
  2. 먼저 하나를 검사 L007이 남긴 독립적 편집.
  3. 반경을 자체 로컬 커밋으로 기록합니다.
  4. 다음을 사용하여 문서화된 체인을 작성합니다. 해시를 발명한 것이 아닌 주제입니다.
  5. 문서는 이 체인의 다섯 번째 커밋입니다.
  6. 실제 주문을 확인하기 전에 개정 표기법 교육.
  7. 지점 이름과 선택한 그래프 행이 다릅니다.
  8. 루트만 선택 검사된 커밋을 변경합니다.
  9. 전체 트리는 단순한 트리가 아닙니다. 해당 커밋에서 목록이 변경되었습니다.
  10. 로드된 내역을 검색하세요. 약속된 서버 전체 아카이브.
  11. 선택 항목을 현재 팁으로 되돌립니다.
  12. 터미널은 독립적으로 체크아웃된 지점을 확인합니다.
  13. 두 개의 상위 단계는 한 커밋의 두 번째 부모입니다.
  14. 이 비병합 커밋 두 번째 부모가 없습니다.
  15. 이 세트는 여기서 동의합니다. 끝점은 조상입니다.
  16. 트리 차이는 파일 이름을 지정합니다. 커밋 ID 집합이 아닙니다.
  17. 측정된 커밋 ID 사용 비교 선택기에서
  18. 해결된 두 가지를 비교 심판을 변경하지 않고 나무.
  19. 이 모드는 병합을 비교합니다. 오른쪽이 있는 베이스.
  20. 분기된 그래프는 두 로그 범위가 다릅니다.
  21. 점 3개 로그 및 점 3개 diff는 다른 질문에 답합니다.
  22. 잘못된 선택이 필요합니다 파괴적인 복구가 아닌 탐색.
  23. 체인을 확인하고 변경되지 않음 분기하기 전에 HEAD.
  24. 다음으로 생성 및 전환 의도적으로 지점 이름을 지정합니다.