2011-11-08 14 views
12

このレポではじめて私はgitを使用していなかったので、電子メールなどを間違えて設定してしまいました。ユーザー "不明"すべての "未知の"コミットを私の名前に変換するための答えを見つけましたが、実際にはコミットを複製して自分の名前を適用しました。だから今私はこれらの "未知の"ユーザコミットが散在している。github:すべてのコミットを特定のユーザ名で削除する方法

私は "未知の"ユーザによってすべてのコミットを削除するためにいくつかのコマンドが実行されるのか疑問に思っていました。

答えて

13

git filter-branch(あなたのレポ)を使用し、強制的にギブスに押し込む必要があります。あなたが特定のユーザーからのコミットを削除したい、ほぼ同じような状況を扱うマニュアルから

例:

git filter-branch --commit-filter ' 
    if [ "$GIT_AUTHOR_NAME" = "Darl McBribe" ]; 
    then 
      skip_commit "[email protected]"; 
    else 
      git commit-tree "[email protected]"; 
    fi' HEAD 

注これはあなたの歴史を書き換えますし、それはまたあなたのrepo.Githubを使用する他の人に影響を与える可能性があることを共同研究者の助言:

あなたは、あなたの汚染されたブランチを引っ張ってを作成した協力者を有することができる協力者

への対処3210彼ら自身の枝から。彼らがあなたの新しいブランチを取得した後、 は、自分のブランチでgit rebaseを使用して、新しいブランチの上に を置き換える必要があります。コラボレーションでは、ブランチ が.gitignoreファイル を上書きするため、ファイルを再導入しないようにする必要があります。あなたのコラボレーションがリベースを使用してマージしていないことを確認してください。それ以外の場合は、 はファイルと汚染された履歴全体を再導入します... にはマージ競合が発生する可能性があります。

http://help.github.com/remove-sensitive-data/

+0

グレート...これは私の問題を解決します....どうもありがとう.. –

関連する問題