Когда и как git удаляет "недостижимые" коммиты? Регулярная чистка мусора. Влияние reflog на чистку мусора. Запуск чистки репозитория прямо сейчас: reflog expire, git gc
Ссылки: - Git курс (playlist): ua-cam.com/video/W4hoc24K93E/v-deo.html - Git разное (playlist): ua-cam.com/video/8HxTHPkdedA/v-deo.html - Учебник и курсы по JavaScript и смежных технологиям: learn.javascript.ru
00:00 Удаление недостижимых коммитов • Гид удаляет недостижимые коммиты, но не сразу, а через некоторое время. • Это связано с тем, что проверка достижимости коммитов может занять много времени. • Гид удаляет коммиты, если они не достижимы ни по одной из ссылок. 01:56 Сборка мусора и удаление недостижимых коммитов • Гид запускает сборку мусора автоматически в некоторых командах, включая слияния и загрузку данных сервера. • Команда "git gc" удаляет недостижимые коммиты и оптимизирует базу. • Если коммит был сделан менее чем две недели назад, он точно есть в базе и может быть найден через "git fsck" или "git gc --prune=all". 04:53 Удаление коммитов с помощью команды "git filter-branch" • Команда "git filter-branch" позволяет заменить коммиты ветки на новые, содержащие нужные файлы. • Это позволяет удалить ненужные файлы из коммитов, но оставить их в базе. • Для окончательного удаления коммитов, нужно убедиться, что они не в логе. • Для этого можно использовать команду "git reflog" с флагом "--prune=all".
Команда git fsck --unreachable Выражает эмоции разработчика, который потерял коммит :) git reflog expire expire=now --all У меня не работает (если указывать --all). Git выдает ошибку - error: expire=now points nowhere!
Ссылки:
- Git курс (playlist): ua-cam.com/video/W4hoc24K93E/v-deo.html
- Git разное (playlist): ua-cam.com/video/8HxTHPkdedA/v-deo.html
- Учебник и курсы по JavaScript и смежных технологиям: learn.javascript.ru
спасибо вам
00:00 Удаление недостижимых коммитов
• Гид удаляет недостижимые коммиты, но не сразу, а через некоторое время.
• Это связано с тем, что проверка достижимости коммитов может занять много времени.
• Гид удаляет коммиты, если они не достижимы ни по одной из ссылок.
01:56 Сборка мусора и удаление недостижимых коммитов
• Гид запускает сборку мусора автоматически в некоторых командах, включая слияния и загрузку данных сервера.
• Команда "git gc" удаляет недостижимые коммиты и оптимизирует базу.
• Если коммит был сделан менее чем две недели назад, он точно есть в базе и может быть найден через "git fsck" или "git gc --prune=all".
04:53 Удаление коммитов с помощью команды "git filter-branch"
• Команда "git filter-branch" позволяет заменить коммиты ветки на новые, содержащие нужные файлы.
• Это позволяет удалить ненужные файлы из коммитов, но оставить их в базе.
• Для окончательного удаления коммитов, нужно убедиться, что они не в логе.
• Для этого можно использовать команду "git reflog" с флагом "--prune=all".
Команда git fsck --unreachable Выражает эмоции разработчика, который потерял коммит :)
git reflog expire expire=now --all У меня не работает (если указывать --all). Git выдает ошибку - error: expire=now points nowhere!