티스토리 뷰

Tools/Git

[Git] pull & fetch

SdardewValley 2022. 1. 26. 18:00
반응형

pull

  pull은 원격 저장소에서 현재 commit 보다 더 최신 commit 정보가 있을 때 내려 받는다. 받은 정보는 stage 영역이 아닌 원격 저장소를 위한 임시 브랜치에 저장한다. 이렇게 내려받은 commit들은 로컬 commit과 비교하여 현재 브랜치와 자동으로 merge한다.

  pull 명령어를 하더라도 충돌이 발생하여 자동으로 merge가 되지 않을 때가 있다. 이런 경우네는 fetch를 사용한다.

fetch

  fetch는 원격 저장소를 위한 임시 브랜치에 코드를 내려 받는 것은 같다. 하지만 pull처럼 자동으로 commit을 merge하지 않는다. 단순히 commit들만을 가져 오는 것이다. 이 브랜치는 서버명/브랜치명 형태의 이름을 가진다.

  이렇게 내려 받은 commit은 git merge 브랜치명으로 병합을 하면 된다.

 

최신 상태

  원격 저장소에 push를 하기 위해서는 로컬 저장소가 최신 상태여야 한다. commit이 최신 상태가 아닐 때 git은 push를 거부한다. 따라서 이런 경우에는 pull과 fetch를 사용하여 자동으로 저장소를 갱신해야 한다. 이렇게 최신 상태에서만 push를 허용하면 충돌을 방지할 수 있다는 장점이 있다.

 

  위와 같이 작업을 시작하기 전에 pull을 하고 작업을 한뒤 commit을 생성한다. 그리고 push하기 전에 pull을 하여 최신 상태로 변경하고 push를 하는 식으로 저장소를 최신 상태로 유지하면 충돌을 줄일 수 있다.

 

정리

  pull과 fetch는 원격 저장소의 내용을 가져온다는 것은 동일하다. 하지만 자동으로 merge를 해주느냐 아니느냐에 따라서 차이가 있다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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
글 보관함