[GitHub] 여러 개의 Repo를 하나로 합치기 - branch 별로 나눠서 관리하는 법

2024. 6. 17. 16:08·Git & Github

 

 

 

 

🤔문제 상황

 

최근 전공 수업에서 과제를 수행하면서 레포지토리 여러 개 만들었다.

종강하고 나니 이 레포들을 그냥 하나로 합쳐버리고 싶다는 생각이 들었다.

 

참고로, 나도 Git과 Github 사용에 능숙한 것은 아니라 공부도 하는 겸 진행해 보았다🤍

 

 


 

 

😁해결 방법

 

1. 새로운 Repo 만들기

 

하나의 Repository 안에서 branch 별로 fetch하여 불러오는 방식을 사용하고자 했다.

먼저 이를 위해서 새로운 Repo 하나를 만든다. 

나는 컴파일러 과목을 위한 Repo이므로 compiler-lex라는 이름으로 만들었다.

 

 

 

클론할 아무 폴더에 들어가서 다음과 같이 원격 저장소를 로컬에 복제한다.

git init
git clone <새로 만든 레포 주소>

 

이제, 각 레포지토리를 하나의 레포지토리에 서로 다른 브랜치로 병합해보자.

 

그 전에, git remote 와 fetch, checkout, push 등의 기본적인 명령어는 알고 있으면 좋다.

검색하면 다양한 자료가 나오지만, Git에 익숙하지 않은 사람들을 위해 간단하게 설명해보도록 하겠다.

 

git remote -v를 입력하면 현재 어떤 원격 저장소가 등록되어 있는지 알 수 있다.

아마 연결한 저장소가 없다면 아무것도 뜨지 않을 것이다.

우리는 총 3개의 Repo를 합칠 것이므로 3개의 저장소를 연결하게 될 것이다.

 

 

2. 원격 저장소 추가 및 페치

다음과 같은 명령어를 사용해 연결할 첫번째 Repo를 원격으로 추가하고 fetch 한다.

fetch는 원격저장소의 내용을 가져오는데 사용되는 명령어이다.

git remote add repo1 <가져올 첫번째 레포 주소>
git fetch repo1

 

repo1이라는 이름으로 첫번째 레포 주소를 가져왔다.

아마 다시 git remote -v를 입력하면 원격 저장소가 잘 연결되었음을 확인할 수 있을 것이다.

 

 

 

3. 브랜치로 체크아웃

 

그럼 이제 연결하고 fetch도 했으니 새로운 branch로 이동해보자.

새로운 브랜치를 생성하고 첫 번째 레포지토리의 main 브랜치 내용을 체크아웃해보자.

체크아웃 할 때 -b 옵션을 입력해주면 브랜치를 생성해주면서 이동해주기 때문에 편리하다.

git checkout -b hw1 repo1/main

 

쨘! 나는 hw1라는 이름으로 새로운 브랜치를 만들었다.

하지만 브랜치만 만들었고 새로 fetch한 내용은 아직 업로드하지 않았다.

지금까지 변경한 사항은 push 명령어를 통해 업로드할 수 있다.

 

 

4. 최종적으로 push하기

git push origin hw1

 

origin은 새로 만든 Repo의 이름, 

hw1은 불러올 기존 Repo의 branch 이름이라고 생각하면 편하다.

아래는 hw2 브랜치도 같은 방식으로 불러온 예시 코드이다:)

 

 

 

5. 완성❕

h3까지 총 3번 진행하면 하나의 레포에 브랜치별로 3개의 레포를 잘 합쳐진다!

이렇게 합쳐놓으면 같은 전공 수업 과제를 하나의 저장소에서 볼 수 있고,

가독성도 좋고 레포를 깔끔하게 관리할 수 있다!!

 

 

 


저작자표시 (새창열림)

'Git & Github' 카테고리의 다른 글

[Github] 내 개발 시간을 프로필에 추가해보자  (0) 2024.09.19
[Git & Github] 원격 저장소 branch 가져오기  (0) 2024.07.12
[Git Bash] 터미널 입력 중 CRLF 줄바꿈 이슈 해결하기  (0) 2024.03.30
[Git] fatal: refusing to merge unrelated histories 문제 해결하기  (0) 2024.03.21
'Git & Github' 카테고리의 다른 글
  • [Github] 내 개발 시간을 프로필에 추가해보자
  • [Git & Github] 원격 저장소 branch 가져오기
  • [Git Bash] 터미널 입력 중 CRLF 줄바꿈 이슈 해결하기
  • [Git] fatal: refusing to merge unrelated histories 문제 해결하기
abyss-s
abyss-s
프론트엔드 개발합니다!
  • abyss-s
    abyss-s의 블로그입니다.
    abyss-s
  • 전체
    오늘
    어제
    • 분류 전체보기 (189)
      • Web (16)
        • JavaScript (6)
        • TypeScript (1)
        • React (5)
        • Vue (0)
        • Storybook (1)
        • Next.js (1)
      • Backend & Infra (8)
        • Database (3)
        • Node.js (2)
        • SpringBoot (1)
      • PS (71)
      • CS (30)
        • OS (13)
        • Structure & Algorithm (5)
        • Network (10)
        • 정보처리기사 (2)
      • Language (18)
        • OOP (1)
        • JAVA (13)
        • C++ (4)
      • Activities (13)
        • 멋쟁이 사자처럼 (2)
        • OSSCA (3)
        • LG U+ URECA (4)
        • Project (2)
      • AI (0)
      • Git & Github (5)
      • Notion (1)
      • IT (4)
      • Statistics (11)
      • Book (4)
      • Diary (1)
      • Game (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃허브
    • 백준
    • 트위터
  • 공지사항

    • abyss-s의 티스토리에 오신 것을 환영합니다.
  • 인기 글

  • 태그

    운영체제
    네트워크
    BAEKJOON
    Python
    통계학
    자바스크립트
    백준
    그리디
    BFS
    파이썬
    React
    OS
    github
    C++
    JavaScript
    생활코딩
    DP
    자바기반응용프로그래밍
    Java
    코드트리
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
abyss-s
[GitHub] 여러 개의 Repo를 하나로 합치기 - branch 별로 나눠서 관리하는 법
상단으로

티스토리툴바