Git'teki hazırlama alanına bir taahhüdü nasıl taşırsınız?


143

Bir taahhüdü hazırlama alanına taşımak istiyorsanız - bu işlemden vazgeçmeyin ve içindeki tüm değişiklikleri hazırlama alanına taşıyın (şubeyi taahhütten önce bulunduğu duruma etkin bir şekilde koyarak) - bunu nasıl yapıyorsun? Yoksa yapamayacağınız bir şey mi?

Nasıl yapacağımı bildiğim en yakın şey, taahhütte değiştirilen tüm dosyaları başka bir yere kopyalamak, hazırlama alanına gitmeye çalıştığınız taahhütten önce şubeyi sıfırlamak, tüm dosyaları depoya geri kopyalayın ve hazırlama alanına ekleyin. Çalışıyor, ama tam olarak hoş bir çözüm değil. Yapabileceğim şey sadece taahhüdü geri almak ve değişimini sahneleme alanına taşımak. Bu yapılabilir mi? Ve eğer öyleyse, nasıl?

Yanıtlar:


267
git reset --soft HEAD^

Bu, dizininizi HEAD^(önceki işlem) olarak sıfırlar, ancak değişikliklerinizi hazırlama alanında bırakır.

Bazı vardır kullanışlı diyagramlar içinde git-resetdocs

Windows kullanıyorsanız bu biçimi kullanmanız gerekebilir:

git reset --soft HEAD~1

18
Bu hiçbir şey git reset --soft HEAD~1yapmazsa, aynı anlama gelen aynı zamanda Windows'ta da çalışır.
Roman Starkov

9
Açıklığa kavuşturmak için, tilde ve karot git versiyonlarında farklı şeyler ifade ediyor. HEAD ~ 1 her zaman bir taahhüdün ilk ebeveyni takip eder. Windows cmd kabuğuyla ilgili olarak, sadece "HEAD ^" ye geri dönmek için "git reset --soft HEAD ^^" gibi başka bir karotla karottan kaçmanız gerekir. Bu tamamen Windows cmd kabuğunun bir eseridir, bu yüzden Windows'ta bir git GUI kullanıyorsanız bunu yapmanız gerekmez. Tilde ve karot schacon.github.io/git/git-rev-parse#_specifying_revisions
ahains

"Kullanışlı diyagramlar" için bir bağlantı ekledim. Kastettiğiniz bölüme götürüp götürmediğini hızlıca kontrol edebilir misiniz? Teşekkürler
Neuron

5

Basit Bir Yol

  1. Hazırlama Alanına taahhüt edilen dosyalar

    git reset --soft HEAD^1

  2. Sahneye Hazırlık : ( değişmeden "git reset HEAD ..." kullanın)

    git reset HEAD git commands.txt or git reset HEAD *ds.txt

burada, * -> tüm dosyalar bozulmadan ds.txt ile biter.

Netlik için aşağıdaki resme bakın:

resim açıklamasını buraya girin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.