Git am ve git camera arasındaki fark nedir?


134

Her ikisi de git amve git applyyamaları uygulamak için kullanılabilir. Farkı göremiyorum. Şimdi bir fark görüyorum: yalnızca dosyalara dokunurken git amotomatik olarak işliyor, git applyancak bir taahhüt oluşturmuyor. Tek fark bu mu?


11
amkısaltması olarak düşünülebilir Apply Mail...
Philip Oakley

Yanıtlar:


144

Hem giriş hem de çıkış farklıdır:

  • git applyBir yama (ör çıkış alır git diff) ve çalışma dizinine uygular (veya dizin, eğer --indexya --cachedkullanılır).
  • git ame-posta mesajları (örneğin çıktısı git format-patch) olarak biçimlendirilmiş taahhütlerin posta kutusunu alır ve bunları geçerli şubeye uygular.

git amgit applyperde arkasında kullanır , ancak önce (a Maildirveya okuma mboxve e-posta iletilerini ayrıştırma) ve sonra (taahhüt oluşturma) daha fazla iş yapar .


6
Not: çıktıyı git applyda kabul ediyor gibi görünüyor git format-patch.
Ciro Santilli 法轮功 冠状 病 六四 事件 法轮功

7
git applyçıktılar için de işe yarayacaktır git format-patchancak değişikliklerin etiketsiz olması ve taahhüt edilmesi gerekecektir (böylece uygulandıkları dizinde farklı bir taahhüt noktası oluşturmak). Bununla birlikte git am, taahhüt bilgisini (yazarla birlikte vb.) Uygulandığı dizine taşırsınız. git applysonra repo yama (kötü), git amyasal özellik değişiklikleri alabilir ve repo dahil edebilirsiniz (tercih edilen yaklaşım).
Prasoon Joshi

18

git applymbox veya Maildir biçimindeki e-postaların yamalarını ve sıralarını uygulamak ve "karşıt" ı git diffise düz farkları (örn. ) git amuygulamak içindir git format-patch. git amtaahhüt mesajlarını ve yazar detaylarını e-posta mesajlarından çıkarmaya çalışır, bu yüzden taahhütte bulunabilir.


9

İle git amyamayı uygula kullanmak eğer öyleyse git status, herhangi bir yerel değişiklikleri görmez.

git applykaynak dosyalarda değişiklikleri kodu kendiniz yazıyormuş gibi yapmanıza olanak tanır git statusve sonuç olarak git diffuyguladığınız düzeltme ekinde yapılan değişiklikleri çıktılar, ardından daha fazla değişiklik düzeltebilir / ekleyebilir ve bunları yeni bir düzeltme eki olarak birlikte gönderebilirsiniz .

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.