質問で説明されているものと同様の問題があります。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
たが、うまくいきません。また、このスクリプトが何であるかについての参照も見つかりませんでした。つまり、文字列contains
やsubstring
一致をどのように行うのですか? 私は常に出力を取得しますWARNING: Ref 'refs/heads/master' is unchanged
。
更新: また、チェック ボックスをチェックして not を指定しますif [ "$GIT_AUTHOR_NAME" ~= "giovanni azua" ];
が、演算子~=
は機能しません。