ab. Ich möchte den Quellcode aus dem master-next-Zweig Verwenden von git wie im Xilinx-Wiki beschrieben.
Ich habe Folgendes versucht:
#git clone git://github.com/Xilinx/u-boot-xlnx/tree/master-next.git Initialized empty Git repository in /home/Hannan/master-next/.git/ fatal: remote error: Xilinx/u-boot-xlnx/tree/master-next is not a valid repository name Email [email protected] for help
Auch dies ist fehlgeschlagen:
# git clone git://github.com/Xilinx/tree/master-next/u-boot-xlnx.git Initialized empty Git repository in /home/Hannan/u-boot-xlnx/.git/ fatal: remote error: Xilinx/tree/master-next/u-boot-xlnx is not a valid repository name Email [email protected] for help
Der Befehl lautet:
git clone git://github.com/Xilinx/u-boot-xlnx.git
Aber woher weiß ich, dass dies tatsächlich den master-next-Zweig und nicht den Hauptzweig ? Wie rufe ich einen bestimmten Zweig mit git korrekt ab?
Ich verwende RHEL 6, auf das über PuTTY zugegriffen wird.
Antwort
Wie die Fehlermeldung zeigt, erwartet git clone
ein Git-Repository. Sie können den Namen eines Zweigs im Pfad wie folgt „nicht“ hinzufügen. Siehe Zweige in git .
Sie können a klonen einzelner Zweig (und es ist Geschichte): git clone <url> --branch <branch> --single-branch
Siehe git help clone
.
Mit dem von Ihnen ausgeführten Klonbefehl haben Sie jedoch eine Kopie des gesamten Repositorys erhalten. Sie können die vorhandenen Zweige mit git branch
und weitere Details dazu mit git show-branch
.
Wechseln Sie mit git checkout branch-name
zu dem gewünschten Zweig.
Die ersten Kapitel von Pro Git -Buch (online verfügbar) enthält weitere Informationen zu den grundlegenden Befehlen.
Kommentare
- " Der von Ihnen ausgeführte Klonbefehl gab Ihnen eine Kopie des gesamten Repositorys ". Das gesamte Repository bedeutet, dass beide Zweige zusammengeführt wurden?
- Nein, das sind sie nicht zusammengeführt. Ein Zweig in git ist keine Kopie des gesamten Verzeichnisses, wie hier erklärt .
- Was ich getan habe, ist Folgendes: " Git-Klon -b Master-next github.com/Xilinx/u-boot-xlnx.git " ist das nicht korrekt?
- Sie haben ' keinen Klon mehr benötigt. Der Befehl, den Sie in Ihrer Frage angezeigt haben, gab Ihnen das Repository mit allen Zweigen. Das ist aber auch richtig. ' entspricht
git checkout master-next
nach dem Klonen.
Antwort
Dieser Befehl sollte funktionieren:
$ git fetch origin [branch]
Der obige Befehl ruft nur Metadaten aus dem Remote-Repository ab, nicht jedoch Quellen zusammenführen.
Wenn Sie die Quellen abrufen und zusammenführen möchten, lautet der Befehl:
$ git pull origin [branch]
Seien Sie vorsichtig mit dem Zweig, in dem Sie führen den Zusammenführungsbefehl aus. Hier werden die Quellen zusammengeführt.
Kommentare
- Ihre Antwort ist technisch korrekt, aber ich denke, sie könnte von einer grammatikalischen Überprüfung / erneuten Überprüfung profitieren Schreiben.
- das funktioniert gut thx
Antwort
Git-Repositorys enthalten alle Zweige ( aber komprimiert und nur Unterschiede daher selten ein Größenproblem).
Daher können Sie das gesamte Projekt so klonen, wie Sie es erfolgreich gemacht haben. Dies ist eine Standardmethode zum Abrufen eines Repositorys, auch wenn Sie nur an einem Zweig interessiert sind.
Die .git-Struktur enthält dann alle alle Zweige, die in diesem Repository ausgeführt wurden.
Um einen bestimmten Zweig zu verwenden, führen Sie git checkout [branch_name]
aus. Wenn der Zweig vorhanden ist, werden die Dateien lokal verfügbar gemacht (genau so die aktuellen Dateien in den Projektverzeichnissen).
git status
zeigt dann an, welcher Zweig der aktuelle Zweig ist, zum Beispiel:
Laut Leiaz kann man einen bestimmten Zweig klonen. In der Praxis habe ich dies noch nie getan oder gesehen, wie andere es verwendet haben. Weitere Untersuchungen haben ergeben, dass es relativ neu ist und in git 1.7.10 (April 2012) hinzugefügt wurde: Option „git clone learn –single-branch“, um das Klonen einzuschränken zu einem einzelnen Zweig (Überraschung!); Tags, die nicht in den Verlauf des Zweigs verweisen, werden nicht abgerufen. Beispiel:
git clone -b master-next --single-branch git://github.com/Xilinx/
Hier überprüfe ich für meine „Linker“ -Anwendung den Zweig v3.0.10
Kommentare
- Ich ' habe es auch nie getan, ich erinnerte mich, die Option gesehen zu haben. Ich denke, es ist ' s, die selten als zusätzliche Zweige verwendet werden, sind " billig " groß.