Как очистить локальный репозиторий git

Как очистить локальный репозиторий git без остатков

Мы только начали использовать git в производстве в нашей компании, и у всех, похоже, есть те же проблемы/проблемы. Поскольку мы все еще используем git, мы часто оказываемся взволнованными нашими местными репитерами. (плохие слияния, неправильные команды и т.д.). То, что мы хотим сделать, это сбросить наши локальные репозитории обратно к данной ревизии и избавиться от всех остатков плохих изменений.

Я читаю об этом, и я вижу, как я могу использовать “сброс git” с его различными вариантами, чтобы передвигать голову и вообще вернуть рабочую область в правильное состояние, но я не совсем понимаю, что это оставляет репозиторий и как его очистить.

Например, если я выполняю плохое слияние в моем локальном репозитории:

git checkout master git merge wrong_branch

Я могу сбросить мастер, чтобы вернуться к фиксации до этого, но является ли фиксация слияния еще сидением в базе данных объекта репозитория? Точно так же, если он сидит там, и я нажимаю свою ветку в удаленный репозиторий, будет ли он проходить через данные с плохим слиянием?

Есть ли какой-то способ полностью удалять неудачное слияние (или любую другую плохую ревизию) из моего локального репозитория, чтобы убедиться, что я не загрязняю публичный репозиторий данными, которые следует игнорировать, как будто этого не произошло?

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

Пример слияния и сброса

Теперь вы сливаетесь в ветку признаков.

Однако, посмотрев на изменения, вы понимаете, что в конце концов вы не хотите сливаться в этой ветке. Нет проблем. Вывод журнала из ранее показывает, что главная ветвь была на уровне 695d21b раньше – так что просто переместите указатель HEAD туда:

Reflog

Теперь ваша рабочая копия выглядит так, как никогда. Но так как вам было интересно, есть ли что-то еще в репозитории из этого слияния – объект фиксации все еще остается в репозитории:

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

Тестирование..

Теперь, если вы все еще чувствуете себя небезопасно в отношении какой-либо слияния или другой операции, которую вы собираетесь сделать, вы всегда можете просто создать откидную ветвь и попробовать ее там сначала. Конечно, это технически не обязательно, поскольку я только что показал вам, но это может быть полезно, потому что на самом деле не имеет значения, что происходит в этой ветке. Вы можете просто избавиться от него потом.

Нажатие.

Если вы вернетесь назад HEAD, как в приведенном выше примере, вам не нужно беспокоиться о том, чтобы вытащить мусор в публичное репо: “git push” не будет выталкивать что-либо за пределы вашего текущего HEAD. То, что вам нужно знать, это то, что после того, как вы подтолкнули что-то к публичному репо, вы больше не должны заниматься историей.

Может быть, я немного разобрался в этом – надеюсь, что это помогло 🙂

Прежде всего, если вы все еще изучаете git и работаете над проектом, имейте резервную копию (при наличии резервной копии, даже если вы специалист, конечно)

Для примера, который вы указали, вы можете просто сделать:

Коммисионные коммиты все равно будут присутствовать, но он будет “болтаться” и убираться когда-то, и вам не о чем беспокоиться. Они не будут перенесены в другой репозиторий.

Кроме того, git reflog – это то, о чем вы должны знать и познакомиться.

Пока ссылки не указывают на это, он будет удален в течение 90 дней. Если вы случайно не сделали очень большой файл как часть этого слияния, я бы не стал беспокоиться об этом.

Gitx имеет лучший графический интерфейс для визуализации и сброса ветвей, которые я видел. Если вам нужно сбросить ветвь на предыдущую фиксацию, вам просто нужно перетащить значок ветки, чтобы всякая фиксация была бы актуальной. Я выполняю большую часть работы git в командной строке, но Gitx бесценен для визуализации вашей истории и очистки ваших веток.

Источник

Работаем с репозиториями в Git

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

Далее я расскажу, как создать, клонировать и удалить эти репозитории.

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

Создание Git-репозитория

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

Откройте «Командную строку‎» (Windows) или Терминал (Linux/macOS) и перейдите по пути данной папки.

Как очистить локальный репозиторий git

В Linux выполните команду:

В macOS :

В Windows:

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

Как очистить локальный репозиторий git

Теперь у вас есть Git-репозиторий со всеми необходимыми составляющими и отслеживаемыми файлами.

Клонирование существующего репозитория

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

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

Завершим этот раздел статьи описанием содержимого, которое появляется в консоли при выполнении команды. Данный вывод соответствует успешному клонированию:

Удаление локального Git-репозитория

Если с созданием и клонированием репозиториев все понятно, то как быть, когда папка с проектом уже существует, но в нее нужно поместить новые данные, удалив предыдущие, или когда Git-репозиторий на сервере больше не нужен. В таком случае осуществляется стандартное удаление.

В корне каталога с проектом необходимо избавиться от папки .git, о которой уже шла речь выше. Так вы удаляете только ту информацию, которая связана с Git, но сам проект остается. В Linux через Терминал вы должны перейти к каталогу с проектом и ввести следующую команду:

Еще один вариант – удаление .gitignore и .gitmodules в случае их наличия. Тогда команда меняет свой вид на:

Только что мы разобрались с основами создания, клонирования и удаления Git-репозитория. Удачи!

Источник

Русские Блоги

Как удалить локальный репозиторий Git и удалить репозиторий удаленного репозитория Git на GitHub

1. Удалите локальный склад Git.

Основной принцип удаления локального хранилища Git заключается в удалении скрытой папки «.git» в корневом каталоге «локального хранилища Git».

Как очистить локальный репозиторий git

(1) Метод 1. Вручную удалите скрытую папку «.git» в корневом каталоге в «Git Local Warehouse» (как показано на рисунке выше).

(3) Проверьте, успешно ли удален локальный склад: введите каталог хранилища в Gitbash, если в конце каталога нет «(мастер)», это означает, что локальный склад был успешно удален.

Как очистить локальный репозиторий git

2. Удалите удаленный репозиторий Git на GitHub.

Значение команды: удалить удаленный склад Git «LearningGit» из «индивидуального пользователя jedlee6» в сообществе Github

Команда remove: удалить один или несколько файлов или каталогов в каталоге

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

Принудительный вариант: игнорировать файлы, которые не существуют, никогда не выдавать подсказку «файл не существует» (удалить файл, если файл не существует, появится сообщение «файл не существует»)

(2) Зайдите в Настройки на соответствующем складе github, проведите пальцем вниз по странице настроек, найдите последний подпункт «Зона опасности», удалите библиотеку

Источник

Как удалить репозиторий GitHub

У вас есть старый проект на GitHub, который больше не активен или не нужен? Удаление старых репозиториев (репо) очищает вашу учетную запись от любых потенциальных будущих работодателей, просматривающих ваш код. Вот как это делается.

Что нужно знать перед удалением репозитория GitHub

Вы можете удалить репо в любое время, если вы являетесь владельцем организации или имеете права администратора. Когда репо удаляется, иногда можно восстановить его при определенных условиях. Однако при удалении репо все еще возникают серьезные последствия, даже если вам удастся его восстановить.

Удаление частного репозитория также удаляет все форки (онлайн-копии) этого репо. Однако, если вы удалите публичное репо, вилки все равно будут существовать.
Примечание. Если репо является общедоступным, а позже будет изменено на частное, вилки, которые были созданы, когда репо было общедоступным, не будут удалены. Вы решаете, хотите ли вы, чтобы репо было общедоступным или частным, когда вы создаете репо, поэтому просто имейте в виду, что некоторая информация все еще может быть доступна для общественности, даже если вы переключите репо на частное, а затем удалите его.
Удаление репозитория также приведет к удалению всех связанных проблем, вложений, разрешений группы и комментариев. Если вы думаете, что вам может понадобиться сослаться на некоторые из этих материалов в будущем, не удаляйте репо, так как это нельзя будет отменить.

Как удалить репозиторий GitHub

Если вы уверены, что хотите удалить свой репозиторий, откройте Сайт GitHub в выбранном вами браузере и войдите в свою учетную запись. Затем щелкните репо, которое вы хотите удалить, в группе «Репозитории» на левой панели.

Как очистить локальный репозиторий git

Нажмите кнопку «Настройки» под аналитикой репо.

Как очистить локальный репозиторий git

Теперь прокрутите страницу настроек вниз до раздела «Зона опасности». Здесь нажмите «Удалить этот репозиторий».

Появится всплывающее сообщение с предупреждением о том, что действие является постоянным, и предложением ввести имя репо для подтверждения. Внимательно прочтите предупреждение, введите имя репозитория в текстовое поле и нажмите «Я понимаю последствия, удалите этот репозиторий».

Источник

Спаси щеночка – держи свои git-репозитории в чистоте

Помните, что о каждом бессистемном git-репозитории в мире грустит один щеночек. Вы ведь не хотите расстраивать еще одного?

Как очистить локальный репозиторий git

Бросим все силы на борьбу с собачьей грустью!

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

Совет 1. Комментируйте коммиты с умом

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

Как очистить локальный репозиторий git

Например, если вы используете JIRA, начинайте каждый комментарий с префикса JIRA-тикетов. Так вы сможете перейти к задаче простым кликом и получить список всех относящихся к ней коммитов.

Совет 2. Gitflow: действуйте по плану

Как очистить локальный репозиторий git

Если вы незнакомы с Gitflow, то обязательно загляните в руководство Atlassian или наш материал.

Это очень полезная штука, которая помогает придерживаться плана и держать проект в чистоте и порядке независимо от его размера. Использование единого соглашения облегчает работу в команде.

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

Совет 3. Создавайте пулл-запросы

Как очистить локальный репозиторий git

Pull request, или запрос на слияние, – это простой способ сообщить вашим товарищам по команде, что функциональность, над которой вы работали, готова. Gitlab дает возможность уведомить об этом заинтересованных лиц.

Главная идея таких запросов – создать точку в git-репозитории, в которой можно обсудить конечный вариант новой фичи.

Есть еще один большой плюс. Когда ваш код мержит кто-то другой, знания и ответственность в отношении конкретной функции разделяются.

Совет 4. Поддерживайте чистоту в git-репозитории

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

Как очистить локальный репозиторий git

Git rebase

Rebasing (перебазирование или перемещение) позволяет сохранить в вашей feature-ветке ту же историю коммитов, что и в master. Это предотвратит опережение других веток и спасет от ужасных конфликтов слияния.

Как очистить локальный репозиторий git

Внимание!

Совет 5. Версионируйте проект

Семантическое управление версиями – отличная практика, которая позволит навести порядок в вашем git-репозитории.

Выглядит это так: v Major.Minor.Patch, например, v3.5.2.

Вот пример версионированного проекта. В версии 3.3 появилась новая функция Test module. После минорного выпуска было 4 патча: обновления безопасности и конфиденциальности, а также фиксы багов.

Как очистить локальный репозиторий git

Советы для PRO

Именование файлов (core.ignorecase)

По какой-то причине Mac OS по умолчанию не учитывает регистр в файловой системе. Это вызывает много проблем.

Например, в вашем проекте есть два файла: HelloController.php и helloController.php. На Mac OS все работает отлично, вы делаете коммит и отправляете изменения в репозиторий. Но на другой операционной системе появится сообщение об ошибке вида «HelloController.php not found».

Вы можете переименовать файл, но git этого не увидит, ведь по умолчанию он игнорирует регистр.

Эту опцию можно глобально отключить с помощью команды:

Файловый режим (core.fileMode)

Хотя по умолчанию git игнорирует регистр, он отслеживает режимы файлов. Если вы изменили права доступа к файлам, не изменив в них ни строчки, git все же покажет изменения.

Эту опцию можно отключить глобально, выполнив следующую команду:

Grumphp

Как очистить локальный репозиторий git

Grumphp – это инструмент, который пропускает все изменения кода через набор тестов и проверяет, соответствуют ли они настроенным требованиям.

Щеночек счастлив!

Ура, вы спасли щеночка и сохранили чистоту и уют в вашем git-репозитории. Если у вас есть собственные приемы поддержания порядка, поделитесь ими в комментариях.

Источник

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

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