Git записывает историю глав филиалов? - PullRequest
9 голосов
/ 07 мая 2011

Головки и теги веток Git являются указателями на коммиты, и эти указатели могут перемещаться либо неявно (после commit), либо явно (после branch -m).

Записывает ли Git историюсостояние этих указателей?

Я вижу по крайней мере две причины для этого:

  • Чтобы увидеть состояние репо два дня назад, в том числе, куда указывали руководители филиалов.
  • Чтобы убедиться, что история не потеряна, потому что кто-то переместил голову ветки таким образом, что некоторые коммиты стали недоступны.

Обратите внимание, что вышеупомянутое возможно в Mercurial, потому что он хранит имя ветки в каждомcommit.

Итак, опять же, в Git контролируется содержимое .git / refs / version или есть способ сделать так?

(я пытаюсь выбрать Mercurialили Git для команды, и я хочу убедиться, что все изменения в общем репо, включая ссылки, записаны. Мне все равно, что разработчики делают с их личными репо.)

Спасибо.

Ответы [ 3 ]

7 голосов
/ 07 мая 2011

Они не имеют версий, но функция reflog хранит локальную историю, которую можно использовать для исправления ошибок.Однако, если кто-то «перематывает» головку ветки, чтобы отменить некоторые коммиты с конца, это сразу станет очевидным, когда другой разработчик попытается обновить свои извлечения из этой ветки, потому что Git откажется делать это изменение локально, если --forceиспользуемый.Вы можете легко отправить коммиты обратно в общий репозиторий в этот момент.

2 голосов
/ 21 июня 2017

Существует два способа:

git reflog

и:

git log -g

Эквивалентно первому случаю:

git log --oneline -g
1 голос
/ 07 января 2013

Существуют расширения для корпоративных Git-серверов, такие как Gerrit, которые будут поддерживать историю вашего филиала.Если ветвь удаляется или обновляется не ускоренным способом (push -f), она будет поддерживать предыдущую версию со специальной ссылкой, чтобы они могли быть восстановлены при необходимости и не были удалены из сборки мусора.Администраторы Gerrit могут по-прежнему удалять выбранные коммиты, если это необходимо по юридическим причинам.

...