У меня есть удаленное голое хранилище hub
. Я работаю только в master
ветке. Последнее предложение этого сообщения об ошибке ниже заставляет меня задуматься: как мне узнать, какой «удаленный по умолчанию настроен для вашей текущей ветви» ? И как мне это установить?
[myserver]~/progs $ git remote -v
hub ~/sitehub/progs.git/ (fetch)
hub ~/sitehub/progs.git/ (push)
[myserver]~/progs $ git branch -r
hub/master
[myserver]~/progs $ cat .git/HEAD
ref: refs/heads/master
[myserver]~/progs $ git pull hub
You asked to pull from the remote 'hub', but did not specify
a branch. Because this is not the default configured remote
for your current branch, you must specify a branch on the command line.
git
git-push
remote-branch
leonbloy
источник
источник
git pull hub master
?Вы можете сделать это более просто, гарантируя, что ваш
.gitconfig
остается в значимом состоянии:Использование Git версии v1.8.0 и выше
git push -u hub master
при нажатии или:git branch -u hub/master
ИЛИ
(Это установит пульт для текущей извлеченной ветви в
hub/master
)git branch --set-upstream-to hub/master
ИЛИ
(Это позволит установить пульт дистанционного управления для филиала с именем
branch_name
вhub/master
)git branch branch_name --set-upstream-to hub/master
Если вы используете
v1.7.x
или ранееВы должны использовать
--set-upstream
:git branch --set-upstream master hub/master
источник
set-upstream[-to]
меняет настроенный в данный момент пульт. Оригинальный постер спрашивал о настроенном по умолчанию пульте дистанционного управления. Конечно, это не совсем та же концепция?--set-upstream-to
сделал те же изменения,.git/config
что и @scragz в своем ответе .Ради полноты: в предыдущих ответах рассказывается, как установить ветку восходящего потока, а не как ее увидеть.
Есть несколько способов сделать это:
git branch -vv
показывает эту информацию для всех филиалов. (отформатирован синим цветом в большинстве терминалов)cat .git/config
показывает это тоже.Для справки:
источник
Команда для получения эффективного push-сообщения для ветви, например, master, выглядит так:
git config branch.master.pushRemote || git config remote.pushDefault || git config branch.master.remote
Вот почему (из вывода "man git config"):
branch.name.remote [...] сообщает git fetch и git push, какой удаленный выбор из / push to [...] [для push] может быть переопределен с помощью remote.pushDefault (для всех ветвей) [и] для текущая ветка [..] далее переопределена branch.name.pushRemote [...]
По какой-то причине «man git push» говорит только о branch.name.remote (даже если он имеет наименьший приоритет из трех) + ошибочно заявляет, что если он не установлен, push по умолчанию устанавливается на origin - это не так, это просто что, когда вы клонируете репозиторий, branch.name.remote будет установлен в origin, но если вы удалите этот параметр, git push потерпит неудачу, даже если у вас все еще есть удаленный источник
источник