Ich sehe dies auf diesem GitHub-Repository :
Was bedeutet das? Wie kann etwas "vor 7 Tagen verfasst" und dennoch "vor 14 Stunden festgeschrieben" werden?
commit --date=
. Schwern erklärt es sehr nett.
Ich sehe dies auf diesem GitHub-Repository :
Was bedeutet das? Wie kann etwas "vor 7 Tagen verfasst" und dennoch "vor 14 Stunden festgeschrieben" werden?
commit --date=
. Schwern erklärt es sehr nett.
Antworten:
Git hat ein separates Konzept des Autors (der Person, die den Code geschrieben hat) und des Committers (der Person, die ihn in das Repository geschrieben hat). Ebenso kann es für beide Daten unterschiedliche geben. Sie sind normalerweise gleich.
Sie möchten, dass sie in erster Linie dann unterschiedlich sind, wenn die Person, die den Code schreibt oder den Patch sendet, keinen Push-Zugriff auf das Repository hat, wie in Projekten, in denen Mailinglisten für das Senden von Patches verwendet werden. In diesem Fall würde die Person mit Push-Zugriff den Patch anwenden und git commit
entweder mit den Schaltern --author
und--date
oder mit den Umgebungsvariablen GIT_AUTHOR_NAME, GIT_AUTHOR_EMAIL und GIT_AUTHOR_DATE (dokumentiert in git-commit-tree) ausführen .
Der andere Fall ist using git cherry-pick
oder git rebase. Der Committer ist die Person, die den Cherry Pick ausführt, und der Autor ist der Autor des ursprünglichen Commits. Git kümmert sich darum, die Identität und das Datum des Autors für Sie festzulegen.
Sie können diese Informationen im Repository mit sehen git log --pretty=fuller
.
commit 21550561941b078ea1862b882ec89f26696ff5bb (HEAD, origin/master, origin/HEAD, master)
Author: thiagopnts <thiagopnts@gmail.com>
AuthorDate: Tue Nov 18 14:52:49 2014 -0200
Commit: Thiago Pontes <email@thiago.me>
CommitDate: Tue Nov 25 09:46:58 2014 -0200
open repository url if confirmed, closes #1
git rebase
bewirkt auch, dass das Festschreibungsdatum aktualisiert wird, während das Erstellerdatum gleich bleibt.
Dies sieht aus wie eine Mischung zwischen der Arbeitsweise von Git mit Datumsangaben und der Art und Weise, wie auf GitHubs Schlussschlüsselwörter verwiesen wurde .
Git trennt zwischen Festschreibungs- und Autorendaten. In Pro Git gehen sie ein bisschen in den Unterschied :
Der Autor ist die Person, die das Werk ursprünglich geschrieben hat, während der Auftraggeber die Person ist, die das Werk zuletzt angewendet hat. Wenn Sie also einen Patch an ein Projekt senden und einer der Kernmitglieder den Patch anwendet, erhalten Sie beide eine Gutschrift - Sie als Autor und der Kernmitglied als Committer.
Während also der Code selbst "vor 7 Tagen" (lokal) festgeschrieben / geschrieben wurde, wurde er bis "vor 14 Stunden" nicht auf den Code "angewendet" oder gepatcht, da er in der Fernbedienung bis zu diesem Zeitpunkt nicht angezeigt wurde Botschaft.