我的git倉庫包含敏感的密碼,這些密碼由於我無法控制的原因而無法立即刪除。現在一切都好,因爲這個回購只是內部的,但我被要求創建一個可以安全地與合作伙伴分享的分支。沒有歷史的git分支
有沒有辦法在git中創建分支,然後以無法使用日誌檢索的方式從中刪除文件?
看起來像一個遠射,但我想我會問。我能想到的唯一解決方案是將文件樹複製到新的git倉庫中,但沒有敏感文件 - 但是我失去了將合作伙伴更改合併回我的倉庫的能力。
我的git倉庫包含敏感的密碼,這些密碼由於我無法控制的原因而無法立即刪除。現在一切都好,因爲這個回購只是內部的,但我被要求創建一個可以安全地與合作伙伴分享的分支。沒有歷史的git分支
有沒有辦法在git中創建分支,然後以無法使用日誌檢索的方式從中刪除文件?
看起來像一個遠射,但我想我會問。我能想到的唯一解決方案是將文件樹複製到新的git倉庫中,但沒有敏感文件 - 但是我失去了將合作伙伴更改合併回我的倉庫的能力。
你可以做的一件事是創建你的倉庫的一個分支,編輯出密碼,然後創建一個你將提供給合作伙伴的倉庫的淺層克隆(深度爲1)。他們可以製作補丁,而不是針對該克隆,但無法查看整個歷史記錄,也無法在其他任何地方推送回購。如果他們只是在做出改變,那麼這應該是一個可行的解決方案。您仍然可以接受來自它們的修補程序並將其應用到主存儲庫。
有關更多信息,請參閱的--depth
選項。
假設你要刪除一個文件 (包含機密信息的 或侵犯版權)所有 提交:
git的過濾分支--tree過濾器「RM文件名'頭
1.)'--index-filter'應該比'--tree-filter'快於刪除文件。 2.)如果您不想更改存儲庫,請先創建新分支並重新編寫它。 – 2009-08-27 21:30:52
是的,關於我鏈接到的文檔中的各種技術有很好的討論 – 2009-08-27 21:39:11
我會採取刺一些答案。讓我們假設您可以創建一個不包含敏感數據的分支。你云然後做一個分支的淺層克隆,它不包含歷史,因此你不能從中拉出來,但它可能會拉你的形式。
另一件事是克隆新的存儲庫並使用git刪除工具來清除敏感數據。這將創建一個獨特的存儲庫,除了通過第一個補丁程序之外不能進行交互,但會擁有所有的歷史記錄。
混帳克隆--depth 1 url_of_your_remote_repository
淺庫
,您無法克隆或從淺存儲庫中取出(這意味着使用這個你不能讓一個新的存儲庫的侷限性淺拷貝)
你無法使用git log命令查看整個歷史記錄。
其可行的解決方案,您的合作伙伴可以進行一些更改並將其作爲「補丁」並將其發送給您的合作伙伴,如果您想要更改合作伙伴。然後在您當前的工作樹/您想要應用的任何分支中應用該修補程序。
More
我覺得這個解決方案將工作爲Ben的情況更好。以分公司爲基礎管理訪問比在分支基礎上更容易。 – Apreche 2009-08-27 20:38:13
'git clone --depth 1 [email protected]:project/projectname.git' - 複製並粘貼 – YumYumYum 2014-03-19 07:09:56