[git] 충돌 체험기

자료 2011. 11. 9. 09:46
비록 2인(나포함)이지만 DVCS로 소스를 관리하고 있다. 저장소는 bitbucket.org(빛바굴이라고 부른다).
오늘은 오랜만에 A님께서 푸시를 하셨다.

직진하는 곰돌이가 나, 알 수 없는 도형 A.


그때 나는 무언가 로그를 보겠다고 소스에 손을 대고 있었다.
그 와중에 pull을 하니...

ZMBP:************* zeidepeace$ git pull
remote: Counting objects: 23, done.
remote: Compressing objects: 100% (15/15), done.
remote: Total 15 (delta 11), reused 0 (delta 0)
Unpacking objects: 100% (15/15), done.
From bitbucket.org:########/*************
   559aad6..9e2d63d  master     -> origin/master
Updating 559aad6..9e2d63d
error: Your local changes to the following files would be overwritten by merge:
Classes/Controllers/MobileWeb/MobileWebViewController.m
Classes/Extends/MOKMutableURLRequest.m
mok.front.ios.xcodeproj/project.pbxproj
mok_front_ios-Info.plist
mok_front_ios_Prefix.pch
Please, commit your changes or stash them before you can merge.
Aborting

예상했던대로 일이 생겼다. 
지금 이 상황은,  5개의 파일을 로컬저장소에서 수정하고 있었는데 원격저장소의 파일을 불러와(pull) 덮어씌우게 된다고 말해주는 것이다.

그래서 다음과 같이 처리했다.
1. 지금 상황을 commit까지만 한다.
2. HEAD를 이전으로 돌린다.
ZMBP:************* zeidepeace$ git reset --hard HEAD@{1} 
3. 로컬저장소에서 pull한다. 

마지막에 푸시를 해서 가지를 늘려보았다.

양쪽 소스를 머징하는게 아니라 받기만 하면되는지라 간단하게 끝났다.
 
PS)이력을 볼 수 있다.
ZMBP:************* zeidepeace$ gitk 

 
Posted by zeide
,