2015-02-18 2 views
1

Стандартным ответом, указанным в тексте, является «использовать фильтр-ветвь».Как удалить файл из истории git без внесения изменений?

Отлично. За исключением ... что не удается:

«Невозможно переписать ветви: у вас есть неустановленные изменения».

Я пытаюсь un-**** git, но git действительно не хочет помогать здесь :(. Я не могу совершать изменения в некоторых файлах здесь долгое время Репозиторий достаточно велик, что я не могу повторить его второй раз на этой машине (благодаря стремлению Git по вытаскиванию массивных папок .git для долгоживущего проекта).

Есть ли способ просто " удалить файл X/file-pattern Y ", не имея необходимость сначала перенести все? В принципе, коммитирование - это несвязанный процесс (на уровне пользователя), поэтому я надеюсь, что git не объединит их внутри, и есть выход из этот беспорядок.

+0

Я не понимаю точной проблемы, но, я думаю, вы знаете '--depth' для клонирования и' git stash'? – Jasper

ответ

1

Вы можете сделать stash свои изменения, которые позволят вам выполнять операции, такие как фильтрация ветвей, а затем повторно применять спрятанные изменения, когда вы закончите (хотя после этого у вас может быть много конфликтов, которые вам придется разобраться).

Я бы предложил внести изменения. Есть ли причина, по которой вы делаете тонны изменений, не совершая их?

+0

«предложил бы совершить», если бы это было так просто, я бы сделал это. – Adam

+0

Если stashing работает, это может быть ОК, хотя я обеспокоен тем, что внесение изменений здесь может также использовать много дискового пространства (проект .git уже является гигабайтом). Поскольку это требовало «совершенных» изменений, я предполагал, что удержание не будет достаточно хорошим. – Adam

+0

У меня нет времени, чтобы проверить это - прошло уже месяц, поэтому я буду отмечать это как принятый ответ, поскольку он кажется правильным, но YMMV. – Adam

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