Обновлен ответ 2018: используйте свой собственный символьный реф, т.е. тег. И начните использовать describe
и аннотированные теги.
git tag -a -m "Initial version" root $( git rev-list --all | tail -n 1 )
git describe
Выходное описание для репо, который никогда не получал тег, но иногда фиксируется с 2011 года с тегом выше:
root-1090-g88a80e93
Если вы хотите отказаться от всей другой истории, с другой стороны, я никогда
нужно, достаточно просто скопировать начальный набор. Я могу видеть сценарий использования, если вы хотите сослаться на оригинальный «корневой» коммит и штампы. Может быть, посмотрим, как то есть. BFG работа, --depth
или GIT 2.19 его новый clone --filter
. [3]
Я думаю, что хочу сделать то же самое. Оформить начальный коммит и перейти оттуда. Я не уверен, что ответ принят. Но я думаю, что это может (частично) полностью ответить на первоначальный вопрос. После прочтения этой темы я, однако, пойду с некоторыми сценариями bash
git log --pretty=oneline master | tail -1
Я надеялся, что для этого будет какая-то ссылка или коммит. Возможно перечислить узлы, помеченные как root, но я полагаю, что GIT сам по себе не отслеживает это. Таким образом, этот метод работает только в репозитории только с одним корневым коммитом.
Обновления 2017 и 2018 годов заключаются в том, что существует лучший вариант для git log, использующий git rev-list, но с той же проблемой. Они по-прежнему просто используют последний элемент списка коммитов.
Вы можете извлечь 'root commit' для репозитория только с одним root с указанным ниже, и он работает для большинства репозиториев. Но это хак, и было бы лучше проверить вашу систему, почему и где она должна отмечать корневые коммиты. И просто пометьте его или запишите.
Вы можете оформить первый коммит в репо с одним корнем с помощью следующей команды:
git checkout $( git rev-list --all | tail -n 1 )
или (GIT <1.8.1): </p>
git checkout $( git log --pretty=oneline | tail -n 1 | sed 's/ .*$//' )
См. git-revlist , а также Используя git, как мне вернуться к первому коммиту, а затем просмотреть историю? .
[3]: