2009-08-13 3 views
299

Команда удаляет файл в моей системе. Я имел в виду, что он удаляет только файл из Git-репозитория.Как мне удалить файл без его удаления с диска?

Как удалить файл из репозитория Git, не удаляя файл в моей системе?

+0

удалить его из предыдущих коммитов или из последнего? –

+0

@Nick D. Вопрос, пусть он откроется. –

+0

@Masi, если вы хотите удалить его из предыдущих коммитов, он будет немного более сложным - обязательно спросите об этом специально, если это то, что вы хотите – bdonlan

ответ

557

По данным "мерзавца помощью п.м.",

git rm --cached file 

должны делать то, что вы хотите.

+7

Я новичок в Git, но я сделал это несколько раз, а затем, когда кто-то вытаскивает из репозитория, * их * локальный файл удаляется. Продолжайте поиск, чтобы узнать, не удастся ли удалить следующий разработчик, который делает попытку. – Terry

+2

@Terry, см. Http://stackoverflow.com/questions/2604625/git-how-to-remove-file-from-index-without-deleting-files-from-any-repository – AlcubierreDrive

+14

Меня смущает то, что man-страница для git-rm говорит, что она не удаляет файлы из вашего рабочего каталога. Но то, что я вижу, когда я не использую --cached, - это то, что файл исправлен. – zznq

22

Я пробовал экспериментировать с ответами. Мой личный вывод вышел быть:

git rm -r --cached . 

А потом

git add . 

Это, казалось, сделать мой рабочий каталог красивым и чистым. Вы можете поместить свое имя файла вместо точки.

+7

+1 '-r': Разрешить рекурсивное удаление при указании имени ведущего каталога. –

+1

-r не требуется, если вы делаете * .suffix (очень тревожно, чтобы обнаружить это поведение нелегко) – szeitlin

Смежные вопросы