Das Problem entsteht, wenn Sie ein neues Repository auf GitHub erstellen möchten, um ein vorhandenes Repository zu enthalten. Betrachten Sie Folgendes:
-
Sie erstellen ein lokales Repository mit git init
und committen einige Arbeiten:
[master] A---B---C
-
Sie erstellen einen entfernten Speicherort dafür auf GitHub, lassen GitHub einige Dateien erstellen:
[master] Z
In diesem Fall erstellt GitHub einen Commit Z
, in dem die Dateien README.md
und .gitignore
committet sind.
-
Sie führen git push -u origin master
aus, um Ihre lokalen Änderungen auf GitHub hochzuladen, aber es schlägt fehl.
Da Ihr lokales Kopie den Commit Z
nicht hat, kann Git Ihren Push nicht als Fast-Forward-Update akzeptieren.
Sie werden jetzt gezwungen, etwas Ähnliches zu tun
- holen Sie
Z
, rebase Ihre lokale Kopie darauf und pushen Sie erneut, oder
- erzwingen Sie den Push, was dazu führen wird, dass dieser Commit auf GitHub verloren geht.
Es ist nichts falsch daran, .gitignore
und README.md
im Assistenten für neue Repositories zu erstellen. In diesem Fall werden Sie
- erstellen Sie das GitHub-Repository, lassen Sie GitHub diese beiden Dateien erstellen, und dann
klonen
Sie dieses Repository auf Ihren lokalen Rechner.
Sie werden eine lokale Kopie erhalten, die diese Dateien enthält.