[초보자를 위한] gitfetch,gitmerge,gitpull의 차이

2538 단어 GitGitHub
git가 까다로울 때 불평을 많이 하면'gitfetch'와'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의 차이

    좋은 웹페이지 즐겨찾기