當存儲庫設置完成後,在最初的提交中,添加的文件之一包含敏感數據(程序員的個人信息),這些數據本不應該存在。是否有可能完全從git歷史中抹去?不是整個文件,只有幾行敏感數據。從git歷史記錄中刪除文件的某些內容
該存儲庫相當新,所以沒有分支,並且該特定文件自初始提交後未被修改。 (PS:我對git相當陌生,我還不懂複雜的命令)
當存儲庫設置完成後,在最初的提交中,添加的文件之一包含敏感數據(程序員的個人信息),這些數據本不應該存在。是否有可能完全從git歷史中抹去?不是整個文件,只有幾行敏感數據。從git歷史記錄中刪除文件的某些內容
該存儲庫相當新,所以沒有分支,並且該特定文件自初始提交後未被修改。 (PS:我對git相當陌生,我還不懂複雜的命令)
現在,您可以編輯該文件以刪除在一個新的違規內容提交,則交互式衍合那些承諾。一步一步的指導是在這裏:https://stackoverflow.com/a/21353994/4323但要點是:
make sure you have a backup
edit thefile
git commit thefile -m "remove details"
git rebase -i --root
現在你會看到所有提交的名單。將最後一個(「刪除詳細信息」)從「pick」更改爲「fixup」,並將其移至第一次提交後。
此後,您可能需要git push -f
,才能在原始服務器上重寫歷史記錄。
謝謝!這個伎倆。它現在從「初始提交」中消失了,我希望git不會將它存儲爲備份或其他任何地方 – AdyAdy
@AdyAdy:在Git決定清理它之前,原始的「不良」提交仍會在磁盤上存在一段時間。你可以按照這裏的說明做到這一點:https://stackoverflow.com/questions/1904860/how-to-remove-unreferenced-blobs-from-my-git-repo - 注意你需要這樣做在每一個回購克隆,如果你是偏執狂。 –
這個你可能已經搜索了第一個。見例如這篇文章http://help.github.com/removing-sensitive-data/或 http://help.github.com/removing-sensitive-data/
我首先搜索,他們談論刪除整個文件。我需要該文件在那裏,我只想從中刪除幾行文件。 – AdyAdy
過濾分支應該這樣做:https://stackoverflow.com/a/4114121/6309 – VonC
可能的重複[如何從Git存儲庫中的提交歷史中刪除/刪除大文件?](https:/ /stackoverflow.com/questions/2100907/how-to-remove-delete-a-large-file-from-commit-history-in-git-repository) – ephemient