it-swarm.com.de

Was bedeutet UserA vor 13 Tagen auf github für UserB?

Ich bin daran interessiert zu wissen, welcher der beiden Benutzer die Datei geändert hat, als github beide auflistet. Der Git-Datensatz enthält jedoch nur UserA.

64
Michael

UserA hat tatsächlich die Änderungen vorgenommen. UserB ist derjenige, der diese Änderungen in diesem Zweig übernommen hat. Das heißt, wenn UserA seine Änderungen in branch1 festschreibt, schreibt UserB ein Paar, ändert Änderungen in branch2 und stellt Branch1 mit branch2 wieder her. Die obersten Commits in branch1 zeigen nun, dass UserA diese Änderungen mit UserB übernommen hat. 

Edit: Dies geschieht hauptsächlich während der Umbasierung und der Kirschpickerei, da Autoren und Vermittler in diesen Prozessen unterschiedlich sein können.

68
venkatKA

@ venkatKA's Antwort ist genau und beschreibend, aber ich dachte, ich würde ein paar Details hinzufügen.

git cat-file -p HEAD kann verwendet werden, um Informationen zum Commit auszudrucken

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

Wenn Sie historische Committer reparieren möchten (zum Beispiel, wenn Sie Ihre Identität ändern), können Sie Folgendes verwenden:

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

Es gelten die Standardkommentare zu Rekonstruktionen, die die Geschichte brechen und warum Revisionismus eine schlechte Idee ist.

9
Att Righ

Ein weiterer möglicher Grund dafür ist die Verwendung von $GIT_AUTHOR_NAME- und $GIT_AUTHOR_EMAIL-Umgebungsvariablen.

Wenn diese Variablen festgelegt sind, überschreiben sie den Autor-Teil jedes nachfolgenden Commits, unabhängig davon, welche user.name- und user.email-Konfigurationswerte lokal festgelegt sind. Wenn Sie in diesem Fall git cat-file -p HEAD drücken, zeigt author den Wert von $GIT_AUTHOR_NAME und der Committer den Wert der lokalen user.name-Konfiguration.

Sie müssen also Zeilen entfernen, in denen diese Variablen in .bashrc oder .zshrc exportiert werden. Wenn Sie diese Zeilen beibehalten möchten, dies jedoch nicht gewünscht wird, fügen Sie unset GIT_AUTHOR_NAME && unset GIT_AUTHOR_EMAIL ein, bevor Sie git commit ausführen.

0
elquimista