MyTetra Share
Делитесь знаниями!
Как удалить файл в Git-репозитарии с изменением истории
Время создания: 05.07.2022 17:09
Текстовые метки: git, файл, удалить, изменение, история
Раздел: Компьютер - Программирование - Системы контроля версий (VCS) - Git
Запись: xintrea/mytetra_syncro/master/base/1657030177kgwf89l1ru/text.html на raw.github.com

Удаление файла из каждого коммита

Такое случается довольно часто. Кто-нибудь случайно зафиксировал огромный бинарный файл, неосмотрительно выполнив git add ., и вы хотите отовсюду его удалить. Возможно, вы случайно зафиксировали файл, содержащий пароль, а теперь хотите сделать ваш проект общедоступным. В общем, утилиту filter-branch вы, вероятно, захотите использовать, чтобы привести к нужному виду всю вашу историю. Для удаления файла passwords.txt из всей вашей истории вы можете использовать опцию --tree-filter команды filter-branch:


$ git filter-branch --tree-filter 'rm -f passwords.txt' HEAD


Rewrite 6b9b3cf04e7c5686a9cb838c3f36a8cb6a0fc2bd (21/21)

Ref 'refs/heads/master' was rewritten


Опция --tree-filter выполняет указанную команду после переключения на каждый коммит и затем повторно фиксирует результаты. В данном примере, вы удаляете файл passwords.txt из каждого снимка вне зависимости от того, существует он или нет.


Еще пример: если вы хотите удалить все случайно зафиксированные резервные копии файлов, созданные текстовым редактором (которые в конце имени имеют символ ~), то вы можете выполнить нечто подобное:


git filter-branch --tree-filter 'rm -f *~' HEAD.


Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования