Вы можете увидеть то же предупреждение в этом сообщении в блоге
(master)jj@im-jj:~/demo$ git checkout -b rc-1.0
Switched to a new branch 'rc-1.0'
(rc-1.0)jj@im-jj:~/demo$ git push origin rc-1.0
Total 0 (delta 0), reused 0 (delta 0)
To my-server:/git/demo.git
* [new branch] rc-1.0 -> rc-1.0
(rc-1.0)jj@im-jj:~/demo$ git remote show origin
* remote origin
URL: my-server:/git/demo.git
HEAD branch (remote HEAD is ambiguous, may be one of the following):
master
rc-1.0
Remote branches:
master tracked
rc-1.0 tracked
Local branch configured for 'git pull':
master merges with remote master
Local refs configured for 'git push':
master pushes to master (up to date)
rc-1.0 pushes to rc-1.0 (up to date)
Это (нажатие на новую текущую ветку) введет новую ссылку HEAD на удаленное хранилище.
Если вы посмотрите на источники Git для этого предупреждающего сообщения , он попытается получить имена удаленных HEAD через get_head_names()
, который вызывает:
matches = guess_remote_head(find_ref_by_name(remote_refs, "HEAD"),
+ fetch_map, 1);
Как описано в этом патче :
Определение HEAD является неоднозначным, поскольку это делается путем сравнения SHA1.
(см. код здесь )
В случае нескольких совпадений мы возвращаем refs /heads / master, если он совпадает, иначе мы возвращаем первое совпадение, с которым мы столкнулись. builtin-remote
необходимо вернуть все совпадения, поэтому добавьте флаг, чтобы запросить такое.