2013-09-22 3 views
0

У меня есть хранилище, в котором филиал master был переименован в product. Все отлично, за исключением одного окна, где код был клонирован до этого изменения. На этом поле HEAD все еще указывает на мастера:Git HEAD указывает на старую ветку

* local-2 
    remotes/origin/HEAD -> origin/master 
    remotes/origin/local-1 
    remotes/origin/product 
    remotes/origin/local-2 

Это, конечно, неправильно, но в практическом применении, она также вызывает проблемы со сценарием развертывания. Что нужно, чтобы переместить remotes/origin/HEAD так, чтобы он указывал remotes/origin/product?

ответ

3

Эти строки вывода:

remotes/origin/HEAD -> origin/master 
remotes/origin/product 

сказать, что ссылка HEAD в ваших точках репо происхождения в origin/master, но, как вы сказали, origin/master был переименован в origin/product. Вам нужно сделать две вещи, чтобы исправить это:

  1. Сделать ссылку на HEADorigin точки к product.
  2. Обновление местных клонов remotes/origin/HEAD указывает на origin/product.

На шаге 1, если ваш origin размещен на GitHub, вы просто установить ветвь по умолчанию для origin в product. Если он не находится на GitHub, вы будете иметь доступ к удаленному репо, из которого вы выполните следующее:

git symbolic-ref HEAD refs/heads/product 

На шаге 2, вам необходимо выполнить следующие действия на каждом локальном клоне, чтобы обновить что они имеют удаленный репо HEAD настроен на:

git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/product 

Смотрите также:

  1. Official Linux Kernel Git documentation for git symbolic-ref.
  2. Git: Correct way to change Active Branch in a bare repository?.
  3. How do I change a Git remote HEAD to point to something besides “master”.
Смежные вопросы