2016-04-07 3 views
0

Der Grund, warum ich Git Geschichte neu schreiben muss, ist, weil mein Name dupliziert ist und es als zwei Entwickler in der Fernbedienung zählt.Git Neuschreiben: Ändert nicht den Namen des Autors

Auch mein Team hat vor kurzem einen pre-receive Hook hinzugefügt, der unbekannte Autorennamen zurückweist.

Ich muss das Problem sofort beheben, also habe ich https://help.github.com/articles/changing-author-info/ und mehrere andere Anleitungen zu versuchen, Autorennamen aus Commits umzuschreiben.

Das ist das, was ich gerade jetzt bin:

#!/bin/sh 

git filter-branch --env-filter ' 

OLD_EMAIL="[email protected]" 
CORRECT_NAME="Tomas Prado" 
CORRECT_EMAIL="[email protected]" 

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 

Das Problem

Dies ist ein begehen, dass

commit 355ee6adb0540d3e2eed7163dfe36087f85feb78 
Author: tomasp <[email protected]> 
Date: Wed Apr 6 13:35:25 2016 +0200 

    Fix hashed 

Sie sehen ändern müssen, sollte mein Name sei "Tomas Prado", aber es ist "tomasp".

Nach der Ausführung des GitHub-Skriptes bleibt es gleich. Ich weiß nicht, was ich tun soll.

Antwort

0

Warum verwenden Sie nicht stattdessen --commit-filter?

git filter-branch --commit-filter ' 
    if [ "$GIT_AUTHOR_EMAIL" = "[email protected]" ]; 
    then 
      GIT_AUTHOR_NAME="Tomas Prado"; 
      GIT_AUTHOR_EMAIL="[email protected]"; 
      if [ "$GIT_COMMITTER_EMAIL" = "[email protected]" ]; 
      then 
       GIT_COMMITTER_NAME="Tomas Prado"; 
       GIT_COMMITTER_EMAIL="[email protected]"; 
       git commit-tree "[email protected]"; 
      else 
       git commit-tree "[email protected]"; 
      fi 
    else 
      if [ "$GIT_COMMITTER_EMAIL" = "[email protected]" ]; 
      then 
       GIT_COMMITTER_NAME="Tomas Prado"; 
       GIT_COMMITTER_EMAIL="[email protected]"; 
       git commit-tree "[email protected]"; 
      else 
       git commit-tree "[email protected]"; 
      fi 
    fi' HEAD 
Verwandte Themen