깃허브 수정사항을 다른 기기로 옮기려면?
밖에서는 맥북을 사용하고, 집에서는 데스크탑을 사용한다.
이렇게 개발 환경을 옮기면서 작업을 하면 커밋되지 않은 수정사항을 공유해야 한다.
어떻게 수정사항을 공유할 수 있을지 알아보자.
🚀 방법
찾아본 적절한 방법은 아래와 같이 두 가지가 있다.
1️⃣ 임시 커밋 방식
2️⃣ Patch 파일 공유 방식
📝 임시 커밋
임시로 커밋을 하고, 새로운 기기에서 커밋을 내려받는 방식이다.
순서는 아래와 같다.
- 기존 기기에서
git add .
로 전체 수정사항 스테이징 - 기존 기기에서
git push
로 전체 수정사항 원격 저장소에 병합 - 다른 기기에서
git pull
로 수정사항 내려받기 - 다른 기기에서
git reset HEAD^
로 임시 커밋을 제거
이 방식은 명령어를 실행하는 과정도 복잡하지만,
원격 저장소에 병합되어있기 때문에 작업을 마친 후의 커밋을 병합할 때 --force
가 필요하다.
이러한 점은 강제 푸시를 하면 안되는 상황에 강제 푸시를 할 수 밖에 없게 만든다.
이 단점조차 해결하기 위해서는 임시 브랜치를 파서 해결해야 한다.
이 방식은 여러모로 불편하다고 할 수 있다..
🛠️ patch 파일 공유
다음은 patch 파일을 기기간에 공유하는 방식이다.
순서는 아래와 같다.
- 기존 기기에서
git diff > changes.patch
- 다른 기기의 프로젝트 루트 디렉토리에
changes.patch
파일 전달꼭 루트 디렉토리가 아니어도 된다.
- 다른 기기에서
git apply changes.patch
실행프로젝트 루트 디렉토리가 아닌 다른 위치라면
git apply {경로}/changes.patch
로 수정한다.
이 방식은 간단하게 수정사항만 저장하는 파일이기에 용량이 적다.
이런 특징 덕에 빠르게 파일을 옮기고 작업을 이어나갈 수 있다.
🏁 결론
강제 병합의 위험성을 방지하고, 간단한 프로세스를 위해 patch방식을 사용하는 것이 적합해보인다.
This post is licensed under CC BY 4.0 by the author.