hab 'fatal: branch 'master' nicht vorhanden' in git
mit git
für eine Weile, es ist sehr mächtig und schön..
aber habe auch einige verwirrt über:
sollte es unter branch master nachdem ich init ein git-repo, nicht wahr?
aber git branch -a
, habe ich nichts man.
und ich habe fatal: branch 'master' does not exist
wenn ich versuche die set-upstream für meine Filiale.
users@debian MINGW64 ~/Desktop/taste
$ git init
Initialized empty Git repository in C:/Users/users/Desktop/taste/.git/
users@debian MINGW64 ~/Desktop/taste (master)
$ git remote add origin [email protected]:greedev/Test.git
users@debian MINGW64 ~/Desktop/taste (master)
$ git branch -u origin/master
fatal: branch 'master' does not exist
users@debian MINGW64 ~/Desktop/taste (master)
$ git branch -a
users@debian MINGW64 ~/Desktop/taste (master)
$ git fetch
The authenticity of host 'gitee.com (120.55.226.24)' can't be established.
ECDSA key fingerprint is SHA256:FQGC9Kn/eye1W8icdBgrQp+KkGYoFgbVr17bmjey0Wc.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'gitee.com,120.55.226.24' (ECDSA) to the list of know n hosts.
remote: Counting objects: 7, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 7 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (7/7), done.
From gitee.com:greedev/Test
* [new branch] master -> origin/master
users@debian MINGW64 ~/Desktop/taste (master)
$ git branch -a
remotes/origin/master
users@debian MINGW64 ~/Desktop/taste (master)
$ git branch -u origin/master
fatal: branch 'master' does not exist
InformationsquelleAutor Zander Wong | 2017-10-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
TL;DR
Können Sie
git checkout master
an dieser Stelle.Längere Beschreibung (aber noch nicht so lang)
Tun Sie dies auf die harte Weise.
In die Zukunft, statt:
können Sie einfach starten Sie:
da die sechs oben genannten Befehle sind ziemlich viel, was
git clone
tut.Nachdem die ersten drei Schritte—die Erstellung einer neuen, völlig leeren repository—Sie haben ein repository, das in einem eigenartigen Zustand: er hat keine begeht, so hat Sie keine Filialen. Zur gleichen Zeit, es hat haben eine aktuellen Zweig, die
master
.In anderen Worten, der aktuelle Zweig ist ein Zweig, der nicht vorhanden.
Dieser Zustand ist ungewöhnlich, aber normal. Wenn Sie
git checkout --orphan newbranch
setzen Sie Ihr Git-repository in diesem gleichen Zustand:1 auf einem ast, nicht vorhanden ist. Der Zweig angelegt wird, sobald es eine commit-hash zu speichern, unter der Zweig-name.Wann immer Sie ausführen
git checkout <name>
und es gibt keinen Zweig namens<name>
, Git überprüft, um zu sehen, ob es genau eine remote-tracking-branch wieorigin/<name>
. Wenn dem so ist, erstellt Git einen neue Zweig namens<name>
dass die Punkte auf den gleichen commit wieorigin/<name>
und das hatorigin/<name>
als seine upstream.Da dieser Letzte Schritt—
git checkout master
wennmaster
eigentlich nicht vorhanden—ist der Letzte Schritt dergit clone
,git clone
auch einen neuen branch erzeugenmaster
dass Spuren, die auf dem remote-tracking-branchorigin/master
.1Beachten Sie, dass Sie behalten den aktuellen index /staging-Bereich Inhalt. Dies gilt auch für die neue leere repository als gut, aber da es ein neues, leeres repository index /staging-area ist auch leer, und "Halteposition" die leere Menge" nicht viel zu fühlen wie retainment.
git clone
ist zu tun, was die6_step
tut. richtig? Gotcha.Dabei geht es um alle sechs dieser Schritte (obwohl es kann überspringen Sie die
mkdir
und verwenden Sie ein vorhandenes leeres Verzeichnis, wenn Sie sagen, es zu tun). Es gibt zusätzlichegit clone
Argumente ändern Sie einige der Schritte, wie gewünscht, und dergit checkout
am Ende nicht immer fürmaster
, aber das ist das übliche Muster.InformationsquelleAutor torek
Nachdem Sie laufen
git init
, diemaster
Sie sehen, ist nicht vollständig erstellt. Es existiert nicht, da es nicht zu spitz zu jedem commit noch. Ich habe einmal gelesen, dass es konzipiert wurde. Aber ich denke, es ist eine rätselhafte Fehler. Wenn Siegit branch
ist, gibt es nichts.Nachdem Sie laufen
git fetch
eine folgendegit checkout master
macht den job. Es ist äquivalent zu:git clone
da ist es unnötig verwirrend, da offensichtlich OP war verwirrt durch
master
. Vielleicht ein schlecht konzipiertes feature, wenn nicht ein bug.git clone
ist nicht eine generische Lösung. Es gibt Fälle, wo müssen wir hinzufügen einer neuen Fernbedienung in ein vorhandenes repository zu, Holen aus der Fernbedienung und dann Auschecken einen neuen Zweig mit seinen vorgelagerten.thx a lot man, eigentlich, was ich wissen möchte ist
After you run git init, the master you see is not completely created. It doesn't exist as it hasn't pointed to any commit yet.
U wirklich gab mir eine große hand.O(∩_∩)O..Die Tatsache, dass Sie nicht wissen, warum es ist wie es ist, macht es nicht "unnötig". Ihre Abneigung für ein design, nicht machen es zu einem Fehler. Die Tatsache, dass ein design manchmal verwirrt den Benutzer Dosis nicht machen es zu einem Fehler. Für
clone
, war mir ziemlich klar darüber, Wann es anwendbar ist und sicherlich nie gesagt, es war universal; jedoch, wenn Sie hinzufügen ein remote -, ein vorhandenes repo, dann ist es kein völlig neues repo mit keinen Zweig und hat also nichts mit diesem zu tun qusetion. Vielleicht sollten Sie aufhören, sich unnötig zu streiten.von Ihnen positiv bewertet werden und vielen Dank für Ihr Kommentar. Wie ich beobachtet habe, sind Sie ein guter Beitrag in Stackoverflow. Aber, werden Sie jetzt Lehre mich, wie ich fühlen muss, über ein Werkzeug, das ich habe mit jeden Tag? Ich gab eine Lösung basierend auf der OP - Schritte und ich habe nie beurteilt, dass
git-clone
war eine schlechte Lösung. Aufhören, überheblich bitte.InformationsquelleAutor ElpieKay
Sind Sie wahrscheinlich auf der Suche nach
git checkout master
und auch einige tutorials.InformationsquelleAutor Pbd