merge two git repositories
Merge Two Repositories
github를 하다보니 쓸데 없이 저장소를 나누어 놓고 쓰고 있더라..
그러다보니 이게 여기다 올려야 하는지 아닌지도 모르겠고…
일명 대환장파티 레포지토리라고 해야 할까..
그래서 시도를 해보았다. (스프링 공부나 할 것이지)
- 저장소 병합 (서브 트리 이용) – 별로다..
- 요우님 블로그 (cherry-pick 이용) –이게 맞는건가 싶었다.
- 스택오버플로우 형님들 (걍 머지 때려라)
처음에는 그냥 머지를 해보았다.
참고 : merging two git repositories
실패했다.
$ g merge practice_js/master
fatal: refusing to merge unrelated histories
다른 히스토리를 가졌으니 안된다고 한다.
그 다음으로 요우님 방법으로 시도를 했다. (그냥 머지는 안된다고 알려주셨다..😊😊)
요우님 블로그 발췌
git checkout merge/PP
git log #에서 가장 최근의 Commit SHA값을 복사해둔다.
git checkout master
git cherry-pick 9ede61845d75411e8cef35303b6eeaa5d7c26bdb
그런데 생각보다 블로그에 나와 있는 글에는 마지막 해시 값만 넣으면 된다는 뉘앙스로 써져 있었으나, 그게 아니라 커밋 자체를 모두 체리픽으로 가져오는 것인 것 같았다. (이해를 잘 못 했을 수도 있다.)
나의 경우 마지막 해시 값을 가져오니 딱 그 해시 값만 가져오더라.. (방법을 잘못 따라한 것 같다.) 😂😂😂
그래서 검색했다… 무언가 방법이 있을 것만 같다.
찾았다..👍👍👍 스택오버 플로우 누님/형님들은 대단하다.
참고 : how do you merge two git repogitories
방법은 이렇다..그냥 머지 하면 된다.
단, 다른 히스토리인 것도 허용한다는 옵션을 준다.
cd path/to/project-b
git remote add project-a path/to/project-a
git fetch project-a
git merge --allow-unrelated-histories project-a/master #or whichever branch you want to merge
git remote remove project-a
위처럼 옵션을 준 결과
git merge --allow-unrelated-histories practice_js/master
Auto-merging README.md
CONFLICT (add/add): Merge conflict in README.md
바로 이렇게 README.md
에서만 conflict가 난다.
이것만 해결해주면 된다. ^^ (찡긋😉)👍👍