Как удалить отслеживание версий из проекта, клонированного из git?

687

Я хочу удалить все отслеживание версий из каталога проекта.

Какой правильный способ сделать это?

Могу ли я сделать команду оболочки, такую ​​как:

rm -rf .git

из моего каталога проектов или есть способ сделать это как команду Git?

Я использовал этот проект для изучения Git и осознал, что в начале проекта я допустил некоторые ошибки с перемещенными, переименованными и удаленными файлами. Я хотел бы удалить все отслеживание Git и начать все сначала git init.

daustin777
источник
1
Посмотрите git-архив .
Мартин против Лёвиса
2
В зависимости от того, насколько серьезными были ошибки, вы, возможно, захотите сделать интерактивную перебазировку всего этого и просто собрать кучу коммитов на ранней стадии, но сохранить более позднюю хорошую историю.
Каскабель
6
для пользователей Windows:rd /s /q .git
Soorena

Ответы:

689

Все данные, которые Git использует для хранения информации, хранятся .git/, поэтому удаление их должно работать нормально. Конечно, убедитесь, что ваша рабочая копия находится в том состоянии, в котором вы этого хотите, потому что все остальное будет потеряно. .gitпапка скрыта, поэтому обязательно включите эту Show hidden files, folders and disksопцию.

Оттуда вы можете запустить git initновый репозиторий.

bobDevil
источник
1
Я уверен, что мои подпапки не имеют своего собственного скрытого каталога .git, но я все еще получаю значок серого цвета при отправке этих папок в github ... Есть ли что-то еще, что я могу попробовать?
Кокодоко
1
Существует также .gitconfig, поэтому вы также должны удалить его.
Максимилиан Мордиг
рассмотрим 'code'git rm -r --cached your_folder / Моя цель состояла в том, чтобы превратить отслеживаемую папку git в дочернюю папку другой отслеживаемой папки git. Новый родитель не узнает нового потомка, пока я не удалю кеш дочерней папки.
Райан
420

rm -rf .gitдолжно хватить. Это уничтожит всю информацию, связанную с Git.

Лили Баллард
источник
1
Если у вас есть некоторые cannot unlink Permission deniedв Windows, вы можете убить explorerпроцесс в диспетчере задач, перезапустить rm -rf .gitи снова открыть проводник после этого. меня устраивает!
Майкл
10
Если у вас есть Git Bashна окнах, это также будет работать.
Вирус
1
что -rfзначит?
Нилон
13
-rозначает «рекурсивный», поэтому он будет удалять все содержимое папки, а не делать ошибки, поскольку папка не пустая, и -fне будет спрашивать, действительно ли вы уверены в том, что удалили что-либо.
Лили Баллард
1
@Lucky_girl Это удалит все состояния Git из вашей проверки. Нет веток, нет истории, нет пультов, вообще ничего. Все это хранится в .gitкаталоге. Без этого у вас больше нет git-репозитория.
Лили Баллард
96

В дополнение к приведенным ниже действиям вы можете также удалить файл .gitignore.

  • Попробуйте удалить файл .gitignore, если хотите удалить следы Git в своем проекте.

  • ** Подумайте о том, чтобы оставить файл .gitignore, если вы когда-нибудь захотите включить Git в проект.

Некоторые фреймворки могут автоматически создавать файл .gitignore, поэтому вы можете захотеть оставить его.


Операционные системы на основе Linux, Mac или Unix

Откройте терминал и перейдите в каталог вашего проекта, т cd path_to_your_project. Е. - .

Запустите эту команду:

rm -rf .git*

Это удалит отслеживание Git и метаданные из вашего проекта. Если вы хотите сохранить метаданные (такие как .gitignore и .gitkeep), вы можете удалить только отслеживание, запустив его rm -rf .git.


Windows

Использование командной строки

rmdirИли rdкоманда не будет удалять / удалить скрытые файлы и папки в каталоге вы указываете, так что вы должны использовать delкоманду , чтобы убедиться , что все файлы будут удалены из .gitпапки.

  1. Откройте командную строку

    1. Либо нажмите Startзатем Runили нажмите Ключ Windowsклавишу и rв то же время.

    2. Введите cmdи нажмите ввод

  2. Перейдите в каталог проекта, т.е. cd path_to_your_project

  1. Запустите эти команды

    1. del /F /S /Q /A .git

    2. rmdir .git

Первая команда удаляет все файлы и папки внутри в .gitпапке. Вторая удаляет .gitсаму папку.

Нет командной строки

  1. Откройте проводник и перейдите к своему проекту

  2. Показать скрытые файлы и папки - обратитесь к этой статье для наглядного руководства

    1. В меню просмотра на панели инструментов выберите Options

    2. В Advanced Settingsразделе найдите Hidden files and Foldersпод Files and Foldersсписком и выберитеShow hidden files and folders

  3. Закройте меню параметров, и вы увидите все скрытые папки и файлы, включая эту .gitпапку.

    Удалить .gitпапку Удалить .gitignoreфайл ** (см. Примечание вверху этого ответа)

Мэтт С
источник
1
rmdir .gitне работает, потому что под ним есть папки.
Дейл
Дейл, проверь строчку ниже rmdir .git. Это объясняет, что приведенная выше команда rmdir .gitиспользуется для удаления всех файлов и папок в папке .git, прежде чем rmdirкоманда удалит саму папку.
Мэтт C
1
Вы могли бы также сделать rd /s /q .git, который
Грег
Для окон rmdir /S .gitполучил работу. Спасибо за это.
Эдер Луис Хорхе
70

Перемещать все .git*вручную не очень разумно , особенно когда эти .gitфайлы скрыты в подпапках, как в моем случае: когда я установил Skeleton Zend 2 с помощью composer + git, .gitв папках и подпапках было создано довольно много файлов. папки.

Я пробовал rm -rf .gitна своей оболочке GitHub, но оболочка не может распознать параметр -rfRemove-Item.

www.montanaflynn.me представляет следующую команду оболочки для .gitрекурсивного удаления всех файлов за один раз! Это действительно работает!

find . | grep "\.git/" | xargs rm -rf
Джон Инь
источник
5
«Я пытался использовать« rm -rf .git »в своей оболочке Github, но оболочка не может распознать параметр -rf в Remove-Item». - это потому rmчто псевдоним PowerShell для remove-item. И -rfэто * nix shell rmаргументы. Для PowerShell используйте rm -recursive -forceвместо этого.
KFL
14
ОПАСЕН! grep .gitбудет соответствовать файлы, как legit.gifили anithing с "git" в середине имени файла! Пожалуйста, удалите или отредактируйте ответ !!!
pamatt
4
Обновление для соответствия только на git dirs: найти. | grep "\ .git /"
Андрей
3
Все еще недостаточно безопасно: это отлавливает файлы и каталоги, которые заканчиваются .git. Должно быть grep "^\.git/"; даже лучше (и быстрее) будет фильтр по имени в findвызове: find . -name .git.
pvgoran
Выполните следующие команды: find -name .git | xargs rm -rfи find -name .gitignore | xargs rm -rf.
Разработчик Мариус Жиленас
14

Я работаю в среде Linux. Я удалил все файлы и папки Git рекурсивным способом:

rm -rf .git

rm -rf .gitkeep
Нитья Кумар
источник
9

В среде Windows вы можете удалить отслеживание Git из каталога проекта, просто набрав ниже.

rd .git /S/Q
Рукшан Дангалла
источник
7

Из корневой папки запустить

find . | grep .git

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

find . | grep .git | xargs rm -rf

Камеш Юнги
источник
5

Самый простой способ решить эту проблему - использовать командную строку. Введите эту команду, rm -R .git/затем введите ... ИЛИ rm -rf .git/нажмите Enter ...

Эмека Августин
источник
2

Пользователь командной строки Windows (cmd):

Вы можете рекурсивно удалить «.git» из папки исходного проекта, используя однострочную команду.

FOR /F "tokens=*" %G IN ('DIR /B /AD /S *.git*') DO RMDIR /S /Q "%G"
SridharKritha
источник