Как удалить git с компьютера
Я добавил файл с именем "file1.txt" в репозиторий Git. После этого я зафиксировал его, добавил пару каталогов с именем dir1 and dir2 и отправил их в репозиторий Git.
Теперь текущее хранилище имеет "file1.txt" , dir1 и dir2 . Как я могу удалить, "file1.txt" не влияя на других, как dir1 и dir2 ?
git rm это правильный ответ, но помните, что файл все еще будет там в истории. Если вы хотите удалить файл, потому что он содержал конфиденциальную информацию, вам нужно сделать что-то более радикальное. (Изменение истории, особенно для контента, который вы уже добавили, является радикальным действием, и его следует избегать, если это возможно.) Примечание: в GitHub вы теперь можете напрямую удалить файл из веб-интерфейса (даже не клонируя репо). Смотрите мой ответ ниже . @KeithThompson, что это может быть, если я отчаянно хочу это сделать?Если вы хотите удалить файл из репозитория Git и файловой системы , используйте:
Но если вы хотите удалить файл только из репозитория Git и не удалять его из файловой системы, используйте:
И подтолкнуть изменения к удаленному репо
Также удобно: git rm -r directory // Удалить каталог и контент Это не собирается избавляться от этого файла в других коммитах. Обратите внимание, что файл будет удален и локально. Если вы хотите удалить его только из репозитория, выполните: git rm --cached file1.txt Стоит отметить, что если этот файл содержит конфиденциальную информацию (например, учетные данные), вы должны немедленно изменить эти учетные данные . Процитируем GitHub: «После того, как вы отправили коммит в GitHub, вы должны рассматривать любые содержащиеся в нем данные как скомпрометированные. Если вы зафиксировали пароль, измените его! Если вы зафиксировали ключ, сгенерируйте новый».git rm file.txt удаляет файл из репозитория, но также удаляет его из локальной файловой системы .
Чтобы удалить файл из репозитория и не удалять его из локальной файловой системы, используйте:
git rm --cached file.txt
Ниже приведена точная ситуация, когда я использую git для поддержки контроля версий для веб-сайта моего бизнеса, но каталог «mickey» был папкой tmp для обмена частным контентом с разработчиком САПР. Когда он нуждался в ОГРОМНЫХ файлах, я создал личный, несвязанный каталог и установил там ftpd файлы для его загрузки через браузер. Забыв, что я сделал это, я позже выполнил git add -A из базовой директории сайта. Впоследствии git status показали новые файлы, требующие фиксации. Теперь мне нужно было удалить их из отслеживания git и контроля версий .
Ниже приведен пример того, что случилось со мной, когда я случайно удалил .003 файл. К счастью, мне все равно, что случилось с локальной копией .003 , но некоторые другие в настоящее время измененные файлы были обновлениями, которые я только что сделал на веб-сайте, и они были бы грандиозными, если их удалить в локальной файловой системе! «Локальная файловая система» = живой сайт (не очень хорошая практика, но реальность) .
Обновление: Этот ответ получает некоторый трафик, поэтому я подумал, что упомяну другой мой ответ Git, делится парой отличных ресурсов: На этой странице есть рисунок, который помогает демистифицировать Git для меня. Книга "Pro Git" онлайн и мне очень помогает.
Затем вам нужно будет зафиксировать это с помощью чего-то подобного, git commit -m "Just removing file1.txt" а затем, если у вас есть удаленный репозиторий, протолкнуть коммит с чем-то вроде git push origin master .Во-первых, если вы используете git rm , особенно для нескольких файлов, учтите, что любой подстановочный знак будет разрешен оболочкой, а не git командой.
Но, если ваш файл уже находится на GitHub, вы можете (с июля 2013 года) напрямую удалить его из веб-интерфейса!
Просто просмотрите любой файл в вашем хранилище, щелкните значок корзины в верхней части и подтвердите удаление, как и любое другое редактирование через Интернет.
Затем " git pull " в вашем локальном репо, и это также приведет к удалению файла локально.
Что делает этот ответ (окольным) способом удаления файла из git repo?
(Не говоря уже о том, что файл на GitHub находится в «git repo»)
(фиксация будет отражать удаление этого файла):
И просто так, это ушло.
Для получения справки об этих функциях обязательно прочитайте наши справочные статьи по созданию , перемещению , переименованию и удалению файлов.
Примечание. Так как это система контроля версий, Git всегда имеет вашу спину, если вам нужно восстановить файл позже.
Последнее предложение означает, что удаленный файл все еще является частью истории, и вы можете восстановить его достаточно легко (но пока не через веб-интерфейс GitHub):
Я работаю с несколькими репозиториями, но в последнее время я просто работал в нашем внутреннем, и все было здорово.
сегодня мне пришлось совершить и вставить код в другой, но у меня возникли некоторые проблемы.
Я ничего не могу сделать, чтобы снова ввести пароль.
как я могу сбросить учетные данные в моей системе, чтобы Git попросил у меня пароль этого репозитория?
для того чтобы сбросить пароль
во избежание кэширования учетных данных.
кажется, ничего не работает; у кого-нибудь есть идея получше?
кэш учетных данных Git запускает процесс демона, который кэширует ваши учетные данные в памяти и передает их по требованию. Таким образом, убийство вашего процесса git-credential-cache-daemon выбрасывает все это и приводит к повторному запросу пароля, если вы продолжаете использовать его в качестве кэша.вспомогательный вариант.
вы также можете отключить использование кэша учетных данных Git с помощью git config --global --unset credential.helper . Затем сбросьте это, и вы продолжите иметь кэшированные учетные данные, доступные для других репозитории (если есть). Вам также может потребоваться сделать git config --system --unset credential.helper если это было задано в файле конфигурации системы (например, Git для Windows 2).
В Windows вам может быть лучше использовать менеджер помощник ( git config --global credential.helper manager ). Это хранит ваши учетные данные в хранилище учетных данных Windows, который имеет интерфейс панели управления, где можно удалить или изменить сохраненные учетные данные. В этом магазине ваши данные защищены вашим логином Windows и могут сохраняться в течение нескольких проведение сессий. The менеджер помощник, включенный в Git для Windows 2.x заменил предыдущее wincred помощник, который был добавлен в Git для Windows 1.8.1.1. Подобный помощник называется магазине приложений также доступен онлайн и использовался с GitExtensions, поскольку он предлагает более управляемый интерфейс GUI. The менеджер helper предлагает тот же интерфейс GUI, что и магазине приложений.
выписка из руководство по Windows подробно Панель хранилища учетных данных Windows:
откройте учетные записи пользователей, щелкнув изображение кнопки Пуск кнопки Пуск, щелкнув Панель управления, щелкнув учетные записи пользователей и безопасность семьи (или щелкнув учетные записи пользователей, если вы подключены к сетевому домену), а затем щелкнув учетные записи пользователей. В левой области щелкните Управление учетными данными.
Если эта проблема возникает на компьютере под управлением Windows, выполните следующие действия.
- перейти к менеджеру учетных данных
- перейти к учетным данным Windows
- удалить записи в разделе Общие учетные данные
- повторите попытку подключения. На этот раз он должен запросить у вас правильное имя пользователя и пароль.
и затем вам будет предложено снова ввести свои учетные данные.
предупреждение
использование этого помощника сохранит ваши пароли незашифрованными на диске
я столкнулся с той же проблемой, что и ОП. Он принимал мои старые учетные данные Git, хранящиеся где-то в системе, и я хотел использовать Git с моими новыми учетными данными, поэтому я запустил команду
всякий раз, когда я выполнял git push это было мое старое имя пользователя, которое я установил давно, и я хотел использовать новую учетную запись GitHub для внесения изменений. Позже я обнаружил, что мои старые учетные данные учетной записи GitHub хранятся под Панель Управления → Учетные Записи Пользователей → Диспетчер Учетных Данных → Управление Учетными Данными Windows.
Я просто удалил эти учетные данные и когда я выполнил git push он попросил у меня мои учетные данные GitHub, и это сработало как шарм.
попробуйте использовать следующую команду.
здесь вы можете получить различные опции для управления учетными данными (проверьте экран ниже).
или вы даже можете напрямую попробовать этот команду:
это снова начнет запрашивать пароли для каждого запроса взаимодействия с сервером.
в моем случае Git использует Windows для хранения учетных данных.
все, что вам нужно сделать, это удалить сохраненные учетные данные, хранящиеся в вашей учетной записи Windows:
Я нашел то, что работал для меня. Когда я писал свой комментарий к OP, мне не удалось проверить файл конфигурации системы:
линии. Я снимаю его с
и теперь учетные данные будут забыты.
покажет credential.helper = manager (это на машине windows)
чтобы отключить это кэшированное имя пользователя / пароль для текущей локальной папки git, просто введите
таким образом, git будет запрашивать пароль каждый раз, игнорируя то, что сохраняется внутри "менеджер".
необходимо войти в систему с соответствующим github username и password
чтобы очистить имя пользователя и пароль в windows
Панель Управления\Учетные Записи Пользователей\Диспетчер Учетных Данных
редактировать учетные данные windows
удалите существующего пользователя и теперь перейдите в командную строку напишите команду push, она показывает всплывающее окно github для ввода username / email и password .
теперь мы можем нажать кода после переключение пользователей.
- cmdkey /list выводит список всех сохраненных учетных данных.
- cmdkey /delete:Target удаляет учетные данные с именем" Target".
(*под "wincred" я имею в виду git config --global credential.helper wincred )
удалите эту строку из вашей .файл gitconfig, расположенный в текущей папке пользователя Windows:
это сработало для меня, и теперь, когда я нажимаю на пульт, он снова запрашивает мой пароль.
Вы можете удалить строку credential.helper=!github --credentials из файла C:\Program Files\Git\mingw64\etc\gitconfig для удаления учетных данных для git
в случае диспетчер учетных данных Git для Windows используется (что обычно делают текущие версии):
Это добавлена середина 2016. Чтобы проверить, используется ли диспетчер учетных данных:
в моем случае я не смог найти учетные данные, сохраненные в Диспетчере учетных данных Windows (Windows 7).
я смог сбросить свои учетные данные, выполнив
честно говоря, это был град Марии, чтобы увидеть, если это уничтожит мои учетные данные, и это действительно сработало.
из моего каталога проектов или есть способ сделать это как команда Git?
я использовал этот проект, чтобы узнать Git и понять, что я сделал некоторые ошибки в начале проекта с перемещенными, переименованными и удаленными файлами. Я хотел бы удалить все отслеживание Git и начать все заново с git init .
все данные, используемые Git для информации, хранятся в .git/ , поэтому удаление должно работать нормально. Конечно, убедитесь, что ваша рабочая копия находится именно в том состоянии, в котором вы ее хотите, потому что все остальное будет потеряно. .git папка скрыта, поэтому убедитесь, что вы включите .
оттуда, вы можете запустить git init для создания нового репозитория.
rm -rf .git должно хватить. Это уничтожит всю информацию, связанную с Git.
это не умный выбор, чтобы переместить все .git* вручную, особенно когда эти .git файлы скрыты в подпапках, как и мое условие: когда я установил Skeleton Zend 2 от composer+git, существует довольно много .git файлы, созданные в папках и подпапках.
пробовал rm -rf .git на моей оболочке GitHub, но оболочка не может распознать параметр -rf of Remove-Item.
в дополнение к ниже шаги, вы можете также удалить .файла.gitignore
рассмотрим удаление .gitignore файл, если вы хотите удалить любые следы Git в вашем проекте.
* * подумайте об уходе .файл gitignore, если вы когда-нибудь захотите реинкорпорировать Git в проект.
некоторые фреймворки могут автоматически производить .файл gitignore, поэтому вы можете оставить он.
откройте терминал и перейдите в каталог вашего проекта, т. е. - cd path_to_your_project .
выполните следующую команду:
это удалит отслеживание Git и метаданные из вашего проекта. Если вы хотите сохранить метаданные (например .gitignore and .gitkeep), вы можете удалить только отслеживание, запустив rm -rf .git .
С помощью командной строки
на rmdir или rd команда не будет удалять / удалять любые скрытые файлы или папки в указанном каталоге, поэтому вы должны использовать del команда, чтобы убедиться, что все файлы удалены из .
открыть командную строку
выберите Start затем Run или ударить и r в то же время.
перейдите в каталог проекта, т. е. - cd path_to_your_project
первая команда удаляет все файлы и папки внутри на . Второй удаляет .git саму папку.
нет командной строки
Откройте проводник и перейдите в проект
Показывать скрытые файлы и папки - см. в этой статье для визуального руководства
в меню Вид на панели инструментов, выберите Options
на найти Hidden files and Folders под Files and Folders список и выберите Show hidden files and folders
закройте меню опций, и вы должны увидеть все скрытые папки и файлы, включая .
удалить Удалить .gitignore file * * (см. Примечание в верхней части этого ответа)
У меня есть 2 каталога в моем хранилище GitHub. Я хотел бы удалить один из них. Как я могу сделать это без удаления и повторного создания всего хранилища?
@Iarsmans: да, 6 файлов. Оба каталога идентичны, за исключением одного в верхнем регистре, другого в нижнем регистре.Вы можете оформить «мастер» с обоими каталогами;
Как уже упоминалось в комментариях, обычно вы хотите удалить этот каталог из git, но не удалять его полностью из файловой системы (локальной).
В этом случае используйте:
У меня была точно такая же ситуация. Когда я пытался git rm -r myFolder это работает, но также удалил все из каталога «MyFolder». Пришлось вернуть все в папку «MyFolder», а затем зафиксировать. @Justin Чтобы удалить только из git и оставить файловую систему как есть, используйте git rm -r --cached myFolder @ user2441441 У меня была эта ошибка, когда я пытался удалить папку / файл, который вообще не был добавлен в git rm -r --cached directory/ только удаляет из git отслеживается, но структура хранилища остается.Чтобы удалить папку / каталог только из репозитория git, а не из локального, попробуйте 3 простые команды.
Шаги по удалению каталога
Действия по игнорированию этой папки в следующих коммитах
Чтобы игнорировать эту папку из следующих коммитов, создайте в корневом каталоге один файл с именем .gitignore и поместите в него имя этой папки. Вы можете положить столько, сколько хотите
Файл .gitignore будет выглядеть так
Если по какой-то причине сказанное karmakaze не работает, вы можете попробовать удалить каталог, который вы хотите использовать, или с помощью браузера файловой системы (например, в Windows File Explorer). После удаления каталога введите команду:
git add -A
и затем,
git commit -m 'deleting directory'
и затем
git push origin master .
Вы можете попробовать это: git rm -rf <directory_name>
Это заставит удалить каталог.
Если вы удалите файлы в каталоге ( git rm как объясняют другие ответы), то каталог больше не существует, если речь идет о git. Вы не можете зафиксировать пустой каталог или удалить его.
Это не похоже на Subversion, где вы должны явно svn rm emptyfolder/ , и, кстати, почему man страница для git описывает себя как «глупый трекер контента»
Читайте также: