일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 성능테스트툴
- MySQL
- 11659
- 알고리즘
- 싱글톤패턴
- 투포인터알고리즘
- OOP
- List.of
- String.valueOf()
- vm인스턴스생성
- Spring MVC 동작원리
- 자바
- Spring MVC 구성요소
- 인텔리제이
- Spring Web MVC
- 클라우드에서 도커 실행하기
- 구간합구하기
- 버블정렬
- GCP
- 코드스테이츠 백엔드
- 백준
- 스택
- 재귀와반복문
- 재귀함수
- java
- 백준 11659
- 코딩테스트
- Array.asList
- 프로그래머스
- 코드스테이츠
- Today
- Total
순간을 기록으로
[Git] 업데이트된 원격 저장소를 로컬 저장소에 반영하기 본문
상황
로컬에서 작업하다가 다른 팀원분이 작성한 코드에 에러가 났다. 그래서 팀원분에게 문의해보니 이전에 삭제한 파일이므로 원격 저장소에서 업데이트를 파일이 삭제되어 해결될 거라고 알려주셨다.
이 상황외에도 최신 원격 저장소를 로컬 저장소에 업데이트해야 될 때 다음과 같이 해결할 수 있다.
설명하기 앞서 간단히 용어를 정의하면 다음과 같다.
- 원격저장소: 원격 오리지널 저장소.
- 포크저장소: 원격 오리지널 저장소를 포크한 저장소
- 로컬저장소: 포크저장소를 로컬로 clone한 저장소
해결
1.원격 저장소를 로컬 저장소와 연결한다.
아마도 원격 저장소를 포크한 뒤 포크된 저장소를 git clone 한다면 연결되어있는 저장소는 포크된 저장소밖에 없을 것이다. 따라서 원격 저장를 추가해야 한다.
- git remote add upstream [원격저장소]
- git remote -v
다음과 같이 git remote -v를 이용하면 upstream 저장소가 추가로 연결되었음을 확인할 수 있다.
참고로 upstream은 원격저장소 이름을 보통 upstream이라고 작성한다. upstream 용어는 상대적인 용어라 원격 저장소가 될 수 있고 포크 저장소가 될 수 있다. 따라서 추가로 찾아보면 좋다.
2.최신 원격 저장소 내용을 가져온다.
- git fetch upstream main
- upstream: 자신이 정한 원격 저장소 이름
- main: 가져오고자 하는 원격 저장소의 브랜치 이름
나는 원격 저장소(upstream)에 dev 브랜치를 가져와야 돼서 git fetch upstream dev 명령어를 사용했다.
- git branch -a
위 명령어를 사용하면 모든 브랜치 목록을 확인할 수 있다. 이 명령어를 사용해서 upstream의 dev 브랜치가 가져왔는지 확인하자
마지막 빨간 줄을 보면 upstream/dev 브랜치가 생긴 것을 확인할 수 있다.
3.반영하기
- git merge [원하는 브랜치]
해당 명령어를 치면 fetch로 가져온 브랜치를 합칠 수 있다.
나는 git merge upstream/dev를 현재 브랜치인 feature/BE/users와 upstream/dev 브랜치를 합쳐서 최신 원격 저장소 내용을 반영할 수 있었다.
느낀 점
깃을 혼자 하다가 팀 프로젝트를 하면서 다양한 상황을 접하게 된다. 프로젝트 진행에 있어서 Git 학습의 중요성을 다시 한번 느낄 수 있었다.