오늘이군
git rebase 본문
반응형
develop 에서 feature/epic 브랜치를 따고
feature/epic 에서 각자 브랜치를 따서 작업하는 중간에
공통으로 사용하는 entity 같은 것을 누군가가 feature/epic 에 merge 를 해서
내 브랜치에 받아야 할 때 방법은 두가지가 있습니다.
1. merge
merge 는 intellij 우측하단의 Git Branches 에서
feature/epic 브랜치를 선택하여 Merge into Current 를 하면 merge 가 됩니다.
쉽지만 단점은 merge 를 위한 커밋을 하나 더 생성하게 되고, 이력 또한 모두 가지고 있게 되므로
git log 가 보기 어렵게 된다는 단점이 있습니다.
2. rebase
말 그대로 브랜치의 base 를 다시 설정하는 기능입니다.
git checkout feature/epic
git pull origin feature/epic
- 먼저 로컬 repo에 원격과 동기화된 feature/epic 브랜치가있어야 합니다. 없으면 rebase 도중 에러 나고요
git checkout feature/mybranch
git rebase -i feature/epic
- rebase 도중 커밋들을 하나로 합치고 싶으면 자동으로 뜨는 editor에서, 여러 pick 줄 중 맨 위의 것 외에는 pick을 squash로 바꿉니다. (창을 그냥 닫았다면 git rebase --edit-todo 로 다시 활성화 합니다.)
- 진행하다가 다시 editor가 뜨면, 단 하나의 commit이 될 commit의 메시지를 입력합니다.
git push --force-with-lease
- 로컬에서 rebase 완료된 브랜치를 원격에 강제로 push 합니다.
git push -f 도 사용할 수 있지만 안전상 --force-with-lease 사용합니다.
- rebase 도중 오류가 나면 git rebase --abort 명령어로 취소할 수 있습니다.
- rebase 도중 충돌이 발생하면 소스코드에서 충돌 해결후 git rebase --continue 명령어로 rebase를 재개 할 수 있습니다.
반응형
'삶.. > 프로그래밍' 카테고리의 다른 글
git 원격 브랜치 삭제 (0) | 2021.06.03 |
---|---|
로그수집서버 아키텍처 알아보기 (0) | 2020.05.22 |
Redis 살펴보기 (0) | 2020.05.22 |
@RequestBody Json 출력필터 적용 - xss (0) | 2020.05.19 |
XSS (Cross-site Scripting, 크로스 사이트 스크립팅) 방지 (0) | 2020.05.13 |
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
Comments