Как создать информацию reflogs в существующем пустом хранилище
Как вы, возможно, знаете, по умолчанию git не включает обновления журналов reflog для новых пустых репозиториев. Проблема в том, что у меня есть длинный репозиторий истории, но он был создан до того, как я установил флаг "logAllRefUpdates", и теперь я хочу, чтобы эта информация работала для другого приложения.
Как я могу добиться этого с минимальными изменениями, внесенными в существующее хранилище. Очень простое решение - нажать новый коммит, который я не хочу (!):-)
1 ответ
Reflog - это относительно простой формат файла. Вот пример:
] cat .git/logs/HEAD|sed 's/\t/<TAB>/'
0000000000000000000000000000000000000000 5cfe4256d98af22a570c78c5e3048391a90f5f98 Joe User <foo@example.com> 1306427954 -0400<TAB>clone: from git://git.kernel.org/pub/scm/git/git.git
Вы можете вручную создать соответствующие reflogs, следуя тому же формату:
previous-ref-or-zero new-ref User Name <user@email> unix-timestamp timezone\tmessage
Просто создайте один из них для каждой ссылки. Вы, вероятно, можете сделать это напрямую с git for-each-ref
с соответствующей строкой формата (спасибо, Крис!)