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.