원격저장소에 push 되어있는 branch들을 dev 브랜치로 merge 하는 방법
예시: 두 사람이(A와 B) login
브랜치와 text
브랜치를 따로 따서, 각각 원격에 push하고, 이 브랜치들을 dev 브랜치에 merge하는 과정을 순서대로 나열하면 다음과 같다.
1. A라는 사람이 자신의 로컬에 있는 login
브랜치를 원격 저장소에 있는 login
브랜치에 push 한다.
git add .
git commit -m "add login functions
git push origin login
2. B라는 사람이 자신의 로컬에 있는 text
브랜치를 원격 저장소에 있는 text
브랜치에 push 한다.
git add .
git commit -m "add text functions
git push origin text
3. merge를 담당하는 사람이 자신의 로컬에 있는 dev 브랜치에 원격에 있는 두 브랜치를 모두 merge 한다.
로컬에서 원격 브랜치에 접근하기 위해서는 다음의 명령어를 실행해야 한다.
git remote update
이는, 현재 원격에 있는 브랜치들을 갱신하여, 원격 브랜치들을 tracking 할 수 있게 한다.(remote-tracking branches set up locally)
fetch와 동일하다.
4. 로컬의 dev 브랜치로 이동한다.
git checkout dev
로컬의 dev 브랜치로 이동하여, 원격에 push 되어있는 새로운 브랜치(login/text)를 merge를 해야한다.
5. 원격에 push 되어있는 새로운 브랜치(login/text)를 merge 한다.
login
브랜치 merge
git merge origin/login
text
브랜치 merge
git merge origin/text
이때 겹치는 코드가 있다면 충돌(conflict)이 일어날 수 있다. 충돌이 난다면, 코드를 보면서 적절하게 고치면 된다.
6. 모든 브랜치들을 로컬의 dev 브랜치로 merge 했다면, 이 dev 브랜치를 원격으로 push 한다.
git push origin dev
참고: remote-tracking branches set up locally
7. merge된 원격 dev 브랜치를 다른 팀원이 로컬로 받아와, 코드를 동일하게 해야 한다.
자신의 로컬의 dev 브랜치에서, 원격에 있는 dev 브랜치의 코드와 동일하게 하기 위해서는, 다음의 명령어를 사용해야 한다.
git pull origin dev
이렇게 하면, 모든 새로운 기능들이 추가된 코드를 모든 팀원이 공유하게 되고, 다시 새로운 브랜치를 따서 새로운 기능을 개발하면 된다.