fetch
$ git fetch [remote]
를 통해 리모트 상황 최신 업뎃
- 상황만 업데이트 하는 것이지 [유저 A의 로컬/master] <-> [origin/master] 가 동기화 되는 것 X
$ git fetch <remote_alias>
$ git fecth <remote_alias> <branch>
$ git fetch --all
e.g.,
$ git fetch origin
Otions | description |
---|
--all | Fetch all remotes |
- fetch하면, .git/FETCH_HEAD가 생성된다.
- FETCH_HEAD는 당연히 방금 fetch한 remote/branch
![](https://velog.velcdn.com/images%2Fmarkyang92%2Fpost%2Fe0b54987-e65a-4104-82cd-8a615ee47c13%2Fimage.png)
- fetch만으는 동기화가 안됨
$ git checkout FETCH_HEAD
로 방금 fetch한 커밋으로 체크아웃은 가능
$ git checkout FETCH_HEAD
- ffmpeg local repo를 origin remote와 update할 필요가 있다.
$ git fetch origin
- FETCH_HEAD checkout
$ git checkout FETCH_HEAD
![](https://velog.velcdn.com/images%2Fmarkyang92%2Fpost%2F071351bc-a45e-4ccb-b938-a20294eb4d69%2Fimage.png)
origin/master
를 fetch했으니까 당연히 FETCH_HEAD
는 origin/master
local의 master
브랜치는 저기 아래...
![](https://velog.velcdn.com/images%2Fmarkyang92%2Fpost%2F9c6215dc-bb15-449a-9639-68d97232d3b1%2Fimage.png)
- local의 master를 어떻게 해야할까.. 동기화 참고
Local 동기화
1. pull
![](https://velog.velcdn.com/images%2Fmarkyang92%2Fpost%2Fdc096071-5b77-4449-a30c-8e0b3f1f88d1%2Fimage.png)
- pull: local의 수정 사항 + remote의 변경사항
$ git pull origin master
2. reset
$ git reset --hard [to Branch]
$ git reset --hard origin/master
- to Branch에 맞게 내껀 다날림
![](https://velog.velcdn.com/images%2Fmarkyang92%2Fpost%2Fdc096071-5b77-4449-a30c-8e0b3f1f88d1%2Fimage.png)
![](https://velog.velcdn.com/images%2Fmarkyang92%2Fpost%2F12ffa020-4e4c-414c-abd2-32babd5f5ec4%2Fimage.png)
특정 커밋을 fetch하고 체크아웃
$ git fetch ssh://USER-ID@git_repository refs/specific/branch && git checkout FETCH_HEAD