Git: удалить определенный файл с помощью bfg (beg-repo-cleaner)

Я пытаюсь навсегда удалить файл из истории Git, поскольку он содержит конфиденциальные данные.

Для этого я использую bfg: https://rtyley.github.io/bfg-repo-cleaner/

Файл называется app/config.json.

Однако есть другие файлы с именем config.json в других папках, которые я не хочу удалять.

Я пробовал следующее:

git clone --mirror git://example.com/some-repo.git
bfg --delete-files app/config.json my-repo.git

но я получаю сообщение об ошибке:

Error: *** Can only match on filename, NOT path *** - remove '/' path segments

Как удалить только этот конкретный файл?


person Yahya Uddin    schedule 20.07.2017    source источник


Ответы (1)


«Предупреждение: после того, как вы отправили фиксацию на GitHub, вы должны рассматривать любые содержащиеся в ней данные как скомпрометированные. Если вы зафиксировали пароль, измените его! Если вы зафиксировали ключ, сгенерируйте новый». https://help.github.com/articles/удалениеконфиденциальныхданныхизрепозитория/

cd my-repo/app
bfg --delete-files config.json

Вы также можете попробовать:

bfg --replace-text config.json
person madnight    schedule 20.07.2017
comment
Я сделал зеркало git, как это предлагается в документах на сайте bfg. Для этого мне нужно сделать нормальный клон - person Yahya Uddin; 20.07.2017
comment
Когда я запускаю вашу команду в репо, она говорит: C:\path\to\some-repo\app is not a valid Git repository. - person Yahya Uddin; 20.07.2017
comment
@YahyaUddin, вы должны запустить команду из корня репозитория. В вашем примере: C:\path\to\some-repo - person Roman Orac; 14.02.2019