[꼼꼼한 개발자] 꼼코더

[git] - git stash란? - 간단하고 쉽게 이해하기(예제코드, Git Stash의 모든것, Git Stash 명령어 종류, git 협업 방법, 코드 임시저장) 본문

간단하고 쉽게/Git

[git] - git stash란? - 간단하고 쉽게 이해하기(예제코드, Git Stash의 모든것, Git Stash 명령어 종류, git 협업 방법, 코드 임시저장)

꼼코더 2024. 5. 15. 01:02
반응형

🧹 간단 설명

git stash 명령어는 ‘임시저장’을 의미
(자세한 내용은 아래 참고 👀)

 

🤔 Git Stash란 무엇인가?

git stash 명령어는 Git에서 작업 중인 변경사항들을 임시로 저장할 수 있는 명령어

이를 통해 작업 중인 코드를 잃지 않고 다른 브랜치로 안전하게 이동하거나 급한 작업을 처리할 수 있다.


✍🏻 Git Stash 사용 예시 - 언제 사용해야 할까? 

[상황 1] : 'feature/add'라는 브랜치에서 'add 기능 유지보수' 작업 중 새로운 기능을 급하게 추가해야 할 때.

 

👨🏻‍🔧 요청자: "마이너스 기능 추가를 해야 해. 무조건 지금, 너무 급해!"

🧑🏻‍💻 개발자: "음... 지금 'add' 기능 수정 중인데... 하긴 기능 추가가 급하긴 하지. 근데 지금까지 수정(작업)했던 코드를 어떻게 하지? 삭제하긴 아깝고 메모장에 복붙하기엔 비효율적인데... 아하! git stash 명령어가 있었지!"

(가랏 git stash !!) 


[상황 2] : 'feature/member-join'이라는 브랜치에서 '회원가입'작업을 마무리 하고 MR(merge 요청)에서 Merge 대기중 회원가입 기능을 사용하는 다른 기능(로그인 기능 등) 개발을  곧바로 작업해야 할 때' (이해가 어렵다면 아래 대화를 참고하자!)

 

🧑🏻‍💻 주니어 개발자 : "(기지개를 피며) 읏차~ 아이고 이제 회원가입 기능을 마무리 했으니 팀장님께 Merge를 요청드려 볼까~?"

 

👨🏻‍🔧 팀장 개발자 : (자리에 없는 상황 💩,  💤 등)

🧑🏻‍💻 주니어 개발자 : "아 어디 가신거야..ㅠㅠ 나 회원가입 마무리 하고 로그인 기능도 만들어야 하는데..ㅠㅠ빨리 merge를 해주셔야 'feature/member-join' 브랜치에서 -> develop 브랜치로 내가 작성한 '회원가입' 기능이 merge(병합)이 되고 -> develop 브랜치에서  'feature/member-login' 브랜치를 분기해서 '로그인 기능 작업'을 시작할 수 있는데"

 

(만약 git stash를 모르는 상황이라면? - 😈 git stash를 모르는 게으른 월급루팡)

🧑🏻‍💻 주니어 개발자 : "(씨익 오히려 좋아🤓) 아이구..ㅠㅠ 어.쩔.수 없이 개발을 잠시 중단해야 겠다..정말 어쩔수가 없네~~?...😎"

 

(만약 git stash를 아는 상황이라면?  - 나는야 작업을 효율적으로 하는 개발자 😁)

🧑🏻‍💻 주니어 개발자 : "그럼 팀장님 오시기 전에 'feature/member-join' 브랜치에서 login 기능개발 하다가 '회원가입 기능 merge' 되면 지금까지 작업한 내용 git stash 하고 -> develop에서 'feature/memer-login' 브랜치 분기 후에 stash한 코드 불러와서 이어서 작업해야지~"

 

즉, 작업 중인 코드를 임시로 저장하고 새로운 작업을 시작하는 데 필요한 명령어가 바로 git stash

 

 


🧚🏻‍♂️ Git Stash 명령어 종류

😮 작업중인 코드 임시저장하기

  • index 형식으로 저장된다 (저장한 변경사항의 제목은 자동으로 생성.)
# 둘 중 하나를 사용
 git stash 
 git stash push 

✍🏻 작업중인 코드 제목 명시해서 저장하기

  • 작성한 제목은 list에서 확인이 가능하다
# 둘 중 하나를 사용
git stash -m "회원가입 기능 개발 코드"
git stash push -m "회원가입 기능 개발중"

📚 stash(임시저장)한 목록 보기

  • index 형식으로 확인이 가능하다
git stash list

📁 git statge에 올라간 것을 제외한 나머지만 임시저장하기

  • git add를 통해 이미 추가한(스테이징한) 변경사항은 스태시하지 않고 나머지를 임시저장 하기
git stash push --keep-index

🛎️ 가장 최근에 저장한 코드 가져오기

git stash pop # 코드를 가져오고 저장 리스트에서 삭제
git stash apply # 코드를 가져오고 저장 리스트에 유지

😁 index 번째 저장한 코드 가져오기

  • list의 특정 index 코드만 가져올 수 있다.
git stash pop stash@{1} # 리스트의 1번째 코드를 가져온 후 리스트에서 삭제
git stash apply stash@{0} # 리스트의 0번째 코드를 가져온 후 리스트에서 유지

 

 


🧙🏻‍♂️ 마무리 - git Stash의 활용 팁

위에서 예시를 들어서 설명했던 내용을 간략하게 정리해봤다.

  • 긴급 상황에서 유용: 급하게 다른 작업을 처리해야 할 때, 현재 작업 중인 변경사항을 임시로 저장하고 나중에 다시 복원할 수 있다.
  • 안정적인 코드 관리: 코드의 일관성을 유지하면서 다양한 작업을 병행할 수 있다.
  • 효율적인 브랜치 전환: 커밋하지 않은 변경사항을 잃지 않고 안전하게 브랜치를 전환할 수 있다.

 

다들 git stash 명령어를 통해 더 효율적이고 안전하게 코드를 관리하세요~ 🙋🏻‍♂️

Comments