Ich bin ein Git-Neuling und lese immer wieder über einen "Master" -Zweig. Ist "Meister" nur ein herkömmlicher Name, den die Leute benutzten, oder hat er eine besondere Bedeutung HEAD
?
Wenn ich git branch
auf dem Klon arbeite, den ich habe, sehe ich nur einen einzigen Zweig - den, auf dem ich bin. Überhaupt kein "Meister". Wenn ich git checkout master
tippe (wie ich in vielen Tutorials oder Anleitungen sehe), bekomme ich
error: pathspec 'master' did not match any file(s) known to git.
Ich bin nur verwirrt darüber, warum mein Klon keinen hat master
, von dem jeder zu implizieren scheint, dass er immer existiert.
git add .
,git commit -m "Test"
, danngit push -u origin master
.git ls-remote origin master
zeigt nichts.Verwenden Sie den folgenden Befehl, um einen Zweig auszuchecken, der lokal nicht vorhanden ist, sich jedoch im Remote-Repo befindet:
quelle
fatal: Cannot update paths and switch to branch 'master' at the same time.
master
ist nur der Name eines Zweigs, es ist nichts Magisches daran, außer dass es standardmäßig erstellt wird, wenn ein neues Repository erstellt wird.Sie können es wieder mit hinzufügen
git checkout -b master
.quelle
git checkout -b master
Fügt einfach einen neuen Zweig von dem aktuellen für mich hinzu.git checkout -b master
erstellt einenmaster
Zweig aus dem, was auch immerHEAD
ist. Wenn Sie sich also in einem anderen Zweig befinden, wird einmaster
Zweig daraus erstellt. Außer wenn Sie bereits einenmaster
Zweig haben (was Sie tun werden, es sei denn, Sie haben ihn gelöscht oder nie festgelegt). Wenn Sie bereits einemaster
Verzweigung haben, gibt dieser Befehl nur einen Fehler aus.master
ist nur ein Zweig, mit dem gelöscht werden kanngit branch -d master
. Obwohl Git Sie vor dem Löschen des Zweigs schützt, in dem Sie sich gerade befinden, gibt es nichts Besonderes, das denmaster
Zweig schützt . Genauer gesagt ist es schwierig zu sagen, wie Sie es gemacht haben. Vielleicht verwenden Sie denhistory
Befehl Ihrer Shell , um einen Blick darauf zu werfen?git checkout -b master
funktioniert nur, wenn HEAD auf origin / master eingestellt ist. In jedem anderen Fall (z. B. bei "Entwickeln")git checkout -b master
wird ein Zweig mit dem Namen "Master" erstellt, der auf der aktuellen HEAD-Position basiert (z. B. bei "Entwickeln"). Sie müssen auch angeben, welcher Zweig der Bast für den neuen sein wird. @ Bunyk hat die richtige Antwort auf diesen Thread: stackoverflow.com/a/21330943/287109Ich hatte tatsächlich das gleiche Problem mit einem völlig neuen Repository. Ich hatte sogar versucht, eine mit zu
git checkout -b master
erstellen, aber es würde den Zweig nicht erstellen. Dann wurde mir klar, dass Git meinen Hauptzweig erstellt hat, wenn ich einige Änderungen vorgenommen und sie festgeschrieben habe.quelle
In meinem Fall war es eine Entwicklung Zweig , aber kein Master - Zweig. Daher habe ich das Repository geklont und den neu erstellten HEAD auf den vorhandenen Zweig verwiesen. Dann habe ich die fehlende Master - Zweig und Aktualisierung HEAD Punkt auf den neuen Master - Zweig.
quelle
Wenn es sich um ein neues Repo handelt, das Sie geklont haben, ist es möglicherweise noch leer. In diesem Fall:
git push -u origin master
sollte es wahrscheinlich klären.
(Habe in meinem Fall nicht sicher, ob dies das gleiche Problem ist, dachte, ich sollte dies nur für den Fall posten. Könnte anderen helfen.)
quelle
Ich bin auf dasselbe Problem gestoßen und habe das Problem herausgefunden. Wenn Sie ein Repository initialisieren, gibt es eigentlich keine Zweige. Wenn Sie ein Projekt starten, laufen Sie
git add .
und danngit commit
der Hauptzweig erstellt.Ohne etwas einzuchecken haben Sie keinen Hauptzweig. In diesem Fall müssen Sie die Schritte befolgen, die andere Personen hier vorgeschlagen haben.
quelle
Es scheint, dass mindestens ein lokales Commit in der Hauptniederlassung vorhanden sein muss, um Folgendes zu tun:
Wenn Sie dies getan haben
git init .
und danngit remote add origin ...
müssen Sie noch Folgendes tun:quelle