2009-06-28 9 views
1

私の瞬間がわかりました。私の.gitconfig - ファイルは私のレポに公開されていました。それは私の秘密のトークンを含んでいます。古いGitで.gitconfigを見つけることができません

I git-add -uファイルがコミットされました。このコマンドが以前のコミットからファイルを削除するかどうかはわかりません。

履歴にそのようなファイルが存在しないように、以前のコミットでファイルを検索して検索したいと思っています。

以前のコミットでファイルを検索するにはどうすればよいですか?


私は

git filter-branch --tree-filter 'rm .gitconfig' master  # Thanks to Greg! 

を実行して、私は

Rewrite 84dabfa2ea195ce9aad0309216858b302150017c (1/25)rm: .gitconfig: No such file or directory 
tree filter failed: rm .gitconfig 

を取得し、エラーメッセージは、私は私のコミットの歴史でファイルを持っていないことを私に示唆しています。

私のコミット履歴でファイルを検索する方法はありますか?私は自分のコミット履歴にそのファイルがないことを確認するために削除を実行する必要はありませんか?

+0

ありがとうございました! –

答えて

4

短い答え:

git filter-branch --tree-filter 'rm -f .gitconfig' master 

注意-f

長い答え:ファイルが存在しないとき

rmは、ゼロ以外の戻りコードを返します。 filter-branchこれはエラーとみなし、書き換えを停止します。 -fを追加するとこれが回避されます。

注:

git filter-branch --index-filter 'git rm --cached --ignore-unmatch .gitconfig' master 

はるかに高速です:

代替コマンドがあります。このコマンドは、マニュアルページのEXAMPLEセクションに記載されています。

+0

@ J-16:両方のコマンドで私の質問と同じエラーメッセージが表示されます。これは私がいくつかのコマンドですでにファイルを削除してしまったことを示しています。 --- Gitの歴史の中で.gitconfigを検索して、そのようなファイルがないことを確かめる方法を知っていますか? –

+0

'git log .gitconfig'だけが履歴を表示するはずです。注記:.git/config(および.git /の下にあるもの)は*バージョン*であり、.gitconfigのみです。 –

+0

@ J-16:57d6と0d97に私の秘密のトークンが含まれているという情報が得られます。 (1)これらのコミットを確認するにはどうすればよいですか? (2)これらのコミットからこれらの.gitconfigファイルを削除するにはどうすればよいですか? –

4

過去のすべてのGitの履歴からファイルを削除するには、git filter-branchのようなものを使用して、過去のコミットをすべて書き直す必要があります。しかし、これを行うと、新しいツリーはすべての過去のツリーとマージできなくなりますので、注意してください。

+0

私は/ tmpのGit -filesで遊びたいです。 --- .gitを/ tmpにコピーした後、私はうまくいっていませんでした。 ---これは、すべてのファイルを/ tmpに.gitでコピーする必要があることを示唆しています。 --- @あなたはコマンドをテストできるように2番目のコピーを作っていますか? –

+1

"git clone"を使ってリポジトリをクローンすることができます。複製されたリポジトリに対して行うことは、元のリポジトリには影響しません(もちろん、変更をプッシュしない限り)。 –

1

リポジトリ内のすべてのewvisionsをグローバルデフォルト(.gitconfig)にリセットします。

git filter-branch -f --commit-filter 'GIT_COMMITTER_NAME="`git config --get user.name`";GIT_AUTHOR_NAME="`git config --get user.name`";GIT_COMMITTER_EMAIL="git config --get user.email";GIT_AUTHOR_EMAIL="`git config --get user.email`";git commit-tree "[email protected]";' HEAD 
関連する問題