일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- TypeScript
- java
- 프론트엔드
- github
- 자바문제풀이
- coding
- react
- 변수
- node.js
- node
- git
- HTML
- JS
- 자바
- @media
- webpack
- cleancode
- 코드업
- react-router-dom
- JavaScript
- 반응형 페이지
- redux
- max-width
- CSS
- 코딩테스트
- frontend
- media query
- 그럼에도 불구하고
- Servlet
- 그럼에도불구하고
- Today
- Total
그럼에도 불구하고
[Git, GitHub] git fetch 와 git pull 본문
git fetch와 git pull에 대해 알아보겠습니다.
🧑🏻💻 Remote Tracking Branches
remote/branch 패턴을 따릅니다.
- origin / master는 origin이라는 원격 repository의 master branch 상태를 참조합니다.
- upstream / logoRedesign은 upstream(공통 원격 이름)이라는 이름의 원격에서 logoRedesign 분기의 상태를 참조합니다.
📌 Remote Branches
git branch -r
git branch -r을 실행하여 local repository가 알고 있는 원격 branch를 볼 수 있습니다.
git checkout remote/branch
github에서 git clone 해서 받아온 시점의 상태를 확인하거나 마지막 push 이후 상태를 볼 수 있습니다.
예를 들어 git clone을 통해 repository를 복제하면 해당 시점의 프로젝트에 대한 모든 데이터와 git 기록이 있습니다. 그러나 그것이 내 작업 공간에 모두 있다는 의미는 아닙니다.
github repo에는 pupies라는 branch가 있지만 git branch를 실행하면 내 컴퓨터에서 볼 수 없습니다.
내가 볼 수 있는 거는 master branch 뿐입니다.
이럴 때 git branch -r를 사용하면 모든 branch를 볼 수 있습니다.
즉, 내 로컬 저장소는 모든 브랜치에 대해 알고 있으며 원격 추적 참조가 되어 있습니다.
만약 저장되어 있는 branch 전부를 보고 싶으면 아래와 같은 명령어를 사용하면 됩니다.
📌 It's super easy!
git switch remote-branch-name을 실행하여 동일한 이름의 원격 분기에서 새 local branch를 만듭니다.
git switch puppies는 local puppies branch로 만들고 원격 branch origin/puppies를 추적하도록 설정합니다.
git switch puppies
git switch 명령 다음에 아직 로컬에는 존재하지 않을 수도 있지만 원격 브랜치에는 있는 이름으로 브랜치 이름을 써주면, 깃이 로컬에서 그 브랜치를 만들고, 동일한 이름의 원격 브랜치를 추적하도록 자동 설정한다는 것입니다.
🧑🏻💻 git fetch
git fetch는 원격 변경 사항을 가져옵니다. ( 깃허브 저장소에서 항목들을 로컬 저장소로 가져옵니다. )
fetch를 사용하면 원격 저장소에서 변경 사항을 다운로드할 수 있지만 이런 변경 사항은 작업 파일에 자동으로 통합되지 않습니다. 변경 사항을 로컬 레포지토리에 병합하지 않고도 다른 사람들이 작업한 내용을 볼 수 있습니다.
즉, "가서 Github에서 최신 정보를 얻으세요. 그러나 내 작업 디렉터리는 건들지 마세요."라고 생각하면 됩니다.
git fetch <remote>
git fetch <remote> 명령은 특정 원격 저장소에서 branch와 기록을 가져옵니다.
git fetch origin은 원본 원격 저장소에서 모든 변경 항을 가져오며, 하나의 branch만 fetch 할 수도 있습니다.
git fetch <remote> <branch>
📌 변경된 사항 확인법
git checkout remote/branch
🧑🏻💻 git pull
git pull은 원격 저장소에서 변경 사항을 검색하는 데 사용할 수 있는 또 다른 명령어입니다. fetch와 달리 pull은 원격에서 검색된 모든 변경 사항으로 HEAD branch를 실제로 업데이트합니다.
"Github에서 데이터를 다운로드하고, 해당 변경 사항으로 내 local repository를 즉시 업데이트 합니다."
git pull <remote> <branch>
pull을 하려면 git pull <remote> <branch>를 사용하여 pull 하려는 특정 원격 및 branch를 지정합니다.
git merge와 마찬가지로 이 명령을 어디에서 실행하느냐가 중요합니다.
우리가 실행하는 branch가 무엇이든 변경 사항이 병합되는 위치가 됩니다.
예를 들어git pull origin master는 origin의 master branch에서 최신 정보를 가져오고 해당 변경 사항을 현재 branch에 병합합니다.
📌 An even easier syntax
가져올 특정 원격 또는 branch를 지정하지 않고 git pull을 실행하면 git은 다음을 가정합니다.
- remote는 기본적으로 origin으로 설정됩니다.
- branch는 현재 branch에 대해 구성된 추적 연결로 기본 설정됩니다.
git pull
🏷️ 요약
'이모저모 > Git, GitHub' 카테고리의 다른 글
[Git, GitHub] Tag에 대하여 알아보자 (0) | 2023.07.27 |
---|---|
[Git, GitHub] 다양한 명령어들에 대해 알아보자 (checkout, restore, reset, revert) (0) | 2023.07.13 |
[Git, GitHub] git stash란? (0) | 2023.07.11 |
[Git, GitHub] Gif Diff란? (0) | 2023.07.06 |
[Git, GitHub] 브랜치(branch) 병합(merge)하기 (0) | 2023.07.06 |