본문 바로가기
Git

[Git] 프로젝트간 git 사용 (feat. branch)

by 희구리 2021. 1. 5.

git은 버전관리 동시협업을 가능하도록 지원해주는 편리한 툴인만큼 개발 프로젝트에서 굉장히 유용하게 사용된다.

사용하지 않는 경우가 없을 것 같다.

 

특히 프로젝트 진행시 당연히 분업을 하게 될 텐데, 같은 코드 혹은 파일(기능)을 다수의 사람이 건드리게 되면

프로젝트 진행은 꼬여버릴 것이다.

 

git branch 사용

이 때 git의 branch를 적절하게 사용하여 진행하면 프로젝트의 업무 효율을 높일 수 있다.(commit 핸들링, merge 등)

 


SSAFY에서 팀 프로젝트를 진행할 때 새로운 branch를 만들어서 작업을 진행해야 하는데, 당시 git 사용이 미숙하다 보니 자주 까먹어서 헤맸던 경험이 있었다. 

 

이후 git 명령어들을 정리하여 pdf 파일로 만들어 팀원들에게 공유하였는데 다시 한 번 블로그를 통해 정리하고자 한다.

 

💡 사용시기

원격 저장소(gitlab)에 있는 특정 브랜치를 가져와 새로운 브랜치를 만들고 싶다.

 

 

ex) frontend의 브랜치를 그대로 가져와서 프로필 기능 구현을 위한 f/feature/profile 브랜치를 만들고 싶다.

  • 참조하고 싶은 브랜치 : frontend
  • 만들고 싶은 브랜치 : f/feature/profile

📌 Step 1. 브랜치 생성

git checkout -b {생성할 (로컬) 브랜치명} -t origin/{참조할 브랜치명}

ex) git checkout -b f/feature/profile -t origin/frontend 

※frontend는 리모트 브랜치명이기 때문에 origin/frontend로 입력한다.

 

위 작업을 수행하면 frontend 브랜치를 참조하여 로컬에서 작업할 수 있는 f/feature/profile 브랜치가 생성된다.

 

📌 Step 2. 리모트 브랜치 만들기

git push origin {생성할 (리모트) 브랜치명}

ex) git push origin f/feature/profile

 

앞선 작업은 로컬에서 브랜치를 생성한 것이다. git에서 코드를 관리하기 위해서는 리모트에서도 브랜치를 만들어줘야 한다. 따라서, push 명령어를 이용하여 리모트 브랜치를 만들어준다.

 

다른이름을 부여하도 좋지만, 일반적으로 로컬과 리모트 브랜치명을 동일하게 사용하는 것이 좋다.

 


📌 Step 3. 로컬브랜치 → 리모트브랜치 tracking 정보 설정(선택사항)

Step 2 까지만 작업하여도 코딩 작업을 진행할 수 있다.

단, 로컬에서 새로운 브랜치를 생성했을 경우 해주면 편리한 작업이 있다.

 

git push를 할 때 git push origin {리모트 브랜치명}을 습관처럼 사용한다면 해당 내용이 필요없지만

리모트 브랜치명이 길어서 git push 명령어로만 push 작업을 하고 싶다면 새로 생성한 로컬브랜치는 특정 리모트브랜치를 바라볼 수 있도록 tracking 정보를 세팅해줘야 한다.

 

새로 생선한 로컬 브랜치에서 git push만 진행하게 되면 오류가 발생한다.

Step 2 단계까지만 진행하고 파일명을 변경한 후 git push 명령어를 입력하게 되면 오류가 난다.

 

이를 해결하기 위해서는 아래의 명령어를 입력해주면 된다.

git branch --set-upstream-to origin/{리모트 브랜치명}

또는

git push --set-upstream origin {리모트 브랜치명}

※ 두 번째 명령어는 push가 진행되면서 tracking 정보를 업데이트한다.

 

ex) s/git 로컬 브랜치가 s/git 리모트 브랜치(origin)를 바라보도록 설정 

첫 번째 명령어를 사용한 경우
두 번째 명령어를 사용한 경우

두 명령어 모두 사용 후 Branch 's/git' set up to track remote branch 's/git' from 'origin' 문장이 출력되는 것을 알 수 있다.

즉, 로컬 브랜치가 리모트 브랜치를 바라보도록(track) 설정을 완료했다는 뜻이다.

 

이제, git push 만 입력하여도 작업 내용을 원격 저장소의 해당 브랜치로 올릴 수 있다.

 

 

 

 

'Git' 카테고리의 다른 글

[Git] Git Repository 옮기기  (0) 2021.01.04
[Git] About Git  (0) 2021.01.02

댓글