Bir süredir git kullanıyorum, ama kendime yeni bir uzaktan repo kurmam gerekmedim ve bunu yapmayı merak ettim. Öğreticiler okuyordum ve işe gitmek için "git push" i nasıl alacağımı karıştırıyorum.
Sadece kullanırsam
git push işaret etmek için varsayılan bir şube (?) görmemi ister? Bana sağladığı bu iki seçenek arasındaki fark nedir?
git config --global push.default matching
git config --global push.default simple
Eşleşmek, yerel repo'mda ne tür şubeler varsa onu iter ve eğer eşleşmezlerse, elimden geldiğince yeni yerel şubeleri itmek için elimden gelmeliyim, doğru mu? Kullanmak için en iyi yöntem mi, yoksa en iyisi mi?
git push Bu yapılandırmaya bağlı olarak tüm dalları veya tek bir düğmeye basabilirsiniz:
Tüm şubelere bas
git config --global push.default matching
Tüm şubeleri uzak şubeye iter ve onları birleştirir.
Tüm şubeleri zorlamak istemiyorsanız, sadece mevcut şubeye basabilirsiniz.
Sadece mevcut şubeye bas
git config --global push.default simple
Yani, bence, bu seçeneği kullanmak ve kod dalınızı şubeye doğru itmek daha iyidir. Dalları elle ve tek tek itmek daha iyidir.
Daha fazla okumak için lütfen buna gidin Blog yazısı
GIT belgelerinden: Git Dokümanlar
Aşağıda tam bilgi verir. Kısacası,
simple sadece itecek
current working branch ve hatta o zaman uzaktan kumandada da aynı adı varsa. Bu yeni başlayanlar için çok iyi bir ayardır ve
GIT 2.0
Buna karşılık
matching itecek herşey uzaktan kumandada aynı ada sahip yerel şubeler. (Mevcut çalışma şubenize bakılmaksızın). Bu, potansiyel olarak, paylaşmak istemeyebileceğiniz de dahil olmak üzere pek çok farklı dalın itileceği anlamına gelir.
Kişisel kullanımımda genellikle farklı bir seçenek kullanırım:
current Şu anki çalışma dalını iter (çünkü her zaman değişikliklere katılıyorum). Ama yeni başlayanlar için tavsiye ederim
simple
push.default
Refspec yoksa, gitmesi gereken aksiyonu tanımlar.
açıkça verilmiş. Farklı değerler özel olarak uygun
iş akışları; örneğin tamamen merkezi bir iş akışında (ör. getirme
kaynak, itme hedefine eşittir), yukarı yönde muhtemelen ne
İstediğiniz. Olası değerler:
Hiçbir şey - bir refspec olmadığı sürece hiçbir şeyi itmeyin (hata)
açıkça verilmiş. Bu öncelikle kaçınmak isteyen insanlar içindir
her zaman açık olmaktan kaynaklanan hatalar.
Geçerli - aynı şubeyi güncellemek için mevcut şubeye bas
Alıcı ucunda isim. Hem merkezde hem de merkezde çalışır
iş akışları.
upstream - mevcut şubeyi değişiklikleri olan şubeye geri itin
genellikle mevcut şubeye entegre edilir.
@ {Yukarı}). Bu mod eğer sadece
normalde (yani merkezi iş akışı) çekeceğiniz aynı depo.
basit - merkezileşmiş iş akışında, eklenen bir akışla birlikte çalışır
Yukarı akış dalı adı farklı ise itmeyi reddetme güvenliği
yerel olandan.
Uzaktan kumandayı uzaktan kumandanızdan farklı olduğunda
normalde çekin, akım olarak çalışır. Bu en güvenli seçenek ve
yeni başlayanlar için uygun.
Bu mod Git 2.0'da varsayılan haline gelecektir.
Eşleştirme - her iki ucunda aynı ada sahip tüm dalları itin. Bu
Şube setini hatırlamak için bastırdığınız depoyu yapar
dışarı itilecek (örneğin, her zaman maint ve master'ı zorlarsanız
Orada ve başka şubeler yok.
Bu iki şube ve yerel maint ve ustanız itilecek
Orada).
Bu modu etkili bir şekilde kullanmak için tüm şubelerin
git itmeyi çalıştırmadan önce dışarı itilmeye hazır olursunuz,
Bu modun bütün noktası olarak, tüm
tek seferde dallar. Genelde sadece bir dalda çalışmayı bitirirseniz ve
Diğer dalları bitmemiş iken sonucu itmek, bu mod
senin için değil. Ayrıca bu mod, paylaşıma zorlamak için uygun değildir.
Merkez deposu, diğer insanlar orada yeni şubeler ekleyebilir, ya da
Mevcut şubelerinizin kontrolünü kontrol et.
Bu şu anda varsayılan, ancak Git 2.0 varsayılanı
basit.
Git v2.0 Sürüm Notları
Geriye dönük uyumluluk notları
Ne zaman
git push [$there] ne itmek demek değil, biz
Şimdiye kadar geleneksel "eşleme" semantiği (tüm şubeleriniz gönderildi)
zaten aynı ismin dalları olduğu sürece uzaktan kumandaya
orada). Git 2.0'da, varsayılan artık "basit" semantik,
hangi iter:
-
sadece aynı şubeye sahip şubeye şu andaki şubesi ve
Mevcut şube bu uzaktan kumandayla entegre olacak şekilde ayarlandığında
şube, siz getirdiğinizle aynı uzaklığa itiyorsanız; veya
-
aynı adı taşıyan şubeye sadece mevcut şube, eğer
genellikle nereden aldığınız bir uzaklığa itiyorsunuz.
Değiştirmek için "push.default" yapılandırma değişkenini kullanabilirsiniz
bu. Kullanmaya devam etmek isteyen eski bir zamanlayıcıysanız
"Eşleşen" semantik, değişken için "eşleşen"
örnek. Diğer olasılıklar için belgeleri okuyun.
Ne zaman
git add -u ve
git add -A bir alt dizinin içinde çalıştırılır
komut satırına eklenecek yolları belirtmeden
ile tutarlılık için tüm ağaç üzerinde çalış
git commit -a ve
diğer komutlar (yalnızca bu komutta çalışmak için kullanılan komutlar)
alt). Söylemek
git add -u . veya
git add -A . Eğer istersen
İşlemi geçerli dizine sınırlar.
git add <path> aynıdır
git add -A <path> şimdi, öyle ki
git add dir/ dizinden kaldırdığınız yolları fark edecek ve
kaldırmayı kaydedin. Git'in eski sürümlerinde,
git add <path> Kullanılmış
kaldırmayı yok saymak. Söyleyebilirsin
git add --ignore-removal <path> için
yalnızca eklenen veya değiştirilmiş yollar ekleyin
<path>eğer gerçekten istiyorsan.