Git筛选器分支未重写所有历史记录

Git筛选器分支未重写所有历史记录,git,git-svn,git-filter-branch,Git,Git Svn,Git Filter Branch,我正试图使用以下方法重新编写回购历史记录: git filter-branch -f --env-filter ' an="$GIT_AUTHOR_NAME" am="$GIT_AUTHOR_EMAIL" cn="$GIT_COMMITTER_NAME" cm="$GIT_COMMITTER_EMAIL" if [[ "$GIT_COMMITTER_EMAIL" = jacks* ]] then

我正试图使用以下方法重新编写回购历史记录:

git filter-branch -f --env-filter '
        an="$GIT_AUTHOR_NAME"
        am="$GIT_AUTHOR_EMAIL"
        cn="$GIT_COMMITTER_NAME"
        cm="$GIT_COMMITTER_EMAIL"

        if [[ "$GIT_COMMITTER_EMAIL" = jacks* ]]
        then
            cn="Jack Slingerland"
            cm="jacks@teamddm.com"
            an="Jack Slingerland"
            am="jacks@teamddm.com"

        fi

        if [[ "$GIT_AUTHOR_EMAIL" = jacks* ]]
        then
            cn="Jack Slingerland"
            cm="jacks@teamddm.com"
            an="Jack Slingerland"
            am="jacks@teamddm.com"
        fi

        export GIT_AUTHOR_NAME="$an"
        export GIT_AUTHOR_EMAIL="$am"
        export GIT_COMMITTER_NAME="$cn"
        export GIT_COMMITTER_EMAIL="$cm"'
 -- --all
该命令运行正常,并按指定重写作者。问题是它似乎遗漏了历史上的一些条目。我认为当一个分支中所做的更改被合并时,这种情况就会发生,但我不确定


注意:这是一个SVN存储库,它是使用Git+SVN导入Git的。

我不认为您的条件检查了您想要的内容。不应该:

if [[ "$GIT_AUTHOR_EMAIL" = jacks* ]]

注意:这只适用于Bash3.0或更高版本。否则,我认为您需要使用
grep
sed
外部命令作为条件检查的一部分


此外,我认为你只会想在提交人的电子邮件不是杰克的时才更改提交人,反之亦然。因此,请确保在您的comitter电子邮件检查中取出您的
am
作业,并对您的作者电子邮件检查进行类似的修复。

我不认为您的条件正在检查您想要的内容。不应该:

if [[ "$GIT_AUTHOR_EMAIL" = jacks* ]]

注意:这只适用于Bash3.0或更高版本。否则,我认为您需要使用
grep
sed
外部命令作为条件检查的一部分


此外,我认为你只会想在提交人的电子邮件不是杰克的时才更改提交人,反之亦然。因此,请确保在您的comitter电子邮件检查中取出您的
an
am
作业,并对您的作者电子邮件检查进行类似的修复。

我最终会遇到语法错误(bash 3.2):/usr/libexec/git-core/git-filter-branch:eval:line 335:near
~='/usr/libexec/git-core/git-filter-branch:eval:line 335:
if[“$git\u-COMMITTER\u-EMAIL”~=“jonw.*]”环境过滤器失败:交换“~”和“=”的顺序修复了语法错误。@Jackslingrland更改有帮助吗?我最终得到了语法错误(bash 3.2):/usr/libexec/git-core/git-filter-branch:eval:line 335:
~=”/usr/libexec/git-core/git-filter-branch:eval:line 335:
如果[“$git\u提交者电子邮件”~=“jonw.*]”环境过滤器失败:交换“~”和“=”的顺序修复了语法错误。@jacklingerland更改是否有帮助?