Ich habe einen privaten Server, auf dem git 1.7 ausgeführt wird
git init
In einem Ordner wird kein Hauptzweig erstellt. Ursache, wenn ich tue:
git branch
es listet nichts auf. Wenn ich es tue:
git --bare init
es erstellt die Dateien. Wenn ich tippe
git branch master
es sagt:
fatal: Not a valid object name: 'master'.
git branch newbranch
Antworten:
Dies ist wahr und erwartetes Verhalten. Git erstellt erst dann einen
master
Zweig, wenn Sie etwas festschreiben.Ein Nicht-Bare-Benutzer
git init
erstellt dieselben Dateien auch in einem versteckten.git
Verzeichnis im Stammverzeichnis Ihres Projekts.Das ist wieder richtiges Verhalten. Bis zum Festschreiben gibt es keinen Hauptzweig.
Sie haben keine Frage gestellt, aber ich werde die Frage beantworten, von der ich angenommen habe, dass Sie sie stellen möchten. Fügen Sie Ihrem Verzeichnis eine oder mehrere Dateien hinzu
git add
, um ein Commit vorzubereiten. Danngit commit
erstellen Sie Ihr erstes Commit und Ihrenmaster
Zweig.quelle
.git/HEAD
, und ändernrefs/heads/master
zurefs/heads/main
, aber es keinen Grund , überhaupt zu tun. Benennen Sie Ihren Zweig einfach nach dem ersten Commit um.git checkout -b <branchname>
HEAD ändern - Sie müssen die Datei nicht bearbeiten.Git erstellt einen Master-Zweig, sobald Sie Ihr erstes Commit durchgeführt haben. Es gibt nichts, wofür eine Verzweigung vorhanden wäre, wenn sich kein Code im Repository befindet.
quelle
Wenn Sie ein "nacktes Repository" erstellen, werden Sie zunächst keine Arbeit damit ausführen (es enthält keine Arbeitskopie, daher ist der
git branch
Befehl nicht nützlich).Der Grund, warum Sie
master
auch nach dem Ausführen eines Zweigs keinen Zweig haben würden,git init
ist, dass es keine Commits gibt: Wenn Sie Ihren ersten Commit erstellen, haben Sie dann einenmaster
Zweig.quelle
git clone
damit sparen, dass Sie einegit init
auf der Empfängerseite ausführen müssen .git checkout
Aktion ausführen, wenn das WC den Inhalt des.git
Verzeichnisses widerspiegeln soll (in das Sie verschoben haben).Sie müssen mindestens einmal einen Commit für den Master durchführen, bevor Sie einen neuen Zweig erstellen.
quelle