티스토리 뷰

-fetch의 인자들

push에서 인자를 변경한 것 처럼, fetch도 인자를 변경할 수 있습니다.

하지만 push는 업로드, fetch는 다운로드니까 조금 다르긴 합니다.

 

$ git fetch origin foo

이러면 git은 원격 저장소의 foo 브랜치로 가서, 현재 로컬 저장소에 없는 커밋들을 가져와 로컬의

o/foo 브랜치 아래에 추가합니다.

 

"그렇다면, 이전 강의처럼 source와 destination를 모두 직접 지정해주면 어떻게될까요?

$ git fetch origin source:destination

(*이 명령어 또한 목적지가 없으면 자동으로 생성합니다)

 

이 명령어로 말이죠"

여러분이 커밋을 직접 로컬 브랜치로 fetch할 열의가 있다면, 네 콜론 참조스펙으로 지정해서 할 수 있습니다.

하지만 체크아웃된 브랜치(작업중인)에 fetch할 수 는 없고 체크아웃되지 않은 브랜치만 가능합니다.

주의 할점이 하나 있는데

-- <source>는 이제 받아올 커밋이 있는 원격에 있는 place를 넣어줘야하고 <destination>은 그 커밋들을 받아올 local의 place를 인자로 넣어줘야 합니다.

 

git push와 정반대로 하는거죠, 데이터를 반대의 방향으로 옮기는 작업이니 이게 더 납득이 갑니다.

 

언급한 것 처럼, 실제로 이것을 하는 개발자들은 많지 않습니다. 이것을 소개하는것은 fetch와 push가 방향이 반대일뿐 컨셉이 비슷하다는것을 표현하기 위해서입니다.

 

-문제

-해결

 

$ git fetch origin master^:foo - master위 커밋(C2, C3)을 다운 후, foo로 지정.
$ git fetch origin foo:master - foo와 윗 커밋을 다운후  master로 지정.
$ git checkout foo - foo와 master을 merge해야 하기때문에 foo로 checkout.
$ git merge master - master와 foo를 merge.

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