Ich finde Git schwer zu verstehen, da ich die Bedeutung der für die Aktionen verwendeten Wörter nicht finden konnte. Ich habe das Wörterbuch auf die Bedeutung von „Stufe“ überprüft und keine der Bedeutungen bezog sich auf Quellcodeverwaltungskonzepte.

Was bedeutet „Stufe“ im Kontext von git?

Kommentare

  • bezogen: Was ist der Vorteil von git ‚ s zwei -stage Commit-Prozess (Staging)?
  • Git hat in der Tat ein eigenes Vokabular. Und da jede Anweisung im speziellen Vokabular formuliert ist, ist es schwierig, damit anzufangen. Um “ Stufe “ zu tun, müssen Sie git add file.ext für eine bestimmte Datei oder git add ., um alle geänderten und nicht verfolgten Dateien zu beeinflussen. Dateien, die auf diese Weise hinzugefügt wurden, werden als “ inszeniert “ bezeichnet und werden in die nächste “ festschreiben. Das Commit ist eine Momentaufnahme Ihrer Arbeit, die z. mit git commit -m "I wrote something".
  • Git ist schwer zu verstehen, da es kein konzeptionelles Tutorial gibt. Alle gehen unnötige Details durch.
  • Wollten Sie die “ -Terminologie “ -Tag aus dieser Frage entfernen? Es scheint mir ein vollkommen gültiges Tag zu sein.
  • Aus irgendeinem Grund kann ich die Bedeutung der Inszenierung am besten anhand dieser Antwort in Quora verstehen: qr .ae / TbSK2I

Antwort

Zum Bereitstellen einer Datei ist einfach, es fein für ein Commit vorzubereiten. Mit Git können Sie mit seinem Index nur bestimmte Teile der Änderungen festschreiben, die Sie seit dem letzten Festschreiben vorgenommen haben. Angenommen, Sie arbeiten an zwei Funktionen – eine ist abgeschlossen und eine muss noch ausgeführt werden. Sie möchten ein Commit durchführen und nach Hause gehen (endlich um 5 Uhr!), Möchten aber die Teile des zweiten Features nicht festschreiben, was noch nicht erfolgt ist. Sie inszenieren die Teile, von denen Sie wissen, dass sie zum ersten gehören Feature und Commit. Jetzt ist Ihr Commit Ihr Projekt, bei dem das erste Feature ausgeführt wird, während das zweite in Ihrem Arbeitsverzeichnis noch in Arbeit ist.

Kommentare

  • Gute Erklärung. Beachten Sie, dass Git, wenn es verteilt wird, es Ihnen offensichtlich ermöglicht, beide Funktionen festzuschreiben. Da Commits (zunächst) lokal sind, möchten Sie die Änderungen möglicherweise in ein Commit pro Feature aufteilen, und das Staging ist erneut nützlich.
  • Ich ‚ ist schwieriger t o Aktivieren Sie die Kontrollkästchen für das, was Sie festschreiben.
  • @jiggy git ermöglicht es Ihnen, Teile einer Datei zu inszenieren. Sie können auch eine Datei bereitstellen, weitere Änderungen vornehmen und dann den Status festschreiben, in dem sie sich beim Staging befand. Sie können ‚ dies nicht in Subversion tun.
  • @jiggy In SVN gibt es etwas zwischen dem Zeitpunkt, an dem Sie auswählen, welche Dateien / Teile von Dateien festgeschrieben werden sollen Wenn Sie mit dem Schreiben Ihrer Festschreibungsnachricht fertig sind, wird aufgezeichnet, welche Dateien / Teile Sie zum Festschreiben ausgewählt haben. Es wird möglicherweise nie explizit erwähnt, es wird möglicherweise eher im SVN-Client als in einem tatsächlichen Teil des Repositorys implementiert, es sind möglicherweise nur einige Flags im Speicher, aber das sind SVN ‚ s Bühne. Ich habe ‚ HG nicht angesehen, aber ich vermute, dass es dasselbe tut. Der Unterschied zu git besteht darin, dass git erkennt, dass es sich um eine Sache handelt, diese auf der Festplatte aufzeichnet und den Benutzer direkt darauf zugreifen lässt.
  • Der zweite Pfeil “ Stage-Dateien “ in der Abbildung können irreführend sein. “ Stage Hunks “ sind möglicherweise genauer?

Antwort

Da bisher alle auf „formale“ Weise geantwortet haben, möchte ich dies mit Alternativen tun, um das Lernen mit der Kraft von Metaphern zu verbessern.

Der Staging-Bereich sieht also wie folgt aus:

  • ein Cache mit Dateien, die Sie festschreiben möchten
  • keine Serie von Röhren, aber tatsächlich einem Muldenkipper, der bereit ist, die Arbeit, mit der Sie ihn laden, in das Repository zu bringen.
  • ein magischer Ort, an dem ausgewählte Dateien mit Ihrer Zauberei in Stein verwandelt werden und auf magische Weise zum Repository nach Lust und Laune
  • die gelbe Backsteinstraße, auf der die Dateien problemlos in das Repository gelangen (oder herunterfallen, wenn Sie zurückkehren möchten)
  • der fiktive Ort am Seehafen, an dem sich Dateien befinden Wenn Sie ein Paar Zementschuhe erhalten und dann in das Repository-Meer geworfen werden
  • den Empfangsschalter in der Bibliothek, legen Sie die Dateien dort ab, damit der Bibliothekar sie für die Ablage in der Bibliothek vorbereiten kann
  • Eine Box, in die Sie Dinge legen, bevor Sie sie unter Ihr Bett schieben. In Ihrem Bett befindet sich ein Repository mit Boxen, die Sie zuvor in den Laderaum von Dateien geschoben haben, bevor sie mit dem in das Repository-Lager gelangen Power Loader
  • der Filter einer elektrischen Filterkaffeemaschine, wenn die Dateien wie das Kaffeepulver sind, dann sind die festgeschriebenen Dateien der gebrühte Kaffee
  • das Büro von Scrooge McDuck neben dem Tresor, die Dateien sind wie Die Münzen, bevor sie in den Tresorraum seines riesigen Geldbehälters

der Tierhandlung gelangen. Sobald Sie ein Haustier nach Hause bringen, werden Sie „verpflichtet

Es ist magisch !

Kommentare

  • Liebe die Analogien ;; Weg zu knospe ^ _ ^
  • Liebe die letzte Analogie.
  • Diese Antwort war “ VERZWEIFELT “ wird im Rahmen allgemeiner Versuche benötigt, die Metaphysik der Git-Index = Git-Inszenierung zu erklären. Ehrlich gesagt möchte ich ‚ auch gerne wissen, was Linus dachte, als er sich für einen Indexbereich entschied. Ich mag es, aber ich möchte einfach besser verstehen, warum es ‚ gut ist, es zu haben und wie man es am effektivsten nutzt.

Antwort

Staging ist ein Schritt vor dem Festschreibungsprozess in Git. Das heißt, ein Commit in git wird in zwei Schritten ausgeführt: Staging und tatsächliches Commit.

Solange sich ein Änderungssatz im Staging-Bereich befindet, können Sie ihn mit git nach Belieben bearbeiten (bereitgestellte Dateien durch ersetzen) andere Versionen von bereitgestellten Dateien, entfernen Sie Änderungen aus dem Staging usw.)

Zeit für gebrochene Metaphern:

Stellen Sie sich ein Szenario vor, in dem Sie die Umzugsunternehmen anrufen, um Ihre Sachen von Ihrer alten Wohnung in Ihre neue Wohnung zu bringen. Bevor Sie das tun, werden Sie Ihre Sachen durchgehen, entscheiden, was Sie mitnehmen und was Sie wegwerfen, es in Säcke packen und im Hauptflur lassen. Die Umzugsunternehmen kommen einfach, holen die (bereits verpackten) Taschen vom Flur und transportieren sie. In diesem Beispiel wird alles inszeniert, bis die Mover Ihre Sachen bekommen: Sie entscheiden, was wohin geht, wie Sie es verpacken usw. (z. B. können Sie entscheiden, dass die Hälfte Ihrer Sachen weggeworfen wird, bevor die Mover überhaupt dort ankommen – das “ s Teil des Staging).

Aus technischer Sicht unterstützt das Staging auch Transaktions-Commits, indem alle Vorgänge in das aufgeteilt werden, was fehlschlagen kann (Staging) und was nicht fehlschlagen kann (Commit):

Das Commit in Git wird nach erfolgreichem Staging transaktional implementiert. Mehrere Schritte im Staging können fehlschlagen (z. B. müssen Sie ein Commit durchführen, aber Ihre Festplatte ist zu 99,9999% voll, und Git hat keinen Speicherplatz dafür Führen Sie ein Commit durch. Dies schlägt beim Staging fehl (Ihr Repository wird nicht durch ein teilweises Commit beschädigt), und der Staging-Prozess wirkt sich nicht auf Ihren Commit-Verlauf aus (er beschädigt Ihr Repository im Fehlerfall nicht).

Kommentare

  • … und so wenig Stimmen bisher.

Antwort

Um eine Datei bereitzustellen, müssen Sie sie für ein Commit vorbereiten. Da git diese Aktion dem Benutzersteuerelement zur Verfügung stellt, können Sie Teil-Commits erstellen oder eine Datei ändern, sie bereitstellen, erneut ändern und nur die ursprüngliche Änderung festschreiben oder auf diese zurücksetzen.

Durch Staging können Sie Feinere Kontrolle darüber, wie genau Sie sich der Versionskontrolle nähern möchten.

Antwort

Um die anderen hervorragenden Antworten zu ergänzen, kommt hier der Name für „stage“:

Ich habe das Wörterbuch auf die Bedeutung der Stufe überprüft und keine der Bedeutungen bezog sich auf Quellcodeverwaltungskonzepte.

Auf Englisch kann „inszenieren“ bedeuten, dass

eine öffentliche Veranstaltung organisiert und daran teilnimmt: UDF-Unterstützer inszenierte eine Demonstration in Sofia

(von http://oxforddictionaries.com/definition/stage )

Der Name „Staging“ für die Git-Funktion leitet sich von folgender Bedeutung ab: Beim Staging bereiten Sie ein Commit vor und organisieren es.Natürlich ist ein Commit nicht ganz dasselbe wie eine Performance, aber es ist ein wichtiges Ereignis in einem VCS :-).

Kommentare

  • Ich ‚ hätte gedacht, dass es der Verwendung in Staging-Post
  • Ditto. “ ein Punkt, eine Periode oder ein Schritt in einem Prozess oder einer Entwicklung. “
  • Auch ‚ Staging-Server ‚ ist ein ziemlich gebräuchlicher Begriff, der verwendet wird, um einen Server zu beschreiben, der ‚ zwischen Entwicklung und Produktion.

Antwort

Die „Stufe“ ist ein technisch erforderlicher Zwischenschritt beim Einchecken von a Datei, nämlich das Sammeln der Änderungen, die dem Repository hinzugefügt werden sollen. Die Autoren von Git haben sich dafür entschieden, diesen Schritt sichtbar und dauerhaft zu machen, wenn andere VCS ihn zu einem vorübergehenden Teil des Festschreibungsprozesses machen. Es ist also nur eine Option, die Git Ihnen bietet, weil es dies kann, warum nicht?

So wie ich es sehe, ist die Hauptsache, die die Git „Stage“ Ihnen gibt, dass andere VCS es nicht tun, dass Sie damit eine Datei überprüfen können. Es ist praktisch ein unbenanntes, nicht kommentiertes lokales Commit, das Ihnen einen Zwischenschritt zwischen ihnen gibt mit all Ihrer Arbeit fertig zu sein und sie dauerhaft im Repository zu speichern und überhaupt nichts in Ihrem lokalen Repo zu speichern.

Nehmen wir zum Beispiel an, Sie haben eine Funktion teilweise fertiggestellt. Sie befindet sich in einem stabilen Zustand, besteht alle Tests und könnte in Produktion gehen, aber Sie müssen noch mehr daran arbeiten. Sie können alle Ihre Änderungen vornehmen und dann weiter an der Funktion arbeiten.

Später haben Sie die Möglichkeit, nur das festzuschreiben, was Sie bereitgestellt haben (und dieses Festschreiben an das Remote-Repository zu senden) oder Ihr hinzuzufügen neue Änderungen an Ihrem Staging-Bereich und übernehmen Sie diese auf einmal, oder machen Sie nur Ihre neuen Änderungen rückgängig und setzen Sie Ihr Arbeitsverzeichnis auf den Zustand zurück, in dem Sie Ihre Änderungen bereitgestellt haben.

Dies ist vollständig möglich Um den Staging-Bereich praktisch vollständig zu überspringen und verwenden Sie einfach die Option -a für git commit, wenn Sie den Staging-Bereich nicht als hilfreich empfinden. Viele Leute überspringen Staging und GUI-Tools ermöglichen dies normalerweise auch.

Kommentare

  • “ anderes VCS nicht ‚ t “ – was lässt Sie das denken? Das Regal bei Perforce scheint zu funktionieren Was Sie beschreiben, und sogar mit ein paar zusätzlichen Schnickschnack
  • @gnat ja, natürlich Viele andere VCS bieten Ihnen so etwas wie Inszenierung. Mit “ anderen VCS “ meine ich andere VCS, die ‚ so etwas wie git nicht haben ‚ s Stadium, da sich das OP darauf bezog.
  • Ich fand diese Antwort immens besser als alle oben genannten, da es ‚ ist die einzige, die verdeutlicht, warum Staging überhaupt existiert ( technisch erforderlich ), eine Erklärung ihres Ursprungs ( Git haben diesen Schritt sichtbar und dauerhaft gemacht ) und eine meiner Meinung nach gute Definition hinzugefügt ( ein mittleres, unbenanntes, nicht kommentiertes lokales Commit ). . Ich denke jedoch, dass es verbessert werden könnte, indem eine Quelle für die Aussage über den Ursprung von Staging zitiert wird und etwas näher darauf eingegangen wird, warum ‚ technisch erforderlich ist . @OldPro
  • Wäre Git von Grund auf neu entwickelt worden, könnte dies nur Teil eines verallgemeinerten “ -Zweigs “ gewesen sein Konzept, lokal und von anderen in diesem Fall nicht gesehen. Ebenso hätte “ stash “ gerade als eine spezifische Instanz des verallgemeinerten Konzepts von branch. “ Sie können dann eine beliebige Anzahl von Ebenen für “ Staging bevorzugen Sie.

Antwort

Bei den meisten anderen Versionskontrollsystemen gibt es zwei Möglichkeiten Daten speichern: Ihre Arbeitskopie (die Ordner / Dateien, die Sie derzeit verwenden) und der Datenspeicher (in dem die Versionskontrolle entscheidet, wie Ihre Änderungen gepackt und gespeichert werden). In Git gibt es eine dritte Option: den Staging-Bereich (oder Index). Es handelt sich im Grunde genommen um eine Laderampe, an der Sie bestimmen können, welche Änderungen verschickt werden.

Quelle: http://gitready.com/beginner/2009/01/18/the-staging-area.html

Kommentare

  • ‚ scheint gegenüber den vorherigen 6 Antworten nichts Wesentliches hinzuzufügen.
  • Es wird der Index erwähnt. Und Verweise auf einen sehr gründlichen Artikel. Upvoting. Übrigens sind einige der obigen Antworten nur Witze.

Antwort

Mein Verständnis ist, dass ich die Anmeldefunktion entwickle und 5 aufeinanderfolgende Schritte benötige, um sie abzuschließen. Die Inszenierung hilft Ihnen also dabei, an Schritten wie
Schritt 1 zu arbeiten.
Schritt 2 ausgeführt, jetzt sind Schritt 1 und Schritt 2 beide richtig.
Schritt 3 Nr Problem Checkout Der letzte bereitgestellte Schritt, Schritt 2
. Sobald Sie alle 5 Schritte ausgeführt haben, bedeutet dies, dass die Funktion abgeschlossen ist. Führen Sie nun ein Commit durch.

Kommentare

  • Dies ‚ scheint nichts Wesentliches über die zuvor gemachten und erläuterten Punkte hinzuzufügen 9 Antworten
  • Ja, Sie haben Recht, ich habe nur versucht, die Erklärung einfach und süß zu machen.
  • Und wie ich dieses Konzept praktisch anwenden möchte, habe ich versucht, das zu erklären.
  • ehen Sie sich hier die Diskussion an: Sind zweite TL; DR-Antworten akzeptabel? (FWIW im Vergleich zu früheren Antworten ist dies nicht ‚ sieht für mich weder einfach noch süß aus)

  • Danke, Sir, ich habe eine Frage zu stellen. Ich habe viele Antworten gefunden und die meisten sind zu komplex. Ja, diese sind richtig, aber schwer auf einmal zu verdauen. Ich glaube, wenn Sie ‚ nichts auf einfache Weise erklären können, dann Sie habe es nicht richtig gelernt oder weiß nicht, wie man es benutzt. ‚ Ist es jetzt also schlecht, eine Zusammenfassung oder eine einfache Antwortmöglichkeit zu erstellen?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.