작업 환경이 데스크탑에서 노트북으로 바뀌었다. 기존에 진행하던 작업을 이어가기 위해 임시 커밋을 만들어 원격 저장소에 푸시를 했다.
이후 노트북에서 푸시된 브랜치를 받아 작업을 이어갔지만, 임시 커밋은 더 이상 필요하지 않았다.
그래서 커밋 내역만 깔끔하게 제거하고 변경 사항은 유지하는 방법을 사용했다.
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. 결과
이 과정을 거쳐, 브랜치는 다음과 같은 상태가 되었다:
- 임시 커밋이 삭제되어 기록이 깔끔해졌다.
- 변경 사항은 손실되지 않고 그대로 유지되었다.
- 원격 저장소와 로컬 브랜치가 정리된 상태로 동기화되었다.
마무리
작업 환경이 바뀌는 상황에서 임시 커밋은 작업을 안전하게 이전하는 데 유용한 도구였다.
이후 `git reset --soft`와 `강제 푸시`를 통해 불필요한 커밋 기록을 정리하면서도 작업 내용을 유지할 수 있었다.
작업 흐름을 관리하면서 기록까지 정리할 수 있는 방법을 알게 돼서 좋으다~!! 😊
'공부 > Project' 카테고리의 다른 글
Springboot 쿠폰 발급 동시성 문제 해결 (feat. JPA 비관적 락) (0) | 2024.12.26 |
---|---|
Springboot 쿠폰 발급 동시성 테스트 데드락 문제 발생 (MySQL InnoDB, FK 참조 레코드..) (1) | 2024.12.26 |
[Circular dependency between the following tasks] 순환 종속성 문제 해결과 Mapper 활용 (0) | 2024.11.07 |
웹 프로젝트 서버 배포 흐름도 (0) | 2024.09.25 |
Spring Cloud FeignClient N+1 호출 문제 해결하기 (0) | 2024.09.23 |