2013-07-24 2 views

답변

67

,이 작업을 수행하는 또 다른 방법은 --keep-index를 사용하여 모든 것을 숨기고 후 유지하려는 변경 무대,하는 것입니다 위의 명령은 modified-file.txt을 포함하여 모든 것을 숨기지 만 해당 파일을 작업 디렉토리 및 스테이지에 남겨 둡니다. official Linux Kernel Git documentation for git stash에서

:

--keep-index 옵션을 사용하는 경우, 이미 색인에 추가 된 모든 변경 사항이 그대로 남아 있습니다. 트릭은 '숨기고하지, 일이 있지만 FWIW 당신을 도울 수있다

27

git stash 다음으로 git stash apply (git stash && git stash apply)은 파일을 숨기고 바로 뒤에 숨김을 적용합니다. 그래서 결국 은밀한 곳에서 그리고 일하는 곳에서 당신의 변화를 가져올 것입니다. 원하는 경우 별칭을 만들 수 있습니다. 그냥 ~/.gitconfig이 같은 것을 넣어 :

$ git add modified-file.txt 
$ git stash save --keep-index 

을 : 그것은 가치가 무엇인지를 들어

[alias] 
    sta = "!git stash && git stash apply" 
+0

+1 어떻게 별칭을 만드는 지 말해 주면 – anthropomorphic

+0

도 무엇입니까? 'git stash; git stash apply' 및'git stash & git stash apply'? – anthropomorphic

+8

차이점은 ['&&'는 처음으로 0 상태 코드가 반환 된 경우에만 두 번째 명령을 실행합니다.] (http://linux-training.be/files/books/html/fun/ch11s04.html). – madhead

2

: 당신은 당신의 처리에 태그 은닉을 커밋이 이제

git add -A 
git commit -m "this is what's called stashing"  (create new stash commit) 
git tag stash        (mark the commit with 'stash' tag) 
git reset HEAD~  (Now go back to where you've left with your working dir intact) 

그리고, 그것은 당신 만에게 어쨌든 git stash pop을 할 수는 없습니다 패치를 생성하거나 거기에서 파일 등을 재설정하는 것과 같은 일을 할 수 있습니다. 작업 디렉토리 파일은 그대로 유지됩니다.

3

실용적으로 사용할 가능성이있는 답변이 약간 향상되었습니다.

$ git add modified-file.txt 
(OR $ git add . ---- for all modified file) 
$ git stash save --keep-index "Your Comment"