Asıl sebep, yeni bir repoda (git init) şube olmamasıdır (hayır master, hiç şube yok, sıfır şube)
Dolayısıyla, ilk kez boş bir yukarı akış repo (genellikle çıplak bir repo) için bastırırken , yukarı akış repo aynı adı taşıyan bir dalı yoktur.
Ve:
Her iki durumda da, yukarı yönlü boş repoda şube olmadığı için:
- henüz adlandırılmış şube yok
- hiçbir yukarı akış şubesi yoktur (aynı adla veya adsız! İzleme veya izleme)
Bu, yerel ilk itişinizin hiçbir fikri olmadığı anlamına gelir :
- nereye itmek
- ne itmeli (herhangi bir yukarı akış dalının uzaktan izleme dalı olarak kaydedildiğini ve / veya aynı ada sahip olduğunu bulamadığı için)
Yani en azından aşağıdakileri yapmanız gerekir:
git push origin master
Ama sadece bunu yaparsanız, siz:
- yukarı
masterakışta (şimdi boş olmayan bir repo) bir yukarı akış dalı oluşturacak : iyi.
- olmaz kaydetmek yerel şube 'o
master' (akıntıya karşı aktarılması gereken origin) ' masterfeci:' (yukarı dalı).
Bu nedenle, ilk itme için aşağıdakileri yapmanız önerilir:
git push -u origin master
Bu, origin/masterbir uzaktan izleme dalı olarak kayıt yapar ve bir sonraki push'un otomatik olarak itilmesini mastersağlar origin/master.
git checkout master
git push
Ve bu ' current' veya ' upstream' itme politikalarıyla da işe yarayacak .
Her durumda, git push -u origin masterilkinden sonra, master'ı sağ yukarı akış dalına itmeye devam etmek için basit bir git push yeterli olacaktır.
push.default, bkz.man git-config). Bunu yaparsanızgit config --add push.default current,git pushgerekirse dalı otomatik olarak uzak depoda oluşturur. Bunun neden varsayılan olmadığı cevaplarda açıklanmaktadır.