2015-12-02 3 views
1

Существует ветка на удаленном репозитории git, где в конечном итоге я хочу получить локально, а затем объединить работу - ничего необычного там.
Я подозреваю, что может возникнуть конфликт слиянием - так что вместо вопроса git pull origin/<branch_name>, я хочу взглянуть на код на этой удаленной ветке до Я пытаюсь объединить его в свою локальную ветвь.Как я могу проверить на удаленную ветку отслеживания в git?

Так что я попытался было:

  • git fetch origin Я считаю, что означает, что теперь у меня есть копия читать только удаленный филиал слежения, то я

  • git checkout origin/<branch_name>

Чтобы проверить заказ и посмотреть содержимое удаленной ветви.
Он работал, но я получаю некоторые сообщения как

  • HEAD is in a detached state
  • Previous HEAD position was c293198

и Мой ВИМ беглец сообщает текущую ветвь в виде фрагмента хэш как a697b40.
Это заставляет меня подозревать, что я делаю это неправильно.
Есть ли более «правильный» способ проверить содержимое удаленной ветки перед попыткой слияния?

+0

Если ваше единственное беспокойство в настоящее время состоит в том, что git показывает HEAD в некоторой команде sha вместо имени, do 'git checkout -b name origin/' – hjpotter92

+0

@ hjpotter92 Это фактически создаст новую локальную ветвь. ОП не хочет этого. Они просто хотят его осмотреть. Отслеживание ветки отслеживания напрямую - это путь. –

+0

Я просто подумал, есть ли еще команда «procelain» - что мне не хватало. имея git-отчет как HEAD в качестве фиксации, на самом деле, вероятно, полезно предупредить о факте, что я просматриваю ветку только для чтения –

ответ

2

Это на самом деле правильно. Поскольку вы не можете переместить ветвь отслеживания, вы находитесь в отключенной головке.

Все снятые средства HEAD означают, что совершение новой фиксации, а затем переход от нее (путем проверки чего-то другого) оставит вас без ссылки на эту новую фиксацию.

Например, если вы отметите тег, вы также сообщите, что находитесь в отдельной головке. Так как теги refs не перемещаются сами по себе, любой новый фиксатор, который вы добавите, не будет иметь истинного ref, указывающего на него.

Чтобы ответить на ваш вопрос: Есть ли более «правильный» способ проверить содержимое удаленной ветки перед попыткой слияния? Нет. То, что вы делаете, правильно.

+0

ah ok, это имеет смысл - так что в основном я должен смотреть на ненормальное сообщение о состоянии как предупреждение что репо находится в необычном состоянии только для чтения. Также как в стороне - мне кажется, что более описательное имя для отдельного HEAD будет: * un-attachable HEAD *? –

+0

HEAD * не * неприкрепляемый. В любой момент времени вы можете создать новую ветку в своей текущей позиции, которая будет прикреплять к ней HEAD (что означает, что она будет перемещаться вместе с HEAD). Частная голова - это правильный термин, хотя он звучит довольно зомбично (ваша голова отсоединена. Вы все еще можете посмотреть вокруг ...) –

2

На самом деле, все, что вам нужно сделать, это:

git checkout branch_name 

Если есть происхождение/branch_name, местное отделение будет автоматически:

  • кассе происхождения/branch_name
  • дорожки он (установить origin/branch_name как ветвь филиала по восходящей линии нового филиала)

См git checkout man page:

Если <branch> не найден, но там существует ветвь отслеживания в точности один удаленный (назовем его <remote>) с соответствующим именем, относиться как эквивалент:

$ git checkout -b <branch> --track <remote>/<branch> 

Затем вы можете работать в этой локальной ветке и/или объединить ее в свою рабочую ветку.

+0

спасибо, что я просто сделал это случайно - с другой веткой с того же пульта - и пришел к выводу, что git только что создал локальную ветвь из информации, имевшейся в ветке удаленного отслеживания. но когда я явно хочу видеть, что состояние удаленной ветви отслеживания - независимо от моей собственной работы, разве 'git checkout remotename/branchname' правильно? –

+0

@ user4668401, если вы не хотите совершать какие-либо фиксации в нем, да, может работать отдельная проверка HEAD. Кстати, помните, что вы можете иметь несколько проверок за репо в настоящее время: http://stackoverflow.com/a/30185564/6309 – VonC

Смежные вопросы