Die Antwort ist da, Git sagt dir, dass du zuerst holen sollst.
Wahrscheinlich hat jemand anderes bereits versucht, das zu meistern, und Ihr Commit ist im Rückstand. Daher müssen Sie das Änderungsset abrufen, zusammenführen und dann erneut pushen.
Wenn Sie dies nicht tun (oder noch schlimmer, wenn Sie es mithilfe der --force
Option erzwingen ), können Sie den Festschreibungsverlauf durcheinander bringen.
EDIT: Ich gehe näher auf den letzten Punkt ein, da ein Typ hier gerade den sehr schlechten Rat gegeben hat, die --force
Option zu verwenden.
Da es sich bei git um ein DVCS handelt, arbeiten idealerweise viele andere Entwickler an demselben Projekt wie Sie und verwenden dasselbe Repository (oder einen Teil davon). Wenn Sie mit Ihrem Änderungssatz zwangsweise überschreiben, stimmt Ihr Repository nicht mit dem anderer Personen überein, da "Sie den Verlauf neu geschrieben haben". Sie werden andere Menschen unglücklich machen und das Repository wird leiden. Wahrscheinlich wird auch ein Kätzchen auf der Welt weinen.
TL; DR
- Wenn Sie lösen möchten, holen Sie zuerst (und führen Sie dann zusammen).
- Wenn Sie hacken möchten, verwenden Sie die
--force
Option.
Sie haben jedoch nach dem ersteren gefragt. Gehen Sie für 1) immer, auch wenn Sie git immer selbst verwenden, weil es eine gute Praxis ist.
Versuchen:
Nachdem ich diesen Code geschrieben hatte, erhielt ich einen anderen Fehler: (nicht schneller Vorlauf)
Ich schreibe diesen Code:
Und mein Problem gelöst
quelle
git merge master
.Sie sollten verwenden
git pull
, das ist der Befehl do agit fetch
und als nächstes do thegit merge
.Wenn Sie einen
git push origin master --force
Befehl verwenden, können in Zukunft Probleme auftreten.quelle
Pull ist immer der richtige Ansatz, aber eine Ausnahme könnte sein, wenn Sie versuchen, ein Nicht-Git-Dateisystem in ein Github-Repository zu konvertieren. Dort müssten Sie das erste Commit erzwingen.
quelle
Versuchen Sie diesen git-Befehl
oder zu wenig Kraft
-f
git push origin master -f
quelle
Wie in der Fehlermeldung angegeben, müssen Sie "zuerst abrufen". Das hat bei mir funktioniert. Verwenden Sie den Befehl:
git fetch origin master
Führen Sie dann die folgenden Schritte aus, um sie zusammenzuführen:
git pull origin master
git add .
git commit -m 'your commit message'
git push origin master
quelle
Sie können den folgenden Befehl verwenden: Klonen Sie zuerst eine neue Kopie Ihres Repos mit dem Flag --mirror:
Folgen Sie dann den Codes entsprechend:
Hinzufügen eines vorhandenen Projekts zu GitHub über die Befehlszeile
Auch wenn das nicht funktioniert, können Sie einfach codieren:
oder
quelle
Befolgen Sie die unten angegebenen Schritte, da ich auch das gleiche Problem hatte:
(Um zu sehen, ob der lokale Zweig leicht mit dem entfernten Zweig zusammengeführt werden kann)
(Verschieben Sie nun den gesamten Inhalt des lokalen Git-Repositorys in Ihr Online-Repository.)
quelle
Es ist wahrscheinlich, dass jemand anderes (z. B. Ihr Kollege) Festschreibungen vorgenommen hat
origin/master
, die sich nicht in Ihrer lokalenmaster
Zweigstelle befinden, und Sie versuchen, einige Festschreibungen von Ihrer lokalen Zweigstelle auf den Server zu übertragen. In 99% der Fälleorigin
haben Sie zwei Möglichkeiten , vorausgesetzt, Sie möchten ihre Arbeit nicht löschen.2) Führen Sie die Änderungen in Ihrer lokalen Niederlassung zusammen und übertragen Sie das zusammengeführte Ergebnis.
git checkout master git pull # resolve conflicts here git push
(Beachten Sie, dass dies in diesem Fall im
git pull
Wesentlichen nur eingit fetch
und eingit merge
ist.)1) Starten Sie Ihre lokale Niederlassung neu, sodass es so aussieht, als ob Ihr Kollege zuerst seine Commits gemacht hat und Sie dann Ihre Commits gemacht haben. Dies hält den Commit-Verlauf schön und linear - und vermeidet ein "Merge-Commit". Wenn Sie jedoch Konflikte mit den Änderungen Ihres Kollegen haben, müssen Sie diese Konflikte im schlimmsten Fall möglicherweise für jedes Ihrer Commits (und nicht nur einmal) lösen. Im Wesentlichen ist dies für alle anderen schöner, aber mehr Aufwand für Sie.
git pull --rebase # resolve conflicts here git push
(Beachten Sie, dass dies
git pull --rebase
im Wesentlichen agit fetch
und a istgit rebase origin/master
.)quelle
Manchmal passiert es, wenn Sie Dateien duplizieren, die normalerweise README-artig sind.
quelle
Ihr Fehler könnte auf den Zusammenführungszweig zurückzuführen sein.
Folgen Sie einfach diesem:
Schritt 1:
git pull origin master
(Falls Sie eine Nachricht erhalten, ignorieren Sie diese)Schritt 2:
git add .
Schritt 3:
git commit -m 'your commit message'
Schritt 4:
git push origin master
quelle
Zuerst sollten Sie den
git pull
Befehl do a verwendengit fetch
und dann den Git-Merge ausführen.Wenn Sie einen
git push origin master --force
Befehl verwenden, können in Zukunft Probleme auftreten.quelle
Bitte versuchen Sie diesen Befehl, um es zu lösen -
Oder
quelle
Problem gelöst
Problem hatte ich
Ich hatte auch das gleiche Problem. Das Problem ist, dass Ihre
commits
in anderen Repositorys nicht erfolgreich waren,pushed
sodass Sie die folgenden Befehle ausführen müssen:git fetch origin master
Ausgabe:
From https://github.com/username/repo-name * branch master -> FETCH_HEAD
git merge origin master
Ausgabe:
Merge made by the 'recursive' strategy.
repo-name/ReadMe.md | 1 -
1 file changed, 1 deletion(-)
git push
Ausgabe:
Enumerating objects: 8, done. Counting objects: 100% (8/8), done. Delta compression using up to 8 threads Compressing objects: 100% (6/6), done. Writing objects: 100% (6/6), 1.00 KiB | 1.00 MiB/s, done. Total 6 (delta 2), reused 0 (delta 0) remote: Resolving deltas: 100% (2/2), completed with 1 local object. To https://github.com/user_name/repo-name.git 0852d5vf..70v56d9 master -> master
Ich danke dir sehr
quelle
Ich habe dies überwunden, indem ich einen neuen Zweig wie diesen ausgecheckt habe:
Sie haben noch zwei Zweige: Master und Newbranch, die Sie später zusammenführen können.
quelle
Sie müssen nur Ihren Filialnamen zusammen mit Ihrem Remote-Namen angeben.
quelle
Der Grund, warum es in meinem Fall passiert ist, war, dass ich beim Erstellen des GitHub-Rep-Links ihn initialisiert habe README-Datei
Initialisieren Sie Git Remote beim Erstellen nicht mit der README-Datei, da sonst Fehler angezeigt werden
Tun Sie das nicht und es wird auf jeden Fall gut funktionieren. Initialisieren Sie es stattdessen mit der Readme-Datei, wenn Sie möchten, nachdem Sie zum Hauptzweig gewechselt haben
quelle
diese Arbeit für mich
git init
git add --all
3.git commit -m "name"
4.git push origin master --force
quelle
Das hat bei mir funktioniert:
quelle
Es ist einfach, diesen Befehl zu verwenden:
und es wird Ihre Arbeit erledigen
quelle