Git remote fetch/pull, Git push 명령



Git remote fetch



- 아래는 제 개인 Git 계정의 리모트 저장소 이다.



- 리모트 저장소의 모든 자원을 "git clone" 명령을 통해 로컬 저장소로 가져온다.



- 리모트 저장소에 index2.html 파일을 추가한다.


P.S: 생성한 index2.html 파일의 Commit index5717f9...18a 와 같다.



- 리모트 저장소(origin) 확인 후 "git fetch" 명령을 통해 로컬 저장소 와 리모트 저장소 의 상의한 브랜치 내역을 가져온다.(로컬 저장소에는 리모트 저장소와 달리 index2.html 파일에 내한 내역은 존재하지 않는다.)



P.S: 또한, 아래 7f70cbc Commit index는 현재 리모트 저장소의 최종 Commit index인 5717f9...18a 의 parent index로 존재한다.



- "git remote fetch" 명령 수행 후 모든 영역(Working, Staging, Repository)에는 해당 파일에 대한 업데이트 내역이 존재하지 않는것을 확인할 수 있다.


하지만 실제 Git 저장소(.git/objects) 내부에는 아래 결과와 같이 index2.html 파일의 Commit index인 57/17f9...5ee4 Blob 파일존재하는것을 확인할 수 있다.




- 해당 Blob 파일을 확인하면, 아래와 같이 index2.html 파일에 대한 내역이라는것을 다시한번 확인할 수 있다.




- "git merge" 명령을 통해 위에서 "fetch" 된 모든 내역을 해당 로컬 Branch merge 시키면, 이전 내역과 달리 모든 영역(Working, Staging, Repository)에는 현재 리모트 저장소의 업데이트 내역이 전부 반영 되어 있을 것이다.







Git remote pull


- "git remote pull" 명령은 이전 "fetch" 명령과는 달리 모든 영역(Working, Staging, Repository)에 리모트 저장소의 업데이트 내역이 존재하는것을 확인할 수 있다.(즉, "marge" 기능 까지 한번에 수행하게 된다.)







Git push


1. Workiing 영역에 index3.html 파일 생성 후 아래와 같이 모든 단계를 수행한다.


2. 리모트 저장소의 지정된 Branch 로컬 저장소의 업데이트된 모든 내역을 Push 한다.



- 아래는 로컬 저장소로 부터 Push 리모트 저장소 내역이다.





참고: