web-dev-qa-db-fra.com

Que signifie UserA avec UserB il y a 13 jours sur github?

Je voudrais savoir lequel des deux utilisateurs a modifié le fichier lorsque github les répertorie. L'enregistrement git ne contient cependant que UserA.

64
Michael

UserA est celui qui a réellement apporté les modifications. UserB est celui qui a engagé ces modifications dans cette branche. Autrement dit, si UserA valide ses modifications dans branch1, UserB arrive, valide quelques modifications dans branch2, rebase branch1 avec branch2. Maintenant, les commits les plus importants dans branch1 montreront que UserA a validé ces modifications avec UserB. 

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

68
venkatKA

La réponse de @ venkatKA est précise et descriptive, mais je pensais ajouter quelques détails.

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

tree d85ed3c3a055c95445898a5119ea0a532459fdsf
parent 0b6ed951b2c04b4134c91ffa053b4330edfdffc1
author AuthA <[email protected]> 1487356245 +0000
committer AutbB <[email protected]> 1487356245 +0000

Si vous souhaitez corriger des 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 habituels sur les réfractions brisant l’histoire et sur la raison pour laquelle le révisionnisme est une mauvaise idée s’appliquent.

9
Att Righ

L’une des raisons possibles de cet événement est l’utilisation des variables $GIT_AUTHOR_NAME et $GIT_AUTHOR_EMAIL env.

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

Vous devrez donc supprimer les lignes qui exportent ces variables dans .bashrc ou .zshrc, ou si vous souhaitez conserver ces lignes sans vouloir que cela se produise, insérez unset GIT_AUTHOR_NAME && unset GIT_AUTHOR_EMAIL avant d'exécuter git commit.

0
elquimista