가정 : git과 gitproject가 각각 같은 remote에 연결되어 있고 둘이 동시에 작업을 한다.
여기서 둘이 동일한 기간에 다른 작업을 하고 서로 각자 push를 하는 경우는 어떻게 될까?
git이 먼저 push origin을 하고, 뒤이어 git project가 push를 실행하면 오류가 발생한다.
여기서 bash에서는 오류에 대한 여러가지 힌트를 제공한다.
fetch(받아오기)
- git fetch origin 입력
git fetch origin
- git이 작업한 내용이 remote에 올라가 있는데 그 내용을 gitproject가 fetch로 받아온다.
merge(병합하기)
- git merge origin/main
git merge origin/main
git의 충돌 : 여러 개발자가 동시에 같은 파일의 동일한 부분을 수정하여 병합(merge) 시도 할 때 발생할 수 있는 상황
- 이러한 충돌은 Git이 자동으로 해결할 수 없으며, 수동으로 충돌을 해결해야 한다.
Git에서 충돌이 발생하는 일반적인 시나리오(동일한 부분을 수정할 경우)
- 동일 파일의 동일한 부분 수정
- 브랜치 병합
충돌이 발생하면 Git은 해당 파일에 충돌이 발생했음을 알리는 표시를 남긴다. 충돌이 있는 파일은 git status를 사용했을 때 "Unmerged" 상태로 표시된다. -> Unmerged 상태의 파일들을 수정해야 함
git의 충돌 해결하기
충돌을 해결하려면 다음 단계를 수행해야 한다.
충돌 확인 -> 충돌 해결(수동으로 수정) -> 충돌 해결한 파일 스테이징 -> 병합 완료
그렇게 하여 gitproject에서 파일을 수동으로 수정하여 스테이징하여 병합을 완료 시킨다면 git에서 pull을 통해 gitproject의 최신 버전으로 작업한 내용을 가져올 수 있다.
git pull origin
'Pre_Course > Git&Github' 카테고리의 다른 글
| Git&Github_09(브랜치 활용) (0) | 2023.09.03 |
|---|---|
| Git&Github_07(리모트의 레포 복제 및 설정) (0) | 2023.09.03 |
| Git&Github_06(내용 확인, 변경사항(Snapshot) 비교하기) (0) | 2023.09.03 |
| Git&Github_05(local작업 GITHUB에 연동하기) (0) | 2023.09.02 |
| Git&Github_04(COMMIT 실습) (0) | 2023.09.02 |