티스토리 뷰

Programming/Git

[Git] git 명령어(2)

sohyun_ 2018. 11. 7. 14:59

stash / pop 기능은 여럿이 업무를 할 때 유용하며, 최근 자주 사용하게 되어 따로 정리한다. 


# stash 란?

사전적 정의: (안전한 곳에) 넣어두다



# stash하기

$ git stash

어떤 작업 중에 급한 일이 생겨 다른 브랜치로 변경해야한다. 그런데 현재 하던 작업이 진행중이어서 커밋을 하기에는 애매하다.

커밋하지 않고, 나중에 다시 돌아와서 작업을 이어서 하고 싶을 때는 git stash 명령을 사용해서 해결

워킹 디렉토리에 Unstaged - git add 는 수행됨 파일들을 백업하고 워킹디렉토리를 HEAD - 이전 커밋 상태로 만드는 명령이다.

stash 명령 적용대상

Modified + Tracked 상태인 파일 (한번이라도 add를 한 적이 있는 파일)

Staging Area에 있는 파일



# save

$ git stash save

현재 작업을 저장해두고 branch를 head로 돌린다



# list

$ git stash list

저장되어있는 stash보기



#pop

$ git stash pop

stash들은 stack에 저장되기때문에, 가장 최근에 저장된 stash가 현재 branch에 적용된다.

이 명령은 Stash를 적용하고 나서 바로 스택에서 제거해준다.



# apply

$ git stash apply

git stash pop 과 비슷한 명령어지만 stash list에서 삭제하지 않는다는 점이 다르다.

git stash apply 명령을 실행하여 Stash 내용을 다시 적용할 수 있다.

git stash apply stash@{2} 처럼 원하는 Stash 를 골라서 적용하는 것도 가능하다. (이름이 없으면 가장 최근 Stash 적용)

git stash apply --index 옵션을 통해서 Staged 상태까지 적용할 수 있다.



# stash 적용한 브랜치 만들기

$ git stash branch

git stash branch 명령을 실행하면 Stash 할 당시의 커밋을 Checkout 한 후 새로운 브랜치를 만들고 여기에 적용한다. 이 모든 것이 성공하면 Stash를 삭제한다.



# 필요없는 stash 삭제

$ git stash drop



#전체 stash list 삭제

$ git stash clear



# git clean

$ git clean

워킹 디렉토리 안의 추적하고 있지 않은 모든 파일을 지운다.

git clean -n 옵션을 통해서 가상으로 실행해보고 어떤 파일들이 지워질지 알 수 있다.

git clean 명령은 추적 중이지 않은 파일만 지우는 게 기본 동작이다. .gitignore`에 명시했거나 해서 무시되는 파일은 지우지 않는다.

'Programming > Git' 카테고리의 다른 글

[Git] git 명령어(1)  (0) 2018.11.06
댓글
최근에 올라온 글
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Total
Today
Yesterday