공부

GitHub의 Rebase

JYJ 2023. 2. 5. 00:53

rebase 커밋을 재배치한다.

재배치  커밋의 위치를 다시 배치하는 작업..

 

내가 새로운 기능 개발을 위해 Q위치에서 A브랜치 추가 후 새로운 기능 개발하고 커밋한 상태, 

다른 팀원이 내가 개발하는 동안 나랑 같은 Q위치에서 C,D라는 개발을 완료하여 master 브랜치는 나보다 앞에 있음

이때 내 브랜치 A를 master 브랜치로 merge하려함 하지만 겹치는 부분이 존재하여 충돌(conflict)발생하여 merge 실패

이때의 충돌 문제를 해결하기 위해 git rebase를 사용함

 

rebase 명령어

git checkout A     // 충돌이 없는 경우 

git rebase master  //성공

 

git checkout A          //충돌이  있는 경우 

git rebase master    // 충돌로 인해서 rebase실패 - 따로 병합작업필요함

git add .      // 코드상에서 충돌 코드 직접 정리 수행

git  rebase --continue   //rebase 성공  (소스트리에서는  액션 > 재배치 계속 누름  )

(소스트리에서 push하는데 강제 push해주어야함 - 강제 Push는 master에서는 사용 X 내 파일? 브랜치만 강제 push해야함  )

git rebase master : 지금 현재 브랜치를 master 브랜치 위로 재배치(이동)하겠다.

주의할 점  : rebase 명령어 수행전에 현재 위치 확인 필수 

 

rebase 성공하면 master브랜치 위에 내가 작업한 A가 재배치 된것을 볼수있음 

 

//이부분 다시이해 

커밋이 같으면 특정 작업 내용을 추가하고 새로운 커밋을 또 만들고 이 작업 브랜치 내에서 새로운 커밋을 만들고 푸쉬를 한다면 새로운 문제가 발생 하지 않음 

이전에 있는 커밋과 리베이스를 하고 만든 커밋이 다른 커밋이기 때문에  일반적으로는 푸쉬가 안되고 강제 푸쉬를 사용함으로써 해결함

다 해결후 merge해주면 됨!

'공부' 카테고리의 다른 글

devtools 라이브러리 사용  (0) 2023.02.15
GitHub 외부 프로젝트  (0) 2023.02.07
GitHub의 Pull Request  (0) 2023.02.05
Git의 branch  (0) 2023.02.03
Git, GitHub, sourcetree  (0) 2023.02.02