При проверке новой ветви (git checkout -b $BRANCH
) я часто хочу отправить ее на конкретный пульт с тем же именем ветви. У меня есть два пульта, один с именем «происхождение» и один с именем «мой». Когда я хочу подтолкнуть такую новую ветку к «моей», я могу просто сделать
$ git push -u mine
Это подтолкнет ветку к refs/heads/$BRANCH
на удаленной «шахте» и начнет ее отслеживать.
Однако, то же самое не работает для «исходного» пульта:
$ git push -u origin
fatal: The current branch $BRANCH has no upstream branch. To push the current branch and set the remote as upstream, use git push --set-upstream origin $BRANCH
(Использование git push -u origin $BRANCH
, как показывает вывод, конечно, работает нормально, но я бы не стал повторять имя ветки, так как я мог бы его напечатать неправильно).
Почему один пульт дистанционного управления отличается от другого?
Соответствующий фрагмент из моего файла конфигурации:
[remote "origin"]
url = ssh://git@server:/path/to/public/repo.git
fetch = +refs/heads/*:refs/remotes/origin/*
fetch = +refs/pull-requests/*/from:refs/remotes/origin/pr/*
[remote "mine"]
url = ssh://git@server:/path/to/my/repo.git
fetch = +refs/heads/*:refs/remotes/mine/*
fetch = +refs/pull-requests/*/from:refs/remotes/mine/pr/*
Как вы можете видеть, эти конфиги выглядят одинаково (mutatis mutandis), но ведут себя по-разному. Название «происхождение» является каким-то особенным или есть другой конфиг, на который мне нужно обратить внимание?
Я использую GIT версии 2.7.0.