Я ищу способы уменьшить размер репо путем удаления бинарных файлов.Я пишу сценарий, который сделает это для меня, основываясь на http://help.github.com/remove-sensitive-data/
Кажется, у меня есть работающее решение, но я не могу передать параметр во вложенную команду git.Скрипт с жестко запрограммированным файлом работает:
git filter-branch --index-filter 'git rm --cached --ignore-unmatch /*selenium-server-standalone-2.16.0.jar' --prune-empty -- --all
git push origin master --force
rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --prune=now
git gc --aggressive --prune=now
git status
git pull
это дает мне вывод
Rewrite f9a33e41dd6da4630773272ec18d194d14935a83 (10/10)rm 'bin/selenium-server-standalone-2.16.0.jar'
rm 'selenium-server-standalone-2.16.0.jar'
Ref 'refs/heads/master' was rewritten
Ref 'refs/remotes/origin/master' was rewritten
WARNING: Ref 'refs/remotes/origin/master' is unchanged
, но когда я пытаюсь параметризовать это, как показано ниже, вся процедура не работает
fileOLD=selenium-server-standalone-2.16.0.jar
git filter-branch --index-filter 'git rm --cached --ignore-unmatch /*${fileOLD}' --prune-empty -- --all
git push origin master --force
rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --prune=now
git gc --aggressive --prune=now
git status
git pull
вывод
Rewrite 0491bf3461726c2ebd595ebc480010b5bf722302 (1/10)fatal: '/About Administration Tools.app' is outside repository
index filter failed: git rm --cached --ignore-unmatch /*${fileOLD}
и он не удаляет файлы.
Вопрос в том, как правильно передать / экранировать переменную при передаче ее во вложенную команду git?(MAC OS x 10.7.2)