반응형

Git을 이용해 여러사람과 같이 작업을 하다보면 Commit 하는 순간 오류가 발생하는 경우가 종종 있습니다.

오류의 종류는 여러가지가 있겠지만, 다른 사람이 동일한 소스를 이미 수정해서 Commit 해버린 경우에 충돌이 발생해서 오류가 발생하게 됩니다.


이럴 때는 수동 혹은 좋은 툴을 이용해 자동으로 병합(merge) 후 다시 Commit 과 Push를 해야 합니다.


그 과정을 한번 살펴 보도록 하겠습니다.




1. 하나의 원본 소스를 'GONI' 사용자와 '정현우' 사용자가 각각 내려 받습니다.

2. '정현우' 사용자가 먼저 소스를 수정 후 커밋과 푸시를 합니다.



3. 이제 GONI 사용자가 커밋과 푸시를 하려고 합니다.




정현우 사용자가 이미 커밋 한 파일을 뒤늦게 GONI 사용자가 커밋 하려고 한 경우 충돌 발생.




충돌 후 경고 창 닫은 후 화면입니다.


1. Local Repository 커밋은 성공 했지만, 원격 Repository 푸시는 실패 했으니 푸시를 다시 시도해 보라는 내용 입니다.

 2. master 브랜치에 “풀” 할 커밋이력 1개, “푸시” 할 커밋이력 1개 있다는 뜻 입니다.

- “풀” 할 커밋이력은 정현우 사용자가 커밋한 이력.

- “푸시” 할 커밋이력은 GONI 사용자가 커밋한 이력.

 3. 정현우 사용자가 이미 커밋한 이력 입니다.

- 충돌이 발생해서 원격 repository 브랜치(붉은색 그래프)가 분기 된 상태로 보입니다.(origin/master)

 4. 현재 사용자인 GONI 사용자가 커밋한 이력 입니다. 원격 repository의 master 브랜치에는 합류하지 못하고 현재 Local repository 의 master 브랜치에만(푸른색 그래프) 있는 상태 입니다. 






























반응형

+ Recent posts