Я вызвал git commit для огромного каталога с огромным количеством изображений. Я ждал, пока он легко закончится, уже 20 минут. Я знаю, что git плохо масштабируется с размером, поэтому я не уверен, что это просто git тратит время или процесс был остановлен по какой-то причине.
Я хотел бы, чтобы git делал НИЧЕГО, печатал что-то на терминале, мигал курсором ... Мне просто нужно проверить, что он действительно работает, не спит и не ждет чего-то, заблокирован, сработал ...
Это возможно? Я использую Ubuntu.
Я только что сделал git commit, а не git commit -a
Я не могу переоценить, насколько велика эта папка, в ней легко могут быть миллионы файлов (просто пытаюсь зафиксировать подмножество из 5000 внутри подпапки)
git commit
должен записывать по одному объекту tree
на (под) каталог, поэтому, если дерево очень густое, это будет много объектов дерева. Каждый объект дерева должен быть довольно быстрым. Затем он должен записать фиксацию, которая является одним объектом, и обновить имя одной ветки. Допустим, всего 1000 деревьев: Git должен будет записать 1002 файла, чтобы завершить эту фиксацию. Это может быть очень медленный git status
, если ваша файловая система имеет медленные операции stat
, и в этом случае может помочь установка некоторых флагов «пропустить операции статистики». Однако я на самом деле не пробовал это на практике.
git commit
обычно почти мгновенно, потому что большая часть работы уже сделана во времяgit add
. Если вы используетеgit commit -a
, он, по сути, запускаетgit add
на всем, что является медленной частью.