티스토리 뷰

728x90
반응형

여러 사람과 작업하거나 혼자 여러 컴퓨터로 작업을 할 때 Pull과 Fetch는 피할 수 없는 명령어이다.

 

특히 여러 사람과 협업할 땐 Fetch가 자주 쓰이는데, 그 차이에 대해서 정리하고 가자.

 

먼저 위 그림은 혼자 작업하는 경우의 흐름이다.

 

그림 위에 Pull과 Fetch를 표시하면 아래와 같이 된다.

 

설명을 간단하게 하자면

 

  • git fetch - 원격 저장소의 커밋 기록을 로컬 저장소로 가져온다. 병합 전 변경 내용을 확인하고 싶을 때 쓰인다.
  • git merge - 가져온 브랜치(소스코드는 유지한 채 변경사항을 적용한 버전)를 내 작업공간과 병합한다.
  • git pull - git fetch + git merge

가 되겠다. 즉, git pull은 git fetch와 git merge를 자동으로 실행해준다는 뜻이다.

 

그러면 이어서 질문이 생기는데, git clone과 git pull은 같은 기능을 하는 걸까?

 

정답부터 말하면 당연히 아니다. 간결하게 차이를 보자.

 

  • git init - 새로운 저장소 생성
  • git remote add origin <url> - URL을 원격 저장소로 지정
  • git pull origin main - 원격 저장소에서 내 작업공간으로 Fetch 후 Merge
  • git clone<url> - git init + git remote add origin <url> + git pull origin main

즉, git clone은 위의 모든 것들을 포함하는 명령어이자, 자동으로 원격 저장소 등록까지 해주는 명령어가 된다.

 

이와 같은 성질 때문에 git clone은 작업을 시작하는 초창기 다운로드에 사용하고

 

작업이 진행되는 동안은 git fetch나 git pull을 사용하는 것이다.

 

요약:

 

반응형

'Development > Git' 카테고리의 다른 글

[Git]로컬 폴더 원격 레포지토리에 올리기  (1) 2023.01.26
[Git]Git Commit Message Guidelines  (0) 2022.09.27
[Git]GitHub Workflow  (2) 2022.09.08
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함