我有一个代码库,我想将其作为开源推送到GitHub.在这个git控制的源代码树中,我有一些包含密码的配置文件.我确保不跟踪此文件,我也将其添加到.gitignore
文件中.但是,我希望绝对肯定的是,没有任何敏感信息会被推送,也许是因为某些事情在提交之间滑落了.我怀疑我做得不够粗心,但我想要积极.
有没有办法"grep"所有的git?我知道这听起来很奇怪,但是"全部"我想我的意思是每个版本的文件都是.我想如果有一个命令为每次提交转储diff文件,那可能有用吗?
Nat*_*ger 1091
Git可以使用-S选项搜索差异(在文档中称为pickaxe )
git log -Spassword
Run Code Online (Sandbox Code Playgroud)
这将找到添加或删除字符串的任何提交password
.这里有几个选择:
-p
:将显示差异.如果您提供文件(-p file
),它将为您生成一个补丁.-G
:查找添加或删除的行与给定的正则表达式匹配的差异,而不是-S
"查找引入或删除字符串实例的差异".--all
:搜索所有分支和标签; 或者,使用--branches[=<pattern>]
或--tags[=<pattern>]
cdh*_*wie 84
git rev-list --all | (
while read revision; do
git grep -F 'password' $revision
done
)
Run Code Online (Sandbox Code Playgroud)
ken*_*orb 35
尝试使用以下命令搜索所有先前跟踪文件中的字符串:
git log --patch | less +/searching_string
Run Code Online (Sandbox Code Playgroud)
要么
git rev-list --all | GIT_PAGER=cat xargs git grep 'search_string'
Run Code Online (Sandbox Code Playgroud)
需要从您要进行搜索的父目录运行.
归档时间: |
|
查看次数: |
218507 次 |
最近记录: |