Git | 임시로 커밋하고 제거하기
포스트
취소

Git | 임시로 커밋하고 제거하기

개요

PC1과 PC2 사이를 이동하며 프로젝트를 작업해야 할 때, 커밋하기에는 현재 작업물이 애매한 경우 임시로 저장 후 이동하는 상황에 이용할 수 있는 방법이다.

PC1이 임시로 변경 사항을 저장하고 옮겨야 하는 PC, PC2가 옮겨야 하는 PC다.

(PC1) 임시로 커밋 및 푸시

1
2
3
git add .
git commit -m "DEV: 250811"
git push origin main

임시로 커밋을 작성후 푸시한다.

개인 프로젝트라면 main에 직접해도 상관없지만 협업 중이라면 개인 branch를 따로 파는 것이 좋다.

(PC2) git reset

1
2
git pull
git reset --soft HEAD~1

pull한 후, 가장 마지막 커밋을 제거하고 스테이징 상태로 되돌린다.

reset의 각 모드 차이는 다음과 같다.

  • --soft는 스테이징 상태로 되돌린다. (git add . 실행 후 시점)
  • --mixed는 스테이징도 해제한다. (git add . 이전 시점)
  • --hard는 내역을 해당 상태로 되돌리고 이후 변경 사항은 모두 삭제한다.

따라서 현재 작업에서는 --soft 또는 --mixed를 이용한다. 모드를 따로 명시하지 않으면 --mixed 모드가 적용된다.

(PC2) git push

1
git push --force

PC로 변경사항을 이동했으니 이제 원격 저장소에 임시 커밋을 제거해야 한다. 그런데 과거로 되돌린 상태에서 push를 수행하므로 git은 기본적으로는 잘못된 동작이라 생각해 거부한다.

위에서도 말했듯 git reset, git push --force 같이 협업 중이면 웬만해서 사용하면 안되는 명령어니, 매우 조심스럽게 사용해야 한다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.