TL; DR - Просто создайте тег в исходном репозитории против коммита, который вы хотите клонировать, и используйте тег в команде извлечения.Вы можете удалить тег из исходного репо позже, чтобы очистить его.
Что ж, его 2014 год и похоже, что принятый ответ Чарльза Бэйли от 2010 года хорошо и действительно устарел к настоящему времени, и большинство (все?) Другихответы включают в себя клонирование, которого многие надеются избежать.
Следующее решение позволяет добиться того, что ищет OP и многие другие, - это способ создать копию хранилища, включая историю, но только додля определенного коммита.
Вот команды, которые я использовал с git версии 2.1.2 для клонирования локального репо (то есть репозитория в другом каталоге) до определенного момента:
# in the source repository, create a tag against the commit you want to check out
git tag -m "Temporary tag" tmptag <sha1>
# create a new directory and change into that directory
cd somewhere_else;mkdir newdir;cd newdir
# ...and create a new repository
git init
# add the source repository as a remote (this can be a URL or a directory)
git remote add origin /path/to/original/repo
# fetch the tag, which will include the entire repo and history up to that point
git fetch origin refs/tags/tmptag
# reset the head of the repository
git reset --hard FETCH_HEAD
# you can now change back to the original repository and remove the temporary tag
cd original_repo
git tag -d tmptag
Надеюсь, это решение будет работать еще несколько лет!: -)