2017-08-05 167 views
0

當存儲庫設置完成後,在最初的提交中,添加的文件之一包含敏感數據(程序員的個人信息),這些數據本不應該存在。是否有可能完全從git歷史中抹去?不是整個文件,只有幾行敏感數據。從git歷史記錄中刪除文件的某些內容

該存儲庫相當新,所以沒有分支,並且該特定文件自初始提交後未被修改。 (PS:我對git相當陌生,我還不懂複雜的命令)

+0

過濾分支應該這樣做:https://stackoverflow.com/a/4114121/6309 – VonC

+1

可能的重複[如何從Git存儲庫中的提交歷史中刪除/刪除大文件?](https:/ /stackoverflow.com/questions/2100907/how-to-remove-delete-a-large-file-from-commit-history-in-git-repository) – ephemient

回答

3

現在,您可以編輯該文件以刪除在一個新的違規內容提交,則交互式衍合那些承諾。一步一步的指導是在這裏: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,才能在原始服務器上重寫歷史記錄。

+0

謝謝!這個伎倆。它現在從「初始提交」中消失了,我希望git不會將它存儲爲備份或其他任何地方 – AdyAdy

+1

@AdyAdy:在Git決定清理它之前,原始的「不良」提交仍會在磁盤上存在一段時間。你可以按照這裏的說明做到這一點:https://stackoverflow.com/questions/1904860/how-to-remove-unreferenced-blobs-from-my-git-repo - 注意你需要這樣做在每一個回購克隆,如果你是偏執狂。 –

相關問題