[Git Remote] git pull을 이용해 fetch와 merge 한 번에 하기

2022. 1. 9. 10:25· CI, CD/Git Remote
목차
  1. git pull이란?
  2. git pull로 인한 conflict
반응형

git pull이란?

git pull은 Remote Repository의 커밋을 가져온 다음(git fetch) 현재의 Working Directory에 Merge하는 동작을 하는 명령어이다.

 

 

git pull = git fetch + get merge

 

예를 들어 다음과 같은 상태가 있다고 해보자. GitHub의 master 브랜치에는 fourth commit까지 있다. 하지만 Local master 브랜치는 second commit까지 밖에 없다. Remote Branch 를 트래킹하는 origin/master 브랜치도 fetch가 안되어 second commit을 바ㅏㄹ보고 있다.

그림1. git pull 예시

 

 

이 상태에서 git fetch를 하면 remote 브랜치를 트래킹하는 origin/master가 다음과 같이 변경된다. [그림2]처럼 origin/master가 Remote master branch의 최신 커밋을 트래킹해서 fourth commit까지 가져온다.

 

그림2. git fetch

 

 

그 후 origin/master를 Local의 master로 머지시키면 [그림3]과 같이 Local master branch도 fourth commit이 HEAD commit이 된다.

그림3. git merge

 

이 동작이 바로 git pull의 동작이다. git pull은 git fetch와 git merge 동작을 한 번에 하는 명령어이다. 이로 인해 git pull에서는 충돌이 일어날 수 있다.

 

 

 

git pull로 인한 conflict

git pull은 merge 동작을 포함하기 때문에 conflict이 일어날 수 있다. 예를 들어 [그림4]와 같이 Local master branch에 new commit이 있는 상태에서 remote branch에 새로운 커밋이 있다면 이 둘이 같은 파일을 수정했을 경우 conflict가 일어난다.

 

그림4. git pull conflict

 

이 conflict는 Local conflict를 해결하는 방법으로 해결하면 된다. 만약 conflict을 해결하는 방법이 궁금하면 이글을 보도록 하자.

 

[Git] git merge 한 번에 정리하기 : Fast Forward Merge, Commit Merge, Conflict Merge

Git merge란? git branch를 다른 branch로 합치는 과정을 merge라 한다. merge의 기본 단위는 브랜치이며, git merge 명령어로는 커밋 단위로 합치기가 불가능하다. Fast Forward Merge 가장 기본적인 merge는 바..

kotlinworld.com

 

반응형
저작자표시 비영리 변경금지
  1. git pull이란?
  2. git pull로 인한 conflict


 

Kotlin, Android, Spring 사용자 오픈 카톡

오셔서 궁금한 점을 질문해보세요!
비밀번호 : kotlin22

open.kakao.com

'CI, CD/Git Remote' 카테고리의 다른 글
  • [GitHub] README.md 파일에 스타일을 적용하는 방법을 살펴보자.
  • [Git Remote] Git Remote에 저장된 브랜치 관리하기 : 브랜치 확인, 브랜치 가져오기
  • [Git Remote] git fetch사용해 remote repository(GitHub, GitLab, etc) 트래킹하기
  • [Git Remote] git remote, push를 이용해 Remote 저장소(GitHub, GitLab, etc)를 다루는 방법
Dev.Cho
Dev.Cho
'조세영의 Kotlin World'는 Kotlin를 전문적으로 다루는 개인 기술 블로그입니다. Kotlin 세계에 대한 양질의 자료를 제공하며 Kotlin, Android, Spring, CI, CD 분야에 대해 다룹니다.
Dev.Cho
조세영의 Kotlin World
Dev.Cho
전체
오늘
어제

블로그 메뉴

  • LinkedIn
  • GitHub
  • 분류 전체보기 (491)
    • Kotlin (104)
      • Class and Interface (19)
      • Variable and Function (8)
      • Modifier (5)
      • Collection (14)
      • Time (8)
      • 동시성 제어 (7)
      • Reactive Programming (2)
      • Paradigm (2)
      • Kotlin 자료구조 (15)
      • Design Patterns (11)
      • Algorithm (3)
      • Exception (1)
      • 기타 (9)
      • Update History (0)
    • Coroutines (32)
      • Coroutine Basics (18)
      • Flow (9)
      • CoroutineScope (3)
      • Debugging (2)
    • Testing Codes (28)
      • Test 기본 (3)
      • JUnit5 (9)
      • MockK (6)
      • Testing Coroutines (1)
      • Testing Android (8)
      • Test 기타 (1)
    • Spring (50)
      • Dependency Injection (18)
      • Settings (5)
      • REST API (0)
      • DevTools (1)
      • MVC (18)
      • Error (2)
      • MongoDB (2)
      • Database (4)
    • Android (39)
      • Architecture (2)
      • Component (5)
      • Manifest (1)
      • Lifecycle (2)
      • Dependency Injection (17)
      • Resource (1)
      • Storage (1)
      • Security and Optimization (1)
      • WebView (2)
      • Error (6)
    • Android Jetpack Compose (33)
      • Compose (6)
      • Compose Modifier (13)
      • Compose Resource (4)
      • Compose State (4)
      • Compose Side Effect (6)
    • Android Jetpack Compose UI (48)
      • Compose Layout (14)
      • Compose Text (10)
      • Compose Button (5)
      • Compose Dialog (2)
      • Compose TextField (0)
      • Compose UIs (4)
      • Compose Animation (1)
      • Compose Canvas (12)
    • Android Jetpack (10)
      • Datastore (5)
      • ViewModel (4)
      • LiveData (1)
      • Paging (0)
    • KMP (5)
    • Programming (4)
    • Machine (9)
      • JVM (7)
      • Linux (2)
    • CI, CD (74)
      • Gradle (12)
      • Groovy Gradle (5)
      • Git (25)
      • Git Remote (5)
      • GitHub (5)
      • GitHub Actions (21)
    • Network (33)
      • GraphQL (12)
      • HTTP (11)
      • Basic (9)
    • 오픈소스 (3)
    • Database (3)
      • MongoDB (3)
    • IDE (6)
      • Android Studio (2)
      • Intellij (4)
    • Firebase (1)
    • Javascript (9)

공지사항

  • 코틀린 코루틴 완전 정복 강의 in 인프런 오픈
  • 코틀린 코루틴의 정석 책 출간
  • Kotlin Coroutines 공식 기술 문서 한국어 번⋯
  • GitHub에서 조세영의 Kotlin World를 Foll⋯
  • 문의&제안

인기 글

태그

  • github
  • 스프링
  • Class
  • GIT
  • GraphQL
  • junit4
  • Spring boot
  • Kotlin
  • 코틀린
  • compose
  • junit5
  • Jetpack Compose
  • gradle
  • Spring
  • 안드로이드
  • 코루틴
  • github actions
  • Android Compose
  • kotlin spring
  • junit
  • 유닛 테스팅
  • java
  • 의존성 주입
  • Coroutine
  • Dependency Injection
  • Unit Testing
  • dagger2
  • flow
  • HTTP
  • Android

최근 글

반응형
hELLO · Designed By 정상우.v4.3.0
Dev.Cho
[Git Remote] git pull을 이용해 fetch와 merge 한 번에 하기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.