我已经把一堆敏感数据提交到了本地仓库,但这些数据还没有发布。
这些敏感数据分散在项目的不同文件夹中,我想完全从git历史记录中删除它们。
所有相关文件夹都具有相同的名称,并位于不同文件夹中的同一级别。以下是我的文件夹结构示例:
root
folder1
./sensitiveData
folder2
./sensitiveData
folder3
./sensitiveData
使用以下命令,我可以逐个删除包含敏感数据的文件夹:
git filter-branch -f --index-filter 'git rm -r --cached --ignore-unmatch javascript/folder1/.sensitiveData' --prune-empty HEAD
我想一次性删除所有包含敏感数据的文件夹,因为它们太多了,同时我也希望学习一下如何实现这个操作。
但是使用以下命令时,没有任何内容被重写,并且我收到了警告消息'refs/heads/master' is unchanged
:
git filter-branch -f --index-filter 'git rm -r --cached --ignore-unmatch javascript/*/.sensitiveData' --prune-empty HEAD
在我看来,有两种策略:
- 要么我的模式出了问题,我需要进行更改。
- 要么我应该使用bash循环。
如果可能的话,选项一似乎更合理。
*
不会扩展吗? - user1984