В продолжение этого вопроса: если у меня мелкий клон, как получить все старые коммиты, чтобы сделать его полным клоном?
В продолжение этого вопроса: если у меня мелкий клон, как получить все старые коммиты, чтобы сделать его полным клоном?
Ответы:
РЕДАКТИРОВАТЬ: git fetch --unshallow
теперь вариант (спасибо Джек О'Коннор).
Вы можете запустить git fetch --depth=1000000
(при условии, что хранилище имеет менее миллиона фиксаций).
git fetch --unshallow
существует (как в ответе @ sdram), этот ответ больше не является лучшим.
git fetch --depth=2147483647
это максимально возможная глубина, которую необходимо предоставить команде.
git fetch --unshallow
, но он все еще не показывает все ветви.
Следующая команда (git version 1.8.3) преобразует мелкий клон в обычный
git fetch --unshallow
Затем, чтобы получить доступ ко всем веткам по происхождению (спасибо @Peter в комментариях)
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
git fetch origin
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*";
git fetch origin
из ответа должно быть то же самое, что редактирование .git / config вручную
git fetch --unshallow --update-head-ok origin '+refs/heads/*:refs/heads/*'
у меня работали
Мне нужно было углубить репо только до определенного коммита.
После прочтения man git-fetch
я обнаружил, что нельзя указать коммит, но можно указать дату:
git fetch --shallow-since=15/11/2012
Для тех, кому нужно постепенное углубление, еще одна man
цитата:
--deepen=<depth>
Аналогичен --depth, за исключением того, что он указывает количество коммитов от текущей мелкой границы, а не от вершины истории каждой удаленной ветви.
Ни одно из приведенных выше сообщений не помогло. Я пытаюсь работать с тегами git, начиная с мелкого клона.
Сначала я попробовал
git fetch --update-shallow
какой вид работал на полпути. Пока нет доступных тегов!
git fetch --depth=1000000
Эта последняя команда действительно выбрала теги, и я наконец смог выполнить
git checkout -b master-v1.1.0 tags/v1.1.0
и покончим с этим.
НТН
Два способа достичь от мелкого клона до глубокого клона. :
Для загрузки ветви использовались следующие шаги: (Это загружает поверхностную копию ветви, а затем преобразует ее в полный клон, то есть приносит полную ветку и ее историю).
а. git clone -b ветка http: //git.repository/customSP01.git --depth 1
Это делает неглубокий клон (с параметром глубины), который выбирает только одну ветвь (на заданной глубине).
b. cd customSP01
c. git fetch –depth=100
d. get fetch –depth=500
....
e. git fetch –unshallow
// Приведенная выше команда преобразует мелкий клон в обычный. Тем не менее, это не приносит все ветви:
Затем получить доступ ко всем веткам.
f. git remote set-branches origin '*'
[Этот шаг также можно выполнить вручную, отредактировав следующую строку в .git / config.
fetch = + ссылки / головы / мастера: ссылки / пульты / происхождение / мастер
(заменить мастера на *):
fetch = + refs / heads / *: refs / remotes / origin / *]
g. git fetch -v
Это преобразует Shallow Clone в Deep Clone со всеми деталями истории и ветвления.
Вы можете избежать шагов f и g, если используете нижеприведенную команду вместо команды, представленной на шаге a. сделать мелкий клон
git clone -b branch --no-single-branch http: //git.repository/customSP01.git --depth 1