Подтвердить что ты не робот

Легкий способ очистки неустановленных удаленных файлов в Git

Часто я перемещаю файлы в репозиторий git, используя мою IDE или через командную строку (не через git mv).

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

# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   modified:   test.html
#
# 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:    css/bootstrap.css
#   deleted:    css/bootstrap.min.css
#   deleted:    img/glyphicons-halflings-white.png
#   deleted:    img/glyphicons-halflings.png
#   deleted:    js/bootstrap.js
#   deleted:    js/bootstrap.min.js

Я обычно выберу все удаленные файлы и отредактирую их в текстовом редакторе, например:

git rm  css/bootstrap.css
git rm  css/bootstrap.min.css
git rm  img/glyphicons-halflings-white.png
git rm  img/glyphicons-halflings.png
git rm  js/bootstrap.js
git rm  js/bootstrap.min.js

Который я затем возвращаю обратно в консоль.

Есть ли способ сделать это без необходимости копировать/вставлять?

4b9b3361

Ответ 1

Если я правильно понял ваш вопрос, вы хотите зафиксировать свои удаления... то есть вы хотите выполнить эквивалент git rm для всех файлов, которые отображаются как удаленные. git clean не будет делать этого.

Вы можете запустить git add -u:

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

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

# 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:    file2
#   deleted:    file3
#   deleted:    file4
#   deleted:    file5

Запуск git add -u приведет вас к следующему:

# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   deleted:    file2
#   deleted:    file3
#   deleted:    file4
#   deleted:    file5

И фиксация на этом этапе будет правильной.

Ответ 2

Я обычно делаю фиксацию файлов, в которые я вносил изменения.

Если бы я удалил избыточные файлы, я бы сделал следующее после этого:

git commit -a -m 'deleted redundant files'

Ответ 3

git add -u обновит состояние отслеживаемых файлов.