인프런 커뮤니티 질문&답변

초보개발자님의 프로필 이미지
초보개발자

작성한 질문수

다른 팀원이 최신화시킨 원격 dev 브랜치를 가져올 때...

작성

·

152

0

팀원들과 토이프로젝트를 하다가 궁금한 git pull 과 관련하여 궁금증이 생겨서 질문드립니다... github에 원격 master 브랜치로부터 원격 dev 브랜치를 만들고 거기서 파생된 feature 작업브랜치에서 다시 개인 이름을 넣어 개인 작업 브랜치를 통해 로컬에서 작업했는데요. 이 때, 다른 팀원이 작업한 내용을 dev에 merge 했고 그 최신 내용을 제 로컬 작업브랜치에 추가로 가져오고 싶은데 이럴 때 어떻게 하면 좋을까요...?

 

먼저 로컬 dev 브랜치로 체크아웃을 하고 git pull origin dev 명령어를 통해 로컬 dev 브랜치를 최신화시켰습니다. 그 다음에 개인 로컬 작업 브랜치로 다시 체크아웃하고 git merge dev 를 통해 최신화된 로컬 dev 브랜치를 작업 브랜치에 병합시켰는데요. 커밋 해야할 내역을 보니 이전에 다른 팀원들이 원격에서 최신화한 내용들이 변경사항으로 들어가있더라구요... 그래서 그 부분까지 커밋하게되면 그 분들이 작업한 부분을 제 커밋메세지로 덮어쓸거같아서 걱정입니다.. 제가 어느 부분에서 잘못 진행한걸까요...?

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

초보개발자님이 진행한 과정은 일반적인 워크플로우에 따라 올바르게 진행하신 부분으로 보입니다. 원격 dev 브랜치의 최신 변경사항을 로컬 dev 브랜치에 반영하고, 이를 개인 로컬 작업 브랜치에 병합하는 과정은 협업 시 자주 사용되는 방식입니다.

병합 과정에서 다른 팀원들이 원격에서 최신화한 내용이 변경사항으로 나타나는 것은 정상적인 현상입니다. git merge 명령어를 사용할 때, git은 두 브랜치의 차이점을 합치려고 시도하고, 이 과정에서 양쪽 브랜치의 커밋들을 새로운 커밋으로 통합합니다.

병합 후에 생성되는 커밋에는 여러 개발자의 변경사항이 포함될 수 있으며, 이 커밋 메시지는 병합을 나타내는 메시지로, 다른 개발자의 작업을 덮어쓰지 않습니다. 병합 과정에서 생성된 커밋은 주로 “Merge branch ‘dev’ into [개인 작업 브랜치 이름]“과 같은 메시지를 사용합니다.

따라서, 다른 팀원들의 작업을 커밋 메시지로 덮어쓰는 것이 아니라, 여러분의 작업 브랜치에 dev 브랜치의 변경사항을 정상적으로 병합한 것입니다. 이 과정에서 중요한 것은 병합 시 발생할 수 있는 충돌(conflict)을 적절히 해결하는 것입니다.

만약 병합 과정에서 충돌이 발생하지 않았고, 병합된 커밋이 정상적으로 생성되었다면, 여러분은 올바르게 작업을 진행하신 겁니다. 추후에 이 작업 브랜치를 다시 원격 dev 브랜치에 병합(또는 Pull Request를 통해)할 때, 다른 팀원들의 변경사항과 함께 여러분의 변경사항도 함께 병합됩니다.

변경사항을 확인하는 과정에서 혼동이 생기신 것 같은데, 걱정하지 않으셔도 됩니다. 협업시 git을 사용하는 목적 중 하나가 바로 이러한 변경 관리이며, git는 여러분의 작업이 다른 개발자의 작업을 덮어쓰지 않도록 합니다.

초보개발자님의 프로필 이미지
초보개발자

작성한 질문수

질문하기