Erfasst git Geschichte von Zweigköpfen?

8

Git Branch Heads und Tags sind Zeiger auf Commits, und diese Pointer können sich entweder implizit (nach einem commit ) oder explizit (nach einem branch -m ) bewegen.

Zeichnet Git den Verlauf des Zustands dieser Zeiger auf?

Ich sehe dafür mindestens zwei Gründe:

  • Um den Status des Repo vor zwei Tagen zu sehen, einschließlich wo die Zweigleiter aufzeigen.
  • Um sicherzustellen, dass keine Historie verloren geht, weil jemand einen Zweig so verschoben hat, dass einige Commits unerreichbar werden.

Beachten Sie, dass das oben Genannte in Mercurial möglich ist, da es den Verzweigungsnamen in jedem Commit speichert.

Also wieder, in Git sind die Inhalte von .git / refs / versionskontrolliert, oder gibt es eine Möglichkeit, sie so zu machen?

(Ich versuche, mich für Mercurial oder Git für ein Team zu entscheiden, und ich möchte sicherstellen, dass alle Änderungen am geteilten Repo, einschließlich der Refs, aufgezeichnet werden. Es ist mir egal, was Entwickler mit ihren privaten Repos machen .)

Danke.

    
Jake Lundy 07.05.2011, 02:44
quelle

3 Antworten

7

Sie werden nicht versioniert, aber die Funktion reflog bleibt bestehen eine lokale Geschichte, die Sie verwenden können, um Fehler rückgängig zu machen. Wenn jemand jedoch einen Zweig zurückspult, um einige Commits vom Ende zu verwerfen, wird es sofort offensichtlich, wenn ein anderer Entwickler versucht, seinen Checkout für diesen Zweig zu aktualisieren, da Git diese Änderung nicht lokal ausführen wird, solange --force nicht ist benutzt. Sie können die Commits zu diesem Zeitpunkt einfach zurück in das gemeinsame Repository schieben.

    
Wyzard 07.05.2011 02:52
quelle
1

Es gibt Erweiterungen für Unternehmens-Git-Server wie Gerrit, die Ihren Zweigverlauf versionieren. Wenn eine Verzweigung auf eine nicht schnelle Weise gelöscht oder aktualisiert wird (push -f) Es wird die vorherige Version unter einem speziellen Verweis zurück unterstützen, so dass sie bei Bedarf wiederhergestellt werden können und nicht von Garbage Collection bereinigt werden. Gerrit-Administratoren können ausgewählte Commits trotzdem entfernen, wenn dies aus rechtlichen Gründen erforderlich ist.

    
Johanned Nicolai 07.01.2013 17:25
quelle
0

Es gibt zwei Möglichkeiten:

%Vor%

und:

%Vor%

Entspricht dem ersten Fall:

%Vor%     
MAChitgarha 21.06.2017 11:37
quelle

Tags und Links