Можно ли клонировать только определенный коммит из git-репо с глубиной 1? - PullRequest
5 голосов
/ 26 августа 2011

pip менеджер пакетов позволяет устанавливать из различных VCS , включая git:

Pip в настоящее время поддерживает клонирование через git, git + http и git + ssh:

-e git://git.myproject.org/MyProject.git#egg=MyProject
-e git+http://git.myproject.org/MyProject/#egg=MyProject
-e git+ssh://git@myproject.org/MyProject/#egg=MyProject

Также возможна передача имен ветвей, хэша коммита или имени тега:

-e git://git.myproject.org/MyProject.git@master#egg=MyProject
-e git://git.myproject.org/MyProject.git@v1.0#egg=MyProject
-e git://git.myproject.org/MyProject.git@da39a3ee5e6b4b0d3255bfef95601890afd80709#egg=MyProject

Это хорошо, когда пакет небольшой, однако он становится довольно медленным, когдапакет огромный (например, Django).Если мне нужен только последний коммит главной ветви, тогда я мог бы использовать параметр --depth 1 для git clone.

Можно ли вообще получить только определенный коммит без полной истории репо?Хотя бы из github?

Ответы [ 3 ]

2 голосов
/ 26 августа 2011

Вы не можете ни clone, ни fetch из удаленного конкретного коммита, тем более с глубиной 1, из соображений безопасности: http://thread.gmane.org/gmane.comp.version-control.git/73368/focus=73994

http://git.661346.n2.nabble.com/Fetch-by-SHA-missing-td5604552.html

1 голос
/ 26 августа 2011

Насколько мне известно, нет. Вы можете спросить об этом в списке рассылки git .

0 голосов
/ 24 марта 2013

Вы можете использовать GitHub API для получения последнего / любого коммита: http://developer.github.com/v3/repos/commits/#get-a-single-commit

Это не команда git, вам нужно сделать HTTP-запрос, проанализировать JSON-ответ и загрузить файлы с diff-data.

...