8 번째 수정본 소스 보기 : Git/저장소병합
마지막으로 [b]
-- Loading page list... --
내용출력
로그인[l]
Diary
[f]
최근변경내역
[r]
페이지목록[i]
횡설수설[2]
게시판[3]
링크
수정할 수 없습니다: Git/저장소병합 는 읽기 전용 페이지입니다.
= git 저장소 두 개를 병합 = == # 상황 == 저장소 A와 B가 있다. {{{ A - / /fileA B - / /fileB }}} A 저장소를 B에 합치면서, 기존 커밋 로그 등도 다 가져오고 싶다. (커밋 로그 같은 거 가져올 필요가 없다면... 그냥 fileA를 복사하면 된다) == # 디렉토리 이동이 필요없는 경우 == {{{ B - / /fileA /fileB }}} 이렇게 만들 경우는 쉽다. {{{ $ cd B # A저장소의 master브랜치를 fetch로 가져온다 (branch_A는 임의로 지은 이름) $ git fetch ../A/ master:branch_A # B저장소의 master브랜치에서 그것을 병합한다 $ git merge branch_A }}} 뭐 그나마 기분이 나쁜 거라면, 시작 커밋이 서로 다른 두 히스토리를 합쳤으니까 한 커밋에서 시작하는 게 아니라 두 커밋에서 시작해서 나중에 합쳐진 형태의 그래프가 된다. 원한다면 한쪽 히스토리와 다른 히스토리를 연결할 수도 있다. [[Git]]의 "두 저장소를 잇기"와 "CVS에서 Git로 이전하기" 참조. == # 한쪽 저장소를 서브디렉토리에 두고 싶은 경우 == {{{ B - / /A/fileA /fileB }}} 이렇게 하려니, 은근히 복잡하다. 사실 이게 맞는지 제대로 정리가 안 되었는데, 반나절 동안 직접 해보면서 발견한 내용만 적어보면, === # fetch로 가져오고 mv로 옮기고 merge === {{{#!vim sh # 여기서는 remote 저장소 추가를 했는데, 안 하고 그냥 위와 같이 fetch해도 될 것이다 [B (master)]$ git remote add repoA ../A/ [B (master)]$ git fetch repoA warning: no common commits remote: Counting objects: 6, done. remote: Compressing objects: 100% (2/2), done. remote: Total 6 (delta 0), reused 0 (delta 0) Unpacking objects: 100% (6/6), done. From ../A * [new branch] master -> repoA/master # 임시 브랜치를 만들고 [B (master)]$ git checkout -b TEMP repoA/master Branch TEMP set up to track remote branch master from repoA. Switched to a new branch 'TEMP' # fileA를 A 서브디렉토리로 옮기고 커밋 [B (TEMP)]$ mkdir A [B (TEMP)]$ git mv fileA A/fileA [B (TEMP)]$ git commit -m "move fileA to A/" [TEMP d13a3ce] move fileA to A/ 1 files changed, 0 insertions(+), 0 deletions(-) rename fileA => A/fileA (100%) # master 브랜치에서 병합 [B (TEMP)]$ git checkout master Switched to branch 'master' [B (master)]$ git merge TEMP Merge made by the 'recursive' strategy. A/fileA | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) create mode 100644 A/fileA # 뒷정리 [B (master)]$ git remote rm repoA [B (master)]$ git branch -d TEMP Deleted branch TEMP (was d13a3ce). }}} == # 기타 & comments ==
---- [[컴퓨터분류]]
Git/저장소병합
페이지로 돌아가기 |
다른 수정본 보기