Giit 명령 입문: Giit 분기 기능(rebase,의 4) 제69회

11498 단어 GitGitHubtech
안녕하세요!오늘도 지난번과 마찬가지로 리베이스를 계속 공부합니다.'다시 기초하는 경우의 기초'(웃음)는 이런 제목이지만 어느 정도 git가 자동으로 판단하고 다시 기초한다!아~ 같은 내용이 중복되면 아껴두자~ 우선 한번 해보자!

오자 사과.


지난번 마지막01지점05 합병 지점이 기재되어 있지만 실제 명령 예시에서 you합쳐서 04네.게다가04、you_05의 지점 내용은 완전히 같다. 결과는 차이가 없지만 독자를 혼란스럽게 할 수 있다.m(_)m

오늘 공부, 여기 있다!


https://git-scm.com/book/ja/v2/Git-분기 기능 - 기본
이 페이지의 후반부, Figure 47.같은 일을 다시 합치면'다시 기초를 쌓은 상태의 기초'가 있기 때문에 이번에는 이곳을 배워야 한다.

저번 기사는 이쪽부터!


https://zenn.dev/shiozumi/articles/8582dabe623069

git 본가의 정보는 여기서부터 시작!


https://git-scm.com/book/ja/v2

이번 환경은 git clone으로 해주세요.


$ git clone https://github.com/shiozumi-makoto/20210402.git
Cloning into '20210402'...

// 中略!

// clone で、作成されたフォルダーに移動して!
$ cd 20210402

// ブランチは、こんな感じになります!
$ git branch -avv
* my_01                 8f3b141 [origin/my_01] C7
  remotes/origin/HEAD   -> origin/my_01
  remotes/origin/my_01  8f3b141 C7
  remotes/origin/you_04 4bc46c0 C6
  remotes/origin/you_05 1f4e654 C4

// 続けて、origin/you_04 も取り込んでくださあ~い!
$ git checkout -b you_04 origin/you_04
Branch 'you_04' set up to track remote branch 'you_04' from 'origin'.
Switched to a new branch 'you_04'

// origin/you_05 も!
$ git checkout -b you_05 origin/you_05
Branch 'you_05' set up to track remote branch 'you_05' from 'origin'.
Switched to a new branch 'you_05'

$ git branch -avv
  my_01                 8f3b141 [origin/my_01] C7
  you_04                4bc46c0 [origin/you_04] C6
* you_05                1f4e654 [origin/you_05] C4
  remotes/origin/HEAD   -> origin/my_01
  remotes/origin/my_01  8f3b141 C7
  remotes/origin/you_04 4bc46c0 C6
  remotes/origin/you_05 1f4e654 C4
  
// これで、全てのブランチが整いましたね!
  • origin/my_01 여기는 지난번과 마찬가지로 합병 전
  • origin/you_04 여기도 지난번처럼 너야05와 병합
  • origin/you_05 이것은 바닥이 무거운 것이다.
  • my_01 병합 전의 상태.


    $ git log --oneline --graph my_01
    *   8f3b141 (origin/my_01, origin/HEAD, my_01) C7
    |\
    | *   4bc46c0 (origin/you_04, you_04) C6
    | |\
    | | * 061bab3 C5
    | * | 41f5a21 C4
    | |/
    * | 6093ed7 C3
    * | 7ff068f C2
    |/
    * 9d381c2 C1
    

    you_04、당신05와 병합 후의 상태.


    $ git log --oneline --graph you_04
    *   4bc46c0 (origin/you_04, you_04) C6
    |\
    | * 061bab3 C5
    * | 41f5a21 C4
    |/
    * 9d381c2 C1
    

    you_05、당신04와 리베스 다음.


    $ git log --oneline --graph you_05
    * 1f4e654 (HEAD -> you_05, origin/you_05) C4
    * 061bab3 C5
    * 9d381c2 C1
    
    본 사이트의 이미지를 미리 붙여 놓으세요!

    본가의 해설에서 다른 사람들은 뒤에서 다시 기초를 닦는 것이 push의 지점이다!

    지난번 복습도 복습 겸.01、너와합병 05부터 시작!


    git merge you_05
    // マージコメントを聞かれるので、そのまま、wq で保存。
    // コメントは、Merge branch 'you_05' into my_01 となります!
    
    $ git log --graph --oneline
    *   f3a5d72 (HEAD -> my_01) Merge branch 'you_05' into my_01
    |\
    | * 1f4e654 (origin/you_05, you_05) C4
    * |   8f3b141 (origin/my_01, origin/HEAD) C7
    |\ \
    | * \   4bc46c0 (origin/you_04, you_04) C6
    | |\ \
    | | |/
    | | * 061bab3 C5
    | * | 41f5a21 C4
    | |/
    * | 6093ed7 C3
    * | 7ff068f C2
    |/
    * 9d381c2 C1
    
    본 사이트의 이미지를 미리 붙여 놓으세요!
    C8 = f3a5d72 Merge branch 'you_05' into my_01
    C4'=1f4e654 [신규] C4

    지난번과 마찬가지로 이력서네요.C5에서 새 C4, C6로 분할합니다.you_04、당신05의 쌍방이 합병된 상태.

    오늘의 주제!git rebase you_실행 05!


    // git switch my_01 で、ローカルmy_01ブランチに切り替えてから!
    
    $ git rebase you_05
    First, rewinding head to replay your work on top of it...
    Applying: C2
    Applying: C3
    Applying: C4
    Using index info to reconstruct a base tree...
    Falling back to patching base and 3-way merge...
    No changes -- Patch already applied.
    
    $ git log --oneline --graph my_01
    * 1548e15 (HEAD -> my_01) C3
    * 37bfc60 C2
    * 1f4e654 (origin/you_05, you_05) C4
    * 061bab3 C5
    * 9d381c2 C1
    
    C1→C5→C4'신규'→C2→C3의 이력이 새롭게 바탕이 됐네요!
    본가의 문서에는 티몬/master가 있습니다.여기 너집행을 05로 대체하다.그리고 이곳05분지로서 실행하지 않으면git checkout -b you_05 origin/you_05git rebase origin/you_05죠!

    본 사이트의 처리 절차부터 시작합니다!

  • my_01=C1, C2, C3, [구] C4, C5, C6, C7, [신규] C4, 최종 합병 제출[1]
  • you_05=C1, C5, [신규] C4
  • 여기 있어요.01 및 you제출01만 있는 걸 골라.결과는 C2, C3, [구] C4, C6, C7로 제출된 6개의 대상을 최종적으로 통합했다.
    그 다음으로 합병 제출은 생략되기 때문에 C6, C7, 최종 합병 제출을 제외하고 나머지 C2, C3, [구] C4를 바탕으로 처리하는 목표 제출이다.그리고 [구] C4와 [신] C4는 같고 [구] C4도 대상에 없기 때문에 my01부터 C2, C3만 있으면 됩니다.그래 너05 C1, C5, [신규] C4 연결 후 C2, C3 제출 완료.

    결과는 C1→C5→C4'신규'→C2→C3!


    $ git log --oneline --graph my_01
    * 1548e15 (HEAD -> my_01) C3  // <!-- 本家では、C3'
    * 37bfc60 C2           // <!-- 本家では、C2'
    * 1f4e654 (origin/you_05, you_05) C4 // <!-- 本家では、C4'
    * 061bab3 C5
    * 9d381c2 C1
    
    이해하기 편리하도록 저희 사이트의 사진도 붙여주세요!

    출처: Figure 48.리셋 후 강제~


    C4와 다른 멤버의 C4'패치 내용이 기본적으로 동일해야만 순조롭게 진행될 수 있습니다.그렇지 않으면 중복된 것을 알 수 없습니다. (게다가 패치의 적용이 실패할 수도 있습니다. 적어도 누군가가 변경할 수 있기 때문입니다.)
    본 사이트의 해설은 이렇다.(^▽^;)
    C4는 [구] C4, C4를 [신] C4로 바꿔 읽으십시오.

    총결산


    그럼, 어때요?실제로 지령을 내리기 전에 정말 그렇게 될까?음, 불안이 가득했지만 예상대로 잘 됐네요.응, 처리 절차에서 우리는 제출한 데이터의 중복을 생략하고 정렬만 하는 것은 매우 간단해.

    그럼, 이번엔 여기까지 수고하셨습니다!


    https://zenn.dev/shiozumi/articles/71b2e0d07ab75d

    중얼거리다


    응, 솔직히 말하면,Git는 모든 스냅숏을 저장했어.처음부터 그 특징을 설명했기 때문이다.그렇다면 제출도 쉬워진다. 과거 이력이 얼마나 앞뒤, 최악의 누락이 있었는지, 최신 제출이 있다면 무엇이 될까.또 과거 공약 관리도 지점을 잘라내고 라벨을 붙이면 실제 작업도 방법이 있겠죠~
    각주
    f41 해시05' into my_01 ↩︎

    좋은 웹페이지 즐겨찾기