"Git commit" ve "git push" arasındaki farklar nelerdir?
Gittiğim Git eğitiminde
git commit yaptığınız değişiklikleri saklamak için kullanılır.
git push nedir?
Temel olarak,
git commit "değişiklikleri" yazarken,
git push "depoları ilişkili nesnelerle birlikte silinen bağlantıları günceller." Bu nedenle, önceki bölge yerel deponuzla bağlantılı olarak kullanılırken, ikincisi uzaktaki depoyla etkileşime girmek için kullanılır.
İşte Oliver Steele'in git modelini ve komutlarını açıklayan güzel bir resmi:
2019
Aslında, temelde git taahhüt değişikliklerinizi yerel bir depoya koyuyor ve git push değişikliklerinizi uzak bir yere gönderiyor.
Git, dağıtılmış bir sürüm kontrol sistemi olduğu için fark, bir taahhüdün yerel deponuzda değişiklik yapması, itme ise uzak bir repoda değişikliklere yol açmasıdır.
git commit değişikliklerinizi yerel depoya yazın.
git push yerel değişikliklerinizle silinen depoyu güncelleyin .
'Farklı Kaydet'} depoları. Git deposu = bir taahhüt (ağaç) ağacı (bir kaç ekstra şey).
Yerel veri havuzu: bilgisayarınızdaki veri havuzu.
Uzak havuz: sunucudaki bir depo (örneğin, Github.com).
git commit : Yerel depoya yeni bir taahhüt (son taahhüt + aşamalı değişiklikler) ekleyin.
git push ,
git pull : Yerel bir havuzu kendisiyle ilişkilendirilmiş uzak depo ile senkronize edin.
push - yerelden uzaktan kumandaya değişiklikleri uygulayın,
pull - uzaktan yerele değişiklikleri uygulayın.
Dikkat edilmesi gereken üç şey:
1) Çalışma dizini ----- kod dosyamızın bulunduğu klasör
2) Yerel depo ------ Bu, sistemimizin içindedir. İlk önce bir COMMIT komutu oluşturduğumuzda, bu yerel depo oluşturulur. çalışma rehberimiz nerede
Checkit (.git) dosyası oluşturulacak.
Bundan sonra, taahhüt ettiğimizde, yerel dizindeki (.git) Çalışma Dizini dosyasına yaptığımız değişiklikleri kaydeder.
3) Uzak havuz ----- Sistemimizin dışında ve dünyanın herhangi bir yerinde bulunan sunucularda bulunur. Github gibi. PUSH komutunu yürüttüğümüzde, yerel depomuzdan gelen kodlar bu uzak havuzda saklanır.
Sadece aşağıdakileri eklemek istiyorum:
Yon, taahhüt edene kadar zorlayamaz, çünkü biz yerel şubenizdeki komisyonları uzak havuza
git push için
git push kullanıyoruz.
git push komutu iki argüman alır:
Uzak ad, örneğin
origin Şube adı, örneğin
master
Örneğin:
git push <REMOTENAME> <BRANCHNAME>
Çok kaba bir benzetme:
git commit düzenlenmiş dosyayı kaydetmekle karşılaştırırsak
git push bu dosyayı başka bir yere kopyalar.
Lütfen bu analojiyi bu bağlamdan çıkarmayın - sabitlemek ve basmak, düzenlenen dosyayı kaydetmek ve kopyalamaktan başka bir şey değildir. Ancak, bu sadece karşılaştırma için olmalıdır.
Günlük dosyasının Github'taki deponuzda tutulduğunu düşünüyorsanız, git
add ve
commit komutlarının kullanımını anlamak daha kolaydır. Benim için tipik bir proje günlük dosyası şöyle görünebilir:
---------------- Day 1 -------------------- Message: Completed Task A Index of files changed: File1, File2 Message: Completed Task B Index of files changed: File2, File3 ------------------------------------------- ---------------- Day 2 -------------------- Message: Corrected typos Index of files changed: File3, File1 ------------------------------------------- ... ... ...and so on
Genellikle günüme
git pull isteği ile başlar ve bunu bir
git push isteği ile sonlandırırım. Dolayısıyla günlük kayıttaki her şey, aralarında olanlara karşılık gelir. Her gün, birkaç dosya değiştirmeyi gerektiren bir veya daha fazla mantıksal görev gerçekleştiriyorum. Bu görev sırasında düzenlenen dosyalar dizinde listelenir.
Bu alt görevlerin her biri (burada Görev A ve Görev B) ayrı ayrı taahhütlerdir.
git add komutu, "Değiştirilen dosyalar dizini" listesine dosya ekler. Bu süreç aynı zamanda evreleme olarak da adlandırılır ve değiştirilmiş dosyaları ve yapılan değişiklikleri kaydeder.
git commit komutu, değişiklikleri ve ilgili dizin listesini, ileride kullanmak üzere kullanılabilecek özel bir mesajla birlikte yazar / tamamlar.
Unutmayın ki hala Github'daki değil, yalnızca deponuzun yerel kopyasını değiştiriyorsunuz. Bundan sonra, sadece ileri gittiğinizde, kaydedilen tüm değişiklikler ve ayrıca her bir işleme ilişkin indeks dosyalarınız ana depoya (Github'da) kaydedilir.
Örnek olarak, bu hayali günlük dosyasına ikinci girdiyi almak için yapacağım:
git pull # Make changes to File3 and File4 git add File3 File4 # Verify changes, run tests etc.. git commit -m 'Corrected typos' git push
Özetle,
git add ve
git commit , ana havuzdaki değişiklikleri sistematik mantıksal yer değiştirmelere bölmenizi sağlar. Diğer cevaplarda ve yorumlarda belirtildiği gibi, kesinlikle başka birçok kullanım alanı vardır. Bununla birlikte, Svn gibi diğer popüler sistemlerin aksine, çok seviyeli bir sürüm kontrol sistemi olan Git'in en yaygın kullanımlarından biridir.
layman'ın ifadesiyle,
git commit , github dosyanızı başarılı bir şekilde gitmek için bu sırada çalıştırdığınız
git push bir adımdır.
git taahhüt, değişikliklerimizin resmi tasarrufundan başka bir şey değildir, taahhüt mesajına verdiğimiz her taahhüt için, taahhüdü bitirir bitirmez, değişiklikleri global olarak görebilmek için uzaktaki bilgisayara taşıyabiliriz.
bu, uzak bir sunucuya göndermeden önce birçok taahhütte bulunabileceğimiz anlamına gelir (gerçekleşen bir taahhüt ve mesaj listesini görebiliriz), git her bir işlemi 40 basamaklı bir kod olan bir taahhüt tanımlayıcı ile kaydeder.
ve git push'u sadece değişikliklerimi uzaktan görmek istediğimde kullanıyorum (jenkins kodumun çalışıp çalışmadığını kontrol ettikten sonra)
git commit yerel depoda bulunan dosyaları
git commit etmektir.
git push - yerel taraftaki ana dalın birleştirilmiş olması ile birlikte ana dalın birleştirilmesi. Ancak birleşme her zaman başarılı olmayacak. Bir başarısızlık olursa, başarılı bir
git push yapabilmek için çekmeniz gerekir.
Peki, temelde git commit değişikliklerinizi yerel bir depoya aktarır ve git push değişikliklerinizi uzak bir yere gönderir. Git, dağıtılmış bir sürüm kontrol sistemi olduğu için fark, bir taahhüdün yerel deponuzda değişiklik yapması, itme işlemi uzak bir depoda değişiklik yapması
kaynak google
http://gitref.org/basic/ bu link çok yardımcı olacaktır.