[Git] Git Stash : 변경사항을 임시로 저장하는 방법

2024. 3. 20. 17:11Git

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

반응형

보통 개발자들은 여러 작업을 동시에 진행하거나, 작업 중에 예기치 않은 변경이 필요할 때가 있습니다. 이런 상황에서는 현재 작업 중인 변경사항을 커밋(commit)하기 전에 보관할 필요가 있습니다. 여기서 git stash가 유용하게 사용됩니다. 이를 알아봅시다.

 

Stash 활용 예시

개발 중, 갑자기 다른 브랜치로 전환해야 하는 상황이 발생했다고 해봅시다. 이때 현재 작업 중인 변경사항을 임시 저장하고 싶을 것입니다. 이때 stash를 사용하면 됩니다. 왜냐하면 커밋하지 않은 변경사항이 남아있는 상태에서는 브랜치를 전환할 수 없기 때문에 stash 기능으로 잠시 저장하고 나중에 다시 돌아와서 이를 다시 적용할 수 있습니다.

커밋을 하지 않은 이유로는 아직 완료되지 않은 작업이나 실험적인 변경사항이었다면 이를 커밋하지 않고 stash에 일시적으로 보관할 수 있습니다. 이렇게 함으로써 불필요한 커밋을 방지할 수 있습니다.

 

 

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

 

 

Stash 명령어

메시지를 지정하지 않고 stash를 생성하기

git stash

 

메시지를 지정하여 stash를 생성하기

git stash save "message"


stash 리스트(목록) 확인하기

git stash list

 

가장 최근에 저장된 stash 변경사항 diff 보기

git stash show

 

stash@{0}: WIP on master: 1234abcd Commit message
file1.txt | 2 +-
file2.txt | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)

 

 

특정 stash(예: stash 번호 2)의 저장된 변경사항 보기

git stash show stash@{2}

 

변경된 내용을 패치 형식으로 보기

git stash show -p

 

diff --git a/file1.txt b/file1.txt
index 1234567..abcdefg 100644
--- a/file1.txt
+++ b/file1.txt
@@ -1,4 +1,4 @@
-Old line
+New line


stash에서 가장 최근에 저장된 변경사항을 다시 가져오기

git stash apply

 

stash에서 가장 최근에 저장된 변경사항을 다시 가져오고 stash를 삭제하기

git stash pop

 

특정 stash(예: stash 번호 2)를 삭제하기

git stash drop stash@{2}

 

저장된 모든 stash를 삭제하기

git stash clear

 

저장된 stash를 새로운 브랜치를 만들어 체크아웃하고 변경사항 적용해 주기

#git checkout -b [newBranchName]
#git stash apply stash@{number}
git stash branch [newBranchName] stash@{number}

 

참고로 stash는 해당 브랜치에만 임시로 저장됩니다. 다른 브랜치로 이동하면 해당 브랜치에서 저장한 stash 목록을 확인할 수 없습니다.

이렇게 git stash의 다양한 명령어를 활용하여 개발 작업을 보다 효율적으로 관리할 수 있습니다.

 

 

 

 

 

[Server] 외부에서 파일을 보다 안전하게 공유하는 방법 (feat. Synology Nas Server)

일을 하다 보면 잠시 자리를 비우는 동안 업무 요청사항이 올 때가 있습니다. 그럴 때마다 바로바로 대응을 해줘야 하는 경우에 마음이 급할 때가 있지요 이런 상황에 외부에서 파일을 보다 안

dev-chim.tistory.com

 

[npm] npm 버전 확인, 초기화, 설치 및 옵션, 삭제 등 기본 사용법

npm(node package manage)는 cdn 방식으로 패키지를 가져와서 사용하는 것이 아니라, 모듈화 된 패키지를 node 환경에서 쉽고 간편하게 설치하고 버전 관리할 수 있는 자바스크립트 패키지 매니저입니다.

dev-chim.tistory.com

 

[macOS] Mac에서 QuickTime Player로 화면 녹화하는 간단한 가이드 및 팁

Mac OS에서 기본적으로 제공되는 QuickTime Player를 사용하여 화면을 기록하는 방법에 대해 알아보겠습니다. QuickTime Player는 모든 Mac에 무료로 포함되어 있어 사용자들이 간편하게 화면을 녹화하고

dev-chim.tistory.com

 

현재 스크롤Y값 구하기

브라우저에서 현재 scrollY 값을 구하는 방법에 대해서 알아보겠습니다. window.pageYOffset === window.scrollY; //true window 안의 document가 수직 방향으로 스크롤된 거리를 픽셀 단위로 나타낸 부동소수점 수

dev-chim.tistory.com

 

[Utility] 쉽고 간편하게 디자인하기 : 캔바(Canva) 사용법

많은 사람들은 전문적인 디자이너가 아니라면 디자인 작업을 시작하는 것이 어렵다고 생각합니다. 이는 복잡한 디자인 프로그램의 사용에 대한 부담 때문일 수 있습니다. 그러나 제가 소개드리

dev-chim.tistory.com

 

반응형