[Git] fetch 사용법
Git에서 fetch는 원격 저장소에서 반영된 내용을 받아 올 때 사용하는 명령어다. 이는 실제 로컬 저장소에 내용이 반영되진 않고, 원격 저장소의 반영된 내용을 참조하기 위해 사용됩니다.
$ git fetch # default remote로부터 fetch $ git fetch -all # fetch from all remotes $ git fetch [repository] # fetch from the repository # git fetch remote1 remote2 remote3 # fetch from multiple repositories $ git fetch [repository] [branch] # fetch from the branch of the repository # git fetch origin b1 b2 b3 # fetch from the multiple branches of the repository # Ex) git fetch origin main From ssh://111.111.11.11/shumin/primary-repo * branch main -> FETCH_HEAD
따라서 만약 원격 저장소의 내용을 실제 파일에 반영하고 싶은 경우 두 가지 방법이 존재한다.
fetch
andmerge
pull
pull
은 fetch
후 merge
를 한 번에 하는 명령이다. 굳이 fetch
를 사용하는 이유는, merge
전에 사전에 어떤 부분이 차이가 나는지를 확인하고 merge
를 할 수 있기 때문이다.
# This is primary repository 1. This is manual file
예를 들면, README.md
파일에 마지막 한 줄을 추가하고 나서 origin
의 main
에 push
를 했다고 가정하면 다른 사용자가 해당 branch에 대해 fetch
후 diff
를 수행하면 다음과 같이 출력된다.
$ git diff main origin/main diff --git a/README.md b/README.md index d3b515c..a69c06c 100644 --- a/README.md +++ b/README.md @@ -1 +1,3 @@ # This is primary repository + +1. This is manual file
그리고 FETCH_HEAD
가 HEAD에서 앞서서 이동하게 된다.
이런 방식으로 merge
전에 사전 확인이 가능하다.
$ git merge origin/main Updating 1c00621..196c65d Fast-forward README.md | 2 ++ 1 file changed, 2 insertions(+)
최종적으로 위와 같이 merge
를 수행하면 된다.