Git | GitLab

[Git] stash - 특정 파일만 임시 저장

비번변경 2024. 11. 12. 10:10

개요

최근 Git 로컬 레포지터리에서 수정 작업을 많이 하고 있는데, 수정 내용을 간단하게 저장하고 다시 적용할 수 있는 stash를 적극적으로 활용하고 있다. git stash 명령은 워킹 디렉터리에서 수정이 발생한 모든 내용을 임시로 저장하는데, 특정 파일만 저장할 때도 많아서 방법을 적어둔다.

 

 

git stash push

git stash [push [-p|--patch] [-S|--staged] [-k|--[no-]keep-index] [-q|--quiet]
                 [-u|--include-untracked] [-a|--all] [-m|--message <message>]
                 [--pathspec-from-file=<file> [--pathspec-file-nul]]
                 [--] [<pathspec>...]]

push 명령은 로컬 수정 사항을 새 stash 항목에 저장하고 HEAD로 롤백한다.

일반적으로 사용하는 git stash 명령은 사실 git stash push 명령에서 push를 생략한 것이다. 다만 옵션을 지정하려면 push 명령을 생략해서는 안된다.

 

 

예시

다음과 같이 두 개 파일을 수정한 로컬 레포지터리가 있다고 하자.

README.md라는 파일의 수정사항만을 잠시 저장해두고 싶다. 이때 다음과 같이 명령어를 사용한다.

git stash push <FILE>
git stash -- <FLIE>

## 예시
git stash push README.md
git stash -- cherry.txt

지정한 파일만 잘 저장된 모습을 확인할 수 있다.

 

위에서 파일을 지정할 때는 push 명령을 생략할 수 없다고 적어두었는데, 예외적으로 --을 사용하면 push 명령을 생략하면서 지정한 파일만 stash 할 수 있다.

 

 

참고 문서

https://git-scm.com/docs/git-stash

https://postlude.github.io/2019/01/20/git-stash/