끄적끄적 아무기록

다른 사람의 GitLab Repository에서 Branch 복사해오기

by 현생사는갓생지망생
반응형

GitLab에서 작업을 하다보면

현재 내 Repository가 아닌, 나의 다른 Repository 혹은 다른 사람의 Repository에서 Branch 복사가 필요한 경우가 간혹 있다

✔︎ 예를 들면 target-repository의 dev branch → origin-repository의 feat/ci branch로 복사해오는 것이다

 

1. 복사해올 Repository를 원격 저장소로 추가

git remote add <Remote Name> <복사 대상 Git Repository URL>

Remote 저장소 이름은 임의로 지정

git remote -v 명령어로 저장소 목록 확인 시 현재 내 저장소와 추가한 저장소가 함께 확인 된다

hyeonsaeng@MacBookPro origin-repository % git remote -v                                                                
branch-copy-test        <target-repository url> (fetch)
branch-copy-test        <target-repository url> (push)
origin  <origin-repository url> (fetch)
origin  <origin-repository url> (push)

 

2. 복사할 대상의 Branch Pull

git pull <Remote Name> <Target Branch Name>

Git 형상과 커밋 히스토리까지 가져온다

hyeonsaeng@MacBookPro origin-repository % git pull branch-copy-test dev
remote: Enumerating objects: 923, done.
remote: Total 923 (delta 0), reused 0 (delta 0), pack-reused 923
Receiving objects: 100% (923/923), 93.12 KiB | 2.59 MiB/s, done.
Resolving deltas: 100% (280/280), done.
From <target-repository url>
 * branch              dev -> FETCH_HEAD
 * [new branch]        dev -> branch-copy-test/dev
hint: You have divergent branches and need to specify how to reconcile them.
hint: You can do so by running one of the following commands sometime before
hint: your next pull:
hint: 
hint:   git config pull.rebase false  # merge
hint:   git config pull.rebase true   # rebase
hint:   git config pull.ff only       # fast-forward only
hint: 
hint: You can replace "git config" with "git config --global" to set a default
hint: preference for all repositories. You can also pass --rebase, --no-rebase,
hint: or --ff-only on the command line to override the configured default per
hint: invocation.
fatal: Need to specify how to reconcile divergent branches.

 

3. Branch 전환 및 이름 변경

git branch -a 명령어로 확인 시 Pull 하여 가져온 Target Branch가 확인 된다

Branch 이름 변경이 필요할 경우 git branch -m 옵션 사용하여 변경

hyeonsaeng@MacBookPro origin-repository % git checkout dev
branch 'dev' set up to track 'branch-copy-test/dev'.
Switched to a new branch 'dev'

hyeonsaeng@MacBookPro origin-repository % git branch -m feat/ci
hyeonsaeng@MacBookPro origin-repository % git branch
  main
* feat/ci

 

4. Remote 저장소 삭제

Branch 복사 완료 후 추가해줬던 Target Repository 삭제

git remote remove <Remote Name>

 

☝🏻 Branch 삭제

git branch -D <Branch Name>

 

반응형

블로그의 정보

현생이네

현생사는갓생지망생

활동하기