Theo git-stash manpage, "Một stash được biểu diễn như một cam kết mà cây ghi lại trạng thái của thư mục làm việc, và phụ huynh đầu tiên được cam kết tại HEAD
khi stash đã được tạo ra," và git stash show -p
cho chúng ta "những thay đổi ghi vào stash như một diff giữa nhà nước cất giấu và phụ huynh ban đầu của nó
Để giữ các thay đổi khác của bạn còn nguyên vẹn, sử dụng git stash show -p | patch --reverse
như trong những điều sau đây:.
$ 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
Edit:
Một cải tiến nhẹ vấn đề này là sử dụng git apply
ở vị trí của miếng vá:
git stash show -p | git apply --reverse
Ngoài ra, bạn cũng có thể sử dụng git apply -R
như một kí hiệu để git apply --reverse
.
Tôi đã tìm thấy điều này thực sự tiện dụng gần đây ...
Nguồn
2009-06-20 15:39:33
Có thay đổi nào trong cây đang hoạt động không phải là stash được áp dụng không? –
Không thể chỉ tạo một bản vá được đảo ngược bằng cách phân biệt giữa bản sửa đổi hiện tại và phiên bản trước? Và sau đó áp dụng điều đó? – ralphtheninja