📜 Очистите свой Git-репозиторий с помощью Git Clean

Как удалиить файлы из репозитория GIT

by itisgood

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

Чтобы удалить файлы, которые Git не отслеживает (но не те, которые Git игнорирует с помощью ‘.gitignore’), выполните следующую команду:

git clean

Вот и все!

Теперь Git удалит все файлы, которые не отслеживаются, и ваше дисковое пространство снова освободится.

Это лишь одна задача, которую выполняет команда git clean.

Чтобы узнать больше об этой команде, вам не нужно искать другого места!

Git clean

Команда git clean является подкомандой Git – системы контроля версий.

Команда git clean, запущенная без каких-либо аргументов/флагов, рекурсивно удалит все файлы, которые Git не отслеживает, но исключит файлы, включенные в ‘.gitignore’.

Существует несколько аргументов/флагов, которые вы можете использовать с git clean.

Они следующие:

  • -n [или] –dry-run : Не удалять файлы и/или каталоги, но показать, что будет сделано. Отличный флаг для предотвращения непреднамеренного удаления файлов.
  • -d : Если путь не указан, Git не будет рекурсивно удалять файлы из любого неотслеживаемого каталога. Эта опция полезна, если вы не уверены в каждом неотслеживаемом файле, но все равно хотите удалить неотслеживаемые файлы.
  • -i [или] –interactive : Получить подробную информацию о том, какие операции будут выполнены – одобрить или не одобрить их.
  • -f [или] –force : В Git есть конфигурационная переменная clean.requireForce, если установить ее в false, Git откажется удалять что-либо. Флаг -f используется для переопределения этой переменной.
  • -q [или] –quiet : Не выводить ничего, кроме ошибок.

Давайте рассмотрим пример, в котором есть файл ‘README.md’ под контролем версий Git’а, но нет файла ‘untracked-file’ и каталога ‘untracked-dir’.

$ ls -l1
total 8
-rw-rw-r-- 1 pratham pratham   55 Mar  2 13:56 README.md
drwxrwxr-x 2 pratham pratham 4096 Mar  2 13:57 untracked-dir
-rw-rw-r-- 1 pratham pratham    0 Mar  2 13:57 untracked-file

$ git clean -n
Would remove untracked-file

$ git clean -dn
Would remove untracked-dir/
Would remove untracked-file

$ git clean -f
Removing untracked-file

# touch 'untracked-file' after git deleted it

$ git clean -df
Removing untracked-dir/
Removing untracked-file

В моем Git-репозитории есть три элемента.

У меня есть два файла ‘README.md’ и ‘untracked-file’ и каталог ‘untracked-dir’.

Из этих трех элементов только ‘README.md’ отслеживается Git’ом на предмет изменений.

Поэтому, когда я говорю git clean сделать пробный запуск без дополнительных флагов, я вижу, что будет удалён только файл ‘untracked-file’, но не директория.

Но когда я использую флаг -d вместе с флагом -n, теперь я вижу, что Git удалит и каталог (и его содержимое, если оно было).

Это можно подтвердить использованием флага -f вместо флага -n.

Запуск git clean -f удалил только файл ‘untracked-file’. (Я также создал его снова с помощью команды touch ради этого руководства).

Теперь, когда я запускаю git clean -df, Git будет рекурсивно удалять неотслеживаемые файлы и каталоги.

Таким образом, удаляются оба неотслеживаемых элемента, а именно файл ‘untracked-file’ и каталог ‘untracked-dir’.

Заключение

В Git есть подкоманда git clean, которая удаляет все неотслеживаемые файлы, которые могут излишне занимать место на вашем диске.

Используйте git clean для удаления указанных элементов.

см. также:

 

 

You may also like

Leave a Comment