[초보자를 위한] gitfetch,gitmerge,gitpull의 차이
결론적으로 "fetch와pull은 원격 데이터 라이브러리의 최신 정보를 로컬 데이터 라이브러리로 가져온다"는 조작을 하지만 이전의 절차가 다르기 때문에 설명할 것이다.
git fetch
원격에서 최신 정보를 로컬로 가져옵니다. 그러나 위치는'마스터'지점이 아니라'오리진/마스터'지점입니다.
처음엔 "아무것도 모른다"
"master"지점... 로컬 중심의 통합 지점으로 다른 로컬 작업 지점과 연결됩니다.
origin/master 지점... 로컬 원격 master 지점을 추적하는 원격 추적 지점입니다.
둘 다 현지의 지점이라 이해하기 어렵지만 그림으로 상상하면 이런 느낌이다.
로컬 "master"지점의 이전 단계(원격 가까이)에는 "origin/master"지점이 있으며,gitfetch는 이 "origin/master"지점에서 최신 정보를 수신합니다.
로컬의'master'분지를 얻기 위해gitfetch→gitmerge를 하여'origin/master'→'마스터'에 최신 정보를 가져다 줍니다.여기까지만 처리하고 로컬 파일을 최신 상태로 업데이트합니다.
총결산
git fetch... 원격 "master"지점 → 로컬 "origin/master"지점
gitmerge... 로컬origin/master 지점 → 로컬master 지점
git pull
gitpull은 위의gitfetch,gitmerge를 동시에 진행하는 명령입니다.따라서 원격의'master'분지에서 로컬의'origin/master'분지를 통해 로컬의'master'까지 단숨에 최신 정보를 가져옵니다.
merge까지 단숨에 진행되기 때문에 현지의 지점과 충돌이 발생하기 쉽다는 것이 그 이유다.
총결산
git pull... 원격 "master"지점 → (로컬 "origin/master"지점 →)
로컬 마스터 지점
명령 예제
$ git fetch origin master
$ git merge origin/master
$ git pull origin master
반환 방법
나는 여러 가지 수단이 있다고 생각하지만, 공황 전에 잠시 해결할 수 있는 지령이다.
먼저
$ git fetch
에 오류가 있습니다. 복구하려는 경우로컬 마스터 지점으로 업데이트되지 않았습니다.
$ git reset --hard HEAD
그리고 이전의commit로 돌아가서 없는 일을 하세요.이것은 매우 간단하다.
그리고
$ git pull
오류가 있습니다. 복구하고 충돌을 없애고 싶을 때우선pull=fetch+merge이기 때문에merge를
$ git merge --abort
에서 설명한 대로 해당 매개변수의 값을 수정합니다.그 뒤에$ git reset --hard HEAD
그럼, 이전의commit로 돌아가서 없는 일을 하세요.충돌의 이유를 파악하고merge를 잘 해결하는 것이 가장 좋지만, 그것은 언젠가는 다른 기사로 쓰일 것이다.
참고문
gitfetch에서 gitmerge와pull의 작용을 이해하다
origin master와 origin/master의 차이
Reference
이 문제에 관하여([초보자를 위한] gitfetch,gitmerge,gitpull의 차이), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/wann/items/688bc17460a457104d7d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)