git rewrite:不更改作者姓名

时间:2016-04-07 08:58:28

标签: git

我需要重写git历史记录的原因是因为我的名字是重复的,它算作遥控器中的两个开发人员。

我的团队最近还添加了一个拒绝未知作者姓名的预接收挂钩。

我必须立即解决问题,所以我已经按照https://help.github.com/articles/changing-author-info/和其他几个指南尝试从提交中重写作者姓名。

这是我现在正在使用的那个:

#!/bin/sh

git filter-branch --env-filter '

OLD_EMAIL="tomas.p@mail.com"
CORRECT_NAME="Tomas Prado"
CORRECT_EMAIL="tomas.p@mail.com"

if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
then
    export GIT_COMMITTER_NAME="$CORRECT_NAME"
    export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
then
    export GIT_AUTHOR_NAME="$CORRECT_NAME"
    export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags

问题

这是必须更改的提交

commit 355ee6adb0540d3e2eed7163dfe36087f85feb78
Author: tomasp <tomas.p@mail.com>
Date:   Wed Apr 6 13:35:25 2016 +0200

    Fix hashed

你知道,我的名字应该是#34; Tomas Prado&#34;但它是&#34; tomasp&#34;。

执行github脚本后,它保持不变。 我不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

为什么不使用git filter-branch --commit-filter ' if [ "$GIT_AUTHOR_EMAIL" = "tomas.p@mail.com" ]; then GIT_AUTHOR_NAME="Tomas Prado"; GIT_AUTHOR_EMAIL="tomas.p@mail.com"; if [ "$GIT_COMMITTER_EMAIL" = "tomas.p@mail.com" ]; then GIT_COMMITTER_NAME="Tomas Prado"; GIT_COMMITTER_EMAIL="tomas.p@mail.com"; git commit-tree "$@"; else git commit-tree "$@"; fi else if [ "$GIT_COMMITTER_EMAIL" = "tomas.p@mail.com" ]; then GIT_COMMITTER_NAME="Tomas Prado"; GIT_COMMITTER_EMAIL="tomas.p@mail.com"; git commit-tree "$@"; else git commit-tree "$@"; fi fi' HEAD

string query = "DECLARE @sqlQuery varchar(max); " +
                               " SELECT @sqlQuery = 'select distinct [' + @columnName + '] from [" + Globals.REPORTING_SCHEMA + "].[' + @tableName + ']'; " +
                               " exec(@sqlQuery);";