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

github 따라하기 여섯번째 포스팅입니다.

이번 포스팅을 통해,
git conflict 중 rebse와 관련된 사례를 만들고,
그런 경우에서 git rebase 를 어떻게 제대로 적용하는지 설명드릴게요.

(1) 실험 준비

이번에도,
먼저 환경을 만들어보겠습니다.

임시 브랜치 생성부터 진행해볼게요.

git checkout -b 5-test-rebase-err

(2) rebase 충돌을 위한 커밋 추가

같은 폴더에 rebase_err.txt 를 수정해보고,
커밋을 추가해보겠습니다.

echo "I' m added after commit 876cab538fc0826dcf7. am I duplicated?" >> rebase_err.txt
# And check the diffs.
git diff
# Change to staged.
git add rebase_err.txt
# Acc commit with message.
git commit -m "Making a rebase err"

(3) remote 의 특정 branch 내용 반영

wowoto remote 에 존재하는 5-occur-rebase-err branch 의 내용을,
현재 브랜치에 반영해보겠습니다.

git rebase wowoto/5-occur-rebase-err

(4) git rebase conflict 해결하기

이전에 추가한 커밋과,
remote 의 내용을 반영한 커밋 사이에서 충돌이 발견되었습니다.

Auto-merging 5_resolve_conflicts/rebase_err.txt
CONFLICT (content): Merge conflict in 5_resolve_conflicts/rebase_err.txt
error: could not apply ????... Making a rebase err
hint: Resolve all conflicts manually, mark them as resolved with
hint: "git add/rm <conflicted_files>", then run "git rebase --continue".
hint: You can instead skip this commit: run "git rebase --skip".
hint: To abort and get back to the state before "git rebase", run "git rebase --abort".
Could not apply ????... Making a rebase err

여기서,
방금 진행했던 rebase 를 취소하는 명령어도 있습니다.

git rebase --abort

이제 본격 git conflict 을 해결해볼게요.

vscode 와 같은 에디터나,
git diff 을 통해 현재 문제가 되는 내용을 파악해봐야하는데요.

Github 따라하기 – git rebase conflict
Github 따라하기 – git rebase conflict 3

둘 모두를 반영하는 방식으로 일단 충돌을 해결해볼게요.

아래가 바로, 원하는 내용입니다.

I'm added after commit 248be502b7468d6d901.
I'm added after commit 876cab538fc0826dcf7.
I' m added after commit 876cab538fc0826dcf7. am I duplicated?

git conflict 을 모두 해결하셨다면,
staged 상태로 변경하고 아래와 같이 반영해주시면 됩니다.

git add rebase_err.txt
git rebase --continue

충돌이 완전히 해결되었다면,
아래와 같은 log 를 확인 하실 수 있습니다.

[detached HEAD 2224063] Making a rebase err
 1 file changed, 2 insertions(+), 1 deletion(-)
Successfully rebased and updated refs/heads/5-test-rebase-err.

(5) 내용 확인

변경된 내용이 제대로 적용되었는지 확인하실 차례에요.

# only commit log.
git log
# the diffs.
git log -p 
# (commit-id can be omitted.)
# git log -p <commit-id> 

다음 단계 포스팅은 아래와 같습니다.

(6) 코드 url

https://github.com/wowoto9772/github-practice/tree/main/5_resolve_conflicts

Github 따라하기 – git rebase conflict
태그:             

답글 남기기

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