깃허브에 레파지토리를 합쳐야 하는 상황이 생겼다. 처음에 검색을 통해서 진행하였는데, 잔디는 남아 있지만 커밋 기록이 add 'hottrack' from commit '~~~'로 합쳐져 하나의 커밋으로 보이는 문제가 있었다. 내가 필요한 것은 커밋 로그가 남아서 커밋 기록 및 레파지토리를 확인하고 싶었는데, 내 의도와는 다른 결과가 나왔던 것이다.
아래의 방법대로 진행하면 커밋 기록을 유지한채로 레파지토리를 합칠 수 있었다.
clone
우선, 필요한 레파지토리를 모두 클론해서 저장하였다.
그럼 현재 디렉토리에 A, B 디렉토리가 생성될 것이다.
다음부터는 이해하기 쉽도록, A는 상위 레파지토리 B는 하위 레파지토리로 지정해서 작성하려고 한다.
$ git clone [repository A 주소]
$ git clone [repository B 주소]
디렉토리 이동
A 디렉토리로 이동하여 B 디렉토리를 remote 해준다.
remote 이름은 편하게 작성하면 되고, B 디렉토리의 위치는 현재 디렉토리 기준으로 상위에 있기 때문에 주석과 같이 작성하였다.
$ cd repositoryA
$ git remote add [remote 이름] [B 디렉토리 위치] # git remote add repositoryB ../repositoryB
#From ../repositoryB
# * [new branch] 브랜치명 -> 레파지토리이름/브랜치명
# 레자피토리이름/브랜치명을 기억하자, 바로 아래에서 사용한다
fetch & merge
마지막으로 패치, 머지를 진행하면 된다.
패치는 변화가 없고, 머지를 하게 되면 변화가 생긴다.
$ git fetch [remote 이름] # git fetch repositoryB
$ git merge [레파지토리/브랜치 명] # git merge repositoryB/main
머지를 하면서 fetal: refusing to merge unrelated histories 에러를 마주하게 되면 아래의 방식으로 머지를 해주면 된다.
git merge --allow-unrelated-histories [레파지토리/브랜치 명]
# git merge --allow-unrelated-histories repositoryB/main
'GIT' 카테고리의 다른 글
[Git] 푸시전!! 커밋 메시지 남긴 후, 파일이 수정되었다면? (0) | 2024.08.29 |
---|---|
[GIT] 깃허브 자격 인증 데이터 변경 시, access token 재 등록하기 (0) | 2024.08.08 |
[GIT] Git 캐시(Cache) 삭제 (0) | 2024.07.03 |
[GIT] Pre-commit 사용법 및 설정 가이드 (0) | 2024.05.17 |
[Github] Git에서 푸시한 커밋 메시지 수정 방법 (0) | 2024.05.16 |
깃허브에 레파지토리를 합쳐야 하는 상황이 생겼다. 처음에 검색을 통해서 진행하였는데, 잔디는 남아 있지만 커밋 기록이 add 'hottrack' from commit '~~~'로 합쳐져 하나의 커밋으로 보이는 문제가 있었다. 내가 필요한 것은 커밋 로그가 남아서 커밋 기록 및 레파지토리를 확인하고 싶었는데, 내 의도와는 다른 결과가 나왔던 것이다.
아래의 방법대로 진행하면 커밋 기록을 유지한채로 레파지토리를 합칠 수 있었다.
clone
우선, 필요한 레파지토리를 모두 클론해서 저장하였다.
그럼 현재 디렉토리에 A, B 디렉토리가 생성될 것이다.
다음부터는 이해하기 쉽도록, A는 상위 레파지토리 B는 하위 레파지토리로 지정해서 작성하려고 한다.
$ git clone [repository A 주소]
$ git clone [repository B 주소]
디렉토리 이동
A 디렉토리로 이동하여 B 디렉토리를 remote 해준다.
remote 이름은 편하게 작성하면 되고, B 디렉토리의 위치는 현재 디렉토리 기준으로 상위에 있기 때문에 주석과 같이 작성하였다.
$ cd repositoryA
$ git remote add [remote 이름] [B 디렉토리 위치] # git remote add repositoryB ../repositoryB
#From ../repositoryB
# * [new branch] 브랜치명 -> 레파지토리이름/브랜치명
# 레자피토리이름/브랜치명을 기억하자, 바로 아래에서 사용한다
fetch & merge
마지막으로 패치, 머지를 진행하면 된다.
패치는 변화가 없고, 머지를 하게 되면 변화가 생긴다.
$ git fetch [remote 이름] # git fetch repositoryB
$ git merge [레파지토리/브랜치 명] # git merge repositoryB/main
머지를 하면서 fetal: refusing to merge unrelated histories 에러를 마주하게 되면 아래의 방식으로 머지를 해주면 된다.
git merge --allow-unrelated-histories [레파지토리/브랜치 명]
# git merge --allow-unrelated-histories repositoryB/main
'GIT' 카테고리의 다른 글
[Git] 푸시전!! 커밋 메시지 남긴 후, 파일이 수정되었다면? (0) | 2024.08.29 |
---|---|
[GIT] 깃허브 자격 인증 데이터 변경 시, access token 재 등록하기 (0) | 2024.08.08 |
[GIT] Git 캐시(Cache) 삭제 (0) | 2024.07.03 |
[GIT] Pre-commit 사용법 및 설정 가이드 (0) | 2024.05.17 |
[Github] Git에서 푸시한 커밋 메시지 수정 방법 (0) | 2024.05.16 |