Git 보충 (Pull, Push, Fetch)

kangking·2024년 5월 20일
0

기반기술

목록 보기
13/14
post-thumbnail

공통점

같은 파일에 대해 서로 추적하지 못하는 변경사항이 생기면 conflict를 발생시킨다. 단순 추가는 conflict를 발생시키지 않는다.

병합의 기준은 항상 HEAD이며, 1개의 브랜치만 해당됨을 명심!

pull: 원격을 HEAD로 병합
push: HEAD를 원격에 병합

fetch

원격 레포 -> Remote 디렉토리로 최신 버전을 가져와 Local과 비교해 변경이 있는지 알려준다. (실제 병합은 X)

  • 사용

    git fetch <원격 레포명>
  • fetch의 과정

pull

현재 HEAD로 원격 브랜치를 병합하는 명령어.

  1. 원격레포 -> Remote로 fetch 진행
  1. remote에 불러와진 원격 브랜치와 local의 HEAD를 비교하여 merge한다.
  • 사용

    git pull <원격 레포명> <가져올 원격 브랜치명>
  • 주의사항

    명령어에 명시된 브랜치명은 가져올 원격 브랜치의 이름이다.

    여러개의 브랜치를 병합하는게 아니라 지정한 브랜치끼리만 병합한다.

    git pull만 사용시 현재 HEAD에 Stream이 연결된 원격 브랜치를 병합한다.
    (스트림 확인은 git branch -vv)

    스트림이 연결되어있지 않은 브랜치에 HEAD가 위치한 상태에서 pull을 사용하면 HEAD와 스트림이 연결된 원격 브랜치가 없기 때문에 에러발생

  • pull의 과정

pull 사용 예시

  • git pull(위험)

  • git pull <원격 레포> <!HEAD인 원격 브랜치>(위험)

  • git pull <원격 레포> <HEAD와 일치하는 원격 브랜치>(적절)

push

현재 HEAD를 원격 브랜치로 병합하는 명령어.

바로 원격 브랜치에 변경사항이 반영되기 때문에 브랜치를 분기하여 push하고 이를 PR로 만들어 검토 후 main 브랜치에 merge한다.

  • 주의사항

    pull과 마찬가지로 같은 브랜치로 push를 해야 바람직 하다.

    만약 원격에 HEAD와 같은 브랜치가 없다면 -u옵션으로 스트림을 만들어 원격에도 HEAD브랜치를 추가해준다.

push 사용 예시

  • git push(위험)

  • git push <원격 레포> <!HEAD인 원격 브랜치>(위험)

  • git push <원격 레포> <HEAD와 일치하는 원격 브랜치>(적절)

  • git push -u <원격 레포> <HEAD와 일치하는 브랜치명>(적절)

profile
하루하루 의미있게

0개의 댓글