儘管我已將我的database.yml添加到.gitignore中,但它仍在github上添加。現在如何從github中刪除文件並停止跟蹤?
- 我應該如何將它從github中刪除? (我看到這個How to remove files from the GitHub repository?,這是從GitHub刪除的唯一途徑?)
- 如何阻止它在github上添加,因爲它包含敏感信息
感謝
儘管我已將我的database.yml添加到.gitignore中,但它仍在github上添加。現在如何從github中刪除文件並停止跟蹤?
感謝
是的,這就是去除方法來自Git存儲庫的文件。一旦你將它刪除,並且因爲你將這個文件添加到你的.gitignore
文件中,它將不會被再次追蹤。所以如果你想在本地保存這個文件,在其他地方保留一個拷貝,然後使用git rm path/database.yaml
然後放回去。
請注意,通過在.gitignore
文件中添加更多規則不會以任何方式影響已被git跟蹤的文件,並且它只會影響未跟蹤的文件。
這聽起來像你問如何從GitHub上現有的歷史記錄中刪除文件。
GitHub的幫助解釋exactly how to do that:
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch database.yml' --prune-empty --tag-name-filter cat -- --all
需要注意的是:
yml
文件不會被忽略不夠(只有Rails.ignore
has an *.yml
included)這意味着一個簡單的命令,就足以讓所有回購所有敏感文件:
./ghrabber.py "path:.bash_history"
你得到包括所有bash命令行歷史通過在混帳回購協議錯誤
./ghrabber.py "path:.htpasswd"
你得到所有
htpasswd
文件
./ghrabber.py "ext:mbox"
你得到郵箱...
./ghrabber.py "path:databases.yml"
你的連接登錄/密碼數據庫...