낙서장
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해결 저장 애드 커밋 푸시