ветка git checkout без проверки файлов

У меня есть репозиторий git огромного размера в моей локальной системе с 10 различными ветвями. В этих 10 ветвях главный репозиторий составляет около 2 ГБ. когда я переключаюсь с любой ветки 1 на основную ветку, Git пытается проверить все файлы в самой локальной системе, как здесь сократить время.

  [linux@linux_001 myrepo]$ time git checkout master
   Checking out files: 100% (25765/25765), done.
   Switched to branch 'master'

   real    0m55.617s
   user    0m35.597s
   sys     0m5.002s

Здесь я уменьшил 55 сек.


person Vinoth    schedule 09.03.2018    source источник


Ответы (1)


Одним из обходных путей может быть использование команды git worktree: вы можете клонировать репозиторий один раз, но проверить его в нескольких папках, одну на ветку.

Таким образом, вместо изменения текущего рабочего дерева вы можете просто изменить папку на ту, где master уже извлечено) и обновить ее содержимое с помощью git pull (добавочное обновление, намного быстрее)

Это кажется проще, чем пытаться создать разреженную кассу или неглубокий клон.

person VonC    schedule 09.03.2018
comment
Спасибо за помощь VonC. - person Vinoth; 13.03.2018