Ответы:
Если вы просто используете rm, вам нужно будет следить за этим git add <fileRemoved>. git rmделает это за один шаг.
Вы также можете использовать git rm --cachedкоманду, которая удалит файл из индекса (поместит его для удаления при следующем коммите), но сохранит вашу копию в локальной файловой системе.
rm(вместо git rm) и удалил много файлов, используя его, и теперь не хочу gitотслеживать их. Есть ли способ отменить изменения? Я хочу gitнаступить на то, rmчто удалено, так как я не использовал git rmв первую очередь.
Удаление файлов с помощью использования rmне является проблемой само по себе, но если вы затем захотите зафиксировать, что файл был удален, вам придется все git rmравно сделать , так что вы могли бы сделать это таким же образом.
Кроме того, в зависимости от вашей оболочки, git rmпосле удаления файла, вы не получите завершение табуляции, поэтому вам придется прописать путь самостоятельно, тогда как если вы, git rmпока файл еще существует, завершение табуляции будет работать как обычно.
Удалите файлы из индекса или из рабочего дерева и индекса. git rm не удалит файл только из вашего рабочего каталога.
Вот как вы можете удалить файл с помощью, rm -fа затем удалить его из индекса с помощьюgit rm
$ rm -f index.html
$ git status -s
D index.html
$ git rm index.html
rm 'index.html'
$ git status -s
D index.html
Однако вы можете сделать это все сразу git rm
$ git status -s
$ git rm index.html
rm 'index.html'
$ ls
lib vendor
$ git status -s
D index.html
В добавление к ответу Энди есть дополнительная утилита для git rm:
Безопасность : когда git rmвместо этого rmGit блокирует удаление, если есть расхождение между HEADверсией файла и промежуточным индексом или версией рабочего дерева. Этот блок является механизмом безопасности для предотвращения удаления текущих изменений.
Защита : git rm --dry-run. Эта опция является защитой, которая выполнит git rmкоманду, но не удалит файлы. Вместо этого он выведет, какие файлы он бы удалил.
git reset --hardа затем выполнить проверку мастера, чтобы выйти из оторванного состояния головы, потому что я знал, что у меня не было никаких незафиксированных изменений. Если вы не зафиксировали свои изменения, возможно, вы захотите сделать git stash, но я относительно новичок в git, поэтому не знаю точной команды. Если вы приехали сюда в или после 2014 года, я надеюсь, что этот ответ был вам полезен.