일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- contentInset
- Failed to register bundle identifier
- Mock
- Info.plist
- delegation
- 책후기
- 스타트업주니어로살아남기
- NumberFormatter
- IOS
- @available
- 아이폰
- 부트캠프
- viewcontroller
- 독서후기
- roundingMode
- Modality
- Codegen
- Structures and Classes
- 스위프트
- UIResponder
- NotificationCenter
- 야곰아카데미
- xcode
- SWIFTUI
- View Life Cycle
- mvvm
- SWIFT
- Navigation
- human interface guidelines
- 독후감
- Today
- Total
호댕의 iOS 개발
[Git] git fetch VS git remote update, 이 둘의 차이점은 뭘까? 본문
회사에서 업무를 하면서 git rebase는 이제 어느정도 익숙해졌지만, 아직 Git의 세계는 훨씬 방대한 것 같다...
아직 제대로 모르는 것들이 많은데 이번에 배포 전략을 수정하면서 git fetch와 git remote update를 사용할 일이 생겼다.
그런데 이 둘의 기능은 비슷한 것 같은데 무슨 차이점이 있는지 궁금해졌다.
그래서 간단하게나마 정리를 해보고자 한다.
이 외에도 Git에 대해 조금 더 공부를 해야겠다는 생각이 든다.
git remote update
일단 로컬 브랜치에 있는 변경 사항을 리모트 브랜치에도 생성을 하려 한다면 commit -> push의 과정을 하게 된다.
이는 Git을 써본 사람이라면 누구든 사용해본 기능일 것이다.
여기서 git branch를 사용하면 현재 로컬에 있는 브랜치를 확인할 수 있는데 만약 리모트 브랜치를 확인하고 싶다면
git branch --remote
를 사용하면 된다.
만약 로컬 / 리모트 브랜치를 전부 확인하고 싶다면 git branch -a 를 사용해 확인하면 된다.
그렇다면 현재 다른 사람이 remote 브랜치를 업데이트 해서 해당 정보를 로컬에 가지고 오고 싶을 때는 어떻게 하면 될까?
이때 사용할 수 있는 것이 바로 git remote update이다.
이를 통해 리모트 브랜치의 변경사항들을 업데이트하고 이를 가져올 수 있게 된다.
하지만 해당 명령어를 사용한다면 로컬 브랜치에 변경사항이 병합되진 않는다.
만약 리모트 브랜치에 새롭게 추가되거나 삭제된 정보를 최신으로 업데이트 및 반영하려면
git remote prune origin
명령어를 사용해 변경사항들을 반영해줄 수 있다.
그렇다면 git fetch는 뭘까??
git fetch
일단 기능 자체는 git remote update와 유사하다.
리모트 브랜치에 변경 사항을 업데이트할 수 있도록 가져오는 것이다.
그렇다면 git remote update와 완전 동일한 명령어일까?
그건 아니다. git fetch를 사용하게 되면 현재 checkout(switch)를 통해 위치하고 있는 브랜치만 변경 사항을 업데이트 하게 된다.
만약 전체 branch를 업데이트하고 싶다면 git fetch -all을 사용하면 전체를 업데이트할 수 있게 된다.
이 경우에는 git remote update와 동일하게 동작한다고 이해했다.
그럼 git pull과 git fetch는 뭐가 다를까?
git pull의 경우 git fetch를 하고 git merge까지 이뤄지게 된다.
'Software Engineering' 카테고리의 다른 글
[토이 프로젝트] holdy (클라이밍 모임 서비스) (1) | 2022.11.20 |
---|---|
[컨퍼런스] 구름 Commit 성장: 개발자의 평생 과제 (2) | 2022.11.18 |
[Terminal 명령어] 자주 사용하는 Terminal 명령어에 대해 알아보자 (0) | 2022.08.28 |
[Git] rebase를 자세히 알아보자 (개념, 사용법, 강제 푸쉬 등에 관하여) (0) | 2022.08.09 |
[운영체제] 동기와 비동기의 개념을 정리해보자. (0) | 2022.07.24 |