Как удалить файл из репозитория github

Обновлено: 03.07.2024

Команда "rm" поможет вам удалить файлы из репозитория Git. Он позволяет удалить файл не только из репозитория, но и, при желании, из файловой системы.

Удалить файл из файловой системы, конечно, можно легко сделать во многих других приложениях, например. текстовый редактор, IDE или файловый браузер. Но удаление файла из фактического репозитория Git — это отдельная задача, для которой и был создан git rm.

Важные параметры

Имя файла (или нескольких файлов), который вы хотите удалить. Присвоение имени файлу, который вы хотите удалить, может быть таким же простым, как указание имени файла/пути к одному файлу. Но вы также можете указать несколько имен файлов (разделенных пробелами) или даже подстановочный знак (например, test.* ).

--кэшировано

Удаляет файл только из репозитория Git, но не из файловой системы. По умолчанию команда git rm удаляет файлы как из репозитория Git, так и из файловой системы. При использовании флага --cached фактический файл на диске не будет удален.

Рекурсивно удаляет папки. Когда указан путь к каталогу, флаг -r позволяет Git удалить эту папку вместе со всем ее содержимым.

--пробный запуск

На самом деле никакие файлы не удаляются. С этой опцией (или ее сокращенным обозначением -n) вы увидите только те файлы, которые Git должен удалить, но на самом деле файлы не удаляются.

Удаление файлов в Tower

Если вы используете клиент Tower Git, удалить файлы очень просто: выбрав опцию «Переместить в корзину», Tower автоматически пометит файл как «удаленный» в Git. А если вы передумаете, вы можете просто нажать CMD+Z, чтобы восстановить файл!

Примеры использования

Чтобы удалить файл как из репозитория Git , так и из файловой системы, вы можете использовать git rm без каких-либо параметров (кроме имени файла, конечно):

Если вы хотите удалить файл только из репозитория, но оставить его в файловой системе, вы можете добавить флаг --cached:

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

Подробнее

  • Полное описание команды см. в документации Git.
  • Часто задаваемые вопросы о Git и управлении версиями

Получите нашу популярную памятку по Git бесплатно!

Самые важные команды вы найдете на лицевой стороне, а полезные советы — на обратной. Более 100 000 разработчиков скачали его, чтобы сделать Git немного проще.

О нас

Как создатели Tower, лучшего клиента Git для Mac и Windows, мы помогаем более чем 100 000 пользователей в таких компаниях, как Apple, Google, Amazon, Twitter и Ebay, получить максимальную отдачу от Git.

Как и в случае с Tower, наша миссия с этой платформой – помочь людям стать лучшими профессионалами.

Вот почему мы бесплатно предоставляем наши руководства, видеоролики и памятки (об управлении версиями в Git и многих других темах).

© Tower, 2010-2022. Упомянутые названия продуктов и логотипы являются собственностью соответствующих владельцев.

Вы можете удалить отдельный файл в своем репозитории на GitHub AE.

Люди с правами на запись могут удалять файлы в репозитории.

Об удалении файла

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

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

Если удаленный вами файл содержит конфиденциальные данные, эти данные по-прежнему будут доступны в истории Git репозитория. Чтобы полностью удалить файл из GitHub AE, вы должны удалить файл из истории своего репозитория. Дополнительные сведения см. в разделе «Удаление конфиденциальных данных из репозитория».

Удаление файла

Перейдите к файлу в вашем репозитории, который вы хотите удалить.

В верхней части файла нажмите

Сообщение фиксации для вашего изменения

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

Зафиксировать ветку опции

Под полями сообщения о коммите решите, следует ли добавить вашу фиксацию в текущую ветку или в новую ветку.Если ваша текущая ветка является веткой по умолчанию, вы должны создать новую ветку для своего коммита, а затем создать запрос на извлечение. Дополнительные сведения см. в разделе «Создание нового запроса на вытягивание».

Кнопка предложить изменение файла

Нажмите «Предложить изменение файла».

Помогите нам сделать эти документы лучше!

Все документы GitHub имеют открытый исходный код. Видите что-то неправильное или непонятное? Отправьте запрос на вытягивание.

Я добавил файл с именем "file1.txt" в репозиторий Git. После этого я зафиксировал его, добавил пару каталогов с именами dir1 и dir2 и закоммитил их в репозиторий Git.

Теперь в текущем репозитории есть файлы "file1.txt", dir1 и dir2. Как я могу удалить «file1.txt», не затрагивая другие файлы, такие как dir1 и dir2?



git rm — правильный ответ, но помните, что файл все равно останется в истории. Если вы хотите удалить файл из-за того, что он содержал конфиденциальную информацию, вам нужно будет сделать что-то более радикальное. (Изменение истории, особенно для контента, который вы уже отправили, является решительным действием, и его следует по возможности избегать.)

Примечание: на GitHub теперь вы можете удалить файл напрямую из веб-интерфейса (даже не клонируя репозиторий). Смотрите мой ответ ниже.

24 ответа 24

Если вы хотите удалить файл из репозитория Git и файловой системы, используйте:

Но если вы хотите удалить файл только из репозитория Git, а не из файловой системы, используйте:

И отправить изменения в удаленное хранилище


@SaulOrtega: Верно. Чтобы удалить файл из предыдущих коммитов (изменив предыдущую историю), см. страницу справки GitHub, посвященную удалению конфиденциальных данных.

Обратите внимание, что при этом файл также будет удален локально. Если вы хотите удалить его только из репо, выполните: git rm --cached file1.txt

Стоит отметить, что если этот файл содержит конфиденциальную информацию (например, учетные данные), вам следует немедленно изменить эти учетные данные. Цитируя GitHub: «После того, как вы отправили фиксацию на GitHub, вы должны рассматривать любые содержащиеся в ней данные как скомпрометированные. Если вы зафиксировали пароль, измените его! Если вы зафиксировали ключ, сгенерируйте новый».

git rm file.txt удаляет файл из репозитория, но также удаляет его из локальной файловой системы.

Чтобы удалить файл из репозитория и не удалять его из локальной файловой системы, используйте:
git rm --cached file.txt

В приведенной ниже точной ситуации я использую git для управления версиями веб-сайта моей компании, но каталог «mickey» был папкой tmp для обмена личным содержимым с разработчиком САПР. Когда ему понадобились ОГРОМНЫЕ файлы, я создал частную, несвязанную директорию и отправил туда файлы по ftpd, чтобы он мог получить их через браузер. Забыв, что сделал это, я позже выполнил git add -A из базового каталога веб-сайта. Впоследствии статус git показал, что новые файлы нуждаются в фиксации. Теперь мне нужно было удалить их из системы отслеживания и контроля версий git.

Приведенный ниже пример вывода основан на том, что только что произошло со мной, когда я непреднамеренно удалил файл .003. К счастью, меня не волнует, что случилось с локальной копией в .003 , но некоторые из других измененных в настоящее время файлов были обновлениями, которые я только что сделал на веб-сайте, и было бы эпично, если бы они были удалены из локальной файловой системы! "Локальная файловая система" = работающий веб-сайт (не лучшая практика, но реальность).

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


Однако нельзя удалить сразу несколько файлов и папки в веб-интерфейсе GitHub.

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

Как удалить файлы и папки в локальном репозитории Git

Если вы используете Git в настольном графическом интерфейсе, таком как клиент Tower Git, вы можете просто выбрать один или несколько элементов — как файлов, так и папок — и удалить их:

Если вы используете Git в командной строке, вы можете использовать следующие команды:

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

Шпаргалка Git

Не нужно запоминать все эти команды и параметры: получите нашу популярную «Шпаргалку по Git» — бесплатно!

Подробнее

  • Посмотрите наш обзор команд на git rm
  • Часто задаваемые вопросы о Git и управлении версиями

Получите нашу популярную памятку по Git бесплатно!

Самые важные команды вы найдете на лицевой стороне, а полезные советы — на обратной. Более 100 000 разработчиков скачали его, чтобы сделать Git немного проще.

О нас

Как создатели Tower, лучшего клиента Git для Mac и Windows, мы помогаем более чем 100 000 пользователей в таких компаниях, как Apple, Google, Amazon, Twitter и Ebay, получить максимальную отдачу от Git.

Как и в случае с Tower, наша миссия с этой платформой – помочь людям стать лучшими профессионалами.

Вот почему мы бесплатно предоставляем наши руководства, видеоролики и памятки (об управлении версиями в Git и многих других темах).

© Tower, 2010-2022. Упомянутые названия продуктов и логотипы являются собственностью соответствующих владельцев.

Читайте также: