[英]Inspect git repo after using BFG repo-cleaner
非常基本的 git 問題:
我向 Github 上傳了一些妥協信息,並使用 bfg 來清理 repo。 我遵循了文檔並執行了以下操作:
$ git clone --mirror git://example.com/some-big-repo.git
$ bfg --replace-text passwords.txt my-repo.git
我收到以下輸出:
Found 233 objects to protect
Found 9 commit-pointing refs : HEAD, refs/heads/experimental, refs/heads/master, ...
Protected commits
-----------------
These are your protected commits, and so their contents will NOT be altered:
* commit 497fc1c8 (protected by 'HEAD')
Cleaning
--------
Found 80 commits
Cleaning commits: 100% (80/80)
Cleaning commits completed in 301 ms.
BFG aborting: No refs to update - no dirty commits found??
我想看看我的存儲庫中的私人信息是否已清除,但我不確定如何檢查鏡像存儲庫中的文件。 有什么想法嗎?
檢查密碼是否仍在您的歷史記錄中的一種快速方法可能是使用“git pickaxe”,也就是-S
選項。 這是一個檢查字符串password1
的示例:
git log -Spassword1
但是,從您的問題中顯示的輸出來看,看起來 BFG 在您的存儲庫中找不到來自passwords.txt
任何條目(提示消息“未找到臟提交??”輸出),如果您確定它們在那里,這有點奇怪。 這是您第一次在 repo 上運行 BFG 嗎? 可能是第二次了,BFG已經把密碼去掉了?
您提供給 BFG 的passwords.txt
文件每行應該有一個密碼,即:
changeme
password1
password2
默認情況下,BFG 僅查看 1MB 以下的文本文件。 您的密碼是否在某個看起來是二進制的或大於 1MB 的文件中?
更新:要查看 repo-clean-up 中的變化,您還可以嘗試 Eric S. Raymond 的repodiffer
(他的reposurgeon項目的一部分): http : //www.catb.org/~esr/reposurgeon/repodifer.html -你像這樣使用它:
$ repodiffer old-repo-copy.git new-repo-copy.git
該腳本可能需要一段時間才能運行,但它會准確地告訴您這兩個存儲庫之間發生了什么變化。
完全披露:我是 BFG Repo-Cleaner 的作者。
我想在這里留下一個補充,因為我花了一個小時試圖弄清楚為什么我會收到相同的錯誤消息:
BFG aborting: No refs to update
我完全想不通為什么。
然后我意識到 BFG 和 git 一樣是區分大小寫的——我輸入的文件名都是小寫的,而 git 中的版本有一個大寫的首字母。
因為我在 Windows 上,所以我沒有想過這個 - 那里的文件系統不區分大小寫。
希望這會為其他人節省幾個小時的痛苦!
要仔細檢查您的存儲庫中是否不再存在特定的敏感數據,您可以使用以下命令:
git log --patch | grep --color=auto secret
或者使用less +/secret
而不是grep
在上下文中查看它。
在 OSX 上遇到了同樣的問題 2 小時。 在我的情況下,問題是 password.txt 文件(可能已損壞或其他)。 確保使用 vi/nano 通過終端創建 .txt。 不要使用 TextEdit 等工具創建它並更改擴展名。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.