Как удалить git init
Перейти к содержимому

Как удалить git init

  • автор:

Как отменить git init в уже существующем репозитории?

В папке с git-ом случайно нажал на git init , в итоге теперь когда делаю git status у меня все файлы отображаются как измененные. В git log последние коммиты остались. Как отменить действие команды git init ?

Отслеживать
20.1k 6 6 золотых знаков 37 37 серебряных знаков 81 81 бронзовый знак
задан 4 июн 2015 в 14:19
899 4 4 золотых знака 12 12 серебряных знаков 30 30 бронзовых знаков
Да удалите каталог .git , который создаёт git init .
4 июн 2015 в 14:24

@klopp и потерять всю историю? Хмм, а вообще командой git init можно затереть какие-либо файлы git-а?

4 июн 2015 в 14:26

Нет, затереть какие-либо файлы нельзя, git init — команда идемпотентная. Связанный вопрос: Как правильно удалить Git tracking (контроль версий)?

22 июн 2017 в 3:31

3 ответа 3

Сортировка: Сброс на вариант по умолчанию

Если просто случайно создали репозиторий, то нужно удалить папку .git в корне. Это полностью уничтожит репозиторий и, разумеется, отменит то, что сделал git init . Через *nix-консоль это делается так:

rm -r .git 

Если же Вы сделали git init в уже существующем репозитории, то бояться нечего:

Running git init in an existing repository is safe. It will not overwrite things that are already there. The primary reason for rerunning git init is to pick up newly added templates (or to move the repository to another place if —separate-git-dir is given).

Отслеживать
33.9k 25 25 золотых знаков 130 130 серебряных знаков 222 222 бронзовых знака
ответ дан 4 июн 2015 в 15:33
23.8k 3 3 золотых знака 46 46 серебряных знаков 61 61 бронзовый знак
то что нужно. спасибо за ответ)
5 июн 2015 в 6:50
познавательно, спасибо
22 июн 2017 в 3:36

Судя по описанию, команда git init была выполнена не в корневой директории проекта, а в одной из вложенных. В таком случае всё, что внутри этой вложенной директории, изнутри нее считается новым репозиторием (а снаружи — старым).

При выполнении любой команды Git в некоторой директории происходит рекурсивный поиск репозитория снизу вверх. Т.е. проверяется текущая директория, потом ее родитель, потом родитель родителя и т.д. Как только находится директория .git , дальнейший поиск прекращается.

Предположим, у нас есть такая структура. В корневой директории проекта A инициализирован репозиторий Git.

A |-.git |-A/B |-A/C |-A/C/X |-A/C/Y |-A/C/Z |-A/D 

Теперь мы инициализируем новый репозиторий в директории A/C :

$ cd C $ git init A |-.git |-A/B |-A/C |-.git |-A/C/X |-A/C/Y |-A/C/Z |-A/D 

Теперь наблюдаем следующую картину:

При выполнении любой команды Git из директорий A , A/B , A/D , обнаруживается репозиторий в директории A .

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

Чтобы исправить ситуацию, достаточно удалить .git из директории A/C :

$ rm -rf A/C/.git 

Как отменить команду «git init» (с примерами)

Чтобы «отменить» git инициировать команда, запустить:

Эта команда удаляет .git каталог, который был создан для инициализации репозитория. Вся ваша работа останется там после запуска этой команды.

Если вы используете Windows, отмените git инициировать команду, запустив:

Это руководство научит вас, как git инициировать команда работает в двух словах и как безопасно отменить команду. Вы найдете практический пример, с которым можно поиграть, чтобы лучше понять, как git инициировать работает и что .git папка содержит.

Как работает команда git init?

Создание нового репозитория Git начинается с запуска git инициировать команду на терминале. Вы можете запустить эту команду, чтобы превратить неверсионный проект в новый пустой репозиторий.

Звучит заманчиво, но на самом деле git init создает .git папка с подпапками объекты, рефери/головыи ссылки/теги с некоторыми файлами шаблонов. Обратите внимание, что эта папка невидима.

Если в папке вашего проекта есть эта папка .git, она считается репозиторием Git. А если такой папки в проекте нет, то это уже не репозиторий Git.

Вот почему нет реального способа «отменить» git инициировать команда. Вместо этого все, что вам нужно сделать, это удалить .git папка.

Конкретный пример

Давайте посмотрим на конкретный пример для поддержки обучения!

1. Инициализация Git

Начнем с каталога под названием тестовый проект с файлом под названием пример.txt в этом:

Теперь давайте поместим этот проект под контроль версий с помощью git инициировать:

Отлично, теперь срабатывает контроль версий, и вы можете начать отслеживать изменения в проекте.

2. Проверка папки .git

Как я упоминал ранее, запуск этой команды создает (невидимый) .git папка для проекта.

Давайте еще раз взглянем на папку проекта:

Судя по всему, нет .git папка на виду. Но давайте перечислим файлы и папки .git папку, например, с помощью лс команда:

$ ls .git ветки/ описание конфигурации HEAD hooks/ info/objects/refs/

Как видите, в папке много файлов и подпапок. .git в папке проекта, где вы инициализировали репозиторий Git.

Обратите внимание, что удаление .git папка — это безопасная операция в том смысле, что вся ваша работа хранится в папке проекта. Однако вы потеряете доступ к версии проекта. Это означает, что вы не можете, например, вернуться назад во времени, чтобы отменить фиксацию или что-то в этом роде.

Позвольте мне продемонстрировать, продолжая тестовый проект папка.

3. Создание первоначального коммита

Во-первых, давайте внесем изменения в пример.txt файл:

Затем добавим и зафиксируем это изменение в системе контроля версий:

$ git добавить. $ git commit -m “Добавить изменение в текстовый файл”

Теперь давайте запишем историю коммитов с помощью журнал git:

Есть первый коммит.

4. «Отмена» команды git init

Теперь предположим, что нет причин держать этот проект под контролем версий. Чтобы «отменить» или «не добавить» Git, вы можете безопасно удалить .git папка из проекта.

Если вы сейчас попытаетесь запустить любой мерзавец в папке проекта, произойдет сбой, поскольку проект больше не является репозиторием Git.

Но как и было обещано, папка с содержимым осталась. Только .git папка удалена.

Краткое содержание

Сегодня вы узнали, как «отменить» git инициировать команда. Подводя итог, вы не можете обязательно отменить git инициировать команда. Вместо этого вы можете удалить свой проект из системы контроля версий Git, удалив .git папка (рм -рф .git), который был создан при запуске git init.

Спасибо за прочтение. Удачного кодирования!

Советы для тех, кто осваивает Git

Периодически от студентов приходят вопросы о работе системы контроля версий Git. Частая причина возникновения этих вопросов — непонимание разницы между репозиторием и обычной папкой.

Чтобы исправить ситуацию, Ильнар Шафигуллин, эксперт по data science и методолог программы «Разработчик», подготовил небольшую заметку на эту тему. Давайте разберемся, как работать с папками и репозиториями с точки зрения практики, то есть без строгих определений.

Пункт 1. Про папки и репозитории

Если папка — это то, к чему мы все привыкли как пользователи компьютеров, то репозиторий — это что-то новое, что нужно создать, инициализировать. Сам по себе репозиторий без наших указаний не появляется. Репозиторий в наших задачах — это папка, над которой были произведены некоторые действия, и Git в ней начинает выполнять свои задачи, например:

  • отслеживать изменения файлов;
  • хранить информацию о ветках.

Важно! Репозиторий не возникает сам по себе, его нужно создать.

Пункт 2. Как понять, в репозитории мы находимся или в папке

Самый простой способ это сделать — набрать в терминале команду «git status». Если в ответ вы увидите ошибку «fatal: not a git repository (or any of the parent directories): .git», значит, в терминале вы вызываете команду не из репозитория, а из обычной папки. Если вы увидели что-то другое, то вы находитесь в репозитории или внутри одной из папок, которая находится в нем.

Важно! Репозиторий отслеживает изменения во всех вложенных в него папках.

Если вы сделаете репозиторием корневую папку на диске C (не делайте этого!), то весь ваш диск станет репозиторием и Git будет пытаться отслеживать все изменения на этом диске. Создаем репозитории очень аккуратно.

Пункт 3. Как можно создать репозиторий

На лекциях программы «Разработчик» мы рассматриваем два способа:

  1. Если мы находимся в папке (!) и хотим сделать из нее репозиторий, то вызываем команду «git init», и эта папка становится репозиторием.
  2. Если мы хотим клонировать репозиторий из GitHub на свой ПК, то мы пользуемся командой «git clone». При этом обратите внимание: не нужно пользоваться командой «git init», команда clone не только скачивает файлы из интернета, но и инициализирует репозиторий в скачанной папке. На самом деле она делает сильно больше, но нам важно, что в скачанной папке у нас уже будет репозиторий и никак дополнительно инициализировать его не надо.

Пункт 4. Внимательно следим за тем, из какой папки вы вызываете команды

Терминал всегда показывает, в какой папке вы сейчас находитесь, но первое время студенты чаще смотрят на то, какая папка открыта в визуальном интерфейсе VSCode, а не на то, что написано в терминале. Обращайте, пожалуйста, внимание на название папки, которая указана в приглашении к вводу команд терминала. До тех пор, пока вы не привыкнете к работе с терминалом, внимательно следите за тем, что вы создаете репозитории только во вновь созданных для урока папках. Не нужно создавать репозитории из рабочего стола или других больших папок.

Пункт 5. Не нужно создавать репозитории внутри другого репозитория

Повторюсь: не нужно создавать репозиторий внутри репозитория. Прежде чем вызывать команды «git init» или «git clone», сначала убедитесь, что вы точно не внутри репозитория. Вызовите «git status» и убедитесь, что вы находитесь в папке, а не в репозитории. Если «git status» выдал ошибку «fatal: not a git repository (or any of the parent directories): .git», значит, вы в этой папке можете воспользоваться одним из способов создания репозитория, рассмотренным выше и на лекциях. Либо «git init», либо «git clone», но не обоими одновременно.

Важно! Иногда студенты сначала вызывают «git init» и потом «git clone». Но тем самым вы нарушаете правило не создавать репозиторий внутри репозитория. Обращайте на это внимание.

Пункт 6. Как репозиторий сделать обычной папкой

Когда вы создаете репозиторий, у вас в папке появляется новая скрытая папка с названием «.git». Это специальная папка, в которой хранится все, что необходимо для работы системы контроля версий. Если вы удалите эту папку, то потеряете всю историю, которую Git успел сохранить, но при этом превратите ваш репозиторий обратно в папку.

Итак, чтобы из репозитория снова сделать папку, достаточно всего лишь удалить скрытую папку «.git». При этом вы потеряете историю, которую собрал Git (все коммиты, ветки и т. п.), но файлы в самой папке останутся в том же виде, в котором они были в момент удаления папки «.git».

Пункт 7. Что делать, если все вокруг стало репозиторием

У студентов, которые неаккуратно вводят команду «git init», такое встречается. Поэтому давайте разберемся, что делать в такой ситуации. Надо проверить, успели ли вы уже совершить такую ошибку. Создайте новую пустую папку, например на рабочем столе, и в терминале вызовите «git status» в этой папке. Если вы увидите «fatal: not a git repository …», то радуемся. Все у вас в порядке.

Если же вы увидели что-то другое, значит, ваша вновь созданная папка является частью какого-то другого репозитория. Важно: мы только что создали новую папку и внутри нее никаких команд кроме «git status» не вызывали, то есть мы не создали сейчас новый репозиторий, но Git при этом не говорит нам, что это «not a git repository». Это может быть только в том случае, если вы эту новую папку создали уже внутри другого репозитория, то есть чуть раньше сделали репозиторием ваш рабочий стол или даже весь ваш диск C. Вылечить такую ситуацию можно следующим образом: нужно найти репозиторий, который вы создали по ошибке, и сделать его обратно папкой (см. предыдущий пункт — нужно удалить папку .git).

Если вы работаете на Windows, включите отображение скрытых файлов и папок, так как папка .git скрытая. Далее начинаем подниматься по иерархии папок вверх и искать в них папки «.git». Например, если вы создали папку по адресу «C:\Users\User\Pictures\ControlCenter\Scan», то сначала проверяете папку Scan, потом проверяете папку ControlCenter, потом Pictures и так далее, пока не найдете скрытую папку .git. Когда нашли и удалили, проводим проверку из начала этого пункта заново.

Успехов в освоении Git и терминала!

6. Разное

Для удаления репозитория необходимо зайти на страницу этого репозитория переключится на вкладку Settings и проскролить в самый низ страницы:

Дополнительно

  • 6.1. Сохранение фрагментов кода на GitHub
    Gist
  • 6.2. Удаление репозитория
  • 6.3. Создание файла — .gitignore
  • 6.4. Создание файла README.md синтаксис Markdown
  • 6.5. Откат к коммиту, расширение Git Graph для VS Code
  • 6.6. Описание профиля на GitHub

7. Короткая инструкция

  • 7.1. Если проекта нет на компьютере: клонирование и работа с проектом
  • 7.2. Если проект есть на компьютере: получение обновлений (git pull) и работа с проектом

8. Secret Cloud

  • 8.1. Клонирование проекта
  • 8.2. Начало работы над задачей в Jira
  • 8.3. Начало и завершение работы в новой ветке VSCode: stash, pull, add, restore, commit и push
  • 8.4. Просмотр всех коммитов и активностей
  • 8.5. Завершение задачи в Jira и учет рабочего времени
  • 8.6. Работа с багами
  • 8.7. Unit-тестирование Jest
  • 8.8. Merge Request в GitLab
  • 8.9. Присоединений изменений с удаленной ветки (с GitLub) к новой локальной ветке
  • 8.10. Посмотреть другую удаленную (GitLab) ветку, с которой не работал
  • 8.11. Получение данных по API для таблиц
  • 8.12. Структура импортов
  • 8.13. Добавление алиасов для путей в webpack
  • 8.14. Удаление подписки при размонтировании компонента
  • 8.15. Отправка запроса и получение данных:
    useSelector, useDispatch, actions, initialState
  • 8.16. Структура проекта
  • 8.17. Загрузка файла

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *