2015-08-17 29 views
259

için izleme bilgisi yok Ben nispeten kısa bir süre github kullanıyorum ve ben her zaman işlem yapmak ve çeker yapmak için istemciyi kullandım. Dün git bash den denemeye karar verdim ve başarılı bir şekilde yeni bir repo ve kararlı dosyalar yarattım.Geçerli şube

Bugün başka bir bilgisayardan veri havuzuna değişiklikleri yaptım, değişiklikleri taahhüt ettik ve şimdi eve döndüm ve benim yerel sürümünü güncellemek için bir git pull gerçekleştirilen ve bana böyle:

There is no tracking information for the current branch. 
    Please specify which branch you want to merge with. 
    See git-pull(1) for details 

    git pull <remote> <branch> 

If you wish to set tracking information for this branch you can do so with: 

    git branch --set-upstream develop origin/<branch> 

Bu repoya sadece katkıda bulunan kişi benim ve bir şubem yok (sadece bir usta). Ben pencerelerde ve ben git bash çekme gerçekleştirdiğiniz:

enter image description here

git durumunu:

$ git status 
# On branch master 
nothing to commit, working directory clean 

git branch:

$ git branch 
* master 

Neyi yanlış yapıyorum ?

git pull origin master 

Veya yerel ana dal bir memba olarak github ana dalı izler, böylece yapabilecegime:

git branch --set-upstream-to=origin/master master 
git pull 

Bu dal Sen çıkarmak istiyorum ne şube belirtebilirsiniz

+0

Tamam, bir 'git remote -v'? Bu ne diyor? – criswell

+0

Olası yinelenen [git checkout etiketi, git çekilişi dalda başarısız] (http://stackoverflow.com/questions/10147475/git-checkout-tag-git-pull-fails-in-branch) – rjmunro

cevap

453

Bir depoyu klonladığınızda (yalnızca varsayılan dal için) izleme otomatik olarak ayarlanır, ancak varolan bir depoya bir uzaktan ekleme eklerseniz, izlemeyi kendiniz ayarlamanız gerekir. Neyse ki, git tarafından verilen tavsiyenin nasıl yapıldığını hatırlamak oldukça kolay hale getirir.

+1

Mükemmel! işe yaradı. ne oldu, varsayılan bir "git çekme" için "varsayılan şube" yok oldu? Bu yüzden hata oldu? – valerio0999

+7

--set-upstream görünüşte git 1.9.x'de kullanımdan kaldırıldı. Gelecekte, master'ı teslim aldığınızı varsayarak, 'git branch -u origin/master 'gibi bir şey kullanmak isteyeceksiniz. Değilse, 'git şube -u orijin/ana usta 'çalışacaktır. –

+3

@BartRead, yeni temizleyici '--set-upstream-to =' sözdizimini kullanmak için bunu güncelledi. (Bu, "--set-upstream" yerine) – ComputerDruid

16

Bkz: git checkout tag, git pull fails in branch

Eğer bu her zaman yapmak gerekir benim gibi, sizin .gitconfig dosyanıza aşağıdaki ekleyerek otomatik olarak yapmak için bir takma ad ayarlayabilirsiniz ise:

[alias] 
    set-upstream = !git branch --set-upstream-to=origin/`git symbolic-ref --short HEAD` 

There is no tracking information... mesajını görüyorsanız, tekrar git set-upstream, daha sonra git push'u çalıştırın. Ben ilk uzaktan şube oluşturmadan git checkout -b <feature-branch-name> aracılığıyla yerel bir şubesi oluşturmak çünkü

Teşekkür https://zarino.co.uk/post/git-set-upstream/

3

için sık sık bu kesin iletiye çalıştırın.

Tüm çalışma bittikten ve yerel olarak işlendikten sonra düzeltme, uzak şubeyi oluşturan tüm işimi ve ardından birleştirme isteği URL'sini oluşturan git push -u oldu.

0

1) git dal --set-giriş-= kökenli/<master_branch> özellik/<your_current_branch>

2) git

0

Yukarıdaki örnekler çalışırken çekme ve onları bir senkronize edilmesi için değil (master olmayan) şube farklı bir bilgisayarda oluşturmuştum. Arka plan için bu depoyu bilgisayar A (git v 1) üzerinde oluşturdum.8) ve daha sonra depoyu bilgisayar B'ye kopyalayın (git 2.14). Tüm değişikliklerimi B'ye yükledim, ancak değişiklikleri bilgisayardan almayı denediğimde, bunu yapamamıştım, aynı hatayı aldım. Yukarıdaki çözümlere benzer olarak, yapmam gereken:

git branch --set-upstream-to=origin/<my_repository_name> 
git pull 

biraz farklı ama umarım birileri

0

ComputerDruid cevabı büyük ama sen istemedikçe elle yukarı ayarlamak için gerekli olduğunu sanmıyorum yardımcı olur. Bu cevabı ekliyorum çünkü insanlar bunun gerekli bir adım olduğunu düşünebilirler. origin uzak adıdır ve master şube adıdır

git pull origin master 

Not: sen aşağıda gibi çıkarmak istiyorum uzaktan belirtirseniz, bu hata gitmiş olacak

. depoda hangi dallar mevcut görmek ne uzaktan kumandanın adını

git remote -v 

2 kontrol etme


1) ).

git branch -r