2013-05-30 9 views
11

Wenn ich auf einem lokalen Zweig bin, die nicht Tracking jede Remote-Zweig ist und ich gebe den BefehlStandard-Fernbedienung für git holen

git fetch 

Da habe ich definiert mehrere Fernbedienungen in $GIT_DIR/config, von dem Fern das ist holen fertig?

Ich habe versucht, aus der man page herauszufinden, aber dieser Punkt ist mir unklar.

Zusätzlich: Wie kann ich diese Standard-Fernbedienung ändern, ohne die lokale Zweigverfolgung durchzuführen?

Antwort

2

Es wird von der Herkunft Remote abgerufen. Dies ist die erste Fernbedienung, auf der Sie den Befehl GIT clone ausgeführt haben.

+1

Sie haben vielleicht nie einen 'git-Klon' im Repo ausgeführt, aber nach dem Fakt, dass Sie Remotes hinzugefügt haben ('Ursprung' oder anders genannt). – mwfearnley

15

Wenn Sie mehrere Remote-Repositorys haben und keinen Namen für den Remote-Repository angeben, wird standardmäßig origin verwendet. Wenn es keine Remote-Repository Herkunft benannt, dann wird es Fehler aus sagen

fatal: No remote repository specified. Please, specify either a URL or a 
remote name from which new revisions should be fetched. 

Zusätzlich: Wie kann ich diese Standard-Remote-Tracking, ohne dass die lokale Niederlassung ändern?

Sie können diesen Repository-Namen in "Ursprung" umbenennen, um ihn als Standard festzulegen.

Vorsicht: Dies funktioniert nicht, wenn der aktuelle Zweig bereits einen Upstream auf einer anderen Fernbedienung angegeben hat. Von git help fetch: "Wenn keine Remote angegeben ist, wird standardmäßig die Ursprungs-Remote verwendet, es sei denn, es ist ein Upstream-Zweig für den aktuellen Zweig konfiguriert." In diesem Fall können Sie die vorgelagerten Verzweigungen so ändern, dass sie origin verwenden, indem Sie die Felder remote für die in .git/config konfigurierten Verzweigungen bearbeiten.

+2

Gibt es keine Alternative zum Ändern des Namens der Fernbedienung zum Ursprung? –

+5

Es ist ein wenig unflexibel, wenn git "Ursprung" als Standard-Fernbedienung annimmt. Ich benenne meine Fernbedienungen immer so um, dass sie aussagekräftiger sind wie "github", "internal" usw. Und ja, wenn "origin" remote nicht existiert, wird git schreien "fatal: Kein Remote-Repository angegeben." – Devy

+1

@KlasMellbourn: Sie können die Fernbedienung so einstellen, dass Ihre Verfolgungsverzweigungen eine andere Fernbedienung als "Herkunft" verwenden, und diese Fernbedienung wird dann standardmäßig verwendet, wenn Sie 'git fetch' mit einer dieser ausgecheckten Abzweigungen ausführen. – ntc2

2

In Ihrem Projektordner wird beim Erstellen von git im ersten Schritt der .git-Ordner erstellt.

Suchen Sie in diesem Ordner nach einer Datei namens config, die alle Informationen zum Zweig enthält. Ursprung wird als Standard verwendet.

[remote "origin"] 
     fetch = +refs/heads/*:refs/remotes/origin/* 
     url = [email protected]:project.git 

So wird der Code aus der hier aufgeführten URL abgerufen.