2016-06-30 5 views
1

私はgithubプロジェクトで数ヶ月間働いています。私が作ったコミットの束は "間違った著者情報"のため私に割り当てられていません。名前を変更する方法gitで間違った作成者とコミットする

これを繰り返す方法はありますか?作成者を一度にコミットしたり更新したりする方法はありますか?彼らはほとんど100程度です。

おかげ

UPDATE: は、Gitのはbash上でスクリプトを実行しようとすると、このエラーを得た: Error

cmdをWindows上で、この1:Error 2 ヘルプ誰?何が間違っているのですか?

+0

私はGITに歴史を書き換えることはできないと考えています。 – SiKing

+0

@SiKingあなたは間違っていると信じています。確かに、それは通常強く推奨されませんが、非常に間違いなく可能であり、それほど困難ではありません。 – twalberg

+0

@twalbergうーん、ジョージ・オーウェルは誇りに思うだろう。 ;) – SiKing

答えて

1

あなたは編集著者コミット修正することができます

git commit --amend --author="John Doe <[email protected]>" 

または複数のコミットを編集するための対話型リベースを使用します。 git rebase -i HEAD〜5を実行し、編集に必要なすべてのコミットをマークし、上記の単一コミットの例のように正しいauthorフィールドで再コミットします。

1

あなたはこのリポジトリにコミットONLYユーザーである場合は、単に古いコンテンツ

git filter-branch -f --env-filter ' 
    GIT_AUTHOR_NAME="Newname" 
    GIT_AUTHOR_EMAIL="newemail" 
    GIT_COMMITTER_NAME="Newname" 
    GIT_COMMITTER_EMAIL="newemail" 
    ' HEAD 
+0

私は最初のものがまさに私がそれを動かすことができないものが必要なものだと思います! – plicaman

1

を確認せずにすべての参照を更新することができ

git filter-branch --commit-filter ' 
     if [ "$GIT_COMMITTER_NAME" = "<Old Name>" ]; 
     then 
       GIT_COMMITTER_NAME="<New Name>"; 
       GIT_AUTHOR_NAME="<New Name>"; 
       GIT_COMMITTER_EMAIL="<New Email>"; 
       GIT_AUTHOR_EMAIL="<New Email>"; 
       git commit-tree "[email protected]"; 
     else 
       git commit-tree "[email protected]"; 
     fi' HEAD ` 

フィルタ分岐を使用する必要がありますいずれにしても、バッチ内の複数のコミットの電子メールアドレスは、 filter-branchでも変更できます。あなたは、あなただけのメールアドレスを変更することに注意する必要があるので、あなたは、 --commit-filterを使用します。

$ git filter-branch --commit-filter ' 
     if [ "$GIT_AUTHOR_EMAIL" = "[email protected]" ]; 
     then 
       GIT_AUTHOR_NAME="Scott Chacon"; 
       GIT_AUTHOR_EMAIL="[email protected]"; 
       git commit-tree "[email protected]"; 
     else 
       git commit-tree "[email protected]"; 
     fi' HEAD 

これは通過し、すべてのあなたの新しいアドレスを持つようにコミット書き換えます。コミットには親のSHA-1値が含まれているため、このコマンドは一致する電子メールアドレスを持つものだけでなく、ヒストリ内のすべてのコミットSHA-1を変更します。

参考:https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History

+0

これはIF書式の権利で「無効な電子メールアドレス」を使用しているのですが? – plicaman

関連する問題