거의 두, 세달정도 코드 작업을 못했던 것 같습니다. 아예 안한건 아니었지만 외부 소스코드에 대한 분석 이외에는 딱히 코드를 보지 않았더니 반대급부로 git에 대한 명령어들이 기억속에서 사라지기 시작했습니다 ;;;
그런데 오늘! 제가 작성했던 코드가 잘 동작하지 않는 예외 케이스가 발생되었다는 소식을 접수했습니다. 급한일을 부랴부랴 끝내고 비주얼 스튜디오 코드를 열고나니... 원격 브랜치의 저장소들이 그 사이 변경된 내용이 있을텐데 하는 불안감이 엄습했습니다.
원래의 저장소, 포크한 내 저장소, 그리고 동료의 작업 저장소. git remote -v 명령으로 확인해보니 아직까지 원격 저장소 목록은 잘 저장이 되어 있었습니다. 이 저장소들에서 변경된 내용을 어떻게 가져오지... 하면서 좀 뒤져서 다시 기억을 살려보았습니다!
로컬 저장소에 지정된 원격 저장소 목록 확인
로컬 저장소에서 git 명령을 이용하여 추가 되어 있는 원격 저장소의 목록을 확인할 수 있습니다.
% git remote -v
origin git@git.nopd.company.com:nopd/client.git (fetch)
origin git@git.nopd.company.com:nopd/client.git (push)
upstream git@git.nopd.company.com:awesomeproject/client.git (fetch)
upstream git@git.nopd.company.com:awesomeproject/client.git (push)
myfriend git@git.nopd.company.com:myfriend/client.git (fetch)
myfriend git@git.nopd.company.com:myfriend/client.git (push)
origin은 제 개인 저장소, upstream은 프로젝트의 원래 저장소, 그리고 myfriend는 동료의 저장소 입니다.
각 저장소의 업데이트 사항 가져오기
이제 각 저장소의 업데이트 사항을 가져오는 명령을 입력해 보겠습니다.
% git remote update
Fetching origin
Enter passphrase for key '/.ssh/id_rsa':
Fetching upstream
Enter passphrase for key '/.ssh/id_rsa':
Fetching myfriend
Enter passphrase for key '/.ssh/id_rsa':
From git.nopd.company.com:myfriend/client
* [new branch] ISSUE_1 -> myfriend/ISSUE_1
* [new branch] ISSUE_2 -> myfriend/ISSUE_2
* [new branch] ISSUE_3 -> myfriend/ISSUE_3
50c7deb..ff405ce master -> myfriend/master
동료가 이렇게 열심히 일하는 동안 저는 놀았구나 하는 자괴감과 함께... 각 저장소의 변경 사항 확인시마다 SSH 키 값을 입력해서 동기화를 마쳤습니다.
모든 브랜치 확인해보기
이제 로컬 저장소에 있는 브랜치와 원격의 브랜치를 확인해 보도록 하겠습니다. 명령은 git branch -a 입니다.
% git branch -a
branch1
* branch2
master
remotes/origin/HEAD -> origin/master
remotes/origin...
...
remotes/upstream/master
remotes/upstream...
...
remotes/myfriend/master
...
원격 브랜치 가져오기
마지막으로 작업하고 싶은 브랜치를 현재 로컬 브랜치로 가져오도로 하겠습니다. 특별히 upstream 에 변경된게 없어서 로컬 (origin/master) 브랜치에 업스트림 브랜치 (upstream/master) 의 변경사항을 땡겨오기로 했습니다. 로컬 브랜치를 하나 더 따려다... 일단 마스터에 합치고 브랜치를 나누는게 편해서... ㅎㅎ
% git pull upstream master
Enter passphrase for key '/.ssh/id_rsa':
From git.nopd.company.com:awesomeproject/client
* branch master -> FETCH_HEAD
Updating 48bc962..ff405ce
Fast-forward
..... | 15 +++++++-
..... | 220 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------
..... | 8 ++--
package-lock.json | 29 ++++++++------
package.json | 2 +-
5 files changed, ...
매일매일 쓰지 않으면 잊어버리는 것들. 시간을 꼭 내서 하루 한줄의 코딩, 하루 한 번의 명령어 입력도 잊지 말고 해야겠습니다 ㅎㅎㅎ 그리고 미래의 나를 위해 블로그에 살짝~ 남겨두는 활동을 꼭 꼭! 해야겠습니다!