Страницы

Поиск по вопросам

понедельник, 8 октября 2018 г.

Как правильно удалить Git tracking (контроль версий)?

Если нужно удалить Git tracking (версионирование), правильно ли просто удалить папку .git/ ?


Ответ

В этом ответе:
Какие файлы и директории относятся к Git Как удалить версионирование Git
Unix, Windows + git bash Windows, cmd.exe Windows, проводник Как получить новую копию проекта без версионирования
1. Какие файлы и директории относятся к Git
Git хранит историю и настройки в папках .git и файлах .git.... Обязательно существует только папка .git, находящаяся в корне вашего проекта. Если в нём есть субмодули, то в наличии есть также файл .gitmodules в корне и файлы .git где-то во вложенных папках.
project/ - .git/ - .gitmodules - .gitignore - .gitattributes - пустая-папка/ - .gitkeep - ещё-папка/и-ещё/внутри/ - .git - .gitignore - тут-файлы-и-папки-субмодуля
2. Как удалить версионирование Git
Unix-совместимые системы, Windows c git bash или cygwin:
Убедитесь, что вы находитесь в корне проекта!
cd path/to/project find . -name ".git*" | xargs rm -ri
С ключом -i эта команда будет работать в интерактивном режиме и запросит подтверждение на удаление каждого файла. Спасибо KoVadim за улучшенный вариант первоначальной команды.
Windows, cmd.exe
(взято c en.SO )
cd path\to\project del /F /S /Q /A .git rmdir .git
Windows, через проводник
Включите отображение скрытых файлов и папок Откройте папку своего проекта, найдите поле поиска:
Введите там filename:.git, дождитесь окончания поиска:

Заметьте, что другие виды поиска работают хуже: name:.git включает файлы наподобие source.git.cs, ext:.git не включает каталог .git, просто .git включает медленный и ненужный поиск по содержимому файлов Теперь вы можете выбрать файлы, относящиеся к git, и удалить (скорее всего, это будут все найденные файлы). Перепроверить, однако, не помешает никогда.
3. Как получить новую копию проекта без версионирования
Возможно, вам нужно просто получить копию проекта, в которой нет версионирования. Для этого отлично подходит git-archive:
git archive master --format zip --output path/to/archive.zip
Полученный archive.zip можно передать и где-то распаковать, получив новый проект без версионирования.
Субмодули таким образом не упакуются.

Комментариев нет:

Отправить комментарий