SORU
30 Aralık 2009, ÇARŞAMBA


Gıt unstaged değişikliklerin bir parçası Geri Al

Nasıl gıt unstaged değişikliklerimi parçaları geri ama geri kalanı gibi unstaged duruyorum? Çözdüm bir şekilde

git commit --interactive
# Choose the parts I want to delete
# Commit the changes
git stash
git rebase -i master # (I am an ancestor of master)
# Delete the line of the most recent commit
git stash apply

Bu çalışır, ama eğer değişiklikler geri alınıyor sadece git commit --interactive gibi bir şey olsaydı güzel olurdu. Daha iyi yöntemler?

CEVAP
30 Aralık 2009, ÇARŞAMBA


Çalışma kopyası ve geri dönmek için indeks arasındaki fark tek sürü seçim yapmanızı sağlar git checkout -p kullanabilirsiniz. Aynı şekilde, git add -p sağlar seçin sürü eklemek için dizin ve git reset -p size izin verir tercih tek sürü gelen diff arasındaki dizini ve BAŞINI tekrar dışarı dizini.

$ git checkout -p file/to/partially/revert
# or ...
$ git checkout -p .

Eğer git depoyu önceden onlara bakmadan bu değişiklikleri korumak için anlık görüntü almak isterseniz, ben yapmak istiyorum:

$ git stash; git stash apply

Eğer sık sık kullanıyorsanız, diğer isteyebilirsiniz:

[alias]
    checkpoint = !git stash; git stash apply

Geri bireysel sahiplik veya çizgiler olabilir daha kolay kullanırsanız iyi bir editör mod veya eklenti olan desteği sağlamak için seçme hatları doğrudan dönmek gibi -p olabilir biraz sakar kullanın bazen. Magit, Git ile çalışmak için çok yararlı olduğunu Emacs modu kullanıyorum. İçinde Magit, sen-ebilmek koşmak magit-status bul farklar için değişiklik istediğin dönmek için seçin satırları sana keşke dönmek (veya basitçe imleç yakışıklısı sana keşke dönmek istersen geri dönmek iri bir kez yerine bir satırında bir kez) ve basın k döner bu özel hatları. Ben çok eğer Emacs kullanırsanız Magit tavsiye ederim.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jimmie Jones

    Jimmie Jones

    16 Kasım 2007
  • joshsnice

    joshsnice

    28 Kasım 2006
  • StalkerJS

    StalkerJS

    15 HAZİRAN 2010