2015-07-14 4 views
0

Пытается удалить файл локально, сохраняя файл на репо. Проблема в том, что я не могу отбросить удаленный контент. Я пробовал использовать git rm. Но использование git rm также удалит копию на репо, которая не является тем, что я хочу. Единственное решение, о котором я могу думать, это поместить путь в .gitignore. Существуют ли другие решения?git удалять локальные файлы, но хранить файлы в репо

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) 
    (commit or discard the untracked or modified content in submodules) 

    deleted: stuff/code 
+0

Что случилось с установкой пути в '.gitignore' и удалением его с помощью обычных инструментов вашей операционной системы? Это похоже на то, что вы должны делать в этом случае. –

+0

@ Two-BitAlchemist Это не сработает. Вы не можете добавить файл в '.gitignore', если он уже находится в репо, который ничего не сделает. – meagar

+0

@meagar Простите, прочитав понимание. –

ответ

3

Это не очень разумная вещь, или рабочий процесс Git предназначен для поддержки.

Если вы хотите удалить локальный файл, но не повлиять на Git, вы не сможете использовать Git. Просто используйте rm <file>. Этот недостающий файл навсегда появится как неустановленное изменение Git.

Если вы хотите удалить файл и предотвратить Git из постоянно показывая его как unstaged изменения, вы можете использовать

git update-index --assume-unchanged <file> 

Но опять же, вы действительно не должны делать это.

+0

Не уверен, что я делаю это правильно. Я использовал 'git update-index -assume-unchanged ', а затем удалил свой файл. Но он по-прежнему обнаруживался как удаленный из-за изменений, не поставленных для commit. – LuckyGuess

+0

@ Z-1 Удалите файл, затем выполните команду –

+0

@ Two-BitAlchemist То же самое. Приказ не имеет значения ... – LuckyGuess