Qu’est-ce que UserA a commis avec UserB il y a 13 jours sur github?

Je suis intéressé à savoir lequel des deux utilisateurs a modifié le fichier lorsque github liste les deux. L’enregistrement git ne contient toutefois que UserA.

UserA est celui qui a réellement apporté les modifications. UserB est celui qui a commis ces modifications sur cette twig. c’est-à-dire que si UserA valide ses modifications sur branch1, UserB vient, valide quelques modifications sur branch2, rebase twig1 avec branch2. Maintenant, les commits les plus hauts dans branch1 indiquent que UserA a validé ces modifications avec UserB.

Edit: Cela se produit principalement lors du rebasage et de la sélection des cerises, car les auteurs et les committers peuvent être différents dans ces processus.

La réponse de @ venkatKA est précise et descriptive mais j’ai pensé append quelques détails.

git cat-file -p HEAD peut être utilisé pour imprimer des informations sur le commit

 tree d85ed3c3a055c95445898a5119ea0a532459fdsf parent 0b6ed951b2c04b4134c91ffa053b4330edfdffc1 author AuthA  1487356245 +0000 committer AutbB  1487356245 +0000 

Si vous voulez réparer les committers historiques (par exemple si vous changez d’identité), vous pouvez utiliser:

 git filter-branch -f --tree-filter "GIT_COMMITTER_NAME='New Author'; GIT_COMMITTER_EMAIL='New Author'" 

Les commentaires standard sur les rebases qui brisent l’histoire et les raisons pour lesquelles le révisionnisme est une mauvaise idée s’appliquent.

Une autre des raisons possibles de ce $GIT_AUTHOR_NAME est d’utiliser les variables env $GIT_AUTHOR_NAME et $GIT_AUTHOR_EMAIL .

Lorsque ces variables sont définies, elles remplacent la partie auteur de chaque validation ultérieure, quelles que user.name valeurs de configuration user.name et user.email définies localement. Dans ce cas, lorsque vous tapez git cat-file -p HEAD , auteur affiche la valeur de $GIT_AUTHOR_NAME et que le committer affiche la valeur de la configuration locale user.name .

Vous devrez donc supprimer les lignes qui exportent ces variables dans .bashrc ou .zshrc , ou si vous souhaitez conserver ces lignes mais que vous ne souhaitez pas que cela se produise, insérez unset GIT_AUTHOR_NAME && unset GIT_AUTHOR_EMAIL avant de unset GIT_AUTHOR_NAME && unset GIT_AUTHOR_EMAIL git commit.