Github_33_pull

지원·2023년 9월 10일
0

Git

목록 보기
33/48
post-thumbnail

git pull

만약 서버에 있는 내용을 받아와서
나의 로컬버전도 서버와 함께 동일하게 만들고 싶다면 git pull 사용

내 로컬에 있는 HEAD와 서버에 있는 HEAD들이
동일한 commit을 가리키고 있기 때문에
내 로컬과 서버는 동기화가 잘 된 것을 확인할 수 있다.

로컬과 서버에서 각각 동일한 파일을 수정했을 떄
서로 새로운 commit이 있는 경우라면 어떻게 될까.

  • 로컬에서 add.txt 수정하고 local change라는 이름으로 commit하기

  • 서버에서 add.txt 수정하고 Remote라는 이름으로 commit하기

현재 상황
Update add.txt commit 다음에
로컬에서는 local change라는 새로운 commit이 있고
서버에는 remote라는 commit이 있는 상황
그리고 이 2가지의 commit 모두 add파일을 수정했다.
동일한 파일을 수정했디때문에 conflict가 발생된다.

이 상태로
git pull을 하면 merge conflict이 발생한다.

이 상태로
git pull --rebase를 하면 conflict이 발생한다.

rebase 이용
서버에 있는 commit을 가지고 와서
그 상태에서 로컬에서 만든 이 commit을 위에다가 적용하기 위함

git mergetool를 열어서 수정을 하고 저장한다.

git mergetool

rebase를 계속한다.

git rebase --continue

깔끔하게 정리된 것을 확인할 수 있다.

서버에 있는 commit들을 그대로 가지고와서
나의 기존의 로컬에서 commit이 되었던 local change만
rebase를 했기 때문에 이 commit만 새로운 commit이 된다.

서버에서 받아온 commit은 그대로 유지되는 것을 확인할 수 있다.

push해서 서버에 업로드한다.

git push


서버에서 확인하면 local change commit이 업로드된 것을 확인할 수 있다.

0개의 댓글

관련 채용 정보