2014-11-17 2 views
0

Кто-нибудь успешно модифицировал файлы в проекте Android Studio во всей истории хранилища? Я пытаюсь удалить некоторые конфиденциальные данные, которые были введены ошибочно и охватывает несколько коммитов (это номер телефона). Я пытаюсь выполнить следующую команду:Sed break во время git filter-branch

git filter-branch --tree-filter "find . -name '*.java' -print0 | xargs sed -i '' -e 's/xxxxxxxxxx/0000000000/g'" 

Но я сразу получаю ошибку

Rewrite c61760bca0273b8597299146fa5c43f984a50e3c (1/22)sed: can't read : No such file or directory 
tree filter failed: find . -name '*.java' -print0 | xargs sed -i '' -e 's/xxxxxxxxxx/0000000000/g' 

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

Может ли кто-нибудь пролить свет на мою беду? Спасибо заранее.

+1

'-print0' требует' xargs -0'. –

+0

@sputnick Имеются имена файлов. 'xargs' предоставляет их. –

+0

@EtanReisner Использование 'xargs -0' дало мне ту же ошибку. –

ответ

0

Вам не нужно беспокоиться о неясных флагах, если вы используете the BFG, а не git-filter-branch. BFG разработан специально для случая удаления ненужных данных, где вам не все равно , где плохие данные, в каком неясном файле - вы просто хотите, чтобы оно исчезло.

Чтобы использовать BFG, создать unwanted.txt файл, содержащий только одну строку:

xxxxxxxxxx==>0000000000 

Тогда run the BFG с этой командой:

$ java -jar bfg.jar -fi '*.java' --replace-text unwanted.txt my-repo.git 

всю историю хранилище будет сканироваться, и все файлы .java (размером менее 1 МБ) будут иметь выполненные замены: любая соответствующая строка (которая не находится в вашей последних фиксации) будет заменена.

BFG обычно hundreds of times faster, чем бег git-filter-branch на большом репо и варианты с учетом вокруг этих двух общих сценариев использования:

  • Удаление Сумасшедшая больших файлов
  • Удаление паролей, учетные данные & Прочие Личные данные

Полное раскрытие информации: Я являюсь автором BFG Repo-Cleaner.

+0

Работает - частично. Он утверждает, что «нет ссылок на обновление - не обнаружено грязных коммитов»? –

+0

Err - неважно, извините. Теперь он работал больше. Кроме того, что все еще говорят «![удаленный отклоненный] мастер (удаление запрещенной ветки) 'когда я запускаю git push. Есть идеи? –

+1

Исправлено! Я думаю, это сработало. Маркировка как ответ, спасибо тонну. –

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