Mevcut şube için izleme bilgisi yok


581

Github'u nispeten kısa bir süreden beri kullanıyorum ve her zaman müşteriyi taahhütler ve çekimler yapmak için kullandım. Dün git bash denemeye karar verdim ve başarıyla yeni bir repo oluşturdum ve dosyalar işledim.

Bugün başka bir bilgisayardan depoda değişiklikler yaptım, değişiklikleri yaptım ve şimdi eve döndüm ve git pullyerel sürümümü güncellemek için bir gerçekleştirdim ve bunu alıyorum:

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 tek katkıda bulunan ben ve şube yok (sadece usta). Windows'tayım ve git bash'tan çekildim:

resim açıklamasını buraya girin

git durumu:

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

git şubesi:

$ git branch
* master

Neyi yanlış yapıyorum?


Tamam, nasıl olur git remote -v? Bu ne diyor?
criswell


Ayrıca, klonlanmış repo dizinine cd'niz yoksa, yürütürken bu hatayı alabilirsiniz git pull.
Victoria Stuart

Git 2.24 ile 4. Çeyrek 2019 git pull --set-upstream-to=origin/master mastermümkündür. Aşağıdaki cevabımı
VonC

Yanıtlar:


950

Hangi dalı çekmek istediğinizi belirtebilirsiniz:

git pull origin master

Veya yerel ana dalınızın github ana dalını yukarı akış olarak izleyecek şekilde ayarlayabilirsiniz:

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

Bu şube izleme, bir havuzu klonladığınızda otomatik olarak ayarlanır (yalnızca varsayılan şube için), ancak varolan bir depoya uzaktan kumanda eklerseniz, izlemeyi kendiniz ayarlamanız gerekir. Neyse ki, git tarafından verilen tavsiyeler bunu nasıl yapacağınızı hatırlamayı oldukça kolaylaştırır.


3
mükemmel! işe yaradı. öyleyse ne oldu "varsayılan şube" için varsayılan "git pull"? bu yüzden hata oldu?
valerio0999

16
--set-upstream git 1.9.x dosyasında kullanımdan kaldırılmıştır. İleride git branch -u origin/master, ustayı zaten kontrol ettiğinizi varsayarak, benzer bir şey kullanmak isteyeceksiniz . Değilse, git branch -u origin/master masterçalışacaktır.
Bart Okumak

5
@BartRead, yeni daha açık --set-upstream-to=sözdizimini kullanmak için güncelledi . (bunun yerine geçer --set-upstream)
ComputerDruid

61
bu üzücü bir durum gibi görünüyor - bunu gerçekten her dal için manuel olarak ayarlamamız gerekiyor mu? Neden başlangıç ​​noktasını varsayılan uzaktan kumanda olarak ayarlayamıyoruz ve ardından her itme / çekme varsayılanını başlangıçta aynı ada sahip dalda yapamıyoruz? çok mu zor?
Alexander Mills

4
Ah, burada benim için kilit nokta, bir uzaktan kumandayı bırakıp yeniden oluşturursanız, orijinal tarafından ayarlanan izlemenin fetchkaybolmasıydı. Bu yüzden tekrar ayarlama ihtiyacı. :)
Ben

42

Bkz: git çıkış etiketi, git çekme şubede başarısız oluyor

Benim gibi bunu her zaman yapmanız gerekiyorsa, .gitconfigdosyanıza aşağıdakileri ekleyerek otomatik olarak yapmak için bir takma ad oluşturabilirsiniz :

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

Mesajı gördüğünüzde şunu There is no tracking information...çalıştırın:

 git set-upstream
 git push

Https://zarino.co.uk/post/git-set-upstream/ için teşekkürler


1
İşte .gitconfigbir satırda küresel eklemek için bir yol (buna göre yerel veya diğer yapılandırmalar için değiştirilebilir):git config --global alias.set-upstream '!git branch --set-upstream-to=origin/$(git symbolic-ref --short HEAD)'
Danny Bullis

17

ComputerDruid'in cevabı harika ama istemediğiniz sürece manuel olarak yukarı akış ayarlamanızın gerekli olduğunu düşünmüyorum. Bu yanıtı ekliyorum çünkü insanlar bunun gerekli bir adım olduğunu düşünebilir.

Aşağıdaki gibi çekmek istediğiniz uzaktan kumandayı belirtirseniz bu hata giderilir:

git pull origin master

Not originuzak adıdır ve masterşube adıdır.


1) Uzaktan kumandanın adı nasıl kontrol edilir

git remote -v

2) Depodaki hangi şubelerin mevcut olduğu nasıl görülür.

git branch -r

1
Benim için en iyi cevap, teşekkürler!
Bahman.

7

Bu iletiyi sık sık çalıştırıyorum, çünkü git checkout -b <feature-branch-name>önce uzak dalı oluşturmadan yerel şubeler oluşturuyorum.

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


1
değer git push -u origin <my-feature-branch-name>için, uzak dalı oluşturmak ve işimi itmek için koşmak zorunda kaldım
Donnie C

6

Yukarıdaki örnekleri deniyordum ve farklı bir bilgisayarda oluşturduğum (master olmayan) bir şube ile senkronize etmelerini sağlayamadım. Arka plan için, bu havuzu A bilgisayarında (git v 1.8) oluşturdum ve daha sonra havuzu B bilgisayarına (git 2.14) klonladım. Comp B'deki tüm değişikliklerimi yaptım, ancak değişiklikleri bilgisayara çekmeye çalıştığımda AI bunu yapamadı, yukarıdaki hatayı alıyordu. Yukarıdaki çözümlere benzer şekilde yapmam gerekiyordu:

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

biraz farklı ama umarım birine yardım eder


Bu benim için çalıştı; Ayrıca farklı bir bilgisayarda kurulmuş olan master olmayan bir şube kullanıyordum. Git Bash'de bu komutu kullanarak değişikliklerimi
alabildim



3

1) git branch - set-upstream-to = başlangıç ​​noktası / <master_branch>özellik /<your_current_branch>

2) Git Çekme


1

$ git branch --set-upstream-to=heroku/master master ve

$ git pull

benim için çalıştı!


1

Aynı şey, yeni bir git dalı oluşturduğumda ve kökene itmediğimde de başıma geldi.

Önce bu iki satırı çalıştırmayı deneyin:

git checkout -b name_of_new_branch # create the new branch
git push origin name_of_new_branch # push the branch to github

Sonra:

git pull origin name_of_new_branch

Şimdi iyi olmalı!


1

Bunun nedeni, geçerli dalın uzaktan kumandadaki dalda izlemesi olmamasıdır. böylece 2 yolla yapabilirsiniz.

  1. Belirli dal adıyla çekin

git çekme kökeni ustası

  1. Veya belirli bir şubeyi yerel şubeye takip edebilirsiniz.

git branch - set-upstream-to = kökeni /


0

git branch - set-upstream-to = kaynak / ana


2
Daha açık ve anlaşılır hale getirmek için cevabınıza bir açıklama eklemek her zaman yararlıdır. Lütfen stackoverflow.com/help/how-to-answer adresini okuyun .
32cupo

1
@ 32cupo'nun noktasına ek olarak, bu esasen beş yaşındaki kabul edilen cevapla aynıdır, ancak daha az açıklama ile.
Jeremy Caney
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.