
jsvisa
habe ich gerade entdeckt git checkout --orphan
, aber ich weiß nicht, wie man es benutzt. Seine Hilfeseite sagt, dass es eine erstellt neuer nicht übergeordneter Zweig.
In dem master
Zweig, ich habe versucht git checkout --orphan br
nur um zu sehen, dass sich die Dateien im Arbeitsverzeichnis in „Zu übertragende Änderungen“ ändern, und die git log
Sprichwort fatal: bad default revision 'HEAD'
.
Was ist also der Vorteil der Verwendung git checkout --orphan
?

JB.
Die Kernnutzung für git checkout --orphan
ist es, eine Verzweigung in a zu erstellen git init
-ähnlicher Zustand in einem nicht neuen Repository.
Ohne diese Fähigkeit alle Ihrer Git-Zweige hätten einen gemeinsamen Vorfahren, Ihren anfänglichen Commit. Dies ist ein häufiger Fall, aber keineswegs der einzige. Mit Git können Sie beispielsweise mehrere unabhängige Projekte als unterschiedliche Zweige in einem einzigen Repository verfolgen.
Aus diesem Grund werden Ihre Dateien als „zu übertragende Änderungen“ gemeldet: in a git init
state, das erste Commit wurde noch nicht erstellt, also sind alle Dateien neu in git.
Es wird z GitHub-Seiten, die die Website eines Repos innerhalb des Repos, aber in einem separaten Zweig speichert. Es gibt keinen Grund, etwas anderes als den Verlauf der Website in diesem Zweig zu speichern.
Wir sind von einem privaten auf ein öffentliches Repo umgezogen und wollten aufgrund sensibler Commit-Informationen einen Branch als zurücksetzen new
und schieben Sie es als leeren Zweig. Hier ist ein typischer Workflow dafür:
Wie lösche ich den gesamten Commit-Verlauf in Github?

Atanas Sarijski
Ein weiterer Anwendungsfall, in dem dies nützlich sein kann, sind Build-Maschinen oder virtuelle Instanzen zum Testen, die bestimmte .git-Ordnereinstellungen erfordern (z. B. Benutzer, Remote-URL) und den gesamten Verlauf aufgrund von Platzbeschränkungen verwerfen. Dies ist häufig bei Legacy-Setups der Fall, die keine Container wie Docker verwenden.
Dies würde normalerweise für dedizierte Bereitstellungszweige durchgeführt werden, anstatt sich mit dem Master zu befassen. Sobald der neue Branch auf remote gepusht wurde, führe auf der Instanz Folgendes aus:
git clone [remote-url] --branch [name] --single-branch [folder]
Flacher Klon wäre eine bessere Option, wenn Sie direkt mit dem Master arbeiten (nicht empfohlen):
git clone -–depth [depth] [remote-url]
9938500cookie-checkWofür wird `git checkout –orphan` verwendet?yes