그럼에도 불구하고

👨‍💻

[Git, GitHub] git stash란? 본문

이모저모/Git, GitHub

[Git, GitHub] git stash란?

zenghyun 2023. 7. 11. 15:23

 

git stash에 대해 알아보겠습니다.

 

 

[ Git Stash ]

커밋하지 않은 변경사항들을 임시 저장하도록 해주고 불필요한 커밋으로 이력이 지저분해지는 것 없이 나중에 돌아올 수 있게 해 줍니다. 

 

일반적으로, 아직 완성되지 않았거나 커밋할 준비가 되지 않은 것에 대해서도 커밋을 할 수 있습니다.

 

📌 git stash

git stash

 

어느 시점에서, 커밋하지 않은 모든 변경사항이나 등록했거나 또는 등록하지 않은 변경사항을 모두 stash 합니다.

 

즉, 변경사항을 기억했다가 워킹 디렉터리의 변경사항을 되돌리는 것입니다. 그래서 더 이상 그 변경사항을 보지 못하지만, stash에서는 여전히 사용 가능해서 나중에 돌아와서 되찾을 수 있게 해 줍니다.

 

📌 git stash pop 

git stash pop

⭐️ 특정 stash만 pop 하기 
git stash pop stash@{num}

stash에서 가장 최근에 stash 한 변경사항들을 삭제하고 어디에 있든지 내 복사본에 다시 적용할 수 있게 해 줍니다. 

(변경사항들을 적용하면 자동으로 stash에서 삭제됩니다.) 

 

또한, 몇몇 변경사항들을 stash 하기 위해 git stash에 사용할 수 있고, 잠시 후 다른  branch나 stash 했던 동일한 branch에 다시 적용할 수도 있습니다.

 

📌 git stash apply

git stash apply 

⭐️ 특정 stash만 apply 하기 
git stash apply stash@{num}

git stash pop과 비슷하지만 apply는 stash 영역에 stash를 남겨둡니다.

 

즉, 변경사항들은 여전히 stash에 있고, 여러 곳에 변경사항들을 다시 적용할 수 있게 해 줍니다. 

 

📌 git stash list

git stash list

내가 등록한 stash 목록들을 볼 수 있습니다. 

 

📌 git stash drop

git stash drop stash@{num}

삭제하고 싶은 stash를 삭제할 수 있게 해 주며, git stash drop 다음에  stash 식별자 또는 인덱스를 넣으면 됩니다. 

 

📌 git stash clear

git stash clear

stash에 있는 모든 것들을 없애버립니다. 

 

🏷️  예제

 

Stashing Exercise

Initialize a new git repo in a folder

plum-poppy-0ea.notion.site

 

Comments