2017-07-07 19 views
5

私の友人は私たちのapikey/token/secretsを保持する設定ファイルを作成し、.gitignoreはそのファイルを無視しました。別の名前として保存された設定ファイルを使用して誤ってマスタブランチにプッシュして表示されています。GitHubコミットをその履歴と共に削除するには?

私はそのコミットとそのコミットの履歴を削除する方法があるのだろうかと思っていました。

私はこれを見ましたが、私はこれを理解しますをコミットしてすべてを再プッシュします。 しかし、それはまだ歴史/変更を経由して設定情報を示しています。次のように

git reset --hard hash# 

git push -f origin branch 
+0

GitHubのヘルプページは、まさにこのケースについて何かを(持っています個人情報はGitHubにプッシュされました)...私はそれを答えに変換しますが、私は現時点ではモバイルです[ここを参照してください](https://help.github.com/articles/removing-sensitive-data- from-a-repository /) – Mischa

+0

@ミシャ・ビー・エイント私はgoogleで正しいキーワードを使って検索していなかったと思います。とても有用なページです。 –

答えて

2

git-filter-branchは、あなたのケースであなたを助けることができる:

、削除したいあなたの設定ファイルへのパスでPATH-TO-YOUR-CONFIG-FILEを交換してくださいそのファイル名だけではありません。

git filter-branch --force --index-filter \ 
'git rm --cached --ignore-unmatch PATH-TO-YOUR-CONFIG-FILE' \ 
--prune-empty --tag-name-filter cat -- --all 

コマンドの下に、次の、あなたが誤って再びそれをコミットしないことを確実にコミットし、それをプッシュする.gitignoreにあなたの設定ファイルを追加します。

echo "YOUR-CONFIG-FILE" >> .gitignore 
git add .gitignore 
git commit -m "Add YOUR-CONFIG-FILE to .gitignore" 
git push origin --force --all 
+0

これはすべての履歴書き換えのように、変更がハッシュをコミットすることに注意してください。それは特にあなたが他の人と働いているときに大きな問題になります。さらに、履歴から資格情報を削除するだけでは不十分です。それらは無効化され再作成されなければなりません。これにより、書き換えの価値が低下します。お気をつけください。 – Chris

関連する問題