CS

git branch 별 차이 (dev, origin dev, origin/dev)

baek-dev 2025. 2. 11. 18:35

 

명령어 병합 대상 최신 상태 여부 병합 대상의 특성
git merge dev 로컬 dev 브랜치 로컬 dev가 최신 상태여야 함 로컬 브랜치
git merge origin dev 로컬 origin/dev (원격의 로컬 복사본) git fetch로 최신 상태 보장 리모트 트래킹 브랜치
git merge origin/dev fetch된 최신 origin/dev 참조 항상 최신 상태 (fetch 필요) 리모트 트래킹 브랜치

명령어별 설명

1) git merge dev

git merge dev
  • 병합 대상: 로컬 dev 브랜치
  • 로컬 dev 브랜치가 최신 상태여야 제대로 병합할 수 있음.
  • 만약 로컬 dev가 최신 상태가 아니면 구버전 변경사항이 병합될 수 있는 위험이 있음.

최신 상태 보장을 위해서는 병합 전에:

git checkout dev 
git pull origin dev # 로컬 dev를 최신 상태로 업데이트

특징

  • 네트워크가 필요하지 않음.
  • 로컬 dev가 최신 상태라면 간단히 병합 가능.
  • 하지만 로컬 dev가 오래된 상태일 경우 최신 커밋이 병합되지 않음.

2) git merge origin dev

git merge origin dev
  • 병합 대상: 로컬에 있는 origin/dev 브랜치 (원격 dev 브랜치의 로컬 복사본)
  • git fetch를 통해 원격 최신 상태를 가져오고 나서 병합해야 최신 상태가 보장됨.

예제 과정

1. 최신 상태 보장을 위해 먼저 fetch:

 

git fetch origin dev # 원격 dev 브랜치의 최신 상태 가져오기
 
2. 병합:
git checkout fe 
git merge origin dev # fetch된 최신 상태 병합

특징

  • 병합 전에 git fetch가 필요함.
  • 네트워크 연결이 필요하지 않고 로컬에서 병합 가능.
  • git fetch 후 병합하는 경우 최신 상태를 보장.

3) git merge origin/dev

git merge origin/dev
 
  • 병합 대상: fetch된 최신 origin/dev 참조
  • origin/dev은 원격 dev 브랜치의 최신 상태를 가리키는 참조로, 항상 fetch된 최신 커밋과 병합함.

예제 과정

1.fetch 명령어로 최신 상태 가져오기:

git fetch origin dev # 원격 dev의 최신 상태 가져오기
 
2.병합:
git checkout fe git merge origin/dev # fetch된 최신 참조 병합
 

특징

  • 항상 최신 상태를 보장함.
  • 로컬 dev 브랜치가 최신 상태가 아닐 경우에도 안전하게 병합 가능.
  • 네트워크 연결이 필요하지 않고 로컬에서 fetch된 최신 참조와 병합.

 

항목 git merge dev git merge origin dev git merge origin/dev
병합 대상 로컬 dev 브랜치 원격 dev의 로컬 복사본 (origin/dev) fetch된 최신 상태의 origin/dev 참조
최신 상태 보장 여부 로컬 dev가 최신 상태가 아닐 수 있음 fetch 후 병합 시 최신 상태 보장 항상 최신 상태 보장 (fetch된 상태 기준)
네트워크 필요 여부 필요 없음 병합 전에 fetch 필요 병합 전에 fetch 필요
fetch 필요 여부 필요 없음 필요함 필요함
주로 사용하는 상황 로컬 dev가 최신 상태로 업데이트된 경우 병합 원격 최신 상태로 업데이트 후 병합할 때 최신 상태의 원격 커밋을 바로 병합할 때

결론 및 요약

  • git merge dev는 로컬 dev 브랜치가 최신 상태일 때 간단히 병합할 수 있음.
  • git merge origin dev는 원격 dev 브랜치의 로컬 복사본과 병합하므로, fetch 후 병합해야 최신 상태 보장됨.
  • git merge origin/dev는 항상 fetch된 최신 상태를 기준으로 병합하므로 안전하고 추천하는 방식임.

 

 

 

 

출처 : ChatGPT

'CS' 카테고리의 다른 글

다형성  (1) 2025.02.16
DFS, BFS  (0) 2025.02.14
소프트딜리트 Soft Delete, 하드딜리트 Hard Delete  (1) 2025.02.08
동기, 비동기  (3) 2025.02.06
JMeter 성능테스트  (1) 2025.02.04