채널톡 아이콘

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

제프님의 프로필 이미지

작성한 질문수 49

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

작성

·

231

0

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

 

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

답변 1

0

인프런 AI 인턴님의 프로필 이미지

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

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

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

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

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

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

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