변경 이력을 병합하는 과정이라고 할 수 있고 충돌 해결 이라고도 한다.
충돌이 해결 됬다. -> merge commit
add B sentence 라고 웹에서 변경을 한다.
git log로 기록을 확인해보면 웹 상에서 변경한 이력은 나와있지 않다.
여기서 터미널로 변경을 해보자
vim a.txt로 들어가서 내용을 수정하고 status로 상태를 확인해 보면 파일이 수정되었다고 뜬다.
해당 파일을 add 해준 다음 status로 다시 한번 상태를 확인해 보고
commit까지 해주자
다시 한번 기록을 확인하면 vim으로 수정했던 내용이 잘 들어갔다
그런데 push를 하면 에러가 발생하는데
이게 무슨 일인가 싶어 pull을 해보면
병합 충돌이라고 뜬다.
처음에 웹 상에서 변경한 내용과 충돌이 일어난 것이다.
a.txt를 확인하면 이렇게 뜨는데
충돌이 생긴 곳을 지침해주고 있다.
Head란 현재 local에서 작업하고 있는 local branch를 가리키는 포인트로
가운데 접근선을 기준으로 위쪽으로부터는 local에서의 변경사항
밑에는 원격에서의 변경사항을 커밋한 버전의 값이다.
원하는 내용만 남기고 나머지를 다 지워주고 저장하자
다시 status를 보면 또 에러가 뜨는데 이것은 충돌 해결의 변경 사항을 add해주지 않았기 때문
다시 add해주고 status를 보면 add가 된 것을 확인할 수 있다.
commit을 해줄 때 -m을 안써줘도 되는데 그 이유는
충돌이 일어났을 경우에는 알아서 컴퓨터가 git에서 자체 메세지를 만들어 주기 때문이다. (물론 충돌 상황에서만)
기록을 확인하면 병합한 기록까지 나온다.
마지막으로 push를 해주자
웹 상으로도 해결된 것을 볼 수 있다.