본문 바로가기
Develop/etc

[GitHub] 다른 사람의 저장소에서 브랜치 복사하기

by 연로그 2022. 2. 10.
반응형

개요

 온라인으로 'Code With Me'를 통해 짝 프로그래밍을 경험하고 있다.😄

디코를 키고 같은 화면에서 코딩하며 짝과 함께 무사히 과제를 마쳤으나~

짝의 레포지토리에만 커밋이 되어있고 내 레포지토리는 텅 비었다.

나도 과제를 제출해야하니... 내 레포지토리로 커밋 내역들을 옮겨오고자 한다.

 

 어떻게 해결을 해야할까 고민을 하다가...

지난 번에 여러 레포지토리를 하나로 합칠 때 remote repository를 여러개 만들었던 일로 한가지 아이디어가 떠올랐다.

 

브랜치 가져오기

아래 과정들은 자신의 github 레포지토리를 local에도 옮겼다는 가정 하에 진행된다.

명령어 입력은 Git Bash같은걸 이용해도 되지만 글쓴이는 IntelliJ에서 제공하는 terminal을 사용했다.

 

1. 상대방 git 레포지토리 주소 복사

 

2. 1에 대한 remote를 추가

  • 로컬에 1에 대한 remote를 추가하자
  • 리모트명은 자유롭게
  • '깃허브링크' 부분에는 1의 링크 추가
$ git remote add <리모트명> <깃허브링크>

 

3. 로컬 branch 생성

  • 이 브랜치에 커밋 내역이 저장될 예정
$ git checkout <브랜치명>

 

4. 가져오고자 하는 브랜치 pull

$ git pull <리모트명> <리모트의 브랜치명>

 

ex: 리모트명이 yeon-06이고, 해당 레포지토리에서 필요한 브랜치(=1의 브랜치) 명이 step1이라면?

$ git pull yeon-06 step1

pull 결과 화면

 

5. 내 github에 push

push하는 방법에는 크게 두 가지가 있다.

  1. IntelliJ의 프로젝트 우클릭 - Git - Push
  2. push 명령어 이용
    • $ git push <리모트명> <브랜치명>
    • 우리가 push해야할 곳은 1의 레포지토리가 아닌 자신의 GitHub에 존재하는 레포지토리임을 기억하자
    • 자신의 깃허브 레포지토리는 'origin'라는 리모트명으로 저장되어 있다.

 

🔻 remote 목록 확인하기

더보기
$ git remote -v

 

마지막으로..

 GitHub를 잘 안써본 사람들은 위 방법이 커밋 히스토리까지 무사히 가져와지는지 의문이 들 수 있다.

push할 때 보면 알겠지만 history까지 무사히 가져온다😊👍

 

git 명령어를 이용하는 사람들은 아래 명령어를 통해 커밋 목록 확인이 가능하다.

$ git log

 

반응형