git-stash 맨 페이지 에 따르면 "스 태시는 트리가 작업 디렉토리의 상태를 기록하는 커밋으로 표시되고 첫 번째 상위는 스 HEAD
태시가 생성 될 때의 커밋 git stash show -p
"으로 표시됩니다. 숨김 상태와 원래 부모 간의 차이로 숨 깁니다.
다른 변경 사항을 그대로 유지하려면 git stash show -p | patch --reverse
다음과 같이 사용 하십시오.
$ git init
Initialized empty Git repository in /tmp/repo/.git/
$ echo Hello, world >messages
$ git add messages
$ git commit -am 'Initial commit'
[master (root-commit)]: created 1ff2478: "Initial commit"
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 messages
$ echo Hello again >>messages
$ git stash
$ git status
# On branch master
nothing to commit (working directory clean)
$ git stash apply
# On branch master
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: messages
#
no changes added to commit (use "git add" and/or "git commit -a")
$ echo Howdy all >>messages
$ git diff
diff --git a/messages b/messages
index a5c1966..eade523 100644
--- a/messages
+++ b/messages
@@ -1 +1,3 @@
Hello, world
+Hello again
+Howdy all
$ git stash show -p | patch --reverse
patching file messages
Hunk #1 succeeded at 1 with fuzz 1.
$ git diff
diff --git a/messages b/messages
index a5c1966..364fc91 100644
--- a/messages
+++ b/messages
@@ -1 +1,2 @@
Hello, world
+Howdy all
편집하다:
이것에 대한 약간의 개선 git apply
은 패치 대신에 사용 하는 것입니다.
git stash show -p | git apply --reverse
또는 git apply -R
의 약어로 사용할 수도 있습니다 git apply --reverse
.
나는 최근에 이것이 정말로 편리하다는 것을 알았습니다 ...