3

質問で説明されているものと同様の問題があります。git でコミットの作成者を変更するにはどうすればよいですか? 私が試している解決策は使用しgit filter-branchていますが、文字列リテラルとスペースが一致しないため、機能しません。つまり、次のものが必要ですcontains

git filter-branch --commit-filter '
    if [ "$GIT_AUTHOR_NAME" = "giovanni azua" ];
    then
            GIT_COMMITTER_NAME="Giovanni Azua";
            GIT_COMMITTER_EMAIL="giovanni.azua@xxx.com";
            GIT_AUTHOR_NAME="Giovanni Azua";
            GIT_AUTHOR_EMAIL="giovanni.azua@xxx.com";
            git commit-tree "$@";
    else
            git commit-tree "$@";
    fi' HEAD

間にスペースがある場合、等号は機能しません。エスケープする方法がわかりません。私もそれをエスケープしようとしましgiovanni\ azuaたが、うまくいきません。また、このスクリプトが何であるかについての参照も見つかりませんでした。つまり、文字列containssubstring一致をどのように行うのですか? 私は常に出力を取得しますWARNING: Ref 'refs/heads/master' is unchanged

更新: また、チェック ボックスをチェックして not を指定しますif [ "$GIT_AUTHOR_NAME" ~= "giovanni azua" ];が、演算子~=は機能しません。

4

1 に答える 1