글을 쓸까 말까 고민했다.
간단한 git 명령어인 pull과 merge를 헷갈려했다는 사실이 창피했기 때문이다. 😅
하지만 기록하지 않으면 금방 잊어버릴 것 같았다. 지금이라도 오래 기억할 수 있도록 기록해두려고 한다.
(틀린 내용이 있을 수도 있으니 언제든 피드백은 환영한다. ^^;;)
배경 설명
팀에서 작업 중인 브랜치들을 분리해야 할 상황이 발생했었다.
작업 시나리오에 Merge와 Pull을 작성했는데 문득 두 개 명령어는 어떤 차이가 있는지 , 무엇이 맞는 건지 궁금해졌다.
확인한 내용
책(팀 개발을 위한 Git, Github 시작하기)과 블로그를 참고했고 간단한 테스트를 진행했다.
Pull (Fetch + Merge가 합쳐진 작업): 원격 저장소의 변경사항을 로컬 저장소로 가져와서 병합하는 것.
테스트 내용:
콘솔에서는 test2 브랜치를 test1으로 merge 한다는 내용을 마지막에 확인할 수 있다.
커밋로그에서는 git log에는 새로운 merge로 인한 새로운 commit이 생성된 것을 확인할 수 있었다.
Merge: 서로 다른 브랜치의 변경사항을 합치는 작업.
테스트 내용:
콘솔에서 pull과 동일하게 test2 브랜치를 test1으로 merge 한다는 내용을 마지막에 확인할 수 있다.
커밋로그에서도 Pull과 마찬가지로 git log에는 merge로 인한 새로운 commit이 생성된 것을 확인할 수 있었다.
결론
적어도 작성한 작업 시나리오에서는 '동일한 작업으로 봐도 된다'라고 결론을 내렸다.
추가 내용
추가로 팀의 Git 컨벤션을 좀 더 상세하게 이해할 수 있었다. 사용하는 방식을 간단하게 설명하면 아래와 같다.
- master에서 작업 브랜치를 checkout 한다.
- 작업이 끝난 뒤, 최신 master에서 작업 브랜치를 pull 한다.
- 그 후 배포 브랜치(mgt, front)에 push 한다.
새로운 동료들이 종종 3번 과정에서 push가 아니라 pull로 진행하는 게 문제가 경우가 있었다. (다음에 배포하는 사람은 push 할 때 reject 됨)
이럴 때 나는 단순히 commit log가 더 생기기 때문에 mgt에서 pull 하지 말고 master에서 push 부탁한다고 말했다.
틀린 이야기는 아니었지만 상세한 설명이 어려웠는데 이번 기회에 확실하게 이해했고, 좀 더 상세한 설명이 가능해졌다.
다음에 누군가 같은 실수를 했다면 이렇게 알려주고 싶다.
배포 브랜치에서 pull을 하게 되면 merge commit이 한번 더 생기기 때문에
이 브랜치들이 master 브랜치보다 더 최신의 commit을 가리키게 된다.
이후 배포하는 사람이 master 브랜치의 커밋을 push 하려고 할 때 오류가 발생한 것이다.(master가 old commit을 참조하기 때문)
이 상황에서 해결책은 더 최신의 commit을 보는 master_mgt를 master에 push 해야 하는 것이다.
이렇게 된다면
불필요한 merge commit log가 생기고 결국 두 번 작업을 해야 되기 때문에 기존의 팀 컨벤션이 좀 더 효율적이다.
이라고 말할 수 있다.
과거와 비교해서 상대에게 알려주는 내용은 크게 달라진 게 없다. 하지만 과거에는 내가 명확히 알지 못하는 상태에서 누군가를 알려줬다면 지금은 명확히 아는 것을 자신 있게 알려줄 수 있다.
결론을 얻는데 오래 걸리지 않았고 단순한 내용이었지만 다시 한번 명확하게 개념을 학습했다는 것에 의의를 가졌고 모르는 것은 창피해하지 말고 그때라도 확실히 알아두자라고 생각했다.
애매하게 아는 것보다 명확하게 모르는 게 낫고, 명확하게 모르는 것보단 명확하게 아는 게 낫다!
'MyStory > dev_life' 카테고리의 다른 글
레디스를 이용한 데이터 캐싱 도입기 - Part2 (0) | 2023.04.03 |
---|---|
레디스를 이용한 데이터 캐싱 도입기 - Part1 (0) | 2023.03.20 |
개발자 퍼스널 브랜딩 과정 후기 :Know yourself (0) | 2023.02.22 |
동시성 이슈를 고려해서 쿠폰 발급하기 (Redisson을 활용한 분산 락 처리) (0) | 2023.02.19 |
우아한 테크 캠프 프로 5주차 회고 - 1 (0) | 2021.03.14 |