코딩코딩코딩

Merge Github Repositories (깃허브 레포지토리 병합) 본문

Git

Merge Github Repositories (깃허브 레포지토리 병합)

hanshow113 2021. 6. 26. 20:54

Github 정리 중 흩어져 있는 폴더들이 많아서 한 폴더로 옮기려 하는데 홈페이지에서 하는 방법이 있는지는 모르겠지만 잘 모르겠어서

로컬로 git clone 하여 연동 후에 merge하는 방법을 찾아 정리합니다.

먼저 깃허브 레포지토리와 로컬의 폴더를 연동시켜 놓은 후에 한 폴더로 합치고 싶은 레포지토리들을 모두 cloning한 후에 merge하는 순서로 진행했습니다. (Mac)

 

(저는 GitClone 폴더 내에 gitTest 내에서 진행했습니다. 로컬의 gitTest 폴더를 깃허브와 연동시켜 놓은 다음에 해당 폴더에 합치고 싶은 두 레포지토리를 cloning 하고 merge할 예정입니다.)

 

1. PC 디렉토리에 폴더 생성 

Terminal을 켜고 아래 명령어 순서대로 입력

$ mkdir GitClone
## GitClone이라는 폴더 생성
## 어디에 생성되는지는 ls를 입력해보면 현재 위치한 디렉토리 알 수 있음

$ cd GitClone
## GitClone 디렉토리로 이동

$ mkdir gitTest
$ cd gitTest
## GitClone 내에 gitTest라는 디렉토리를 만들고 내부로 이동

2. Github에서 레포지토리 생성

홈페이지 우측 상단에 New Repository로 생성

 

3. 1번에서 이동한 디렉토리인 gitTest에서 아래 코드 입력

1)
$ git init

2)
실제 디렉토리 내에 .txt파일 하나 생성 (main.txt 생성함)
## Mac에서 .txt파일 만드려면 텍스트 편집기 켠 후에 환경설정에서 기본 설정을 리치텍스트 -> 일반텍스트로 변경 후 생성

3)
$ git add .
## 해당 디렉토리를 git으로 관리하겠다는 의미
## git add "파일명"으로 특정하여 진행할 수도 있음

4)
$ git status
## 현재 commit된 상태나 변경된 내용을 표시해 줌

5)
$ git commit -m "Your Message"
## 변경사항을 commit함

6)
$ git remote add origin 깃허브 주소

7)
$ git push -u origin master

이렇게 진행하면 로컬의 디렉토리를 깃과 연동하여 관리할 수 있게 됩니다.

 

 

3. 이후 깃허브의 두 레포지토리를 GitClone에 cloning함

$ cd GitClone
$ cd gitTest

$ mkdir A
$ mkdir B
# gitTest디렉토리 내에 옮기고자 하는 두 레포지토리와 이름이 같은 디렉토리 생성


$ cd ..
# 이전 디렉토리로 이동

$ git clone 레포지토리 A 주소
$ git clone 레포지토리 B 주소
# GitClone 디렉토리에 cloning

# 레포지토리들의 이름이 각각 RepositoryA, RepositoryB였다고 가정하면 cloning한 후에
# GitClone 디렉토리 내부에는 RepositoryA, RepositoryB 이름의 폴더가 두 개 생김

 

4. 레포지토리를 합칠 곳인 gitTest로 이동하여 remote를 가져옴

$ cd gitTest
$ git remote add MergeA ../RepositoryA

# git remote add [remote 이름] [옮길 레포지토리의 위치]
# remote 이름은 알아볼 수 있게 알아서 지정하면 됨


# $ git remote add [remote 이름] https://github.com/아이디/레파지토리이름.git
# 깃허브 주소로도 가능

 

5. 이후 한꺼번에 모으고자 하는 디렉토리에서 merge하면 됨

$ git fetch MergeA
$ git merge 레포지토리이름/브랜치명

# fetch 명령어를 입력하고 나면 아래의 내용이 나옴
# From ../RepositoryA
# * [new branch]      브랜치명       -> 레파지토리이름/브랜치명


# fatal: refusing to merge unrelated histories 에러 발생 시
$ git merge --allow-unrelated-histories 레포지토리이름/브랜치명

마지막으로 3 - (3~7) line을 다시 수행해주면 merge된 것들이 깃허브와 연동됨

 

 

참고

https://srcho.tistory.com/26

 

Mac 사용자를 위한 Git 간단 사용법

1. Git으로 형상관리 하기.  git은 버전 관리 시스템(VCS, Version Control System)의 한 종류이다. 그렇다면 버전 관리는 어떤 것이고, 왜 필요한 것일까?  버전 관리란 프로그래밍을 할때 프로젝트 단위

srcho.tistory.com

https://velog.io/@lina0322/git-git-repository-%ED%95%A9%EC%B9%98%EA%B8%B0git-log-%EC%A7%80%ED%82%A4%EA%B8%B0

Comments