github 브랜치 rebase와 fast-forward

2025. 1. 7. 15:22Memorizing/Etc

현재 나의 브랜치 상황이 아래와 같이 되었다.

origin: A->B->C

local: A->B->D

그래서 pull, push가 모두 안되는 상황이었다. 그래서 이것을 병합하려고 했는데, 보통 세가지 옵션이 있다.

  • merge
  • rebase
  • fast-forward(ff)

merge는 넘기고 rebase와 fast-forward에 대해서 알아보았다.

1. rebase

rebase 같은 경우, local의 커밋을 origin위로 재배치(rebase)한다. 즉, 아래와 같이 local에 브랜치가 생성된다.

local: A->B->C->D

2. fast-forward

origin: A->B->C

local: A->B

fast-forward는 local이 origin보다 뒤에 있는 경우에 아래와 같이 local 브랜치가 생성된다.

local: A->B->C

결론

나의 경우는 아래와 같이 origin, local이 각각의 변경 사항이 생겼기 때문에 fast-forward는 안되었고, rebase로 병합을 진행했다.

origin: A->B->C

local: A->B->D