브랜치 협업 - git request

|

git request

팀 작업할 때, 브랜치를 만들고 main 브랜치와 합쳐야할 때 주로 사용한다.
merge request라고 생각하면된다.
(브랜치 합치기전에 요구)

github.com에 pull request라는 기능이있는데, 이걸 누르면

  1. 내 브랜치를 merge해달라고 요청 할 수 있고
  2. 팀원끼리 merge전에 코드검토가 가능하다.

원격저장소 브랜치 만드는법

  • github 사이트에서 직접 브랜치 생성
main 브랜치명 버튼 누르면 브랜치를 바꾸거나 새로 만들 수 있다.


  • 로컬 repository에서 브랜치 생성
로컬저장소에서 브랜치 생성후 원격저장소로 git push해도된다.


  • 로컬 브랜치 원격에 올리려면
git push 원격저장소주소 로컬브랜치명


참고로

  • git push 원격저장소주소 로컬브랜치명은 특정 로컬저장소 브랜치 => 원격저장소

  • git push 원격저장소주소는 모든 로컬저장소 브랜치 => 원격저장소임

Pull request하기

▲ 아무나 상단 Pull requests 메뉴에서 초록버튼 누르면 pull request 생성이 가능하다.



▲ 그 다음엔 어떤 브랜치를 어디에 합칠 것인지 선택하고 하단에서 commit 내역, 변경내역 잘 보고 초록버튼 누르면 pull request가 열린다.



▲ 그럼 Pull requests 메뉴에서 이렇게 확인가능한데, 누르면 사람들이 토론할 수 있는 곳도 있다. 거기서 코드를 리뷰하면 된다.



▲ 잘 된것 같아서 merge하기로 했으면 merge 할 때 여러가지 옵션이 있는데 택1 하면 된다.

merge 옵션 세가지

create a merge commit

새로운 merge commit을 하나 생성해주는 3-way merge를 실행해준다.

  • main 브랜치 조회시 합쳐진 브랜치의 commit 내역도 전부 나옴

  • 터미널에 git log –oneline –graph 해보면 합쳐진 브랜치도 그림으로 나옴

  • 그래서 commit 내역이 많으면 복잡하고 더러워보일 수 있다.

squash and merge

  • 합쳐질 브랜치의 commit 내역을 하나로 합쳐서 main 브랜치에 신규 commit을 생성해준다.

  • git log –oneline –graph 해보면 합쳐진 브랜치 안나온다.

  • commit을 하나로 합쳐서 main 브랜치로 순간이동 시켜주는 행위라 사람들이 깔끔하다고 좋아한다.

rebase and merge

  • 합쳐질 브랜치를 main 브랜치 최신 commit으로 rebase하고나서 fast-forward merge 비슷한걸 해준다.

  • 결과는 squash and merge와 비슷한데 합쳐질 브랜치의 commit 내역이 전부 보존된다.

  • git log –oneline –graph 해보면 합쳐진 브랜치 안나온다.