공부/Project

작업 환경 전환 시 Git 을 활용한 임시 커밋 처리

린구 2024. 11. 19. 15:12
반응형

 

작업 환경이 데스크탑에서 노트북으로 바뀌었다. 기존에 진행하던 작업을 이어가기 위해 임시 커밋을 만들어 원격 저장소에 푸시를 했다. 

이후 노트북에서 푸시된 브랜치를 받아 작업을 이어갔지만, 임시 커밋은 더 이상 필요하지 않았다. 

 

그래서 커밋 내역만 깔끔하게 제거하고 변경 사항은 유지하는 방법을 사용했다. 

 

1. 임시 커밋 후 푸시 

기존 작업을 잃지 않기 위해 모든 변경 사항을 임시로 커밋하고, 원격 저장소에 푸시를 했다. 

git add .
git commit -m "temp: 임시 커밋"
git push origin [브랜치명]

 

2. 다른 컴퓨터에서 브랜치 가져오기 

노트북으로 작업 환경을 전환한 뒤, 푸시한 브랜치를 가져왔다. 

git pull origin [브랜치명]

 

이 과정을 통해 데스크탑에서 하던 작업을 노트북으로 이어서 할 수 있었다. 

하지만 작업 과정에서 만든 임시 커밋은 불필요했기 때문에 이를 제거하기로 했다. 

 

3. 커밋 내역 제거 후 변경 사항 유지 

임시 커밋을 제거하되, 작업한 변경 사항은 그대로 유지하고 싶었다. 

이를 위해 `git reset --soft HEAD^` 명령어를 사용했다.

git reset --soft HEAD^

 

이 명령어를 실행하니, 마지막 커밋이 취소되면서 변경 사항은 `Staging Area(커밋 준비 상태)`에 남아있었다.

즉, 커밋 기록만 사라졌고 작업 내용은 그대로 유지되었다. 

 

4. 강제 푸시로 원격 저장소 반영 

원격 저장소에 남아 있는 임시 커밋을 덮어쓰기 위해 `강제 푸시(force push)`를 사용했다. 

git push origin [브랜치명] -f

강제 푸시를 통해 원격 저장소의 기록을 깔끔하게 정리할 수 있었다. 

 

5. 결과

이 과정을 거쳐, 브랜치는 다음과 같은 상태가 되었다: 

  1. 임시 커밋이 삭제되어 기록이 깔끔해졌다.
  2. 변경 사항은 손실되지 않고 그대로 유지되었다.
  3. 원격 저장소와 로컬 브랜치가 정리된 상태로 동기화되었다.

 

마무리

작업 환경이 바뀌는 상황에서 임시 커밋은 작업을 안전하게 이전하는 데 유용한 도구였다.

이후 `git reset --soft`와 `강제 푸시`를 통해 불필요한 커밋 기록을 정리하면서도 작업 내용을 유지할 수 있었다. 

 

작업 흐름을 관리하면서 기록까지 정리할 수 있는 방법을 알게 돼서 좋으다~!! 😊

반응형