Ich klone ein Projektarchiv, das zuerst mit git-p4 erstellt wurde. git-p4 verwendet einen "remotes/p4/master"-Zweig, den ich gerne verfolgen möchte. Wie kann ich Git, das dieses Projektarchiv klont, anweisen, auch remotes/p4/master zu verfolgen? Auf diese Weise wäre ich in der Lage, "origin/remotes/p4/master" oder so etwas auszuchecken.
Antwort
Zu viele Anzeigen?Sie können die Abrufeigenschaften so anpassen, dass diese Referenzen ebenfalls gespiegelt werden, allerdings nicht als Teil eines Standardklons.
Also eine Sequenz wie:
git clone ~/p4/git/services/info-service.git
cd info-service
git config --add remote.origin.fetch +refs/remotes/p4/*:refs/remotes/origin/p4/*
git fetch origin
Damit wird Folgendes abgerufen refs/remotes/p4/release/1.1
zum Beispiel in info-service.git
zu sein refs/remotes/origin/p4/release/1.1
in Ihrem Klon, und Sie könnten einen darauf basierenden Zweig erstellen mit git checkout -b r1.1-fixes origin/p4/release/1.1
In meinen Perforce-Replika-Repos erstelle ich tatsächliche Zweige, um alle p4-Remote-Zweige zu spiegeln, vor allem, um die oben genannten Schritte zu vermeiden. Das gibt mir auch die Möglichkeit, die Benennung von p4-Pfadpräfixen zu Git-Zweignamen zu korrigieren (also p4/main
wird master
, p4/release/1.1
wird r1.1
usw.). Ich verwende meine eigene p4-zu-Git-Replikation, aber Sie könnten dasselbe tun, indem Sie die p4-Fernreferenzen mit git for-each-ref
und das Setzen lokaler Zweigstellen mit git update-ref
.