Значение «HEAD -> main» по сравнению с «origin/HEAD»?

Когда я делаю git log --oneline в локальной ветке, которая опережает origin на несколько коммитов, я получаю что-то вроде:

ff0dc35 (HEAD -> main) Style headers
08183f1 Fix <Title>s
071d82e (origin/main, origin/HEAD) Style list items
9b24f09 Add style.css
b9fd2fa Add index.html and 3 other pages
69748ca Initial commit

Из этого ответа я понял, что

  • HEAD относится к коммиту, на который в данный момент указывает мое репо.
  • main это ветка
  • origin относится к удаленному репо

Чего я не понимаю, так это разницы между нотацией -> (например, HEAD -> main) и нотацией / (например, origin/main и origin/HEAD). Что означает каждая вещь?

  • HEAD -> main
  • origin/main
  • origin/HEAD
origin/main — ветка, main — ветка, HEAD указывает на main.
tkausl 22.01.2023 19:41

@tkausl спасибо! Итак, origin/main обозначает удаленную ветвь, main обозначает локальную ветвь. HEAD — это указатель, и он указывает на main, локальную ветку. Тогда запись несовместима? Если origin/main обозначает ветвь, то что обозначает origin/HEAD? HEAD не является филиалом. Это также не коммит. Я, наверное, просто зациклен на непоследовательных обозначениях.

joseville 22.01.2023 19:46
HEAD refers to the commit that my repo is currently pointing at.... ну, возможно, вы уже усвоили это понятие, но это неточная формулировка. В одном репо может быть несколько HEADS (любезно предоставлено worktrees).... поэтому HEAD всегда находится там, куда указывает текущее рабочее дерево. Я только что протестировал создание второго рабочего дерева, используя какую-то случайную фиксацию, и, зайдя туда и сделав журнал, HEAD указывал на ту случайную фиксацию, которая проверена в этом рабочем дереве, которое отличается от HEAD в рабочем дереве по умолчанию (все это в тот же репозиторий).
eftshift0 22.01.2023 20:51
Асинхронная передача данных с помощью sendBeacon в JavaScript
Асинхронная передача данных с помощью sendBeacon в JavaScript
В современных веб-приложениях отправка данных из JavaScript на стороне клиента на сервер является распространенной задачей. Одним из популярных...
Как подобрать выигрышные акции с помощью анализа и визуализации на Python
Как подобрать выигрышные акции с помощью анализа и визуализации на Python
Отказ от ответственности: Эта статья предназначена только для демонстрации и не должна использоваться в качестве инвестиционного совета.
Принципы ООП в JavaScript
Принципы ООП в JavaScript
Парадигма объектно-ориентированного программирования имеет 4 основных принципа,
Пройдите собеседование по Angular: Общие вопросы и ответы экспертов
Пройдите собеседование по Angular: Общие вопросы и ответы экспертов
Можете ли вы объяснить разницу между ngOnInit и конструктором в Angular?
Laravel с Turbo JS
Laravel с Turbo JS
Turbo - это библиотека JavaScript для упрощения создания быстрых и высокоинтерактивных веб-приложений. Она работает с помощью техники под названием...
Типы ввода HTML: Лучшие практики и советы
Типы ввода HTML: Лучшие практики и советы
HTML, или HyperText Markup Language , является стандартным языком разметки, используемым для создания веб-страниц. Типы ввода HTML - это различные...
0
3
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

HEAD всегда там, где вы стоите (концепция сильно отличается от HEAD svn, на всякий случай). Если у вас проверен местный филиал, там будет написано HEAD -> some-branch. Если вы не работаете с локальной веткой (т. е. с отсоединенным состоянием HEAD), она будет отображаться как просто HEAD, ни на что не указывающая. Тогда origin/main — это main ветка в origin удаленном. origin/HEAD — это место, где HEAD этого удаленного репо стоит в данный момент.

«Если вы не работаете с локальной веткой (также известной как отсоединенное состояние HEAD), она будет отображаться как просто HEAD, ни на что не указывающая». Это может быть HEAD, main, т. е. и HEAD, и main указывают на один и тот же коммит. Просто небольшое дополнение.

phd 22.01.2023 21:00

«Тогда origin/main — это main ветка в origin удаленном». Не совсем; это локальная ветка удаленного отслеживания, которая отслеживает, где main находится на origin. Обновляется при любых операциях fetch/pull/push.

phd 22.01.2023 21:02

Я считаю, что мнение @phd еще точнее :-)

eftshift0 22.01.2023 22:10

Что касается других вещей, которые могут появиться вместе с HEAD, это верно и для других отсылок, а не только HEAD, поэтому я не упоминал об этом, хотя я прекрасно об этом знаю. Это для ясности, @phd.

eftshift0 22.01.2023 22:12

Другие вопросы по теме