티스토리 뷰

728x90
반응형

기존의 repository를 클론해서 제 저장소에 가져오고,
수정하여 Pull Request하고,
merge가 되는 것 까지는 좋은데🤔


제가남긴 commit이라던가..
열심히 열심히한 흔적이 보이질 않더라고요😱
그래서, 흔적을 남길 수 있는 방법을 찾아냈습니다..!



🧾 Process

내 기록이 남겨져있는, clone해온 원본 저장소의 활동 log를
내 새로운 (원격)저장소로 가져올⚾️ 겁니다!
(이 과정들은 local에서 진행하게 됩니다)


정리하면,


  1. local에 원격저장소 2개(내 새로운 저장소랑 내기록이 남아있는거)를 가져와서
  2. 내꺼 repo에 내기록이 남은거를 복사해서
  3. 새로운 내 저장소에 붙여넣은 다음,
  4. push해서 원격에도 저장시킬 겁니다!

1️⃣ local에 clone 받기

git clone [내 새로운 저장소 주소] // 1번 저장소
git clone [내 흔적이있는, clone해온 원본 저장소 주소] // 2번 저장소

local에 원격저장소 2개를 가져옵니다⚾️
(이후, 원활한 설명을 위해 1번, 2번 이라고 labeling을 해둘게요!)

2️⃣ 1번 저장소에 2번 저장소 경로를 등록

cd [local에 저장된 1번 저장소 폴더]
git remote add [remote label] [2번 저장소가 저장되어있는 경로]

내 기록들을 집어넣을, 새로운 저장소 폴더로 들어가서
새로운 remote label을 만들어내는 과정이에요!
(remote label은 정해진 양식이 없어요😲)


다시말해,
내꺼 repo저장소에
다른 repo의 경로를 등록시키는 과정이에요
여러개의 repo경로가 등록되는 경우,
그 구분을 하기위해 이름표(label)를 적어주는 것이고요!

3️⃣ 등록된 2번 저장소 label을 이용하여, 정보가져오기

git fetch [remote label]

이렇게 해주면, 새로운 브랜치들이 생겨날 거에요!
그 브랜치들 중에, 자신의 활동 log가 마구마구 남겨져있는 브랜치가 뭔지 찾아주시면 돼요!
(보통은, main브랜치겠지만.. 혹시나하여😅)

4️⃣ 가져온 정보를 1번 저장소에 합치기

git merge [브랜치 이름]

"자신의 활동 log가 마구마구 남겨져있는 브랜치"를 merge시켜주면 끝~~!

✔️ 하지만, 어려울거에요.. 🤯

  1. 브랜치 이름이 뭔지 잘 헷갈리는 경우
    git fetch를 진행하게 되면, 새로운 브랜치가 생겼다고 목록이 쭉 뜰꺼에요!

    [2번 저장소이름]/main
    [2번 저장소이름]/test1
    [2번 저장소이름]/test2

    이런 식으로 말이죠!
    여기서 만약 test1 브랜치를 합쳐야 한다면,

    git merge [2번 저장소이름]/test1

    이런 식으로 적어주면 됩니다!
    (그래도 헷갈리면 댓글을 남겨주세요.. 😢)

  2. 상관없는 repo라는 오류⚠️가 발생하는 경우

    fatal: refusing to merge unrelated histories

    이런 오류가 발생한다면,

    git merge --allow-unrelated-histories [브랜치 이름]

    관련 없어도, 허락한다는 명령을 붙여주면 정상적으로 작동됩니다😁




이렇게, clone으로 가져왔던 git repository를 내 저장소로 합치는 방법을 정리해봤어요!
익숙해지면 금방금방 잘 되는데,
첫 진입장벽이 높은거 같아요😢
(그래서 이해가 안되는 부분을 찝어주시면 정말정말 감사할거에요🙇🏻‍♂️)


이해가 안되는 부분이나, 틀린 부분이 있으면 코멘트를 남겨주세요!
피드백은 정말정말 환영입니다🎉🎉


Reference

엘림님의 블로그

728x90
반응형