Есть ли способ удалить однажды отслеживаемые файлы в моем (удаленном) git репозитории, которых нет в моей локальной версии? - PullRequest
0 голосов
/ 07 мая 2020

У меня проблема с моим git репо ... (много времени go?) Я удалил некоторые файлы в моем git репо, и я больше не уверен, что именно я сделал: я использовал "git rm ..." или нет? Недавно я снова пришел работать над проектом, содержащимся в репозитории, и первое, что я хотел бы сделать, это «привести в порядок» репозиторий. Однако проблема теперь в том, что git status показывает мне, что есть изменения, не поставленные для фиксации, например:

deleted: exampleDir/exampleFile

этого файла нет в локальной версии git репо больше, и это один из тех файлов, которые я долгое время удалял go. А таких очень много. Я попытался выполнить эти изменения для фиксации, используя разные команды, например: git add * git add exampleDir/* git rm exampleDir/exampleFile git rm --cached exampleDir git rm --cached -r exampleDir/* git rm --cached -r exampleDir/\*

Несомненно, ни одна из них не сработала: команды git add вообще ничего не сделали, в то время как команды git rm сказали мне fatal: pathspec 'exampleDir/exampleFile' did not match any files

Как я могу безопасно удалить те, которые когда-то отслеживались и которые больше не присутствуют в моих файлах локального репозитория? Или, в качестве альтернативы, указать git, чтобы он использовал мой текущий локальный репозиторий и для удаленного? Я надеюсь, что это не так уж сложно понять, и буду очень признателен за помощь ...

1 Ответ

0 голосов
/ 07 мая 2020

Я удалил некоторые файлы в своем git репозитории

Проблема, похоже, в том, что вы этого не сделали.

Если git status говорит deleted: exampleDir/exampleFile as not staged for commit, это говорит вам, что exampleDir/exampleFile находится в индексе, а git замечает, что его также нет в дерево работы .

(То есть его нет в файлах, которые вы видите . Это не репо. Это просто файлы, которые вы можете видеть. Индекс тоже не является репо, если до этого дойдет. Этот файл в той или иной форме, скорее всего, будет в репо, и всегда будет в Репо. Вот что такое репо: коллекция всех снимков [коммитов], которые вы когда-либо делали, навсегда.)

Итак:

  1. Say git rm --cached exampleDir/exampleFile и git удалит этот файл из индекса.

  2. Вы будете знать, что это сработало, потому что, когда вы снова скажете git status, git больше не будет упоминать этот файл .

  3. После того, как вы сделаете это для всех файлов, которые хотите удалить из индекса, git commit, чтобы следующая фиксация не содержала эти файлы, как и индекс (сейчас) - нет, а ваше дерево работы - нет, и все будет соответствовать вашему желанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...