2009-05-11 3 views
-2

Meine Anwendung muss einer neuen Spezifikation entsprechen.Wie man etwas in der Art von svn tagging in Git durchführt?

Also ich möchte eine Version meiner App wie es steht taggen. Ich möchte diese Version in Zukunft auschecken können.

Ich habe alle meine letzten Änderungen vorgenommen.

Und ich tue:

git tag -a stable-pre-new-spec 

Wenn ich ausführen:

git show stable-pre-new-spec 

es die Differentiale von meinem letzten zeigt begehen?! Ich verstehe nicht genau was vor sich geht.

Soll ich stattdessen eine Verzweigung erstellen?

+0

Ich sehe das Problem hier nicht. 'stable-pre-new-spec' ist der symbolische Name für gegebenes Commit. "git show " zeigt den Inhalt des Tags an (wenn es ein annotiertes Tag ist), und darunter würde "git show ^{commit}" angezeigt, was den Changeset des von Ihnen markierten Commits beinhaltet. –

+0

Ich möchte nicht nur meine Commits markieren. Ich möchte, dass der aktuelle Snapshot des Quellbaums (d. H. Jedes Artefakt) mit einer Zeichenfolge "markiert" wird. –

+1

Das Tag zeigt auf den Quellbaum bei dem angegebenen Commit. Das ist dein Schnappschuss. Sie können einfach "git checkout [-b ] " verwenden, um zur Version zurückzukehren und sie weiter zu bearbeiten. In Git gibt es kein "Tagging" für jedes Artefakt, weil es keinen Sinn ergibt: Sie behandeln immer ein komplettes Repository, nicht einzelne Dateien. – Bombe

Antwort

0

würde ich einen Zweig in Ihrem Fall verwenden:

git checkout -b app_in_current_state 

Sie werden dann in der Lage sein, auf Master weiter zu entwickeln, während auf dem aktuellen Stand in der Branche Bugfixing.

2

Zwei Dinge sind los. Erstens, git Revisionen sind Revisionen der gesamten Dateistruktur . Im Gegensatz dazu glaube ich, cvs und svn geben separate Revisionsnummern für die einzelnen Dateien. In cvs oder svn geht die "tag" -Operation aus und fügt z. B. "stable-pre-new-spec" an Datei1 Version 1.0.3, Datei 2 Version 1.0.2, Datei3 Version 2.0, Datei 4 Version 1.3 an. 7, usw. Und wenn Sie dann mit diesem Tag abrufen möchten, geht das System und findet alle Teile mit diesem Tag. In git ist die eine Revision bereits über den ganzen Satz, das Taggen gibt nur einen anderen Namen.

Second-- und das gilt für viele cm Systeme einschließlich cvs und svn-- git gibt die gleichen Namen auf einen Zustand und die Differenz. Git nennt diese kombinierte Sache ein Commit. Also fragst du nach der Version und es zeigt dir einen Unterschied zwischen diesem und dem unmittelbar vorherigen Zustand. In git ist die Commit-ID tatsächlich eine Prüfsumme des gesamten gespeicherten Bauminhalts; es ist nur konventionell, Ihnen die golden spike zu zeigen.

In git können Sie einen Commit taggen oder einen Zweig erstellen, nachdem Sie ihn erstellt haben.