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ı
master
akış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
) ' master
feci:' (yukarı dalı).
Bu nedenle, ilk itme için aşağıdakileri yapmanız önerilir:
git push -u origin master
Bu, origin/master
bir uzaktan izleme dalı olarak kayıt yapar ve bir sonraki push'un otomatik olarak itilmesini master
sağ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 master
ilkinden 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 push
gerekirse dalı otomatik olarak uzak depoda oluşturur. Bunun neden varsayılan olmadığı cevaplarda açıklanmaktadır.