2015-10-02 29 views
5

私はブランチをリベースしましたが、今度はそのコミットすべてに完全に削除したいコミッターセクションがあります(単にフィールドを変更するだけではありません)。元の著者情報を失うことなく可能ですか?コミット情報をgitコミットから削除します

答えて

4

おかげで、私は

git filter-branch --env-filter ' 
if [ "$GIT_COMMITTER_EMAIL" != "$GIT_AUTHOR_EMAIL" ]; then 
    export GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME" 
    export GIT_COMMITTER_EMAIL="$GIT_AUTHOR_EMAIL" 
    export GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE" 
fi 
' --tag-name-filter cat -- --branches --tags 
2

Gitリポジトリの履歴全体を書き直す必要があります。

GitHubには、これを行うスクリプトがあります。Changing author infoを参照してください。

それはあなたのニーズにそれを採用することをまっすぐ進む必要があります: @sergej GitHubの

#!/bin/sh 

git filter-branch --env-filter ' 

OLD_EMAIL="[email protected]" 
CORRECT_NAME="Your Correct Name" 
CORRECT_EMAIL="[email protected]" 

if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ] 
then 
    export GIT_COMMITTER_NAME="$CORRECT_NAME" 
    export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL" 
fi 
if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ] 
then 
    export GIT_AUTHOR_NAME="$CORRECT_NAME" 
    export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL" 
fi 
' --tag-name-filter cat -- --branches --tags 
+0

おかげで除去コミッターの情報を得ました。 'GIT_COMMITTER_NAME'などが' GIT_AUTHOR_NAME'などと合っていれば、それは削除されたものとみなされることを正しく理解していますか? – Andrei

+0

ええ、ちょうどテストされた、そうであるようです – Andrei

関連する問題