Git & GitHub

[Git] 리베이스(Rebase)

sungjine 2018. 8. 18. 12:51
반응형

리베이스(Rebase)는 깃의 브랜치를 합칠 수 있는 방법 중 하나이다.

 

리베이스를 통해 합쳐지는 것을 fast-forward 라고 하는데 여러 줄기로 나누어져 있는 브랜치를 하나의 줄기로 합치는 것을 뜻한다.

 

리베이스 외에 merge를 통해 브랜치를 합치는 것은 동일하지만 리베이스의 장점은 브랜치를 깔끔하고 보기 쉽게 정리할 수 있다는 장점이 있다.

 

그래서 리베이스는 보통 리모트 브랜치에 커밋을 깔끔하게 적용하고 싶을 때 사용한다.

 

리베이스를 사용할 때 조심해야하는 것은 다른 동료와 공유하고 있는 브랜치(ex master 브랜치)에는 하면 안된다는 것이다.

 

이유는 리베이스를 할 때 커밋은 기존의 커밋을 그대로 사용하는 것이 아니라 새로운 커밋을 생성하여 합치기 때문에 작업한 내용을 push한 후 다른 동료가 해당 내용을 pull하여 사용하고 있는 상황에서 push 했던 내용을 리베이스하여 다시 push 했을 때 동료가 merge를 하게 되었을 때 코드의 내용이 중복되는 등 코드가 엉망이 될 수 있기 때문이다.

 

리베이스를 사용하는 방법은 합쳐야하는 브랜치로 checkout 한 다음 git rebase `브랜치명` 라고 하면 된다.

 

 

ex)

// 리베이스 전

              d---e---f   // other

            /

a---b---c---g---h  // master

 

// 깃 명령어

git checkout other

git rebase master

 

// 리베이스 후

a---b---c---g---h---d---e---f

반응형