it-swarm-tr.com

Git'in iki aşamalı taahhüt sürecinin (aşamalandırma) faydası nedir?

Git'i öğreniyorum ve iki adımlı bir taahhüt süreci olduğunu fark ettim:

  1. git add <files>
  2. git commit

İlk adım, revizyonları "aşamalandırma alanı" veya "dizin" olarak adlandırır.

İlgilendiğim şey, bu tasarım kararının neden verildiğidir ve faydaları nelerdir?

Ayrıca, git kullanıcısı olarak bunu yaparsınız veya git commit -a?

Bu özelliği olmayan bzr'den (Çarşı) geldiğim için bunu soruyorum.

180
thomasrutter

Çalışmayı ayrı işlemlere ayırın. Muhtemelen birçok kez tek satırlık bir düzeltme yazmak için bir dosya açtınız, ancak aynı zamanda biçimlendirme yanlıştı, bazı belgeler iyileştirilebilir veya başka bir ilgisiz düzeltme olabilir. Diğer RCS s ile bunu not etmeniz veya belleğe kaydetmeniz, geldiğiniz düzeltmeyi bitirmeniz, işlemeniz ve sonra düzeltmeye geri dönmeniz gerekir diğer şeyler (veya alakasız şeyler ile çamur topu taahhüdü oluşturun). Git ile hepsini bir kerede düzeltirsiniz ve stage + git add -i veya git-gui.

Derlemeyi bozma. Karmaşık bir değişiklik üzerinde çalışıyorsun. Böylece, bazıları diğerlerinden daha iyi çalışan, bazıları ise kırılan farklı şeyler denersiniz. Git ile modifikasyon işleri daha iyi hale getirdiğinde bir şeyler hazırlarsınız ve modifikasyon çalışmadığında checkout (veya biraz daha Tweak) yaparsınız. Düzenleyicinin geri alma işlevine güvenmek zorunda kalmayacaksınız, yalnızca dosyaya göre değil, tüm depolamayı checkout ve dosya düzeyindeki hataları (tamamlanmamış bir dosyayı kaldırma gibi) veya kötü bir modifikasyondan sonra kaydetme + kapatma) çok fazla iş kaybına yol açmaz.

83
l0b0

Benim için avantajlarından biri, dosyaları aşamalı olarak "ekleme" yeteneğidir. Taahhüt etmeden önce her dosyayı gözden geçiriyorum. Dosya incelendikten sonra ekliyorum. Ne zaman ben git status veya git diff, git bana yalnızca değiştirilmiş ve henüz eklenmemiş dosyaları gösterir. Tüm dosyaları inceledikten ve eklediğimde, taahhütte bulunabilirim.

Yani evet, evreleme alanını çok yararlı buluyorum.

Ve hayır, asla git commit -a. Ancak, sık sık git add -u. Bu şekilde ne yapılacağını hala hayal edebiliyorum.

65
David

Avantajı oldukça basittir: Hangi dosyaları taahhüt etmek istediğinizi tam olarak kontrol etmenizi sağlar. Bu konuda git add -p taahhüt etmek istediğiniz satır kontrol etmek için.

21
Rein Henrichs

Sevdiğim faydalardan biri, değişikliğin bir kısmını taahhüt edebilme yeteneğidir. Yani, git add -e komutunu kullanarak. Bazen istediğim kadar sıklık yapmıyorum ve git add -e komutu değişiklikleri bir dereceye kadar çözmemi sağlıyor.

1
leed25d