[git] git repository 합치기(git log 지키기)

llim🧚🏻‍♀️·2021년 1월 24일
7

git

목록 보기
1/1
post-thumbnail

안녕하세요. 엘림입니다🙇🏻‍♀️

오늘은 repository끼리 merge한 과정을 정리해보았습니다.

제가 이제 코딩을 시작한지 8개월차(42seoul 시작)가 되었고,
야곰 캠프를 시작한지도 3개월이나 되었네요!!
(블로그까지 시작하고.. 감개무량🥺)

이제 저도 취업을 준비해야하니, git hub를 깔끔하게 해야겠다는 생각이 들었습니다.
그런데 야곰 iOS 스타터 캠프⛺️에서, 각각의 프로젝트마다 repository를 포크해서 사용하다보니... 레파지토리 목록이 아주 엉망이네요.🤦🏻‍♀️

사실 처음 몇몇 프로젝트들은, git log를 생각하지 않았습니다.
즉, 그냥 폴더를 복사 붙여넣기 했죠.ㅎㅎㅎ
그래서 파일은 살아있지만 log는 하나도 안남아있답니다.🪂

하지만 영원히 이렇게 살 수는 없어요. 열심히 쌓은 제 commit들 버리지 않고 챙겨가보도록 하겠습니다.

1단계

필요한 레파지토리를 모두 local에 clone합니다.

$ git clone [repository A 주소]
$ git clone [repository B 주소]

사실, 저장할 곳은 clone하고
가져올 것(저장할 것)은 clone하지 않고 주소만 가지고 있어도 됩니다:)

어떻게 해도 상관 없습니다!

하지만 저는 local에 clone해서 진행해볼게요.

요렇게 저는 따로 폴더를 생성해서 담아주었습니다.
자, 저는 iOS_yagom_starter_camp에 ios-exposition-universelle을 담아주려고 하는 것인데요.

iOS_yagom_starter_camp = A(저장할 곳)
ios-exposition-universelle = B(저장할 것)
으로 A안에 B를 담는다고 보시면 될거같아요.

2단계

자 그럼 이제 저장할 곳으로 갑니다.

여기서 저장할 것의 remote를 가져옵니다.

$ cd repositoryA
$ git remote add [remote 이름] [가져올 것의 위치]

로 하면 되는데요.

$ cd iOS_yagom_starter_camp
$ git remote add expositon ../exposition

저같은 경우에는 위에처럼 했습니다!
리모트 이름은 아무거나 하고싶은걸로 하세요~

저는 clone 받아서 했지만, 만약 local에 받지 않았다면 아래처럼 repository 주소를 입력하면 되겠죠?

$ git remote add [remote 이름] https://github.com/아이디/레파지토리이름.git

3단계

자 이제 합쳐봅시다.

$ git fetch [remote 이름]
$ git merge [A의 현재 브랜치와 같은 B의 브랜치 이름]

git이라는게 원래 개별 레파지토리이기 때문에 fetch를 통해 remote에 있는 것과 맞춰주고,
merge를 통해 실제 브랜치들을 합치는 작업을 하는 것이라고 보면 되겠습니다.

❗️ 혹시, 여기서 저처럼... 현재 브랜치와 같은 B의 브랜치 이름이 뭔지 모르시는 분 계신가요..? 하하하
이건 간단합니다.

From ../ios-exposition-universelle
 * [new branch]      브랜치명       -> 레파지토리이름/브랜치명

방금 fetch한 문구의 마지막을 보시면 이렇게 되어있을텐데요. 저 레파지토리이름/브랜치명 을 입력해주시면 됩니다!!

❗️ 그런데 여기서 문제가 발생할 수 있습니다 ❗️

문제없이 합쳐지면 다행이지만, 전혀 연관이없는 레파지토리의 경우에는
fatal: refusing to merge unrelated histories 에러를 보게 되는데요.

git merge --allow-unrelated-histories [현재 브랜치와 같은 B의 브랜치 이름]

그때는 처음 merge 방식 대신 이렇게 하면 된답니다~

끝🥳

뒤에 폴더 정리하고 push하는건 할 수 있으시죠?🥺

레파지토리 합치느라 고생하셨습니다😆

오늘의 포스팅 마무리하겠습니다.




잘못된 것이 있거나, 궁금한 것이 있다면 언제든지 댓글✍🏻이나 메일📬 주세요오🙇🏻‍♀️



참고 링크👍👍👍
git repository 끼리 merge 하기 https://dukwon.tistory.com/9

profile
한달 차 iOS 개발자입니다🐥

3개의 댓글

comment-user-thumbnail
2021년 3월 7일

엘림님 덕분에 레포지터리 잘 데려왔어요. 감사합니다 :) -kio

1개의 답글