Удалить файл из хранилища под Git - PullRequest
1 голос
/ 01 марта 2012

Я хочу удалить несколько файлов из репозитория git. Мой репозиторий имеет несколько веток, и я делаю следующее:

git rm --cached filename 
git commit -am "deleted filename"
git checkout anotherbranch

Я получаю:

error: The following untracked working tree files would be overwritten 
by checkout:
    output/filename

Please move or remove them before you can switch branches.
Aborting

Так вот вопрос, как удалить файл (случайно добавленный) из репо? Я НЕ хочу отслеживать имя файла по git. Я планирую добавить это имя в .gitignore.

С уважением,

Peter

Ответы [ 4 ]

2 голосов
/ 01 марта 2012

Я обычно удаляю эти файлы нормально (не через команды git).Затем, после того как я удалил все файлы, я делаю:

git add.-A

git commit -a -m "удалить файлы"

0 голосов
/ 01 марта 2012

На мой взгляд, лучше всего изменить ваш коммит:

git commit --amend

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

0 голосов
/ 01 марта 2012

Чтобы окончательно удалить файл из вашего репозитория, вы должны передать параметр -f:

git rm -f filename

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

0 голосов
/ 01 марта 2012

Когда вы делаете

git rm --cached

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

Вы хотите переключиться на ветку, в которой все еще есть эти файлы, и git не позволит вам переключиться на другую ветку, если извлечение этой ветки повлияет на ваши локальные изменения (отслеживаемые или измененные файлы) *

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