我想创建一个 git 脚本,在指定的提交范围(abcd..dcba)中将作者“A”替换为作者“B”。我怎样才能做到这一点?这是我到目前为止所拥有的:
#!/bin/sh
#
# git-myCommand
#
#
git filter-branch --commit-filter '
if [ git rev-list --boundary 02e60c8..dc4c65f ]; then
if [ "$GIT_AUTHOR_NAME" = "A" ];then
GIT_AUTHOR_NAME="B";
fi;
fi;
git commit-tree "$@"'
问题是git说
Rewrite $SHA1-Number git commit-tree: line 48: [: too many arguments
git rev-list --boundary 命令在 if 语句中是否合法?如果我删除 if [git rev-list ... ] 语句,它将起作用。
理想的情况是我可以添加输入变量。所以命令看起来像
git myCommand $AuthorExpression $AuthorReplace $CommitA..$CommitB
编辑:有些人认为这个问题已经被问过了。对于那些请再次阅读上面的问题并将其与之前提出的问题进行比较。AFAIK 这个问题(测试提交是否在提交 A 和提交 B 之间)尚未被询问。如果我错了,很抱歉浪费你的时间。感谢那些试图回答这个问题的人!