학습 사이트의 아래 레벨에 해당되는 내용이다.
level remoteAdvanced<num>o/main에 커밋이 다운로드된 후 main 브랜치에 병합(merge)된다. 병합 대상은 이 연결에서 결정이 된다.main 브랜치의 작업이 원격 main 브랜치 (로컬에서는 origin/main으로 보임)으로 push된다. push의 목적지는 main과 origin/main의 연결에 따라 결정된다.main)를 트래킹하는 로컬 브랜치를 만든다. clone이 끝난 후 로컬 브랜치 하나가 주어지지만, 궁금하다면 원격 저장소에 있는 온갖 브랜치를 탐색할 수도 있다.origin/main과 같이 자동으로 설정하여 tracking property도 함께 부여하지만, 원한다면 어떤 브랜치를 어떤 이름으로 트래킹할지 직접 설정할 수도 있다. totallyNotMain이 remote의 main 트래킹하게 하기git checkout -b totallyNotMain origin/main
// taollyNotMain이 origin/main을 참조로 사용totallyNotMain을 push하거나 pull할 수 있다.push: remote의 main이 업데이트됨pull: local의 origin/main과 함께 업데이트됨git branch -u origin/main totallyNotMain
// totallyNotMain이 origin/main을 트래킹하게 함
// totallyNotMain이 check out 되어있으면 git branch -u origin/main도 가능git push origin main
// 아래는 위 명령어에 대한 해석
{place}에 main을 놓음으로써 git이 커밋을 어디서 어디로 가져갈지 알려준 것{place}에 참조할 위치를 알려줬으니, checkout되어있는 위치는 무시하게 된다.git push origin <source>:<destination>
// 옮기는 곳의 출처와 목적지도 마음대로 할 수 있다.
{source}:{destination})main, HEAD~1 등){destination}에 원하는 브랜치 이름을 넣으면 자동으로 만들어준다.git push origin main:newBranch{source}: 원격 저장소 안의 위치 / {destination}: 로컬 저장소 안의 위치fetch할 수 없지만, 그 밖의 경우라면 이 명령어를 통해 직접 로컬 브랜치에 fetch할 수 있다. (fetch는 기본적으로 병합 없이 다운로드만 한다){destination}에 원하는 브랜치 이름을 넣으면 자동으로 만들어준다.git fetch에 아무런 arguments가 없는 경우, 원격 저장소의 모든 커밋을 원격 브랜치에 다운로드한다.{source} 파라미터를 두 가지 방법으로 요상하게 사용할 수 있다.git push origin :sideside 브랜치를 삭제한다.git fetch origin :bugFixbugFix 브랜치를 생성한다.git pull은 결국 git fetch와 git merge가 합쳐진 것이기에, 위의 arguments들과 다를 게 없다.git pull origin foo = git fetch origin foo; git merge origin/foogit pull origin bar:bugFix = git fetch origin bar:bugFix;git merge bugFixgit pull은 merge 부분에서 {destination} 부분만 참조하는 걸 알 수 있다.커밋의 시각화가 Git Branching을 이해하는 데 상당히 도움되니 재방문하여 복습하는 것도 좋을 것 같다.
실제로 Git을 통해 작업할 때 시각화를 도와주는 툴이 여러 개 있다고 하는데, 고마운 팀원으로부터 GitKraken을 추천 받았다. 무료 버전과 유료 버전은 Public 저장소만 적용 가능한지, Public과 Priviate 저장소 둘 다 적용 가능한지의 차이라고 한다.

