Ein Git-Repository enthält zu jeder Zeit den gesamten Verlauf.
Wenn Sie also ein Repository klonen, klonen Sie es mit seinem vollständigen Verlauf, und dann können Sie einen Zweig aus einem beliebigen Commit erstellen:
$ git checkout -b aNewBranch SHA1
Dabei steht SHA1 für die Festschreibungs-ID, von der aus Sie fortfahren möchten.
Verzweigungen in Git sind nur eine Möglichkeit, einen Pfad einer DAG (Directed Acyclic Graph) zu verfolgen, bei der es sich um Commits handelt, die den Verlauf eines Git-Repositorys darstellen.
Es ist nur ein Zeiger, den Sie einem dieser Commits zuweisen, und er bewegt sich bei jedem neuen Commit weiter.
Weitere Informationen finden Sie im Pro Git- Buch.
Sie können ein bestimmtes Commit mit einem Tag markieren , das wie ein Zweig nur ein Zeiger ist, aber unveränderlich (es bewegt sich nicht, wenn Sie ein neues Commit durchführen).
Sie verwenden vorzugsweise mit Anmerkungen versehene Tags, die als vollständige Objekte in der Git-Datenbank gespeichert sind. Sie sind Prüfsummen; den Tagger-Namen, die E-Mail-Adresse und das Datum enthalten; eine Tagging-Nachricht haben; und kann mit GNU Privacy Guard (GPG) signiert und verifiziert werden.
Die „Grafische Interfaces“ Abschnitt InterfacesFrontendsAndTools Seite auf Git Wiki listet die verschiedenen GUI für Git im Moment.
Sie werden viele Fragen zum Unterschied zwischen Git und SVN sehen: siehe meine Antwort (oder diese ) zum Beispiel.
Meine vollständigste Antwort zu den grundlegenden Unterschieden zwischen Git und SVN lautet hier:
" Welcher der beiden ist besser: Git oder SVN" .
git checkout SHA1
git checkout -b aNewBranch
Es gibt ein paar Fragen in diesem Beitrag, hier sind meine Antworten:
Um ein vorheriges Commit zu "klonen", können Sie zunächst Folgendes tun:
Verwenden Sie
~1
diese Option, um auf das erste übergeordnete Element des letzten Commits zuzugreifen, und erhöhen Sie die Zahl, um das übergeordnete Element des übergeordneten Elements abzurufen. Mehr zur Tilde- und Caret-Notation .Die beiden obigen Befehle versetzen Sie in einen getrennten HEAD-Zustand, der je nach Kontext wichtig sein kann oder nicht. Zum Beispiel ist es nicht wichtig, ob Sie als Teil Ihrer Bereitstellungsskripte klonen und sich nur um den Zugriff auf ein vorheriges Commit kümmern (z. B. als Teil einer Rollback-Strategie).
Wenn Sie ab diesem Zeitpunkt in der Geschichte mit der Arbeit beginnen müssen, können Sie sie ausführen
Eine gute Git-GUI? Für mich ist SourceTree das Beste.
Was sind Filialen? In meinen eigenen Worten ist ein Zweig nur eine sehr einfache Möglichkeit, sich zu drehen. Angenommen, Sie arbeiten an einem Zweig
master
und möchten ein Experiment durchführen. Einfach, einfachgit checkout -b experiment
und Sie sind schnell an einem sicheren Ort, um Dinge zu zerbrechen.Was ist anders zwischen git und svn?
git ist ein verteiltes Versionskontrollsystem . svn ist nicht. Auch das Verzweigen (oben erwähnt) ist in Git einfacher.
Zum Markieren weiß ich nicht, ob es "One True Way" gibt (gibt es jemals?), Aber erkunde einfach den
git tag
Befehl. Eine großartige Sache bei git ist, wie einfach es ist, ein Duplikat Ihres Repos auf Ihrem lokalen Computer (oder wo auch immer) zu klonen und zu tun, was Sie wollen, und zu sehen, was passiert. Wenn Sie etwas vermasseln, löschen Sie einfach das Verzeichnis. Sie können alsogit tag
in einem Testverzeichnis experimentieren und sehen, was Ihnen gefällt.quelle