레이블이 merge인 게시물을 표시합니다. 모든 게시물 표시
레이블이 merge인 게시물을 표시합니다. 모든 게시물 표시

merge two git repostiory

# 2개의 깃 저장소를 합쳐보자
# 로컬에 repo1, repo2 각각 저장소를 사용한다고 가정하고
# repo1 += repo2 으로 repo1 기준으로 repo2 저장소를 추가하여 병합한다.

# repo1 에서 repo2 리모트 추가
git remote add repo2 https://github.com/ysoftman/repo2

# remote 상태를 확인하면 origin 외 repo2 도 추가된것을 알 수 있다.
git remote -v
repo2 https://github.com/ysoftman/repo2 (fetch)
repo2 https://github.com/ysoftman/repo2 (push)
origin https://github.com/ysoftman/repo1 (fetch)
origin https://github.com/ysoftman/repo2 (push)

# repo2 내용(브랜치,태그등 정보)을 최신으로 가져온다.
git fetch repo2

# 이제 커밋 로그를 보면 (repo2/...)의 내용도 같이 보인다.
# repo2 의 master 브랜치내용로 하는 로컬 브랜치를 만든다.
git checkout -b old_repo2 repo2/master

# (optional) repo2 -> B 디렉토리를 생성하고 하위로 옮기는 커밋

# 이제 (repo1기준) master 로 바꾸고
git co master

# (optional) repo1 -> A 디렉토리를 생성하고 하위로 옮기는 커밋

# old_pro2 -> master 로 머지한다.
git merge old_repo2

# Fatal: refusing to merge unrelated histories 에러 발생시
# git merge old_repo2 --allow-unrelated-histories

# 리모트에 푸시
git push

# 이제 필요없는 repo2 리모트 저장소 설정에서 제거
git remote remove repo2