Git versiyon 1.8.0’la hayatımıza giren ve ilk anda kafamızı karıştıran
git push özelliği aslında çok basit ve kullanışlı.
Önceki versiyonlarda, bulunduğunuz branch neresi ise uzak repo’daki aynı
yere push yapılırdı. Yani siz o an için test branch’deyseniz ve testi
uzaktaki repo’ya göndermek (push) için;
git push origin master # ya da
git push
demeniz yeterli oluyordu. Yeni versiyonla birlikte aynı şekilde git push
dediğiniz anda, karşımıza uyarı mesajı gelir. Bizden push.default
ayarımızı yapmanızı ister. İster proje bazlı ister genel olarak bu ayarı
yapabiliriz. (–global)
current
git config --global push.default current
Aynı eski sistem gibi çalışır. Bulunduğunuz branch adı neyse uzağa aynı adla push eder.
matching
git config --global push.default matching
Tüm lokal branch’lerinizi aynen uzağa push eder. Bu biraz tehlikeli bir kullanım şeklidir. İstemeden diğer branch’leri de push etmiş olursunuz.
upstream (tracking)
git config --global push.default upstream
Eski adı tracking yeni adı upstream. Lokal branch’i uzaktaki
bağlı olduğu tracking branch’e push etmemizi sağlar. Projeyi clone ettiniz
ve git branch -a dediğinizde pek çok branch adı gördünüz.
O branch’lerden birine checkout ettiğiniz anda lokal ile uzak arasında
Tracking bağı kuruluyor. upstream bu şekilde track ettiğiniz branch’e
push etmenizi sağlar.
Keza, ilk kez push ederken git push -u origin master dediğinizde de
adı origin olak remote’daki master branch’ine upstream eklemiş
olursunuz.
simple
git config --global push.default simple
Aynı upstream gibidir. Tek farkı eğer uzaktaki ile lokal’deki branch
adlarında farklılık olursa push etmeye izin vermez. Git dökümantasyonunda
bu özellik için;
Liquid error: undefined method `map’ for “\nYeni git kullananlar için en güvenli yöntemdir.\n”:String
Git versiyon 2.0’da default olarak bu simple gelecekmiş.
nothing
git config --global push.default nothing
Hiçbir şey olmaz!
Önerim git config --global push.default upstream kullanmanızdır. Zaten
uzaktaki branch’leri mutlaka track ediyor olmanız gerektiğini düşünüyorum.
Bu sayede; örneğin develop branch’indeyken git push origin develop yerine
git push yazmanız yeterli olacaktır.