git: не может отправить изменения после использования filter-branch для удаления файла - PullRequest
0 голосов
/ 24 ноября 2011

У меня есть приложение на heroku, и, к сожалению, в нашем репозитории git были файлы, которые не должны быть в нем зафиксированы с самого начала.

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

git filter-branch --index-filter 'git rm --cached --ignore-unmatch -r foldername' HEAD

Но я не могу отправить эти изменения на сервер, я вынужден вытащить их раньше, поэтому теряю свои изменения через фильтр-ветвь.

Как я могу отправить эти изменения на сервер, чтобы у нас больше не возникало проблем с конфликтами?

Заранее спасибо.

1 Ответ

1 голос
/ 24 ноября 2011

Запуск git push --force не заставит вас тянуть, то есть пропустит проверку на общего предка. Однако сервер может запретить использование этой опции, по крайней мере, с помощью хука.

Примечание о переписывании проталкиваемой истории в целом: все в порядке, если вы уверены, что никто еще не клонировал хранилище. В противном случае переписывание истории - это большое «нет-нет», так как это вызовет много проблем у людей, которые работают в своих филиалах. (Исключением из этого может быть ветвь development / pu, как, например, использует официальный репозиторий git. В их настройке ветка будет регулярно сбрасываться в master, обычно после нового выпуска или аналогичного, и это действие хорошо документировано, поэтому оно не должно никого не удивишь.)

...