git config pull.rebase true

홍성권·2022년 9월 14일
0

git rebase

목록 보기
2/2
post-custom-banner

저번에 이어 실험을 마저 해보려 한다.

두 번째는 rebase를 true로 설정해봄으로써 어떻게 동작하는지 보려 한다.

저번과 그대로 진행했으면 현재 로컬과, github에 올라와있는 readme는


과 같은 상황일 것이다.

마찬가지로 로컬과 원격을 각각 다르게 바꿔준다.(아직 pull이나 push는 진행 x)
원격 repo readme
원격 repo readme

로컬 repo readme
로컬 repo readme

로컬에서 원격으로 push를 하기 전, 설정을 바꿔준다.

git config pull.rebase true 

이제 push를 하려 하면 역시 에러가 일어날 것이다.
push를 하기 전 pull을 해주지 않았기 때문에 두 상황이 다르기 때문이다.
pull을 진행해주자

git pull origin main

그러면 이제 전과 같이 merge conflicts를 해결해줘야 한다.

두 라인 모두 취소선 처리 후 새로운 내용을 입력해보겠다.

이제 힌트메세지대로

git add, git rebase --continue를 입력하면.

터미널 상에서 텍스트 편집기를 통해 커밋 메세지를 입력할 수 있다. (나의 경우는 nano ㅇㅇ)

다만 전이랑 달랐던 점은

"대화형 리베이스 진행 중",
"리베이스하는 중입니다."

과 같이 현재 리베이스를 하고 있음을 알려준다는 것이다.

커밋메세지는 따로 저 상태로 변경 안하고 nano를 빠져나왓다. 그 후 push를 진행

하기 전 확인 한 번 더 해보자

현재 깃허브에서 변경한 내용만 적용된 상태고, 커밋 수는 5번이다. 전처럼 git config pull.rebase true 상태면 이제 push를 할 경우 2번이 올라 갈 것이다. 하지만 우리는 rebase를 false로 설정한 상황. 이제 확인해보면

커밋 수가 1번만이 증가한 것을 알 수 있다.


오늘 실험을 통해 확인할 수 있었던 것은 rebase를 true, false 어느 방식을 선택하든 둘 다 결과는 동일하게 할 수 있다는 것이다.
다만 rebase를 true로 설정하고 pull을 받는 것이 커밋 메세지나 history를 깔끔하게 할 수 있다는 것이다.

사실 rebase라고 하는 것은 브랜치와 브랜치를 합치기 위한 방법으로 merge와 비교되는 방식이며, pull에 옵션식으로 설정해 줄 수 있는 것이다. rebase를 공부하면 pull에도 옵션을 어떻게 설정해 줄 수 있을지 감이 잡힐 것이다.

하지만 rebase가 마냥 좋다면 rebase만을 사용하지 않겠는가.
이와 같은 상황에서 git에서는 어떻게 하면 좋을지 친절하게 설명해주고 있으니 링크 걸어둔다. 나도 프로젝트 진행할 때에는 다시 한 번 읽어보고 팀원들과 git 전략을 세밀하게 세워보자.

Git 브랜치 - Rebase 하기

profile
개발 일기장
post-custom-banner

0개의 댓글