17

Esiste un'opzione come --author di git-commit per git-merge?Sovrascrivi autore su git merge

Manteniamo un ambiente di gestione temporanea in cui è necessario eseguire alcune modifiche. Alcune limitazioni ci portano a usare solo un utente linux per accedere all'ambiente di staging.

In ogni caso, siamo una piccola squadra con iniziativa cooperativa e diciamo quando si fa commit, quale è l'autore che usa l'opzione --author git-commit. Tuttavia, alcune volte abbiamo bisogno di unire da altri rami che si traducono in una fusione non-ff. Ciò implica che viene eseguito un commit quando si esegue questa unione.

Quale sarebbe il modo migliore per specificare manualmente l'autore per il commit di unione in questo caso?

risposta

21

In primo luogo, evitare che l'unione di creare il commit:

git merge --no-commit … 

Poi, fare il commit manualmente:

git commit --author="A. U. Thor <[email protected]>" 
6

Prova git merge --no-commit ... e poi git commit --author ...

9

È possibile --amend la paternità in seguito se hai già fatto l'unione. In questo modo:

git checkout master 
git merge my_branch 
git commit --amend --author="My Nick <[email protected]>" 
git push origin master 

Questo funziona come desiderato e aggiunge l'autore specificato al commit di unione. Nessuna magia :)

+0

mi sento come la tua risposta è stata la più completa qui, anche se non implica che il --amend è necessario, quando si non è rigorosamente – TheMonarch

+0

Non lo è? 'git merge' crea un commit e per cambiare l'autore di quel commit devi' git commit --amend'. – default

0

Un'alternativa potrebbe essere quella di impostare le GIT_AUTHOR_NAME e GIT_AUTHOR_EMAIL variabili d'ambiente:

GIT_AUTHOR_NAME="A. U. Thor" GIT_AUTHOR_EMAIL="[email protected]" git merge ...