Что такое 2-й столбец в git reflog?

Я просто сделал простой git reflog и это первые несколько строк, которые я получил:

column1                 Column2                                Column3
2797a1d4 (HEAD -> master, upstream/master) HEAD@{0}: checkout: moving from master to master
2797a1d4 (HEAD -> master, upstream/master) HEAD@{1}: pull upstream master: Fast-forward
a461a29f HEAD@{2}: checkout: moving from master to master
a461a29f HEAD@{3}: reset: moving to HEAD
a461a29f HEAD@{4}: pull upstream master: Fast-forward
784f2cp3 (yy, alphabets, hotFix) HEAD@{5}: checkout: moving from yy to master
784f2cp3 (yy, alphabets, hotFix) HEAD@{6}: checkout: moving from master to yy
784f2cp3 (yy, alphabets, hotFix) HEAD@{7}: checkout: moving from alphabets to master

Я пытаюсь понять, что представляет каждый столбец. Читая этот пост и этот вопрос я уже выучил:

  • Column1, очевидно, является коммитом,
  • Column2, где я запутался. Я понимаю HEAD@{0} в HEAD@{7} концепция. Не берите части, которые в скобках!, Что значит (yy, alphabets, hotFix) представлять?
  • Столбец 3 - это действие, т.е. оформление / получение вместе с сообщением.

Кроме того, я не уверен, почему существует несколько строк одного и того же коммита? Это потому, что разные ветви указывают на один и тот же коммит и между ними нет изменений кода?

1 ответ

Решение

Reflog говорит вам, как HEAD переехал. Есть более трех столбцов. Git Docs тупой об этом. Оказывается git reflog это просто псевдоним для git log с некоторыми переключателями.

git reflog show [по умолчанию] является псевдонимом для git log -g --abbrev-commit --pretty=oneline;

784f2cp3 (yy, alphabets, hotFix) HEAD@{7}: checkout: moving from alphabets to master
  1. 784f2cp3 Сокращенный коммит.
  2. (yy, alphabets, hotFix) Ветвь возглавляет этот коммит, как git log --decorate,
  3. HEAD@{7} Расположение этого коммита относительно HEAD, Добавлено -g,
  4. checkout Какая команда была запущена.
  5. moving from alphabets to master Человекочитаемое описание.

(4 и 5 технически один и тот же столбец.)

Это говорит о том, что вы были на ветке alphabets и побежал git checkout master,

Кроме того, я не уверен, почему существует несколько строк одного и того же коммита? Это потому, что разные ветви указывают на один и тот же коммит и между ними нет изменений кода?

Да, точно.

784f2cp3 (yy, alphabets, hotFix) HEAD@{5}: checkout: moving from yy to master
784f2cp3 (yy, alphabets, hotFix) HEAD@{6}: checkout: moving from master to yy
784f2cp3 (yy, alphabets, hotFix) HEAD@{7}: checkout: moving from alphabets to master

yy, alphabets, hotFix, а также master были все на одном коммите. Проверка между ними просто изменяет, какая глава ветви будет перемещена при следующем коммите.

Другие могут быть внутренними HEAD движения, которые происходят, когда вы бежите git pull, git pull это сочетание git fetch а также git merge,

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