Есть проект. Хочется его опубликовать. Но часть из негоявляется тайной. Как быть?
Есть ровно 2 тулы, которые позволили мне вчера это сделать:
- BFG Repo-Cleaner
- git filter-branch
Запишу тут скрипт, который уверен поможет в будущем, когда потребуется снова.
Прежде всего стоит сделать 2 копии проекта, т.к. команды будут менять их коренным образом и в случае ошибки придется повторить всю процедуру, удаляя и копируя из оригинала.
Все команды будем ранать из корня проекта.
Все команды выполняются в bash.
Первая папка - в ней оставим все кроме папки (всех папок с этим именем):
# файл bfg-1.15.0.jar берем тут https://repo1.maven.org/maven2/com/madgag/bfg/1.15.0/bfg-1.15.0.jar java -jar bfg-1.15.0.jar --delete-folders folder_to_extract --no-blob-protectionВторая папка - из нее удалим все, кроме этой папки:
# удалить все удаленные репозитории, в них нет смысла, т.к. появится новый git remote | xargs -n 1 git remote remove # удалить все теги git tag -d $(git tag -l) # удалить все недокомиченные локальные вресии git stash & git stash drop 0 # удаление всех веток кроме текущей git branch | grep -v "$(git symbolic-ref --short HEAD)" | xargs git branch -D # тут указывается полный путь, следовательно придется повторить несколько раз для каждого такого вхожденияНа здоровье!
# оставить только текущую папку git filter-branch --subdirectory-filter ./src/main/resources/folder_to_extract -- --all # удалить все что осталось после фильтрации git stash & git stash drop 0
Комментариев нет:
Отправить комментарий