낙서장

git 깃 // 공동작업 시 merge 머징 CONFLICT 문제 해결법

Jaybon 2020. 7. 30. 23:21

 

자신이 처한 상황을 비교해보고 맞는 것을 선택

 

1. 파일 수정 저장 없이 바로 PULL
+ (상대방이 내용 수정하고 먼저 PUSH한 상태)

 

정상적으로 원격저장소에서 개인저장소로 파일이 전송된다.

이후 진행

(작업 -> 저장 -> ADD -> COMMIT -> PUSH)

 

 

 

2. 파일을 수정 저장 하고 ADD와 COMMIT 안하고 PULL
+ (상대방이 내용 수정하고 먼저 PUSH한 상태)

 

변경된 파일이 있기 때문에 PULL이 중지된다

이후 진행

(ADD -> COMMIT -> PULL -> [3번 4번 5번 6번 상태 중 하나])

 

 

 

3. 파일 수정 저장 하고 ADD와 COMMIT을 하고 PULL
+ (상대방이 다른 내용 수정하고 먼저 PUSH한 상태 (미충돌))

 

이후 진행

(PUSH)

 

 

 

4. 파일 수정 저장 하고 ADD와 COMMIT을 하고 PULL
+ (상대방이 같은 내용 수정하고 먼저 PUSH한 상태 (충돌))

 

CONFLICT가 뜨면서 머징 상태가 된다

이후 진행

(CONFLICT해결 -> 저장 -> ADD -> COMMIT -> PUSH)

 

추가적으로 CONFLICT 파일을 다시 확인하려면

GIT STATUS

 

 

 

5. 파일 수정 저장 하고 ADD와 COMMIT을 하고 PUSH
+ (상대방이 다른 내용 수정하고 먼저 PUSH한 상태 (미충돌))

 

rejected, 즉 거부를 당한다

이후 진행

(PULL -> PUSH)

 

 

 

6. 파일 수정 저장 하고 ADD와 COMMIT을 하고 PUSH
+ (상대방이 같은 내용 수정하고 먼저 PUSH한 상태 (충돌))

 

거부를 당해서 PULL을 하면 MERGING 상태가 된다 (CONFLICT)

이후 진행

(CONFLICT해결 -> 저장 -> ADD -> COMMIT -> PUSH)

 

추가적으로 CONFLICT 파일을 다시 확인하려면

GIT STATUS

 

 

 

요약

컨플릭트가 없을 시

애드 커밋 푸시 -> 리젝트 

풀 -> 노머징(NO CONFLICT)

푸시

 

컨플릭트가 있을 시

애드 커밋 푸시 -> 리젝트

풀 -> 머징(CONFLICT)

CONFLICT해결 저장 애드 커밋 푸시