Я переместился в удаленный репозиторий Bitbucket, и недавно коллега переместил новую ветку, которую он создал, в тот же репозиторий.
Я пытаюсь получить изменения, которые он загрузил.
$ git branch -a
* master
localbranch1
localbranch2
remotes/origin/master
$ git branch -r origin / master
В веб-интерфейсе для Bitbucket я вижу ветку, которую он создал. Как я могу это сделать?
Следующая попытка:
$ git fetch bitbucket
Password for 'https://xxxxx@bitbucket.org':
From https://bitbucket.org/user/repo
* branch HEAD -> FETCH_HEAD
Если созданная им ветка называется new_branch_b, стоит ли ожидать следующего?
$ git branch -r
origin/master
origin/new_branch_b
Третья попытка:
$ 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
Четвертая попытка:
[remote "bitbucket"]
url = https://user@bitbucket.org/user/repo.git
Я назвал пульт, bitbucket
а не источник (по крайней мере, это то, что я помню, я настроил это некоторое время назад)
Пятая попытка:
Я обновил удаленную конфигурацию Bitbucket согласно ответу Каня :
$ git config -e
[remote "bitbucket"]
url = https://user@bitbucket.org/user/repo.git
fetch = +refs/heads/*:refs/remotes/bitbucket/*
Для большинства людей это будет называться происхождение:
[remote "origin"]
url = https://user@bitbucket.org/user/repo.git
fetch = +refs/heads/*:refs/remotes/origin/*
После этого,
$ 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
.... и так далее.
Я думаю, git fetch origin
что также будет работать для git remote update
.
refs/remotes/bitbucket/*
вместоrefs/remotes/origin/*
.git fetch origin
делает работуОтветы:
В
remote
разделе также указаны правила выборки. Вы можете добавить что-то вроде этого, чтобы получить все ветви с пульта:(Или заменить
origin
наbitbucket
.)Пожалуйста, прочитайте об этом здесь: 10.5 Git Internals - Refspec
источник
fetch = +refs/heads/master:refs/remotes/origin/master
для меня. Заменаmaster
на*
исправленную мою проблему.git clone
проект. Я не помню, чтобы я делал что-то особенное с моим местным мерзавцем.clone
было прервано, а затем возобновлено? Или что-то еще принял репо одновременно?Обновите пульт, если вы еще этого не сделали:
источник
git remote update
я вижу новую ветку в пользовательском интерфейсе. Спасибоgit branch -r
. На git-scm.com/docs/git-branch говорится: «Параметр -r позволяет отображать ветви удаленного отслеживания, а параметр -a показывает как локальные, так и удаленные ветви».git remote update
выбирает все ветви всех пультов, перечисленных вgit remote -v
.git checkout origin/master
и отделить эту отделенную головку от своей основной веткиgit branch master; git checkout master
Если вы клонируете этот
--depth
параметр, он выбирает.git/config
не все ветви, а только мастер.Вы можете просто пропустить параметр или обновить файл конфигурации из
в
источник
.git/config
, чтобы люди могли его найти.Я была такая же проблема. Кажется, самое простое решение - просто удалить пульт, прочитать его и получить.
источник
git remote -v
покажет вам ваши пульты, чтобы вы могли получить URL-адрес,git remote rm origin
удалит его,git remote add origin <url>
добавит его заново.warning: ignoring broken ref refs/remotes/origin/HEAD
К сожалению,
git branch -a
иgit branch -r
этого не показать вам все удаленные филиалы, если вы еще не казнены «GIT выборки».git remote show origin
работает последовательно все время. Такжеgit show-ref
показывает все ссылки в репозитории Git. Тем не менее, он работает так же, какgit branch
команда.источник