Я удалил некоторые файлы и показывает состояние git, как показано ниже.
Я совершил и подтолкнул.
GitHub по-прежнему показывает удаленные файлы в хранилище. Как я могу удалить файлы в репозитории GitHub?
# On branch master
# Changes not staged for commit:
# (use "git add/rm <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# deleted: modules/welcome/language/english/kaimonokago_lang.php
# deleted: modules/welcome/language/french/kaimonokago_lang.php
# deleted: modules/welcome/language/german/kaimonokago_lang.php
# deleted: modules/welcome/language/norwegian/kaimonokago_lang.php
Если я использую git rm
, это дает следующее.
usage: git rm [options] [--] <file>...
-n, --dry-run dry run
-q, --quiet do not list removed files
--cached only remove from the index
-f, --force override the up-to-date check
-r allow recursive removal
--ignore-unmatch exit with a zero status even if nothing matched
Ответы:
обновляет все ваши изменения
источник
Будьте очень осторожны
git rm .
; это может удалить больше, чем вы хотите. Конечно, вы можете выздороветь, но проще не делать этого.Простейшим было бы:
Вы не можете использовать подстановочные знаки оболочки, потому что файлы не существуют, но вы можете использовать (по крайней мере, в Bash):
Или подумайте:
Это принимает выходные данные
git status
, ничего не печатает по умолчанию (sed -n
), но в строках, которые начинаются# deleted:
, он избавляется от#
иdeleted:
и печатает то, что осталось;xargs
собирает аргументы и предоставляет ихgit rm
команде. Это работает для любого количества файлов независимо от сходства (или различий) в именах.источник
git diff --diff-filter=D --name-only -z | xargs -0 git rm
это более надежный подход, чем попытка анализа,git status
ориентированная на пользователя и не гарантирующая стабильности в будущих версиях.git diff
(чего у меня не было, раньше у меня не было необходимости). Спасибо!git ls-files --deleted | xargs git rm
сделал трюк для меня.Другая версия ответа ByScripts
Это только удалит удаленные файлы из GIT.
Это также может быть использовано для добавления ТОЛЬКО измененных файлов.
Эти команды также работают на gitbash для Windows.
источник
git ls-files
со статусом удален или изменен так полезно'git add --update (or -u)'
без аргумента пути из подкаталога дерева изменится в Git 2.0 и больше не должно использоваться. Чтобы добавить содержимое для всего дерева, выполните:git add --update :/
(или git add -u: /) Чтобы ограничить команду текущим каталогом, выполните:git add --update .
(или git add -u.) В текущей версии Git команда ограничена командой текущий каталогsrc/my spaced directory/myfile
. Это может быть обработано индивидуально, но как это можно сделать, используя команды в этом ответе?Обновите все сделанные вами изменения:
Удаленные файлы должны измениться с неустановленной (обычно красного цвета) на поэтапной (зеленой). Затем подтвердите удаление удаленных файлов:
источник
Лучшее решение, если вы не заботитесь о размещении измененных файлов, это использовать,
git add -u
как сказано в mshameers и / или pb2q .Если вы просто хотите удалить удаленные файлы, но не создавать какие-либо измененные, я думаю, вам следует использовать
ls-files
аргумент с--deleted
опцией (не нужно использовать регулярное выражение или другие сложные аргументы / опции):источник
git add -A
решает эту проблему ... на всякий случай, если кто-то захочет узнать в будущем. проверьте ответ нижеДа,
git rm <filename>
установит удаленное состояние файла, где<filename>
может быть шаблон глобуса:Затем вы можете совершить.
git commit -a
сделаю это за один раз, если хочешь.Вы также можете использовать
git add -u
для внесения всех изменений, включая все удаленные файлы, а затем зафиксировать.источник
git add -u
это именно то, что мы ищем - если вы делаете много удалений, то хотите зафиксировать все удаления, что представляется наиболее простым и наиболее «стандартным» способом (то есть без учета глобальных падежей и сложных разборов оболочки в xargs). Есть ли причина, по которой мы не хотим использовать это, кроме того факта, что он добавляет все изменения сразу?Когда у меня есть много файлов, которые я удалил и которые не были подготовлены для фиксации, вы можете объединить
git rm
их в одно шоу с помощью:Как сказал ответчик, будьте осторожны
git rm
.источник
Попробуй это:
источник
Ты можешь использовать
После того, как вы удалили файлы вручную.
источник
Вы можете создать скрипт оболочки, который удалит все ваши файлы при запуске:
Созданный скрипт
remove.sh
содержит полный списокgit rm
команд.источник
источник
источник
Если вы хотите удалить их все, используя «git rm». Вот что я делаю:
Этот запрос перечисляет все файлы, которые были удалены, и удаляет их из вашего репозитория git. Надеюсь, поможет.
источник
Встроенная функция очистки также может быть полезна ...
источник
У меня была проблема с призрачными файлами, появляющимися в моем репо после того, как я удалил их и наткнулся на эту аккуратную команду!
git add -A
По сути это то же самое, что
git add -a
и вgit add -u
сочетании, но это чувствительно к регистру. Я получил его по этой замечательной ссылке (теперь эта ссылка указывает на версию на archive.org, поскольку по состоянию на июнь 2016 года оригинал преобразован в страницу со спамом и фишингом)источник
Вот как можно обнаружить удаленные файлы и выполнить их удаление как часть следующего коммита. Все решения в этой теме имеют разные достоинства. Это решение ниже конкретно касается проблемы имен файлов с пробелами в них.
убедитесь, что вы проверили это с помощью опции --dry-run в git, прежде чем запускать ее следующим образом:
объяснение:
Это печатает что-то вроде D "/ путь к папке / путь к файлу", что происходит только тогда, когда в именах путей есть пробелы
сопоставлять только строки, начинающиеся с буквы "D"
удалить "D" из передней части каждой строки
удалить цитаты, если есть
определить переменные имени файла как {} запустить имя файла в git rm, заключенном в одинарные кавычки, чтобы убедиться, что он поддерживает имена файлов с пробелами.
источник