우리 프로젝트에서는 협업을 위한 repository가 있었다. 이 repository에는 master, feedback, weekly 등의 브랜치가 있었고, 나는 이 repository를 fork한 후 이 저장소를 내 컴퓨터에 clone 했다.
내가 해야 할 일은 weekly 브랜치에서 작업한 후 작업물을 fork한 저장소의 weekly브랜치에 PR을 날리는 것이었다.
그 다음 테크리더님이 팀원들의 코드를 merge 하면 이를 내 로컬로 받아온 후 작업을 이어나가야한다.
PR까지는 했지만 코드를 내 로컬로 pull해오는 것에서 문제가 생겼다. 이를 처음 해보는 나는 그냥 git pull하면 되는 것 아닌가?라고 생각했지만
이미 업데이트 되었다고 뜨고 코드에는 아무런 변화가 없었다. 생각해보니 지금 내 로컬과 연결되어있는 저장소는 내가 포크해 온 내 계정 속 저장소라는것을 깨달았다.
그래서 이를 위해 구글링을 열심히 하였다. 그 결과를 기록해보려고 한다!
Merge 안내 받기
merge 권한이 있는 팀원으로부터 merge가 완료되었다는 것을 안내받는다. 만약 merge가 다 되지 않았는데 pull을 받으면 나중에 또 받아야하고, 충돌의 위험이 있다.
upstream 저장소 확인하기
git remote -v
명령어를 통해 upstream 저장소가 있는지 확인한다.
나는 origin 저장소밖에 없었다.
upstream 저장소에 fork한 Repositoty 추가하기
git remote add upstream [fork한 repository 주소]
이렇게 한 후 다시 확인하면
이렇게 추가된 것을 볼 수 있다.
인텔리제이에서도 확인할 수 있다.
fetch하기
fetch는 원격저장소에 있는 코드를 로컬저장소에 가져오는 역할을 한다. 이는 단순히 가져오는 것이기 때문에 코드에는 반영이 되지 않는다.
git fetch upstream
merge하기
merge는 내 로컬에 위에서 가져온 코드를 반영하는 과정이다.
git merge upstream/브랜치명
이 과정을 거치면 intellij에 코드들이 다 들어왔을 것이다.
push하기
그럼 이 코드들을 다시 내 계정의 원격 저장소에 올려야한다. 이건 그냥 기존대로 push하면 된다.
git push
이제 본격적으로 협업 해야하는데 깃을 다루는게 능숙하지 않을 것 같다
조만간 나머지공부 해야겠다.
'협업 툴 > git' 카테고리의 다른 글
[git] 깃허브 정리 (0) | 2024.09.29 |
---|