안녕하세요,
재재입니다.

github 따라하기 여덟번째 포스팅으로,
git rebase interaction 모드를 활용해서, (git rebase -i)
git squash 와 commit 순서를 바꿔볼게요!

(1) Github 따라하기 실험환경 준비 (git squash)

이번에도 신규 브랜치를 하나 생성해볼게요.

git checkout -b 7-rebase-interactive-squash

(2) git rebase -i (git squash)

3개의 commit 을 순서대로 쌓아보겠습니다.

echo "1" >> squash.txt
git add squash.txt
git commit -m "Add first scenario for squash"
echo "2" >> squash.txt
git add squash.txt
git commit -m "Add second scenario for squash"
echo "3" >> squash.txt
git add squash.txt
git commit -m "Add third scenario for squash"

이제, git log 를 하면 아래와 같이 3개의 commit 을 확인 하실 수 있습니다.

commit ?????? (HEAD -> 7-rebase-interactive-squash)
Author: wowoto9772 <csjaj9772@gmail.com>
Date:   Sun Sep 3 21:47:42 2023 +0900
    Add third scenario for squash
commit ??????
Author: wowoto9772 <csjaj9772@gmail.com>
Date:   Sun Sep 3 21:47:42 2023 +0900
    Add second scenario for squash
commit ??????
Author: wowoto9772 <csjaj9772@gmail.com>
Date:   Sun Sep 3 21:47:12 2023 +0900
    Add first scenario for squash

여기서 commit 을 합치는 방법은 git rebase interaction 모드를 사용하는 건데요!

# only for these 3 commits.
git rebase -i HEAD~3

여기서 아래와 같이 변경하셔야 합니다.
(아래에서 s 는 squash 입니다.)

pick e4b0b9b Add first scenario for squash
s 1f45d52 Add second scenario for squash
s 4784371 Add third scenario for squash

이제, 아래와 같이 commit 이 합쳐졌습니다.

# This is a combination of 3 commits.
# This is the 1st commit message:
Add first scenario for squash
# This is the commit message #2:
Add second scenario for squash
# This is the commit message #3:
Add third scenario for squash

(3) 실습환경 준비 (commit 순서 변경)

git checkout -b 7-rebase-interactive-change-order

(4) git rebase -i (commit 순서 바꾸기)

이번에도 순서대로 3개의 commit 을 추가해볼게요.

echo "1" >> change_order.txt
git add change_order.txt
git commit -m "Add first scenario for change order"
echo "2" >> change_order-2nd.txt
git add change_order-2nd.txt
git commit -m "Add second scenario for change order"
echo "3" >> change_order-3rd.txt
git add change_order-3rd.txt
git commit -m "Add third scenario for change order"

여기서 핵심은,
commit 순서를 바꾸고자 하는 대상이 같은 대상이면 안됩니다.

git rebase -i HEAD~3

이제 바꾸고 싶은 순서대로 진행하시면 되는데요!
해당 line 을 통째로 옮겨주시면 되겠습니다.

pick fa053a0 Add first scenario for change order
pick a2db145 Add third scenario for change order
pick 957cc14 Add second scenario for change order

(5) 코드 url

https://github.com/wowoto9772/github-practice/tree/main/7_rebase_interactive

Github 따라하기 – git rebase -i
태그:                     

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다