Ho ribadito un ramo e ora tutti i suoi commit hanno una sezione committer che vorrei rimuovere completamente (non solo cambiando i suoi campi). È possibile senza perdere le informazioni dell'autore originale?Rimuovi le informazioni di commit da git commit
5
A
risposta
4
Grazie a @sergej e GitHub, ho ricevuto informazioni committer rimosso con
git filter-branch --env-filter '
if [ "$GIT_COMMITTER_EMAIL" != "$GIT_AUTHOR_EMAIL" ]; then
export GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME"
export GIT_COMMITTER_EMAIL="$GIT_AUTHOR_EMAIL"
export GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"
fi
' --tag-name-filter cat -- --branches --tags
2
È necessario riscrivere l'intera cronologia del repository Git.
GitHub ha uno script che lo fa, vedere Changing author info.
Dovrebbe essere semplice da adottare alle proprie esigenze:
#!/bin/sh
git filter-branch --env-filter '
OLD_EMAIL="[email protected]"
CORRECT_NAME="Your Correct Name"
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
Grazie. Comprendo correttamente che se 'GIT_COMMITTER_NAME' ecc corrisponde a' GIT_AUTHOR_NAME' ecc., Verrà considerato rimosso? – Andrei
Sì, appena testato, sembra essere il caso – Andrei