프로그래밍 공부

Git 저장소 병합 방법 (커밋 기록이 남아있는 상태로)

이번에 프로그래밍 공부한 레퍼지토리를 전부 합치려고 했는데..

그냥 합치기에는 커밋 기록이 다 사라져버리는게 너무 아까워서 커밋 기록이 남아있는 상태로 병합하는 방법을 서치해보면서 배운걸 정리해보려고 한다.

 

먼저, 깃 저장소를 한곳에 병합하려면 아래처럼 병합할 내용들을 한 폴더 안에 넣는다.

(나는 파일을 그냥 옮겨서 하나로 넣었는데, git clone을 사용해도 좋을 것 같다)

  • Programming/C
  • Programming/Java
  • Programming/Pythondl

이 다음에 아래와 같이 코드를 작성하면 된다.

//C 폴더에 Java 폴더를 병합한다.

//C 폴더로 이동후 아래 코드를 쓴다.

$git remote add Java ../Java
$git fetch Java
$git merge --allow-unrelated-histories Java/master # 또는 브렌치 이름
$git remote remove Java

$git commit -m 'Merge Java into C' //이건 임의로 적으면 된다.
$git push

여기서 주의해야될 점이, merge하게 되면 해당 폴더 내에있는 파일들이 합쳐지면서 뒤죽박죽되거나, 어떤 폴더에서 온 파일인지 헷갈릴 수 있다.

그러므로 옮기기 전, 병합할 파일에서 보기좋게 먼저 파일을 정리하고 병합하는 것이 중요하다!