Neden açıkça yeni bir şube itmek gerek var mı?
git
yeni olduğumu ve uyguluyorum. Ama git push
yaptığım zaman benim şube depo karşıya olmadığını gördüm yerel bir şube oluşturdu. Aslında yapmam gereken: git push -u origin -all
.
Neden bu? Bir şube, yeni bir değişim varsayılan olarak itildiği için değil mi? Neden ikinci komut çalıştırmak gerekiyor mu?
CEVAP
Gerçek nedeni, yeni bir repo (git init)hayır dalıdır(master
, şube, sıfır şube) hayır
İlk kez bir bastırıyorlarboşupstream repo (genellikle bir bare one), Geliş yönündeki repo aynı isimde Şubesi vardır.
Ve:
- default push policy was '
matching
' (eğer yok ise pek çok insan, onları yaratma tüm dalları itmek), - varsayılan itme politikası is now '
simple
' sadece mevcut şube itin, ve yukarı benzer şekilde adlandırılmış remote tracking branch varsa, since git 1.7.11 ()
Her iki durumda da, akıntıya karşı boş repo beri hiçbir şube:
- henüz eşleşen şube adı yok
- memba şube (aynı isim vermeden ya! yok İzleme ya da değil)
Bu sizin yerel anlamına gelirilkitme hiçbir fikri yok:
- itmek için burada
- Yukarı itmek için herhangi bir şube ya da dalın adı olarak kaydedilen bulunamıyor, ya da aynı ada sahip/olduğundan)
En azından yapmanız gereken:
git push origin master
Ancak, bu sadece eğer
- olacak memba
master
yukarı bir şube oluşturmak (şimdi boş olmayan repo): iyi. - olmazkayıtyerel şube "
master
' itmek için yukarı olması gerekir(origin
) 'master
' (memba şube): kötü.
Bu, ilk saldırı için, bir yapmak için tavsiye edilir:
git push -u origin master
remote tracking branch origin/master
kaydeder ve bir sonraki itme otomatik olarak master
17 ** itme sağlayacaktır.
git checkout master
git push
Ve bu politikaları itme ile de çalışacak 'current
' veya 'upstream
'.
İlk olarak, her durumda, git push -u origin master
, basit bir git bas Sağ Yukarı şube için ana itme devam etmek için yeterli olacaktır.
Hareket Gıt ile yeni bir şube için en ...
Uzak bir Git repo için yeni bir yerel ...
Hareket mevcut, uncommited Git yeni bi...
Neden C programcıları 'yeni kulla...
Neden dosyaları bir yeni satır ile bit...