Git & Github/μ‚¬μš©λ²•

[Git] git stash μ‚¬μš©λ°©λ²•

κ²½ν‘Έ 2022. 5. 3. 22:45
λ°˜μ‘ν˜•

μ•ˆλ…•ν•˜μ„Έμš” ~

 

μ˜€λŠ˜μ€ git stash에 λŒ€ν•΄μ„œ μ •λ¦¬ν•˜λ €κ³  ν•©λ‹ˆλ‹€ : )

 

git stashκ°€ ν•„μš”ν–ˆλ˜ 상황은 λ‹€μŒκ³Ό κ°™μ•˜μŠ΅λ‹ˆλ‹€.

 

νšŒμ‚¬μ—μ„œ μž‘μ—… μ€‘μ΄λ˜ 것을 ν•™μŠ΅ κ²Έ μ§‘μ—μ„œ μ΄μ–΄μ„œ μž‘μ—…ν–ˆμŠ΅λ‹ˆλ‹€. μž‘μ—…μ„ 마친 ν›„ 변경사항을 μ»€λ°‹ν•˜μ§€ μ•Šκ³ 

νšŒμ‚¬μ—μ„œ λ”°λ‘œ μž‘μ—…ν•œ λ‚΄μš©μ„ ν‘Έμ‹œν•œ 이후 μ§‘μœΌλ‘œ λŒμ•„μ™€ pull을 ν•˜λ‹ˆ 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

 

즉, ν˜„μž¬ λΈŒλžœμΉ˜μ—μ„œ μ™„λ£Œν•˜μ§€ μ•Šμ€ μž‘μ—…μ΄ μžˆλŠ”λ° λ‹€λ₯Έ 브랜치둜 μ΄λ™ν•˜κ±°λ‚˜ pull을 ν•΄μ•Ό ν•˜λŠ” 경우 λ“±

μ €μ²˜λŸΌ 였λ₯˜κ°€ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

μ΄λŸ¬ν•œ 였λ₯˜λ₯Ό 막아쀄 수 μžˆλŠ” 방법 쀑에 ν•˜λ‚˜κ°€ git stashμž…λ‹ˆλ‹€.

 

git stash : 변경사항 μ €μž₯ν•˜κΈ°

- ν˜„μž¬ μž‘μ—… 쀑인 디렉터리에 μžˆλŠ” 변경사항을 μ €μž₯ν•©λ‹ˆλ‹€.

// ν•΄λ‹Ή λ””λ ‰ν† λ¦¬λ‘œ 이동 ν›„
git stash

μ„€λͺ… : κ°€μž₯ 졜근 컀밋을 κΈ°μ€€μœΌλ‘œ κ·Έ μ΄ν›„μ˜ 변경사항듀을 μ €μž₯ν•©λ‹ˆλ‹€. μ΄λ ‡κ²Œ 되면 브랜치 μ΄λ™μ΄λ‚˜ pull 등을 μ‹€ν–‰ν•  수 있게 λ©λ‹ˆλ‹€.

 

git stash : μ €μž₯ν•œ 변경사항을 μ μš©ν•˜κΈ°

- git stash applyλ₯Ό μ΄μš©ν•΄ μ μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

git stash apply
// νŠΉμ • 변경사항을 μ μš©ν•  수 있음!
git stash apply stash@{번호}

μ„€λͺ… : 기쑴에 μ €μž₯된 변경사항을 μ΄λ™ν•œ λΈŒλžœμΉ˜λ‚˜ pull을 ν•œ 이후 적용 μ‹œ 킬 수 있게 λ©λ‹ˆλ‹€! μ΄λ•Œ 좩돌이 λ°œμƒν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

 

git stash : μ €μž₯된 변경사항을 μ œκ±°ν•˜κΈ°

- applyλ₯Ό μ§„ν–‰ν–ˆκ±°λ‚˜ 기쑴의 변경사항이 ν•„μš”κ°€ μ—†λ‹€λ©΄ μ œκ±°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

// κ°€μž₯ 졜근 변경사항 제거
git stash drop

// νŠΉμ • 변경사항 제거
git stash drop stash@{번호} 

// apply(적용) + drop(제거) 
git stash pop

 

git stash λͺ©λ‘ ν™•μΈν•˜κΈ°

- 기쑴의 변경사항듀을 μ œκ±°ν•˜μ§€ μ•Šμ•˜λ‹€λ©΄ 사라지지 μ•Šκ³  μŒ“μ΄κ²Œ λ©λ‹ˆλ‹€. git stash listλ₯Ό μ΄μš©ν•΄ ν•΄λ‹Ή 리슀트λ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

git stash list
stash@{0}: WIP on [branch이름]: [컀밋 번호] [컀밋 이름]
stash@{1}: WIP on [branch이름]: [컀밋 번호] [컀밋 이름]
stash@{2}: WIP on [branch이름]: [컀밋 번호] [컀밋 이름]
...

μ˜€λŠ˜μ€ κ°„λž΅ν•˜κ²Œ git stash에 λŒ€ν•΄μ„œ μ•Œμ•„λ΄€μŠ΅λ‹ˆλ‹€.

 

 

그럼 이만 πŸ‘‹πŸ» πŸ‘‹πŸ» πŸ‘‹πŸ»

λ°˜μ‘ν˜•