Mit normalen git checkout
funktioniert der Befehl genau so, wie ich es erwarten würde. Hier sind die Anwendungsfälle ich mit dem gleichen Stück Code, damit ich versuche:Wie kann man einen entfernten Zweig auschecken, ohne zu wissen, ob er lokal in JGit existiert?
1) git checkout branchname
wo branchname
nicht lokal vorhanden ist, aber tut auf Remote-
2) git checkout branchname
wo branchname
bereits lokal vorhanden
3) git checkout commitid
Für Zusammenhang hat das Repository vorher geklont worden, wie folgt:
repo = Git.cloneRepository()
.setCloneSubmodules(true)
.setURI(repoUrl)
.setDirectory(createTempDir())
.setCloneAllBranches(true)
.call();
Der standardmäßige JGit checkout-Befehl erstellt die Verzweigungen nicht automatisch lokal. Das folgende Stück Code funktioniert für Szenarien 2 und 3:
repo.checkout()
.setName(branchOrCommitId)
.call();
Mit der Änderung einen neuen Zweig erstellen es funktioniert nur mit Szenario 1:
repo.checkout()
.setCreateBranch(true)
.setName(branchOrCommitId)
.call();
Gibt es eine saubere Lösung für dieses Problem, das ich kann verwenden, unter Berücksichtigung der Standard-Git CLI bietet bereits die automatische Funktionalität in dem Befehl, den ich suche?
Ich habe genau das gleiche Anforderung. Was hast du am Ende gemacht? –