힘내-숨김 작업
제품에 대한 새로운 기능을 구현한다고 가정합니다. 코드가 진행 중이며 갑자기 고객 에스컬레이션이 발생합니다. 이 때문에 몇 시간 동안 새 기능 작업을 제쳐 두어야합니다. 부분 코드를 커밋 할 수 없으며 변경 사항을 버릴 수도 없습니다. 따라서 부분 변경 사항을 저장하고 나중에 커밋 할 수있는 임시 공간이 필요합니다.
Git에서 숨김 작업은 수정 된 추적 파일을 가져 와서 변경 사항을 스테이징하고 언제든지 다시 적용 할 수있는 완료되지 않은 변경 사항 스택에 저장합니다.
[jerry@CentOS project]$ git status -s
M string.c
?? string
이제 고객 에스컬레이션을 위해 지점을 전환하고 싶지만 아직 작업중인 것을 커밋하고 싶지는 않습니다. 그래서 당신은 변경 사항을 숨길 것입니다. 스택에 새 숨김을 푸시하려면git stash 명령.
[jerry@CentOS project]$ git stash
Saved working directory and index state WIP on master: e86f062 Added my_strcpy function
HEAD is now at e86f062 Added my_strcpy function
이제 작업 디렉토리가 깨끗하고 모든 변경 사항이 스택에 저장됩니다. 우리는git status 명령.
[jerry@CentOS project]$ git status -s
?? string
이제 안전하게 분기를 전환하고 다른 곳에서 작업 할 수 있습니다. 다음을 사용하여 숨겨진 변경 사항 목록을 볼 수 있습니다.git stash list 명령.
[jerry@CentOS project]$ git stash list
stash@{0}: WIP on master: e86f062 Added my_strcpy function
고객 에스컬레이션을 해결하고 반쯤 완료된 코드를 찾는 새로운 기능으로 돌아 왔다고 가정하고 git stash pop 명령을 사용하여 스택에서 변경 사항을 제거하고 현재 작업 디렉토리에 배치합니다.
[jerry@CentOS project]$ git status -s
?? string
[jerry@CentOS project]$ git stash pop
위의 명령은 다음 결과를 생성합니다.
# On branch master
# Changed but not updated:
# (use "git add ..." to update what will be committed)
# (use "git checkout -- ..." to discard changes in working directory)
#
#
modified: string.c
#
# Untracked files:
# (use "git add ..." to include in what will be committed)
#
#
string
no changes added to commit (use "git add" and/or "git commit -a")
Dropped refs/stash@{0} (36f79dfedae4ac20e2e8558830154bd6315e72d4)
[jerry@CentOS project]$ git status -s
M string.c
?? string