Warum ist es nicht ein Begehen und eine Verzweigung kann daraus erstellt werden?
Ich muss arbeiten mit einer komplizierten Konfiguration der repositories. Ich habe 5 von Ihnen:
- Eine remote-central-repository auf Rechner 1.
- Meinem lokalen repository auf meinem notebook (Maschine 2).
- Ein bare-repository auf der Maschine 3.
- Ein repository auf der Maschine 3.
- Ein repository auf Rechner 4, wo wir code-review.
So, in meinem Verständnis, dass es funktioniert auf diese Weise:
- Auf meinem laptop (Maschine 2) ich clone /pull aus dem zentralen repository befindet sich auf Maschine 1.
- Ich drücke den lokalen repo an der Maschine 3 (mit dem bare-repository als "intermediate").
Nun habe ich einige änderungen an der Maschine 3 und ich wollen, schieben Sie diese änderungen an der Maschine 4. Hier sind die Anweisungen, die ich brauche, um zu Folgen:
- Auf Maschine 3 führen Sie alle arbeiten, die in den test-branch, commit.
- Push auf Ihre nackten repo auf Rechner 3: git push origin test-branch
- Auf Ihrem laptop: fetch commits aus der Maschine-3 repo: git fetch machine3
- Wenden Sie sich an Ihre Filiale von Maschine 3: git checkout -b-test-branch-Maschine-3/test-branch
- Fetch commits aus der Maschine-4: git fetch origin
- git rebase origin/master
- git push origin HEAD:refs/for/master
Habe ich Probleme mit Schritt 4. Ich bekomme die folgende Fehlermeldung:
fatal: 'machine3/test-branch' is not a commit and a branch 'test-branch' cannot be created from it
HINZUGEFÜGT
Wenn ich ausführen
git rev-parse machine3/test-branch
Auf meinem laptop (Maschine 2) ich bekomme:
machine3/test-branch
fatal: ambiguous argument 'machine3/test-branch': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
- Die repo von Maschine 3 ist kahl, was bedeutet, dass es keine arbeiten Baum.
git checkout -b test-branch machine-3/test-branch
braucht ein funktionierendes Baum, so schlägt es fehl. Außerdem müssen Sie prüfen, obmachine3/test-branch
vorhanden ist. mijingo.com/blog/what-is-the-working-tree-in-git - Auf der Maschine 3 ich habe 2 repos (eine leer und die andere ist nicht-bare). Ich habe die "test-Filiale" in der nicht-bare-repo auf der Maschine 3.
- Leider habe ich es verpasst. Was bedeutet
git rev-parse machine3/test-branch
echo? - Was git sollte ich ihn ausführen?
- In der repo, wo Sie führen Sie Schritt 4.
- Ich aktualisiert meine Frage mit der Antwort auf deine Frage.
- Lassen Sie uns weiter, diese Diskussion im chat.
InformationsquelleAutor Roman | 2018-03-15
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für diejenigen, die gefunden dieses auf der Suche nach einer Antwort auf
fatal: 'origin/branch' is not a commit and a branch 'branch' cannot be created from it
Sie können auch versuchengit fetch
ersten.Wenn Sie
git checkout -b local-branch-name origin/different-branch-name
ohnefetch
ing zuerst, dass man über diesen Fehler.Auch, wenn Sie mehrere Fernbedienungen (z.B.
origin
, dannbuildserver
,joespc
usw.), müssen Sie die Fernbedienung aus, die Sie versuchen zu Filiale in Ihrergit fetch
- Befehl, wie Sie standardmäßig auf Ihrer ersten Fernbedienung, in der Regelorigin
(d.h.git fetch origin
). So zum Beispielgit fetch buildserver
holt alle Zweige, die aus derbuildserver
Fernbedienung.git fetch origin
git fetch origin master
nicht helfen, ich musstegit fetch origin refs/heads/master:refs/remotes/origin/master
Die Frage ist Komplex /Konvolut, die Antwort ist einfach. Es war ein Konflikt zwischen dem alias und machine3. Der alias für die Fernbedienung, die verwendet wurde, war nicht für machine3. Die machine3 hatte ein anderer alias.