Post

깃허브 수정사항을 다른 기기로 옮기려면?

밖에서는 맥북을 사용하고, 집에서는 데스크탑을 사용한다.
이렇게 개발 환경을 옮기면서 작업을 하면 커밋되지 않은 수정사항을 공유해야 한다.
어떻게 수정사항을 공유할 수 있을지 알아보자.

🚀 방법

찾아본 적절한 방법은 아래와 같이 두 가지가 있다.

1️⃣ 임시 커밋 방식
2️⃣ Patch 파일 공유 방식

📝 임시 커밋

임시로 커밋을 하고, 새로운 기기에서 커밋을 내려받는 방식이다.
순서는 아래와 같다.

  1. 기존 기기에서 git add .로 전체 수정사항 스테이징
  2. 기존 기기에서 git push로 전체 수정사항 원격 저장소에 병합
  3. 다른 기기에서 git pull로 수정사항 내려받기
  4. 다른 기기에서 git reset HEAD^로 임시 커밋을 제거

이 방식은 명령어를 실행하는 과정도 복잡하지만,
원격 저장소에 병합되어있기 때문에 작업을 마친 후의 커밋을 병합할 때 --force가 필요하다.
이러한 점은 강제 푸시를 하면 안되는 상황에 강제 푸시를 할 수 밖에 없게 만든다.
이 단점조차 해결하기 위해서는 임시 브랜치를 파서 해결해야 한다.

이 방식은 여러모로 불편하다고 할 수 있다..

🛠️ patch 파일 공유

다음은 patch 파일을 기기간에 공유하는 방식이다.
순서는 아래와 같다.

  1. 기존 기기에서 git diff > changes.patch
  2. 다른 기기의 프로젝트 루트 디렉토리에 changes.patch 파일 전달

    꼭 루트 디렉토리가 아니어도 된다.

  3. 다른 기기에서 git apply changes.patch 실행

    프로젝트 루트 디렉토리가 아닌 다른 위치라면
    git apply {경로}/changes.patch로 수정한다.

이 방식은 간단하게 수정사항만 저장하는 파일이기에 용량이 적다.
이런 특징 덕에 빠르게 파일을 옮기고 작업을 이어나갈 수 있다.

🏁 결론

강제 병합의 위험성을 방지하고, 간단한 프로세스를 위해 patch방식을 사용하는 것이 적합해보인다.

This post is licensed under CC BY 4.0 by the author.