Теперь, когда он git fetch --unshallowсуществует (как в ответе @ sdram), этот ответ больше не является лучшим.
Джек О'Коннор
1
Ответ @ sdram у меня не сработал (git version 2.1.1), но этот ответ сработал.
Кей - SE это зло
2
Ни один ответ не работал для меня. Обе команды преуспели в получении всех отсутствующих коммитов, но когда я пытаюсь выдвинуть новые коммиты, я получаю сообщение об ошибке, когда сервер не знает о «мелких»
ссылках
3
git fetch --depth=2147483647это максимально возможная глубина, которую необходимо предоставить команде.
Clacke
5
Я использовал git fetch --unshallow, но он все еще не показывает все ветви.
Сид
674
Следующая команда (git version 1.8.3) преобразует мелкий клон в обычный
git fetch --unshallow
Затем, чтобы получить доступ ко всем веткам по происхождению (спасибо @Peter в комментариях)
Это не отменяет побочный эффект --single-branch. Чтобы сделать это, отредактируйте .git / config и измените fetch = + refs /heads / BRANCHNAME: refs / remotes / origin / BRANCHNAME, чтобы получить = + refs / heads / *: refs / remotes / origin / *
Питер Кордес,
3
Это не создает локальные ветви, отслеживающие удаленные ветви, поэтому вам все равно нужно проверить -b BRNAME origin / BRNAME, чтобы настроить это.
Питер Кордес
26
См. Также stackoverflow.com/questions/17714159/… : git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*";git fetch origin из ответа должно быть то же самое, что редактирование .git / config вручную
Питер Кордес
Это работает только если репо помечен как мелкий. Я не могу вспомнить, как это сделать, но бывают ситуации, когда вы можете закончить с неполным репо, не сделав явно мелкого клона. stackoverflow.com @ svick/a/6802238/260122 - это ответ, который работает каждый раз.
Clacke
git fetch --unshallow --update-head-ok origin '+refs/heads/*:refs/heads/*'у меня работали
гзарипов
19
Мне нужно было углубить репо только до определенного коммита.
После прочтения man git-fetchя обнаружил, что нельзя указать коммит, но можно указать дату:
git fetch --shallow-since=15/11/2012
Для тех, кому нужно постепенное углубление, еще одна manцитата:
--deepen=<depth>
Аналогичен --depth, за исключением того, что он указывает количество коммитов от текущей мелкой границы, а не от вершины истории каждой удаленной ветви.
Два способа достичь от мелкого клона до глубокого клона. :
Для загрузки ветви использовались следующие шаги: (Это загружает поверхностную копию ветви, а затем преобразует ее в полный клон, то есть приносит полную ветку и ее историю).
Ответы:
РЕДАКТИРОВАТЬ:
git fetch --unshallow
теперь вариант (спасибо Джек О'Коннор).Вы можете запустить
git fetch --depth=1000000
(при условии, что хранилище имеет менее миллиона фиксаций).источник
git fetch --unshallow
существует (как в ответе @ sdram), этот ответ больше не является лучшим.git fetch --depth=2147483647
это максимально возможная глубина, которую необходимо предоставить команде.git fetch --unshallow
, но он все еще не показывает все ветви.Следующая команда (git version 1.8.3) преобразует мелкий клон в обычный
Затем, чтобы получить доступ ко всем веткам по происхождению (спасибо @Peter в комментариях)
источник
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
я обнаружил, что нельзя указать коммит, но можно указать дату:Для тех, кому нужно постепенное углубление, еще одна
man
цитата:источник
Вы можете попробовать это:
источник
Ни одно из приведенных выше сообщений не помогло. Я пытаюсь работать с тегами git, начиная с мелкого клона.
Сначала я попробовал
какой вид работал на полпути. Пока нет доступных тегов!
Эта последняя команда действительно выбрала теги, и я наконец смог выполнить
и покончим с этим.
НТН
источник
Два способа достичь от мелкого клона до глубокого клона. :
Для загрузки ветви использовались следующие шаги: (Это загружает поверхностную копию ветви, а затем преобразует ее в полный клон, то есть приносит полную ветку и ее историю).
а. git clone -b ветка http: //git.repository/customSP01.git --depth 1
Это делает неглубокий клон (с параметром глубины), который выбирает только одну ветвь (на заданной глубине).
// Приведенная выше команда преобразует мелкий клон в обычный. Тем не менее, это не приносит все ветви:
Затем получить доступ ко всем веткам.
[Этот шаг также можно выполнить вручную, отредактировав следующую строку в .git / config.
fetch = + ссылки / головы / мастера: ссылки / пульты / происхождение / мастер
(заменить мастера на *):
fetch = + refs / heads / *: refs / remotes / origin / *]
Это преобразует Shallow Clone в Deep Clone со всеми деталями истории и ветвления.
Вы можете избежать шагов f и g, если используете нижеприведенную команду вместо команды, представленной на шаге a. сделать мелкий клон
git clone -b branch --no-single-branch http: //git.repository/customSP01.git --depth 1
источник