Kawaii_Jordy

[GIT] Conflict(충돌) 났을 때 강제로 Pull 하기 본문

취준/GIT

[GIT] Conflict(충돌) 났을 때 강제로 Pull 하기

Kawaii_Jordy 2021. 10. 12. 11:20

Git Conflict

Git conflict가 나면 당황부터 하게 됩니다. ㅎㅎ

간단한 방법이 있어서 공유해봐요.

 

1
2
3
git fetch --all
git reset --hard origin/master
git pull origin master
cs

 

제가 수정한 파일이 conflict되면 fetch로 파일들을 remote 저장소에서 이전 fetch들을 받은 다음

 

local에서 다시 reset hard를 사용하여 제 상태를 컨플릭트 나기전인 수정하기 전으로 되돌립니다.

 

이후 pull 하면 remote에서 loacal로 정상적으로 다운받아집니다.

 

여기서 pull과 fetch의 차이점이 궁금하실 수 있겠습니다.

 

PULL

Pull로 Git 명령어를 사용할 시에는 현재 작업하고있는 로컬에 커밋을 병합합니다. 

Pull 은 커밋을 먼저 검토하지 않고 자동으로 병합합니다 .

지점을 면밀히 관리하지 않으면 자주 충돌 할 수 있습니다.

 

FETCH

fetch 할 때 Git은 현재 브랜치에 존재하지 않는 커밋을 현재 브랜치에서 수집 한 다음 로컬 리포지토리에 저장합니다 . 

현재 로컬의 상태와 병합하지 않습니다 . 

이 기능은 저장소를 최신 상태로 유지해야하지만 파일을 업데이트 할 때 손상 될 수있는 작업을 수행 할 때 특히 유용합니다. 

커밋을 마스터로 통합하려면 merge를 사용하여 자연스럽게 합칠 수 있습니다.

 

1
2
3
4
git checkout master                                                  
git fetch                                        
git diff origin/master
git rebase origin master
Colored by Color Scripter
cs

 

위와 같은 방법으로 diff로 변화된 것을 확인 한다음에 rebase로 커밋을 재정리 할 수도 있습니다.



Comments