일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ReactiveProgramming
- git
- FRAGMENT
- Jetpack
- Algorithm
- ViewModel
- library
- programmers
- androidstudio
- Kotlin
- Room
- Database
- homebrew
- sourcetree
- Java8
- rxjava
- Java
- livedata
- leetcode
- IntelliJ
- github
- Android
- Version
- Today
- Total
Learn & Run
Git & Sourcetree - Pull과 Push 그리고 충돌 본문
목표
Git 명령어 Pull과 Push에 대해 알아보도록 합니다.
이전 포스팅까지 우리는 지금까지 Push라는 작업을 해왔습니다. 그렇다면 Pull은 무엇을 의미할까요? 영어가 의미하는 그대로입니다. Push가 로컬 저장소에서 원격 저장소로 버전을 업로드하는 과정이였다면 Pull은 반대로 원격 저장소에 관리되던 버전을 로컬 저장소로 가져오는 행위를 의미합니다.
1. 우선 두개의 로컬 저장소를 준비해둡니다.
- 저는 test와 test2 총 두개의 로컬 저장소를 준비해두었습니다.
- 실제 협업 환경을 위한 구성이라고 생각하시면 좋습니다.
2. test 로컬 저장소에서 Push를 통해 원격 저장소의 버전을 업데이트 합니다.
- 간단하게 파일을 변경하고 Commit 후에 Push까지 완료합니다.
2. 여기서 test2 로컬 저장소에서 작업을 시작하려고 합니다. 어떻게 진행해야할까요?
- test 로컬 저장소에서 진행했던 것 처럼 내 로컬에서의 작업을 바로 진행한다.
- 내가 작업하기전에 새로운 버전이 master 브랜치로 업데이트 되었는지 확인한다.
위의 두가지 경우중에 당연히 2번째 경우가 맞는 것처럼 보일거라 생각합니다. 바로 여기서 사용하는 기능이 Pull 입니다. 우리가 만약 이 작업(Pull을 통해 원격 저장소의 버전을 로컬로 가져오는 행위)을 하지않고 바로 나만의 작업을 진행한다면, 나중에 예상치 못한 충돌을 피하는 것은 어려워 보일 것 입니다. 이러한 이유 때문에 Pull이라는 기능을 사용하여 나중에 일어날 충돌을 미리 방지하는 역할을 할 수 있습니다.
3. test2 로컬 저장소에서 작업을 진행하기 전에 Pull을 통해서 원격 저장소의 master 브랜치로부터 버전을 업데이트 합니다.
4. test2 로컬 저장소에서 test 로컬 저장소에서 변경했던 line을 다르게 변경해봅니다.
- Commit과 Push를 수행하여 원격 저장소에 버전을 업로드 합니다.
5. test 로컬 저장소로 돌아온 후 Pull을 진행하지 않고 파일 내용을 변경하고 Commit과 Push를 진행해 보도록 합니다.
6. Pull - Work - Commit - Pull - Push 순으로 진행해보도록 합니다.
- Pull - Work - Commit 과정을 진행하는 도중에 누군가가 원격 저장소에 Push 했을 수도 있기 때문에 Push전에 Pull과정을 한 번 더 진행해보도록 합니다. 충돌을 최소화하기 위해 다음과 같은 습관이 꼭 필요하다는 것을 확인할 수 있습니다.
'Collaboration > Git' 카테고리의 다른 글
Git & Sourcetree - Stash란 무엇인가 (0) | 2021.05.31 |
---|---|
Git & Sourcetree - 저장소 복제하기 (0) | 2021.05.30 |
Git & Sourcetree - 로컬 저장소와 원격 저장소 연결하기 (0) | 2021.05.30 |
Git & Sourcetree - Branch 충돌 해결하기 (0) | 2021.01.17 |
Git & Sourcetree - Branch 병합(Merge)하기 (2) | 2021.01.11 |