충돌 해결
우리가 방금 만든 변경 사항을 푸시하려면 충돌을 수동으로 해결해야 합니다. 이를 위해 풀링을 실행하여 원격 저장소에서 가장 최근 변경 세트를 가져오겠습니다.
다음 git pull 명령을 실행합니다
$ git pull origin main
Username:
Password:
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From https://example.backlog.com/git/BLGGIT/tutorial.git
* branch main -> FETCH_HEAD
Auto-merging sample.txt
CONFLICT (content): Merge conflict in sample.txt
Automatic merge failed; fix conflicts and then commit the result.
병합 충돌을 경고하는 메시지가 나타납니다.
sample.txt
를 열면 아래와 같이 해당 파일 섹션에서 충돌을 나타내는 Git에 의해 추가된 마커가 표시됩니다.
Anyone can learn Git with this tutorial and Backlog
add: Register a change in an index
<<<<<<< HEAD
commit: Save the status of an index
=======
pull: Obtain the content of the remote repository
>>>>>>> 17c860612953c0f9d88f313c8dfbf7d858e02e91
변경 사항을 모두 수락하고 마커를 제거하여 충돌을 해결할 것입니다.
Anyone can learn Git with this tutorial and Backlog
add: Register a change in an index
commit: Save the status of an index
pull: Obtain the content of the remote repository
충돌을 해결하고 파일 내용이 변경되면 변경 사항을 커밋합니다.
$ git add sample.txt
$ git commit -m "merge"
[main d845b81] merge
이제 원 격 저장소의 최신 변경 사항으로 업데이트되었습니다.
Git log 명령을 사용하여 저장소 기록의 정확성을 확인할 수 있습니다. --graph
옵션은 브랜치 기록을 그래프 형식으로 표시하고 --online
옵션은 출력 메시지를 압축하려고 시도합니다.
$ git log --graph --oneline
* d845b81 merge
|\
| * 4c01823 append description of the pull command
* | 95f15c9 append description of the commit command
|/
* 3da09c1 append description of the add command
* ac56e47 first commit
이는 두 기록이 새 병합 커밋과 성공적으로 병합되었음을 나타냅니다. 이제 병합 충돌 없이 이 변경 사항을 원격 저장소에 안전하게 푸시할 수 있습니다.