Uzak dal “git branch -r” içinde görünmüyor


140

Uzak bir Bitbucket deposuna doğru itiyorum ve son zamanlarda bir meslektaşım oluşturduğu yeni bir şubeyi aynı depoya itti.

Yüklediği değişiklikleri almaya çalışıyorum.

 $ git branch -a
 * master
 localbranch1
 localbranch2
 remotes/origin/master

$ git branch -r kaynak / ana

Bitbucket için web arayüzünde yaptığı dalı görebiliyorum. Bunu nasıl yapabilirim?

Sonraki deneme:

$ git fetch bitbucket
Password for 'https://xxxxx@bitbucket.org':
From https://bitbucket.org/user/repo
 * branch            HEAD       -> FETCH_HEAD

Oluşturduğu dal new_branch_b olarak adlandırılırsa , aşağıdakileri görmeyi beklemeliyim?

$ git branch -r
origin/master
origin/new_branch_b

Üçüncü deneme:

$ git remote update
Fetching bitbucket
Password for 'https://xxxxx@bitbucket.org':
From https://bitbucket.org/user/repo
 * branch            HEAD       -> FETCH_HEAD

$ git branch -r
  origin/master

Dördüncü deneme:

[remote "bitbucket"]
url = https://user@bitbucket.org/user/repo.git

bitbucketKökeni değil uzaktan kumandayı aradım (en azından hatırladığım şey bu; Bir süre önce kurdum)

Beşinci deneyin:

Bitbucket uzaktan yapılandırmasını kan yanıtına göre güncelledim :

$ git config -e

[remote "bitbucket"]
    url = https://user@bitbucket.org/user/repo.git
    fetch = +refs/heads/*:refs/remotes/bitbucket/*

Çoğu insan için kökeni denir:

[remote "origin"]
    url = https://user@bitbucket.org/user/repo.git
    fetch = +refs/heads/*:refs/remotes/origin/*

Sonradan,

$ git remote update

Fetching bitbucket
Password for 'https://user@bitbucket.org':
remote: Counting objects: 48, done.
remote: Compressing objects: 100% (32/32), done.
remote: Total 35 (delta 21), reused 0 (delta 0)
Unpacking objects: 100% (35/35), done.
From https://bitbucket.org/user/repo
 * [new branch]      branch_name1 -> origin/branch_name1
 * [new branch]      branch_name2    -> origin/branch_name2

.... ve bunun gibi.

Ben git fetch originde işe yarayacağını düşünüyorum git remote update.


1
Serin, ama belki de kullanmak daha mantıklı vardı refs/remotes/bitbucket/*yerine refs/remotes/origin/*.
kan

Teşekkürler, adlandırma tutarlılığı hakkında usulüne uygun olarak not edilmiştir. Yine de bitbucket'i orijinine değiştirmek daha mantıklı! Kongre ve her şey :)
feargal

1
git fetch originişi yapar
Dish

Yanıtlar:


108

Bu remotebölüm ayrıca getirme kurallarını da belirtir. Uzaktan kumandadan tüm dalları almak için buna benzer bir şey ekleyebilirsiniz:

fetch = +refs/heads/*:refs/remotes/origin/*

(Ya yerine originile bitbucket).

Lütfen buradan okuyun: 10.5 Git Internal - Refspec


3
Bu, Git'te haftalarca süren dallanma sorunumu düzeltti. Aniden tüm git uzaktan güncelleme öğeleri aslında çalışmaya başladı. Teşekkürler!
PålOliver

2
Bir nedenden dolayı, şuna benziyordu: fetch = +refs/heads/master:refs/remotes/origin/masterbenim için. Değiştirme masterile *sabit benim sorunum.
Sebastian Blask

2
Sığ bir klonu bir karıncaya dönüştürdüyseniz, bu çok yararlıdır.
Warpzit

@kan Bunun neden bazen gerçekleştiğini biliyor musunuz? Sadece git clonebir proje olduğunda . Yerel git ile özel bir şey yaptık hatırlamıyorum.
dotnetCarpenter

@dotnetCarpenter Emin değilim ... hiç beklenmedik bir şekilde başıma gelmedi. Bunun clonekesintiye uğraması ve ardından yeniden başlatılması mümkün mü ? Ya da başka bir şey eş zamanlı olarak repoya ulaştı mı?
kan

218

Hâlâ yapmadıysanız uzaktan kumandanızı güncelleyin:

$ git remote update
$ git branch -r

1
Win'de GitHub istemcisini kullanıyorum ve bazen uzak dalları güncellemiyor. İlk satır "git uzaktan güncelleme" bir cazibe gibi çalışır. Kolay ve temiz
Stefano Buora

sonra git remote updateben arayüzünde yeni şube görebilirsiniz. Teşekkürler
Tinkaal Gogoi

Yardım etmedi.
dKab

Ben her zaman başarılı bir şekilde şube getirmişti düşünüyorum ama sadece listelenen görmek gerekiyordu git branch -r. Git-scm.com/docs/git-branch üzerinde "Option -r uzak izleme kollarının listelenmesine neden olur ve -a seçeneği hem yerel hem de uzak dalları gösterir" yazıyor. git remote updateiçinde listelenen tüm uzaktan kumandaların tüm dallarını getirir git remote -v.
Rock Lee

Bunu çalıştırdıktan sonra koşabildim git checkout origin/masterve sonra o ayrı kafadan ana git branch master; git checkout master
şubeme

35

Birlikte klonlamak ise --depthparametrenin, bu ayarlar .git/configtüm şubeleri, fakat sadece ana getirmesi değil.

Sadece parametreyi atlayabilir veya yapılandırma dosyasını

fetch = +refs/heads/master:refs/remotes/origin/master

için

fetch = +refs/heads/*:refs/remotes/origin/*

1
Teşekkürler! Cevabınız aslında sorunu kolayca düzeltir ve bunu yapmanın doğru yolu gibi görünür. Ancak, yapılandırma dosyasının içeride olduğunu eklemeniz gerekir .git/config, böylece insanlar dosyayı bulabilir.
dotnetCarpenter

19

Aynı sorunu yaşadım. En kolay çözüm, uzaktan kumandayı çıkarmak, okumak ve almaktır.


1
Bu cevabı bulmak için çok zaman harcıyordu. Bu sorunsuz çalıştı. Teşekkürler. :)
kisanme

1
Benim için de
çalıştım

1
git remote -vurl'lerinizi alabilmeniz için uzaktan kumandalarınızı gösterecek git remote rm origin, kaldıracaktır,git remote add origin <url> yeniden ekleyecektir.
Siddhartha

Bu benim için çalıştı. Bir şekilde, master'dan daha uzak bir dal getirmeyen bir git alt modülüm vardı. Çıkarma ve tekrar ekleme sorunu çözdü.
Zamrony P.Juhara

benim için çalıştı, ama şimdi bir uyarı warning: ignoring broken ref refs/remotes/origin/HEAD
alıyorum

7

Ne yazık ki, git branch -ave git branch -rdo not bir "getir Git" idam değil eğer, sen uzak dalları göstermektedir.

git remote show originsürekli çalışır. git show-refGit deposundaki tüm referansları da gösterir. Ancak, git branchkomut gibi çalışır .

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.