Ответ 1
Сообщение "отсоединенное HEAD" является предупреждением, а не ошибкой.
Причина этого достаточно проста. Git имеет два состояния, к которым вы можете относиться относительно ветвей:
- на ветке, или
- не на ветке.
Когда вы находитесь на ветке и делаете новые коммиты, ветка автоматически переходит к новым коммитам.
Когда вы не находитесь на ветке и делаете новые коммиты, не ветвь также продвигается, но - вот причина для предупреждения - если вы затем переключитесь на какую-либо другую ветвь (так, чтобы вы были на ней), Git забывает, где вы были. 1 Когда вы находитесь на ветке, имя ветки запоминает новые коммиты; когда вы этого не сделаете, им нечего запомнить.
Вы не можете находиться на ветке удаленного отслеживания
Ветвь origin/branch2
является ветвью удаленного отслеживания: то есть веткой, которая запоминает "где branch2
была на origin
, когда мы (наши Git и origin
git) имели разговор о ветвях". Поскольку это означает отслеживать, где они были, Git не позволит вам получить "on" эту ветку и сделать новые коммиты (которые затем будут помнить, где вы находитесь, а не там, где они были).
Из-за того, что вы не можете быть на нем, проверьте его, вместо этого вы получите это состояние "отдельно стоящего HEAD".
Но вы можете быть на нормальной (локальной) ветке
Ветвь branch2
является нормальной, обычной, локальной ветвью. Он ваш, как вы хотите. Вы можете получить его и совершить новые коммиты.
(Ваш локальный филиал также может помнить ветвь удаленного отслеживания, так как ее так называемая восходящая. Git запутанная терминология для этого заключается в том, что ваш локальный филиал затем "отслеживает" ветвь удаленного отслеживания. "здесь появляется слишком много раз, как и слово" ветвь ", все с разными значениями.)
1 На самом деле он сохраняет его некоторое время в reflog для HEAD
, но это полезно только по 30 дней по умолчанию.