Как удалить локальный репозиторий GitHub
Вы также можете удалить локальный репозиторий GitHub, если хотите. Все, что вам нужно сделать, это удалить папку .git в корне вашего проекта.
Для этого откройте командную строку и перейдите в корневую папку проекта. Затем введите следующую команду:
Хотя приведенная выше команда работает для Mac и Linux, в Windows процесс немного отличается.
Чтобы удалить локальный репозиторий в Windows, откройте командную строку от имени администратора. Вы можете сделать это, набрав cmd в строке поиска Windows.
Щелкните правой кнопкой мыши cmd в результатах поиска. Из вариантов выберите Запуск от имени администратора .
После открытия командной строки выйдите из системных каталогов с помощью < cd .. >. Затем перейдите в корневую папку вашего проекта и введите следующую команду:
Однако, если папка .git не пуста, используйте:
11 ответов
Лучший ответ
Из man-файла:
Итак, для одного файла:
И для одного каталога:
4728
Sam
8 Июл 2019 в 09:00
Чтобы удалить всю папку из репозитория (например, файлы Resharper), сделайте следующее:
Я зафиксировал некоторые файлы resharper и не хотел, чтобы они оставались для других пользователей проекта.
297
konsolenfreddy
2 Окт 2012 в 09:25
Согласно моему ответу здесь: https://stackoverflow.com/questions/6313126/how-to-remove-a-directory-in- мой-github-репозиторий
Действия по удалению каталога
Действия по игнорированию этой папки при следующих фиксациях
Файл .gitignore будет выглядеть так
109
Community
20 Июн 2020 в 09:12
Более общее решение:
-
Отредактируйте файл .
-
Удалить все элементы из индекса.
-
Восстановить index.
-
Сделать новую фиксацию
74
Math Bob
2 Июл 2020 в 12:49
Кроме того, если вы передали конфиденциальные данные (например, файл, содержащий пароли), вы должны полностью удалить их из истории репозитория. Вот руководство, объясняющее, как это сделать: http://help.github.com/remove-sensitive-data/
73
BoD
21 Авг 2011 в 12:16
(Из https://help.github.com/articles/ignoring-files)
Следовательно, не удаляя его, а навсегда игнорируя его изменения. Я думаю, что это работает только локально, поэтому сотрудники все равно могут видеть изменения в нем, если они не запустят ту же команду, что и выше. (Тем не менее, это все еще необходимо проверить.)
26
Rystraum
28 Янв 2014 в 11:46
Если вы хотите просто отследить файл и не удалять его из локального и удаленного репо, используйте эту команду:
24
Afraz Ahmad
21 Янв 2021 в 06:58
Вышеуказанные ответы не сработали для меня. Я использовал для удаления всех зафиксированных файлов.
Удалите файл из репозитория git с помощью:
Удалите папку из репозитория git с помощью:
Это удаляет каталог или файл из всех коммитов.
Вы можете указать фиксацию, используя:
Или диапазон:
Чтобы отправить все на удаленный компьютер, вы можете:
8
Samuel Philipp
20 Фев 2019 в 03:48
Это зависит от того, что вы подразумеваете под словом «удалить» из git.
Вы можете отключить файл с помощью git rm —cached подробнее см.. Когда вы что-то отключаете, это означает, что это больше не отслеживается, но это не удаляет файл из предыдущих коммитов.
Если вы хотите сделать больше, чем деактивировать файл, например удалить конфиденциальные данные из всех предыдущих коммитов, вам нужно будет изучить фильтрацию ветки с помощью таких инструментов, как .
Dharman
15 Ноя 2020 в 18:20
Игнорируйте файлы, удалите файлы из git, обновите git (для удаления).
Примечание. Это не касается истории конфиденциальной информации.
Этот процесс определенно требует понимания того, что происходит с git. Со временем, получив это, я научился выполнять такие процессы, как:
1) Игнорируйте файлы
- Добавьте или обновите проект , чтобы игнорировать их — во многих случаях, таких как ваш, родительский каталог, например будет используемым регулярным выражением.
- зафиксировать и нажать на изменение файла (не уверен, нужен ли push, помните, ничего страшного, если это будет сделано).
2) Удалите файлы из git (только).
3) Добавьте и зафиксируйте это изменение (по сути, это изменение для «добавления» удаления материала, несмотря на запутанную команду «добавить»!)
Шаблон .gitignore
Файл .gitignore представляет собой обычный текстовый файл, в котором каждая строка содержит шаблон для файлов или каталогов игнорировать.
.gitignore использует шаблоны с подстановкой для сопоставления имен файлов с подстановочными знаками. Если у вас есть файлы или каталоги, содержащие шаблон подстановки, вы можете использовать одну обратную косую черту (\) для экранирования символа.
Строки, начинающиеся с хэш-метки (#), являются комментариями и игнорируются. Пустые строки можно использовать для улучшения читаемости файла и группировки связанных строк шаблонов.
Рассечение
Символ косой черты (/) представляет разделитель каталогов. Косая черта в начале шаблона относится к каталогу, в котором находится .gitignore.
Если шаблон начинается с косой черты, он сопоставляет файлы и каталоги только в корне хранилища.
Если шаблон не начинается с косой черты, он сопоставляет файлы и каталоги в любом каталоге или подкаталоге.
Если шаблон заканчивается косой чертой, он соответствует только каталогам. Когда каталог игнорируется, все его файлы и подкаталоги также игнорируются.
Литеральные имена файлов
Самый простой шаблон – это буквальное имя файла без каких-либо специальных символов.
Шаблон | Пример совпадений |
---|---|
/access.log | access.log |
access.log | access.log logs/access.log var/logs/access.log |
build/ | build |
Создание Git-репозитория
Сначала рассмотрим создание репозитория. Представим, что у вас уже есть папка для хранения файлов, но она еще не находится под контролем Git.
Откройте «Командную строку» (Windows) или Терминал (Linux/macOS) и перейдите по пути данной папки.
В Linux выполните команду:
cd /home/user/directory
В macOS
cd /Users/user/directory
В Windows:
cd C:/Users/user/directory
Остается только ввести нижеуказанную команду, чтобы завершить первый этап.
git init
Благодаря этой команде создается структура подкаталога со всеми необходимыми файлами. Кстати, все они расположены в подпапке с названием .git. Пока что проект не находится под контролем учета версий, поскольку в него добавлены только нужные элементы для работы Git. Для добавления файлов в репозиторий будем использовать git add. Команда git commit является заключительной:
git add git commit -m 'initial project version'
Теперь у вас есть Git-репозиторий со всеми необходимыми составляющими и отслеживаемыми файлами.
Переименование файлов в репозитории Git
Переименование файлов также является одной из наиболее часто используемых операций над файлом. Переименование может быть сделано из-за многих факторов. Как разработчик, возможно, вы хотите переименовать файл, созданный вашим коллегой-разработчиком. Какова бы ни была причина, вы будете часто сталкиваться с переименованием
Будучи важной частью Git, мы должны научиться переименовывать файл в репозитории Git
Как переименовать файл с помощью Git
Поскольку у нас нет никакого файла в репозитории Git, создайте новый файл, например toolsqa.txt. После этого вы должны проверить состояние git. Подтвердите, что это чистый каталог, как мы уже делали выше. Как только все будет сделано, введите следующую команду и нажмите клавишу enter:
git mv <original_file_name> <new_file_name>
Проверьте состояние репозитория через git status.
Git обнаружил, что файл был переименован. Запомните этот шаг, так как он будет играть важную роль, когда мы будем переименовывать файл вне git. Зафиксируйте эти изменения.
Как переименовать файл вне Git
В этом разделе мы рассмотрим, как Git реагирует, когда файл переименовывается, не сообщая об этом Git. Используйте ту же команду без “git”.
Введите следующую команду в Git Bash и нажмите клавишу enter:
mv <original_file_name> <new_file_name>
Теперь, в идеале, Git должен был знать, что файл был переименован, как если бы мы переименовали его через Git. Но давайте посмотрим на реакцию Git, когда он сталкивается с переименованием файла вне Git.
Здесь очень важно заметить реакцию Git. Git удалил файл под названием renaming.txt и добавил новый файл toolsqa.txt
Оба они в настоящее время не присутствуют в плацдарме. Это совсем не то, что мы видели выше. Там Git упомянул, что файл был переименован. Теперь нам нужно добавить эти изменения в промежуточную зону.
Теперь Git распознал переименование и, следовательно, показывает вам то же самое. Зафиксируйте эти изменения в репозитории Git. Вы заметите что-то, когда будете фиксировать изменения.
Выделенная строка гласит: rename renaming.txt -> toolsqa.txt (100%)
Означает, что предыдущий файл и новый файл абсолютно одинаковы и нет никакой разницы. Это называется уровнем доверия. Если бы вы внесли какие-либо изменения в новый файл, а затем зафиксировали эти изменения, он показал бы менее 100%.
Глобальный .gitignore
Git также позволяет вам создать глобальный файл .gitignore, в котором вы можете определить правила игнорирования для каждого репозитория Git в вашей локальной системе.
Файл может быть назван как угодно и храниться в любом месте. Наиболее распространенным местом для хранения этого файла является домашний каталог. Вам придется вручную создать файл и настроить Git для его использования.
Например, чтобы установить ~/.gitignore_global в качестве глобального файла игнорирования Git, вы должны сделать следующее:
- Создайте файл:
touch ~/.gitignore_global
- Добавьте файл в конфигурацию Git:
git config --global core.excludesfile ~/.gitignore_global
- Откройте файл в текстовом редакторе и добавьте в него свои правила.
Глобальные правила особенно полезны для игнорирования определенных файлов, которые вы никогда не хотите зафиксировать, таких как файлы с конфиденциальной информацией или скомпилированные исполняемые файлы.
Глобальный .gitignore
Git также позволяет вам создать глобальный файл , в котором вы можете определить правила игнорирования для каждого репозитория Git в вашей локальной системе.
Файл можно назвать как угодно и хранить в любом месте. Чаще всего этот файл хранится в домашнем каталоге. Вам придется вручную создать файл и настроить Git для его использования.
Например, чтобы установить в качестве глобального файла игнорирования Git, вы должны сделать следующее:
-
Создайте файл:
-
Добавьте файл в конфигурацию Git:
-
Откройте файл в текстовом редакторе и добавьте в него свои правила.
Глобальные правила особенно полезны для игнорирования определенных файлов, которые вы никогда не хотите фиксировать, например файлов с конфиденциальной информацией или скомпилированных исполняемых файлов.
Удаление локального Git-репозитория
Если с созданием и клонированием репозиториев все понятно, то как быть, когда папка с проектом уже существует, но в нее нужно поместить новые данные, удалив предыдущие, или когда Git-репозиторий на сервере больше не нужен. В таком случае осуществляется стандартное удаление.
В корне каталога с проектом необходимо избавиться от папки .git, о которой уже шла речь выше. Так вы удаляете только ту информацию, которая связана с Git, но сам проект остается. В Linux через Терминал вы должны перейти к каталогу с проектом и ввести следующую команду:
rm -rf .git
Еще один вариант – удаление .gitignore и .gitmodules в случае их наличия. Тогда команда меняет свой вид на:
rm -rf .git*
Остается только убедиться в отсутствии скрытой папки, которая может помешать инсталляции новой. Для этого существует простая команда ls -lah, выполнить которую необходимо с указанием того же каталога.
Только что мы разобрались с основами создания, клонирования и удаления Git-репозитория. Удачи!
Файл отладки .gitignore
Иногда бывает сложно определить, почему конкретный файл игнорируется, особенно когда вы используете несколько файлов .gitignore или сложные шаблоны. Вот тут-то и пригодится команда git check-ignore с опцией -v, которая говорит git отображать подробности о соответствующем шаблоне.
Например, чтобы проверить, почему файл www/yarn.lock игнорируется, вы должны выполнить:
git check-ignore -v www/yarn.lock
Выходные данные показывают путь к файлу gitignore, номер совпадающей строки и фактический шаблон.
www/.gitignore:31:/yarn.lock www/yarn.lock
Команда также принимает более одного имени файла в качестве аргументов, и файл не обязательно должен существовать в вашем рабочем дереве.
Как удалить удаленный репозиторий на GitHub
GitHub не предлагает параметр командной строки для удаления репозиториев. В результате вам нужно удалить его вручную через веб-приложение.
Однако вы должны быть администратором с правами доступа, прежде чем сможете удалить репозиторий GitHub.
Чтобы удалить репозиторий GitHub, откройте браузер и войдите в свою учетную запись GitHub . Затем выполните следующие действия:
- Щелкните круглый значок профиля в правом верхнем углу веб-приложения.
- В раскрывающемся списке выберите Ваши репозитории, чтобы загрузить все ваши репозитории.
- Выберите репозиторий, который хотите удалить.
- Посмотрите вверху меню выбранного репозитория и нажмите « Настройки» .
- Прокрутите страницу настроек вниз, и вы увидите раздел под названием Danger Zone .
- Чтобы удалить выбранный репозиторий, нажмите Удалить этот репозиторий .
- Во всплывающем окне введите свое имя пользователя / имя репозитория в соответствующем поле.
- Если вы уверены, что хотите удалить репозиторий, нажмите Я понимаю последствия, удалите этот репозиторий, чтобы удалить его из своего удаленного репозитория на GitHub.
Локальный .gitignore
Локальный файл .gitignore обычно помещается в корневой каталог репозитория. Однако вы можете создать несколько файлов .gitignore в разных подкаталогах в вашем хранилище. Шаблоны в файлах .gitignore сопоставляются относительно каталога, в котором находится файл.
Шаблоны, определенные в файлах, которые находятся в каталогах (подкаталогах) более низкого уровня, имеют приоритет над шаблонами в каталогах более высокого уровня.
Локальные файлы .gitignore доступны другим разработчикам и должны содержать шаблоны, которые полезны для всех остальных пользователей хранилища.
.gitignore Шаблоны
— это простой текстовый файл, в каждой строке которого содержится шаблон, который файлы или каталоги следует игнорировать.
Комментарии
Строки, начинающиеся с решетки ( ), являются комментариями и игнорируются. Пустые строки можно использовать для улучшения читаемости файла и для группировки связанных строк шаблонов.
Слэш
Символ косой черты ( ) представляет собой разделитель каталогов. черта в начале шаблона относится к каталогу, в котором находится .
Если шаблон начинается с косой черты, он соответствует файлам и каталогам только в корне репозитория.
Если шаблон не начинается с косой черты, он соответствует файлам и каталогам в любом каталоге или подкаталоге.
Если шаблон заканчивается косой чертой, он соответствует только каталогам. Когда каталог игнорируется, все его файлы и подкаталоги также игнорируются.
Самый простой шаблон — это буквальное имя файла без каких-либо специальных символов.
Шаблон | Примеры совпадений |
---|---|
Подстановочные символы
— символ звездочки соответствует нулю или более символам.
Шаблон | Примеры совпадений |
---|---|
— Два соседних символа звездочки соответствуют любому файлу или нулю или более каталогам. Если за ним следует косая черта ( ), он соответствует только каталогам.
Шаблон | Примеры совпадений |
---|---|
Соответствует чему-либо в каталоге . | |
— Знак вопроса соответствует любому одиночному символу.
Шаблон | Примеры совпадений |
---|---|
Квадратных скобок
— соответствует любому из символов, заключенных в квадратные скобки. Когда два символа разделены дефисом это обозначает диапазон символов. Диапазон включает все символы, которые находятся между этими двумя символами. Диапазоны могут быть буквенными или числовыми.
Если первый символ после — восклицательный знак ( ), То шаблон соответствует любому символу, кроме символов из указанного набора.
Шаблон | Примеры совпадений |
---|---|
Отрицательные паттерны
Шаблон, который начинается с восклицательного знака ( ), Отменяет (повторно включает) любой файл, который игнорируется предыдущим шаблоном. Исключением из этого правила является повторное включение файла, если его родительский каталог исключен.
Шаблон | Примеры совпадений |
---|---|
или не будут проигнорированы |