gpt4 book ai didi

git 编辑提交范围内的作者姓名,脚本

转载 作者:太空狗 更新时间:2023-10-29 14:28:19 26 4
gpt4 key购买 nike

我想创建一个 git 脚本,在指定的提交范围 (abcd..dcba) 中用作者“B”替换作者“A”。我怎样才能做到这一点?这是我目前所拥有的:

#!/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 之间)还没有被问到。如果我错了,对不起浪费你的时间。感谢那些试图回答这个问题的人!

最佳答案

如果你想为脚本使用参数,只需这样做

#!/bin/sh
#
# git-myCommand
#
#
AuthorExpression=$1
AuthorReplace=$2
CommitA=$3
CommitB=$4
git filter-branch --commit-filter "
if git rev-list --boundary '$CommitA'..'$CommitB'; then
if [ \"\$GIT_AUTHOR_NAME\" = '$AuthorExpression' ];then
GIT_AUTHOR_NAME='$AuthorReplace';
fi;
fi;
git commit-tree \"\$@\""

但是,请注意,您可能还想编辑 GIT_COMMITTER_NAMEGIT_COMMITTER_EMAILGIT_AUTHOR_EMAIL。参见 this answer .

关于git 编辑提交范围内的作者姓名,脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19226448/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com