Gittiğim bir Git eğitiminde git commit
yaptığınız değişiklikleri saklamak için kullanılır.
O git push
zaman ne için kullanılır?
Gittiğim bir Git eğitiminde git commit
yaptığınız değişiklikleri saklamak için kullanılır.
O git push
zaman ne için kullanılır?
Yanıtlar:
Temel olarak git commit
" depodaki değişiklikleri kaydeder ", git push
" uzak başvuruları ilişkili nesnelerle birlikte günceller ". Birincisi yerel deponuzla bağlantılı olarak kullanılırken, ikincisi uzak bir havuzla etkileşimde bulunmak için kullanılır.
İşte git modelini ve komutlarını açıklayan Oliver Steele'den güzel bir resim :
Hakkında daha okuyun git push
ve git pull
üzerinde GitReady.com (Ben ilk anılacaktır makale)
git push
ile çalışmak için kullanılan tek bir çözümdür . Gerçekte, hedef git push
olabilir herhangi git depo. Başka bir dizindeki ( git remote add clone ~/proj/clone.git; git push clone master
veya git push ~/proj/clone.git master
örneğin) kendi yerel sabit sürücünüzde veya kendi ana makinenizin sunduğu bir git deposunda olabilir .
Temelde git commit değişikliklerinizi yerel deponuza koyarken git push değişikliklerinizi uzaktaki yere gönderir.
git push
gerçek güncellenmiş dosyaları veya bazı özel "fark" dosyası yükler?
git push
yerel depoda yaptığınız taahhütleri uzaktaki bir tanesine eklemek için kullanılır - git pull
bununla birlikte insanların işbirliği yapmasına olanak tanır.
Git dağıtılmış bir sürüm kontrol sistemi olduğundan, fark, kesinliğin yerel deponuzda değişiklik yapması ve push değişikliğinin uzak bir repoya kadar değişiklik yapmasıdır.
Tamamlama : Anlık Görüntü | Değişiklik kümesi | Geçmiş_kaydı | Versiyon | Bir deponun 'Farklı kaydet' . Git deposu = taahhüt dizisi (ağaç) .
Yerel depo: bilgisayarınızdaki havuz.
Uzak havuz: sunucudaki havuz ( Github ).
git commit
: Yerel depoya yeni bir taahhüt (son taahhüt + aşamalı değişiklikler) ekleyin . (Tüm taahhütler depolanır )/.git
git push
, git pull
: Yerel havuzu ilişkili uzak havuzla senkronize edin . push
- değişiklikleri uygulamak yerel içine uzak , pull
- dan değişiklikleri uygulamak uzak içine lokal .
git commit
yerel depodaki değişikliklerinizi kaydedin .
git push
güncellemek uzak yerel değişikliklerle depoyu.
Dikkat edilmesi gereken üç şey:
1) Çalışma Dizini ----- kod dosyamızın bulunduğu klasör
2) Yerel Depo ------ Bu sistemimizin içindedir. COMMIT komutunu ilk kez yaptığımızda bu Yerel Depo oluşturulur. Çalışma dizinimizin bulunduğu yerde,
Checkit (.git) dosyası oluşturulur.
Bundan sonra, taahhüt ettiğimizde, bu, Çalışma Dizini dosyasında yaptığımız değişiklikleri yerel Depoya (.git) kaydeder.
3) Uzak Depo ----- Bu, dünyanın herhangi bir yerinde bulunan sunucularda olduğu gibi sistemimizin dışında bulunmaktadır. Github gibi. PUSH komutunu verdiğimizde, yerel depomuzdaki kodlar bu Uzak Depoya kaydedilir
Sadece aşağıdaki noktaları eklemek istiyorum:
Yon, git push
yerel şubenizde yapılan taahhütleri uzak bir depoya itmek için kullandığımız sürece taahhütte bulunamaz .
git push
Komut iki argüman alır:
Uzak ad, örneğin, origin
bir dal adı, örneğin,master
Örneğin:
git push <REMOTENAME> <BRANCHNAME>
git push origin master
Çok kaba bir benzetme: git commit
düzenlenmiş bir dosyayı kaydetmeyle karşılaştırırsak , o git push
dosyayı başka bir konuma kopyalardık.
Lütfen bu benzetmeyi bu bağlamın dışına çıkarmayın - işlemek ve itmek, düzenlenen bir dosyayı kaydetmek ve kopyalamak gibi değildir. Bununla birlikte, karşılaştırma uğruna tutunmalıdır.
Git komutları kullanımını anlamak kolaydır add
ve commit
hayal eğer bir günlük dosyası Github üzerinde depoda muhafaza ediliyor. Benim için tipik bir projenin 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üne bir git pull
istekle başlarım ve bir git push
istekle bitiririm. Dolayısıyla, bir günlük kaydın içindeki her şey, aralarında olanlara karşılık gelir. Her gün, tamamladığım ve birkaç dosyayı değiştirmeyi gerektiren bir veya daha fazla mantıksal görev var. Bu görev sırasında düzenlenen dosyalar bir dizinde listelenir.
Bu alt görevlerin her biri (Görev A ve Görev B burada) bireysel taahhütlerdir. git add
Komut 'Dosya Endeksi Değişti' listesine dosya ekler. Bu işleme evreleme de denir ve gerçekte değiştirilen dosyaları ve yapılan değişiklikleri kaydeder. git commit
Komut kayıtları / değişiklikleri ve daha sonra başvurmak üzere kullanılabilecek bir özel bir mesajla birlikte gelen işaret listesini sonuçlandırır.
Hala deponuzun yerel kopyasını değiştirdiğinizi, Github'daki kopyayı değiştirmediğinizi unutmayın. Bundan sonra, yalnızca bir git push
kayıt yaptığınızda, kaydedilen tüm değişiklikleri, her bir taahhüt için dizin dosyalarınızla birlikte, ana depoda (Github'da) oturum açın.
Örnek olarak, o hayali günlük dosyasındaki ikinci girdiyi elde etmek için yapardı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
sen sistematik mantıksal alt değişikliklere ana deposuna bir değişiklik yıkmak sağlar. Diğer cevapların ve yorumların işaret ettiği gibi, bunların daha fazla faydası vardır. Ancak, bu, Svn gibi diğer popüler sistemlerin aksine, çok aşamalı bir revizyon kontrol sistemi olmanın en yaygın kullanımlarından ve sürüş ilkelerinden biridir.
git taahhüdü değişikliklerimizi resmi olarak kaydetmekten başka bir şey değildir, taahhüt mesajı verdiğimiz her taahhüt için, taahhütlerle işimiz bittiğinde değişikliği global olarak görmek için uzaktan kumandayı itebiliriz
yani uzaktan kumandaya geçmeden önce çok sayıda işlem yapabiliriz (taahhütlerin listesini ve mesajları da görebiliriz) git, her bir taahhüdü 40 haneli kod olan taahhüt kimliğiyle kaydeder
ve git push sadece uzaktan benim değişikliği görmek istediğimde kullanın (Orada sonra kodumu jenkins çalışıp çalışmadığını kontrol edecek)
Temelde git commit değişikliklerinizi yerel deponuza koyarken git push değişikliklerinizi uzaktaki yere gönderir. Git dağıtılmış bir sürüm kontrol sistemi olduğu için fark, taahhüdün yerel deponuzda değişiklik yapmasıdır, oysa push, değişiklikleri uzaktan repoya kadar iter
kaynak Google
http://gitref.org/basic/ bu bağlantı da çok faydalı olacak
layman terimleriyle, dosyanızı başarılı bir şekilde github'a gitmek için bu sırayla çalıştırmadan git commit
önceki adımdır git push
.
git commit
yerel repoda hazırlanan dosyaları teslim etmektir. git push
yerel tarafın ana dalını uzak ana dal ile hızlı bir şekilde birleştirmektir. Ancak birleştirme her zaman başarılı olmaz. Reddetme görünürse, pull
başarılı olabilmeniz için yapmanız gerekir git push
.