콘텐츠로 건너뛰기
GitTree

레슨 23 · 회복

병합 및 리베이스 충돌 해결

병합 및 리베이스에서 동일한 경쟁 헤드라인을 해결하고 "우리"와 "그들의"가 서로 바뀌는 이유를 확인하고 의도적으로 결합된 하나의 결과를 저장하고 두 사람의 아이디어를 잃지 않고 각 작업을 완료합니다.

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

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

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

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

무엇을 배울 것인가

  • 실제 갈등을 읽어보세요: 베이스, 현재 측면, 들어오는 측면.
  • "우리"와 "그들의 것"이 병합과 리베이스 사이에서 바뀌는 이유를 설명하세요.
  • 하나의 고의적인 해결 방법을 작성한 다음 해결됨으로 표시하세요.
  • 작업을 계속하고 절반만 남은 것이 없는지 확인합니다.

시작하기 전에

두 명의 팀원이 페이지의 같은 줄을 변경했습니다. conflict/sara에 Sara는 영웅 제목을 "자신있게 변경 사항 검토"로 변경했습니다. conflict/omar에서 Omar는 같은 줄을 "저장된 각 변경 사항 이해"로 변경했습니다. 두 브랜치 모두 "작업을 명확하게 확인하세요."라는 제목의 커밋 M에서 시작하며 각 브랜치에는 정확히 하나의 커밋이 있습니다. 이 분기에 대해 두 개의 동일한 복사본을 만듭니다. 하나는 병합(gittree-conflict-merge)용이고 다른 하나는 리베이스(gittree-conflict-rebase)용입니다. 둘 다 conflict/sara가 체크아웃되었고 작업 트리가 깨끗해졌습니다. 병합이나 리베이스가 실행되고 있지 않습니다.

모든 것이 로컬이며 무료 요금제(GitTree에서 로그인을 요청함)입니다. 호스팅 계정도 없고, 공급자도 없고, 인터넷도 없습니다. 모든 신원은 허구입니다(example.com). 실제 프로젝트에서는 이 강의를 실행하지 마세요.

동일한 사본에서 둘 다 수행하지 말고 GitTree 또는 기본 Git 명령을 사용하여 변경하십시오. 결과를 읽는 것은 항상 안전합니다. 메뉴 라벨은 GitTree 2.0의 자체 문자열에서 왔으며 기본 명령은 일회용 복사본에서 Git 2.43을 사용하여 실행되었습니다. GitTree 단계가 macOS, Windows 또는 Linux에서 실행되지 않았습니다.

개념 및 상태 효과

콘텐츠 충돌은 Git이 자체적으로 하나의 결과를 선택할 수 없음을 의미합니다. 양측이 동일한 줄을 다르게 변경했습니다. Git은 중지하고 인덱스에 파일의 세 가지 버전을 유지합니다. 1단계는 공통 기반, 2단계는 "우리 것", 3단계는 "그들의 것"입니다. 또한 작업 트리의 파일에 충돌 마커를 기록합니다. 편집기에서 마커를 제거해도 Git에서는 아무 것도 해결되지 않습니다. 결과를 저장하고 스테이지할 때만 파일이 해결되어 스테이지 0으로 돌아옵니다.

"우리의 것"과 "그들의 것"은 사람이 아니라 위치입니다. 병합에서 당신은 Sara의 브랜치에 있으므로 우리의 버전은 Sara의 버전(현재 측)이고 그들의 버전은 Omar의 버전(수신 측)입니다. Sara를 Omar로 리베이스하는 경우 Git은 먼저 Omar의 브랜치로 이동한 다음 Sara의 커밋을 재생합니다. 따라서 우리 버전은 Omar 버전(리베이스 중인 브랜치)이고 Git의 버전은 Sara의 커밋입니다. GitTree는 병합의 "(현재)" 및 "(수신)", 리베이스의 "(리베이스)" 및 "(커밋)"을 기억할 필요가 없도록 각 이름 옆에 역할을 인쇄합니다.

올바른 결과가 한쪽으로 치우치는 경우는 거의 없습니다. 여기서 의도된 해결 방법은 "자신감을 가지고 각 변경 사항을 검토하십시오."이며 Sara의 라인도 Omar의 라인도 아닙니다. 페이지의 다른 모든 줄을 그대로 유지하세요. 파일을 해결됨으로 표시하면 결과가 단계적으로 표시됩니다. 계속하는 것은 병합 커밋을 완료하거나 Omar의 커밋에 Sara의 커밋을 다시 생성하는 별도의 단계입니다.

작업이 중지되는 동안 해당 분기는 작업이 중단된 위치에 있으며 파일이 충돌합니다. 아무것도 서버에 도달하지 않습니다.

정확한 프로젝트 상태 준비

하나의 발산을 만든 다음 두 번 복사합니다. 18과에서 남겨둔 프로젝트의 별도의 일반 복사본에서 시작하고 원본 gittree-features은 그대로 둡니다. 페이지 버전은 다음과 같습니다. MERGED는 공유 기반이고, SARA 및 OMAR은 두 경쟁 버전이며, RESOLVED는 저장하게 될 결과입니다.

완전한 파일 입력

아래에 명명된 단계에서만 저장하십시오. 이는 최종 개행 문자가 포함된 완전한 UTF-8/LF 본문입니다. 마크다운 펜스를 붙여넣지 마세요. 변경되지 않은 실행 가능 파일은 명명된 입력을 상속합니다. 별도의 변형 버전이 원본을 덮어쓰면 안 됩니다.

index.html — 병합됨

파일 발췌 · html
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>GitTree Features — course demo</title>
  <link rel="stylesheet" href="styles.css">
</head>
<body>
  <header class="site-header">
    <a href="#main">GitTree Features</a>
  </header>
  <main id="main" tabindex="-1">
    <section class="hero" aria-labelledby="hero-title">
      <p class="eyebrow">GitTree Learn demo project</p>
      <h1 id="hero-title">See your work clearly.</h1>
      <p id="hero-copy">Choose one change, then check what Git saved.</p>
    </section>
    <section class="features" aria-labelledby="features-title">
      <h2 id="features-title">Follow your work</h2>
      <div class="cards">
        <article class="feature-card">
          <h3>History</h3>
          <p>Read commits and branches together.</p>
        </article>
        <article class="feature-card">
          <h3>Changes</h3>
          <p>Review the exact content selected for a commit.</p>
        </article>
        <article class="feature-card">
          <h3>Recovery</h3>
          <p>Inspect the scope of a recovery point before using it.</p>
        </article>
      </div>
    </section>
    <section aria-labelledby="plans-title">
      <h2 id="plans-title">Choose the workflow you need</h2>
      <div class="cards">
        <article class="feature-card">
          <h3>Local Git</h3>
          <p>Local Git workflows work without signing in.</p>
        </article>
        <article class="feature-card">
          <h3>Connected workflows</h3>
          <p>Provider integrations and Nour require Pro or an applicable trial.</p>
        </article>
      </div>
    </section>
  </main>
  <footer><p>Built by a fictional team for GitTree Learn. Review one change at a time.</p></footer>
  <script type="module" src="site.js"></script>
</body>
</html>

index.html — SARA

파일 발췌 · html
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>GitTree Features — course demo</title>
  <link rel="stylesheet" href="styles.css">
</head>
<body>
  <header class="site-header">
    <a href="#main">GitTree Features</a>
  </header>
  <main id="main" tabindex="-1">
    <section class="hero" aria-labelledby="hero-title">
      <p class="eyebrow">GitTree Learn demo project</p>
      <h1 id="hero-title">Review changes with confidence.</h1>
      <p id="hero-copy">Choose one change, then check what Git saved.</p>
    </section>
    <section class="features" aria-labelledby="features-title">
      <h2 id="features-title">Follow your work</h2>
      <div class="cards">
        <article class="feature-card">
          <h3>History</h3>
          <p>Read commits and branches together.</p>
        </article>
        <article class="feature-card">
          <h3>Changes</h3>
          <p>Review the exact content selected for a commit.</p>
        </article>
        <article class="feature-card">
          <h3>Recovery</h3>
          <p>Inspect the scope of a recovery point before using it.</p>
        </article>
      </div>
    </section>
    <section aria-labelledby="plans-title">
      <h2 id="plans-title">Choose the workflow you need</h2>
      <div class="cards">
        <article class="feature-card">
          <h3>Local Git</h3>
          <p>Local Git workflows work without signing in.</p>
        </article>
        <article class="feature-card">
          <h3>Connected workflows</h3>
          <p>Provider integrations and Nour require Pro or an applicable trial.</p>
        </article>
      </div>
    </section>
  </main>
  <footer><p>Built by a fictional team for GitTree Learn. Review one change at a time.</p></footer>
  <script type="module" src="site.js"></script>
</body>
</html>

index.html — 오마르

파일 발췌 · html
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>GitTree Features — course demo</title>
  <link rel="stylesheet" href="styles.css">
</head>
<body>
  <header class="site-header">
    <a href="#main">GitTree Features</a>
  </header>
  <main id="main" tabindex="-1">
    <section class="hero" aria-labelledby="hero-title">
      <p class="eyebrow">GitTree Learn demo project</p>
      <h1 id="hero-title">Understand each saved change.</h1>
      <p id="hero-copy">Choose one change, then check what Git saved.</p>
    </section>
    <section class="features" aria-labelledby="features-title">
      <h2 id="features-title">Follow your work</h2>
      <div class="cards">
        <article class="feature-card">
          <h3>History</h3>
          <p>Read commits and branches together.</p>
        </article>
        <article class="feature-card">
          <h3>Changes</h3>
          <p>Review the exact content selected for a commit.</p>
        </article>
        <article class="feature-card">
          <h3>Recovery</h3>
          <p>Inspect the scope of a recovery point before using it.</p>
        </article>
      </div>
    </section>
    <section aria-labelledby="plans-title">
      <h2 id="plans-title">Choose the workflow you need</h2>
      <div class="cards">
        <article class="feature-card">
          <h3>Local Git</h3>
          <p>Local Git workflows work without signing in.</p>
        </article>
        <article class="feature-card">
          <h3>Connected workflows</h3>
          <p>Provider integrations and Nour require Pro or an applicable trial.</p>
        </article>
      </div>
    </section>
  </main>
  <footer><p>Built by a fictional team for GitTree Learn. Review one change at a time.</p></footer>
  <script type="module" src="site.js"></script>
</body>
</html>

index.html — 해결됨

파일 발췌 · html
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>GitTree Features — course demo</title>
  <link rel="stylesheet" href="styles.css">
</head>
<body>
  <header class="site-header">
    <a href="#main">GitTree Features</a>
  </header>
  <main id="main" tabindex="-1">
    <section class="hero" aria-labelledby="hero-title">
      <p class="eyebrow">GitTree Learn demo project</p>
      <h1 id="hero-title">Review each change with confidence.</h1>
      <p id="hero-copy">Choose one change, then check what Git saved.</p>
    </section>
    <section class="features" aria-labelledby="features-title">
      <h2 id="features-title">Follow your work</h2>
      <div class="cards">
        <article class="feature-card">
          <h3>History</h3>
          <p>Read commits and branches together.</p>
        </article>
        <article class="feature-card">
          <h3>Changes</h3>
          <p>Review the exact content selected for a commit.</p>
        </article>
        <article class="feature-card">
          <h3>Recovery</h3>
          <p>Inspect the scope of a recovery point before using it.</p>
        </article>
      </div>
    </section>
    <section aria-labelledby="plans-title">
      <h2 id="plans-title">Choose the workflow you need</h2>
      <div class="cards">
        <article class="feature-card">
          <h3>Local Git</h3>
          <p>Local Git workflows work without signing in.</p>
        </article>
        <article class="feature-card">
          <h3>Connected workflows</h3>
          <p>Provider integrations and Nour require Pro or an applicable trial.</p>
        </article>
      </div>
    </section>
  </main>
  <footer><p>Built by a fictional team for GitTree Learn. Review one change at a time.</p></footer>
  <script type="module" src="site.js"></script>
</body>
</html>

GitTree에서

Command+Shift+P(Ubuntu에서는 Ctrl+Shift+P)를 사용하여 팔레트를 엽니다. 명명된 분기에 대한 작업은 해당 분기의 오른쪽 클릭 메뉴를 사용합니다.

  1. 다음 섹션에 표시된 대로 두 개의 복사본을 만듭니다. conflict/sara이(가) 체크아웃된 상태에서 gittree-conflict-merge을(를) 엽니다.
  2. conflict/omar을(를) 마우스 오른쪽 버튼으로 클릭하고 Merge conflict/omar into conflict/sara을(를) 선택합니다. Record it as에서 Always a merge commit을 선택합니다. 대화 상자에는 "파일 1개에서 충돌이 발생하면 중지됩니다"라는 경고가 표시됩니다. Merge를 선택하세요. 예상된 결과인 병합이 중지됩니다.
  3. 배너에는 "충돌 1개"와 함께 "충돌/omar를 충돌/사라로 병합"이라고 표시되어 있으며, Continue은(는) 아직 사용할 수 없습니다. "충돌 1개를 먼저 해결하세요". Resolve을(를) 선택하세요.
  4. Conflicted files에서 index.html을(를) 엽니다. conflict/sara (current) 및 conflict/omar (incoming) 양면을 읽고 Show Base를 사용하여 Base (common ancestor)를 읽습니다.
  5. Edit Output을 선택하고 충돌하는 제목을 Review each change with confidence.으로 바꾸고 다른 모든 줄을 유지합니다. 그런 다음 Save and Mark Resolved를 선택하세요. 마커를 삭제하고 파일을 닫는 것만으로는 충분하지 않습니다.
  6. 배너로 돌아가서 Continue을(를) 선택하세요. 메시지가 제공되면 제안된 메시지를 보관하세요. 병합이 완료될 때까지 기다립니다. 새 커밋에는 두 개의 상위 커밋이 있습니다.
  7. conflict/sara이(가) 체크아웃된 상태에서 gittree-conflict-rebase을(를) 엽니다. conflict/omar을 마우스 오른쪽 버튼으로 클릭하고 Rebase conflict/sara onto conflict/omar을 선택합니다. Options for this rebase 아래의 옵션을 꺼진 상태로 두고 Rebase conflict/sara를 선택합니다. 갈등으로 멈춥니다.
  8. Resolve을 선택하고 index.html을(를) 엽니다. 이제 측면은 conflict/omar (rebasing onto) 및 conflict/sara (your commit)입니다. 역할이 바뀌었습니다. 동일한 Edit Output → Save and Mark Resolved를 수행한 다음 Continue을 수행합니다.
  9. 두 복사본을 모두 확인하세요. 파일이 RESOLVED와 같고 충돌하는 파일이 남아 있지 않으며 배너가 표시되지 않습니다. 두 결과를 분리하고 밀지 마십시오.

과정의 모든 일반적인 커밋에 대해: Summary는 명시된 주제이고, Description는 비어 있으며, 옵션 Amend Previous Commit, Skip Hooks, Add Signed-off-by, Different Author, Push After Commit 및 Allow Empty Commit는 꺼져 있습니다.

터미널에서

18과 결과의 별도의 깨끗한 사본에서:

Command · bash
git switch --create conflict/sara
BASE_SHA="$(git rev-parse HEAD)"

SARA를 index.html(으)로 저장한 후 다음을 수행하세요.

Command · bash
git add -- index.html
git -c user.name="Sara Lindqvist" -c user.email=sara@example.com commit --quiet -m "feat: Sara clarifies the hero"
git switch --quiet --create conflict/omar "$BASE_SHA"

OMAR을 index.html로 저장한 후:

Command · bash
git add -- index.html
git -c user.name="Omar Haddad" -c user.email=omar@example.com commit --quiet -m "feat: Omar explains the hero"
git switch --quiet conflict/sara

BASE_SHA은 경쟁 커밋 이전의 M입니다. 이 분기의 깨끗한 복사본 두 개를 만듭니다. 하나는 병합용이고 다른 하나는 리베이스용입니다(cd .. && cp -R gittree-features gittree-conflict-merge && cp -R gittree-features gittree-conflict-rebase). 병합 사본에서:

Command · bash
git merge --no-ff --no-edit conflict/omar
git ls-files --unmerged
git show :2:index.html
git show :3:index.html

종료 코드 1로 병합이 중지되고 git ls-files --unmerged에는 1단계, 2단계, 3단계의 세 가지 항목이 나열됩니다. git show :2:index.html은 Sara의 버전(우리 버전)이고 :3:는 Omar 버전(그들의 버전)입니다. :1:은 기본입니다. RESOLVED를 index.html로 저장한 후:

Command · bash
git add -- index.html
git -c core.editor=true merge --continue
git ls-files --unmerged
git status --short

마지막 두 명령은 아무것도 인쇄하지 않습니다. 손대지 않은 리베이스 복사본에서:

Command · bash
git rebase conflict/omar
git show :2:index.html
git show :3:index.html

리베이스가 중지됩니다. 이제 :2:은 Omar의 버전이고 :3:은 Sara의 버전입니다. 역할이 바뀌었습니다. RESOLVED를 index.html로 저장한 후:

Command · bash
git add -- index.html
git -c core.editor=true rebase --continue
git ls-files --unmerged
git status --short

이제 두 파일 모두 RESOLVED와 동일하며 병합 취소된 파일은 없습니다. core.editor=true는 이 명령 하나에 대한 기존 커밋 메시지만 허용합니다. 편집기 설정은 변경되지 않습니다. 해결하지 않고 중지된 작업을 종료하려면 git merge --abort 또는 git rebase --abort를 사용하세요.

결과

Where you end: 병합 복사본에는 두 개의 상위 요소와 결합된 제목이 있는 새로운 커밋이 있습니다. 리베이스 복사본에는 동일한 결합 제목을 사용하여 Omar의 커밋에 Sara의 커밋이 다시 생성되었습니다. 둘 다 index.html는 RESOLVED와 같고 충돌 항목이 남아 있지 않으며 작업이 종료되고 상태가 정상입니다.

일반적인 실수

  • "우리의 것"은 항상 자신의 기능을 의미한다고 가정합니다. Git이 서 있는 쪽을 의미하며 작업에 따라 변경됩니다.
  • 두 버전과 파일의 나머지 부분을 읽기 전에 한쪽 면만 가져가세요("Take All").
  • 충돌 마커를 삭제하지만 파일을 저장하고 해결된 것으로 표시하지 않습니다.
  • 이미 완료된 병합 또는 리베이스를 반복합니다.

뭔가 잘못되면

중지가 잘못된 것으로 보이는 경우 배너의 Abort…는 작업이 시작된 상태를 복원하고 지금까지 수행한 해결 방법을 삭제합니다. GitTree는 먼저 복구 스냅샷을 보관합니다. 편집하는 동안 파일이 변경된 경우 이전 저장을 강제하는 대신 Compare 및 Use as Output 선택을 사용하십시오. 초안을 교체하기 전에 사본을 보관하세요.

이해도를 확인해보세요

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

  1. 질문 1/6

    귀하는 conflict/sara에 있으며 conflict/omar을(를) 여기에 병합합니다. Git은 어느 쪽을 "우리"라고 부르나요?

    답을 하나 선택하세요.

  2. 질문 2/6

    인덱스의 충돌 파일에 대한 설명으로 옳은 것은 무엇입니까?

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

  3. 질문 3/6
    필수

    conflict/sara을 conflict/omar로 리베이스하면 충돌이 발생하여 중지됩니다. 이제 어떤 버전이 "우리의 것"입니까?

    답을 하나 선택하세요.

  4. 질문 4/6

    입력 변경: 편집기에서 충돌 마커를 삭제하고 파일을 저장하지만 해결된 것으로 표시하지는 않습니다. 당신은 어떤 상태에 있습니까?

    답을 하나 선택하세요.

  5. 질문 5/6
    필수

    결과를 저장했지만 배너에 여전히 "1개의 충돌을 먼저 해결하세요"라고 표시되고 계속을 사용할 수 없습니다. 가장 가능성이 높은 원인은 무엇입니까?

    답을 하나 선택하세요.

  6. 질문 6/6
    필수

    병합 복사가 올바르게 완료된 것으로 표시되는 다시 읽기는 무엇입니까?

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

6개 중 0개 정답

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

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

연습

git show :2:index.html 및 git show :3:index.html를 사용하여 두 작업에 대한 스테이지 역할을 증명한 다음 동일한 RESOLVED 파일을 저장하고 각 작업을 완료합니다. 맹목적으로 두 사본 모두에서 "우리의 것"을 가져간 경우 페이지에 무엇이 남게 될지 예측하십시오.

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

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

요약

  • 우리와 그들의 역할은 운영에 따라 다릅니다.
  • 먼저 저장하고 해결됨으로 표시한 후 계속하세요.
  • 이후 전체 파일과 동작상태를 확인해보세요.

용어집 소개

갈등 — 이해; 베이스 — 알사스; 우리 것 - نساتنا; 그들의 것 - نساتهم; 해결 — حلّ.

비디오 대본

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

성적표 표시
  1. 충돌은 오류가 아닙니다. 그것은 당신만이 답할 수 있는 질문입니다.
  2. 두 사람이 같은 줄을 바꿨다. 같은 파일.
  3. 사라는 제목을 하나 썼습니다. 오마르가 썼다 또 다른. 둘 다 같은 페이지에서 시작되었습니다.
  4. Git은 어느 라인이 승리할지 추측할 수 없습니다. 멈추고 당신에게 묻습니다.
  5. 먼저 사라와 오마르의 가지를 짓고, 그리고 두 개의 동일한 사본.
  6. 첫 번째 사본에서는 병합합니다. 두 번째에서는 우리는 리베이스합니다.
  7. Sara의 분기에서 병합 복사본을 엽니다.
  8. Omar의 분기를 마우스 오른쪽 버튼으로 클릭하고 해당 분기를 선택합니다. 병합 명령.
  9. 대화 상자에는 이미 경고가 표시됩니다. 이 작업은 중지됩니다. 한 파일에서 충돌이 발생했습니다.
  10. 항상 병합 커밋을 선택한 다음 병합을 선택합니다. 한 번. 예상대로 중지됩니다.
  11. 배너에는 하나의 충돌이 표시됩니다. 계속은 아직 사용할 수 없습니다.
  12. 해결을 선택하고 index.html을 엽니다.
  13. 양면: 사라의 지점은 현재, 오마르가 들어오고 있어요.
  14. Show Base는 공통 조상을 보여줍니다. 변경 전 페이지.
  15. 이제 출력을 편집하세요. 제목을 다음으로 바꾸십시오. 고의적인 한 줄.
  16. 저장하고 해결됨으로 표시합니다. 이제 Git만 하면 됩니다. 파일을 해결된 것으로 처리합니다.
  17. 배너로 돌아가 계속을 선택합니다. 는 병합이 완료됩니다.
  18. 새 커밋에는 두 개의 상위 커밋이 있으며 결합된 제목.
  19. 이제 Sara의 리베이스 복사본도 마찬가지입니다. 지점.
  20. Omar의 분기를 마우스 오른쪽 버튼으로 클릭하고 리베이스합니다. 사라의 분기가 거기에 있습니다.
  21. 옵션을 꺼진 상태로 두고 한 번 리베이스하세요. 그것 갈등으로 멈춥니다.
  22. 라벨을보세요. 이제 오마르 지점은 우리가 리베이스하는 것.
  23. Sara의 커밋이 재생되는 커밋입니다. 역할이 바뀌었습니다.
  24. 동일한 해상도: 출력을 편집한 후 저장 해결됨으로 표시한 다음 계속하세요.
  25. Sara의 커밋은 다음 위에 다시 생성됩니다. 같은 제목의 Omar's입니다.
  26. 터미널에서 병합되지 않은 항목을 나열하십시오. 중지된 병합의 모습입니다.
  27. 2단계는 우리의 것입니다: Sara가 향하고 있습니다. 무대 세 개는 그들의 것입니다: 오마르의 것입니다.
  28. 중지된 리베이스에서 2단계와 3단계 반대 방향입니다.
  29. 수정 후에는 아무것도 병합되지 않습니다. 상태가 비어 있습니다.
  30. 병합 복사본의 팁에는 두 개의 부모가 있습니다. 는 rebase copy의 팁에는 하나가 있습니다.
  31. 입력 변경: 마커를 삭제하고 저장하지만 해결됨으로 표시하지 않습니다.
  32. Git에서는 여전히 세 단계를 볼 수 있으므로 계속하세요. 계속 이용할 수 없습니다.
  33. 갇힌? 중단은 지점을 다시 위치로 되돌립니다. 수술이 시작되었습니다.
  34. GitTree는 먼저 복구 스냅샷을 저장합니다. 따라서 중단해도 안전합니다.
  35. 절대로 한 쪽에서 모든 것을 먼저 가져가지 마십시오. 두 버전을 모두 읽어보세요.
  36. 연습: 두 가지 모두에서 무대 역할 증명 복사한 다음 둘 다 완료하세요.
  37. 다음으로 작업을 계속하거나 건너뛰거나 중단합니다. 그게 멈췄어요.