홍차의 미로찾기

[git] 깃 커밋 당겨오기 - git pull 본문

프로그래밍/GIT

[git] 깃 커밋 당겨오기 - git pull

홍차안디 2024. 7. 23. 17:59
반응형

[git/github] git, github설정 프로세스 모음

 

 

1) git 커밋 당겨오기 (git pull)

 

github의 원격 리포지토리에 local 작업 내용을 업로드하려고한다면

우선, 원격 리포지토리의 버전과 현재 local 프로젝트의 버전을 맞춰야합니다.

즉 push를 위해서는 local 버전의 최신화가 필요합니다.

여러 개발자가 동시에 작업하는 경우, 원격 리포지토리의 버전은 수시로 변경될 수 있습니다.

이런 경우에는 pull 이라는 명령어를 이용해서 원격의 작업내용을 local로 가져올 수 있습니다.

git pull

 

2) pull 할 것이 있을 때 push 하는 경우 (충돌 해결하기)

같은 프로젝트를 개발하는 다른 개발자가 먼저 push를 한 경우를 의미합니다.

이런 경우에 원격의 버전과 local의 버전이 다르기때문에 push를 하면 충돌이 발생합니다.

이런 경우 두 가지 방식이 존재합니다.

git pull --no-rebase
git pull --rebase

 

2-1) git pull --no-rebase

 

no-rebase 사용 흐름입니다.

# 원격으로 local 작업 올리기
git push

# --- 충돌로 인한 오류 발생 pull 필요

# 원격 작업 당겨오기
git pull --no-rebase

# --- 충돌 발생한 파일 수정

# add, commit 작업
git add .
git commit

# --- 자동으로 커밋 메시지 작성됨. vi 화면 나오면 :wq 로 나오기

 

아래는 —no-rebase를 사용하는 경우의 버전 모양입니다.

왼쪽에 직선 버전이 local main, 초록색으로 분기가 생긴 모양이 원격 main입니다.

—no-rebase 를 사용한 경우에는 아래와같이 별도 분기가 생기는 게 특징입니다.

 

 

 

 

 

 

2-2) git pull —rebase

--rebase 사용 흐름입니다.

--rebase 사용 흐름입니다.

# 원격으로 local 작업 올리기
git push

# --- 충돌로 인한 오류 발생 pull 필요

# 원격 작업 당겨오기
git pull --no-rebase

# --- 충돌 발생한 파일 수정

# 변경사항 저장
git add .

# 병합 rebase 계속 진행
git rebase --continue

# --- 자동으로 커밋 메시지 작성됨. vi 화면 나오면 :wq 로 나오기

# 다시 github 업로드 진행
git push

 

 

pull rebase 방식을 사용하면 원격의 커밋 이후로컬 커밋이 이어서 붙습니다.

 

 

 


 

+

 

두 건 이상의 커밋 건 충돌을 rebase로 해결하는 방식

[git] 여러 건의 커밋 충돌 git pull --rebase 하기 (vsCode)

반응형
Comments