Советы по оптимизации работы

9. Советы по оптимизации работы #

9.1. Поиск в истории коммитов #

Иногда нужно найти изменения, связанные с конкретным файлом, текстом или ошибкой. Git предоставляет мощные инструменты для поиска.

Поиск по сообщению коммита #

Ищите коммиты, содержащие конкретное слово или фразу:

git log --grep="ключевое_слово"

Пример:

git log --grep="исправление бага"

Поиск изменений в файле #

Показать историю изменений конкретного файла:

git log путь_к_файлу

Для отображения различий:

git log -p путь_к_файлу

Поиск строки в истории (blame) #

Показать, кто и когда изменил строку в файле:

git blame путь_к_файлу

Использование git bisect для поиска ошибки #

Автоматический поиск коммита, где появилась ошибка:

  1. Запустите процесс:
    git bisect start
    
  2. Укажите последний рабочий коммит:
    git bisect good хэш_коммита
    
  3. Укажите проблемный коммит:
    git bisect bad
    

Git начнёт проверку и предложит тестировать промежуточные версии.

Поиск текста в истории (pickaxe) #

Найдите коммиты, добавляющие или удаляющие строку:

git log -S"строка_для_поиска"

9.2. Оптимизация репозитория: удаление ненужных файлов и чистка истории #

Удаление файлов из истории #

Если файл был добавлен в репозиторий по ошибке и его нужно полностью удалить из истории:

  1. Удалите файл с помощью фильтрации:
    git filter-repo --path имя_файла --invert-paths
    
  2. Убедитесь, что фильтр правильно настроен, и перезапишите историю.

Удаление больших файлов из репозитория #

Используйте git filter-repo для удаления больших файлов:

git filter-repo --strip-blobs-bigger-than 10M

Сжатие репозитория #

Git автоматически оптимизирует хранилище, но можно запустить оптимизацию вручную:

git gc --aggressive --prune=now

9.3. Подготовка репозитория к публичному релизу #

Перед публикацией репозитория в открытый доступ важно убедиться, что он не содержит конфиденциальной информации и несанкционированных данных.

Проверка содержимого репозитория #

  1. Проверьте на наличие конфиденциальных данных:

    • .env файлы, приватные ключи, пароли.
    git log -p | grep "секретные_данные"
    
  2. Убедитесь, что в репозитории отсутствуют временные или ненужные файлы:

    git status
    

Очистка истории коммитов #

  1. Объедините множество мелких коммитов в один:
    git rebase -i HEAD~n
    
  2. Удалите ненужные коммиты, которые не должны быть видны.

Добавление лицензионного файла #

Убедитесь, что в репозитории есть файл лицензии (например, LICENSE) для указания условий использования.

Публикация репозитория #

  1. Проверьте ветку для публикации (обычно main или master).
  2. Настройте удалённый репозиторий:
    git remote add origin https://github.com/ваш_репозиторий.git
    
  3. Отправьте данные:
    git push -u origin main
    

Итоги #

  • Используйте мощные команды Git для поиска ошибок и отслеживания изменений.
  • Регулярно оптимизируйте репозиторий, удаляя ненужные файлы и данные.
  • Перед публикацией проверьте репозиторий на наличие конфиденциальной информации и подготовьте его для открытого доступа.