425 Stimmen

Wie kann ich nur einen Zweig eines entfernten Git-Repositorys abrufen?

Ich möchte einen einzelnen Zweig (nicht alle) eines entfernten Repositorys erfassen und einen lokalen Verfolgungszweig erstellen, der weitere Aktualisierungen dieses entfernten Zweigs verfolgen kann. Die anderen Zweige des entfernten Repositorys sind sehr groß, so dass ich sie nicht abrufen möchte. Wie kann ich das tun?

3 Stimmen

Ein Git-Klon holt sich das gesamte Repository, einschließlich aller Zweige. Sie können flache Kopien erstellen, aber dabei können Sie nur die Anzahl der Revisionen angeben, nicht aber die Zweige.

2 Stimmen

Git clone nimmt nur master. git fetch nimmt alle Zweige

0 Stimmen

"Ein Git-Klon holt das gesamte Repository, einschließlich aller Zweige" - das stimmt nicht unbedingt, wenn Sie genau einen Zweig holen, holt Git alle Repository-Objekte, die Vorfahren des Zweigs sind. Viele andere Zweige bleiben möglicherweise unberücksichtigt. Repositorys mit vielen Zweigen (Tausende) können die Latenzzeit verbessern, indem nur bestimmte Zweige geholt werden.

12voto

ToJo Punkte 1019

Lassen Sie mich meine zwei Pence dazugeben MrMadsen's Antwort :

  1. git fetch <remote_name_or_url> <branch_name>
  2. git checkout FETCH_HEAD -B <branch_name>

Der Hauptvorteil dieser beiden Linien gegenüber HerrMadsen's Vorschlag ist, dass es auch dann funktioniert, wenn der Zweig bereits lokal existiert.

1 Stimmen

Es hat funktioniert! Ich bekam immer Cannot update paths and switch to branch at the same time. Fehler mit anderen auf dieser Seite vorgeschlagenen Ansätzen.

6voto

liy Punkte 101

Meine Umgehungen:

git fetch --depth=1
git checkout <branch_name>

wenn Sie keinen lokalen Klon haben:

git clone --depth 1 -b <branch_name> <repo_url>

5voto

scottalan Punkte 1494

Git-Version: 2.74

So mache ich es:

git remote add [REMOTE-NAME] [REMOTE-URL]
git fetch [REMOTE-NAME] -- [BRANCH]

5voto

Karthikeyan Mohan Punkte 118

Git-Version 2.16.1.Windows.4

Ich mache nur eine git fetch remoteRepositoryName branchName (eg: git fetch origin my_local_branch) ist ausreichend. Der Abruf wird durchgeführt und ein neuer lokaler Zweig mit dem gleichen Namen wird erstellt und die Verfolgung wird auf den entfernten Zweig gesetzt.

Dann führen Sie git checkout branchName

3 Stimmen

Der Zweig erscheint nicht unter git branch bis Sie zur Kasse gebeten werden

0 Stimmen

Sie sollten in der Lage sein, den entfernten Zweig zu sehen, wenn Sie eine git branch -a (alle Branchen)

5voto

Francis Bacon Punkte 2754

Dieser Weg funktioniert für mich.

holt den entfernten Zweig des Zielzweigs:

git fetch origin branch-name

überprüfen Sie den Zielzweig:

git checkout -b branch-name origin/branch-name

Hier habe ich versucht, die Version 20.10.08 erfolgreich zu holen.

name:directory zgong$ git fetch release-20.10.04 release-20.10.04
fatal: 'release-20.10.04' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
WM-C02WM0T3HTD8:vdca_android_20_10_04_stable zgong$ git fetch origin release-20.10.04
From ssh://stash.trusted.visa.com:7999/vdcbc3a/vmcp-android-mobile-app
 * branch                  release-20.10.04 -> FETCH_HEAD
WM-C02WM0T3HTD8:vdca_android_20_10_04_stable zgong$ git checkout -b release-20.10.08 origin/release-20.10.08
fatal: 'origin/release-20.10.08' is not a commit and a branch 'release-20.10.08' cannot be created from it
WM-C02WM0T3HTD8:vdca_android_20_10_04_stable zgong$ git fetch origin release-20.10.08
remote: Counting objects: 637, done.
remote: Compressing objects: 100% (320/320), done.
remote: Total 637 (delta 303), reused 465 (delta 202)
Receiving objects: 100% (637/637), 312.26 KiB | 262.00 KiB/s, done.
Resolving deltas: 100% (303/303), done.
From ssh://stash.trusted.visa.com:7999/vdcbc3a/vmcp-android-mobile-app
 * branch                  release-20.10.08 -> FETCH_HEAD
 * [new branch]            release-20.10.08 -> origin/release-20.10.08
WM-C02WM0T3HTD8:vdca_android_20_10_04_stable zgong$ git checkout -b release-20.10.08 origin/release-20.10.08
M   VMCP/fmcore_android
M   VMCP/foundation_android
M   VMCP/mep_3ds_android
M   VMCP/mep_login_android
M   VMCP/mep_provisioning_and
Branch 'release-20.10.08' set up to track remote branch 'release-20.10.08' from 'origin'.
Switched to a new branch 'release-20.10.08'

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X