SORU
19 HAZİRAN 2009, Cuma


Nasıl tersine çevirmek için geçerli bir zulası?

Küçük bir düzeltme benim git stash away kurtardım. Benim çalışma kopyası git stash apply kullanarak başvurdum. Şimdi, ters yama (tür git revert ne gibi ama zulayı karşı) uygulayarak bu değişiklikleri geri almak istiyorum.

Herkes bunu nasıl biliyor mu?

Açıklama:Benim çalışma kopyası diğer değişiklikler var. Özellikle benim durumumda tarif etmek zor ama zula orada bazı hata ayıklama ya da deneysel kod tahmin edebilirsiniz. Şimdi diğer bazı değişiklikler ile benim çalışma kopyası karışık ve değişiklikleri olmadan ve etkisi saklamak görmek istiyorum.

Bu destekler şu anda zula gibi görünmüyor, ama git stash apply --reverse güzel bir özellik olurdu.

CEVAP
20 HAZİRAN 2009, CUMARTESİ


Göre git-stash manpage "zula temsil gibi bir taahhüt ağacı kayıtları devletin çalışma dizini ve onun ilk üst commit HEAD malı oluşturuldu" ve git stash show -p verir bize "değişiklikler kaydedildi zula gibi bir fark arasında saklanmış devleti ve özgün ana.

Diğer değişiklikler olduğu gibi korumak için, aşağıdaki gibi git stash show -p | patch --reverse kullanın:

$ 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

Düzenleme:

Bu hafif bir iyileşme yama yerine git apply kullanmak için:

git stash show -p | git apply --reverse

Alternatif olarak, git apply --reverse için bir kısaltma olarak git apply -R kullanabilirsiniz.

Bu gerçekten kullanışlı son zamanlarda buluyorum...

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:
Git

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ibebrent

    ibebrent

    23 Temmuz 2007
  • Kai Moosmann

    Kai Moosmann

    5 Temmuz 2006
  • Unbox Therapy

    Unbox Therap

    21 Aralık 2010