GitHub의 Rebase
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해주면 됨!