Problem beim Verschieben von neuem Code in Github

147

Ich habe ein neues Repository auf Github erstellt, das jetzt nur die Datei Readme.md enthält.

Ich habe ein neu erstelltes RoR-Projekt, das ich in dieses Repository verschieben wollte. Im Folgenden sind die Befehle aufgeführt, die ich in meinem Terminal gegeben habe, um dies zusammen mit dem Fehler auszuführen, den ich erhalte.

git remote add origin https://github.com/aniruddhabarapatre/learn-rails.git

Danach habe ich meinen Benutzernamen und mein Passwort eingegeben

git push -u origin master

Error ---

To https://github.com/aniruddhabarapatre/learn-rails.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://github.com/aniruddhabarapatre/learn-rails.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first merge the remote changes (e.g.,
hint: 'git pull') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

Dies ist mein erstes Mal, dass ich meinen Code in ein Github-Repository schiebe, und ich bin mit den Fehlern verloren. Ich habe einige andere Fragen durchsucht, die hier gestellt werden, aber keine von ihnen hatte beim ersten Mal Probleme.

Aniruddha
quelle

Antworten:

167

Als Sie Ihr Repository auf GitHub erstellt haben , haben Sie eine README.md erstellt , bei der es sich um ein neues Commit handelt .

Ihr lokales Repository kennt dieses Commit noch nicht. Daher:

Aktualisierungen wurden abgelehnt, da die Fernbedienung Arbeiten enthält, die Sie lokal nicht haben.

Möglicherweise möchten Sie diesen Rat befolgen:

Möglicherweise möchten Sie zuerst die Remote-Änderungen (z. B. ' git pull') zusammenführen, bevor Sie erneut drücken.

Das ist:

git pull
# Fix any merge conflicts, if you have a `README.md` locally
git push -u origin master
Johnsyweb
quelle
3
Was ich tue, ist zuerst Git Pull Origin Master, dann erneut Push.
Bagusflyer
12
In einigen Fällen erhalten Sie in einem fatal: refusing to merge unrelated historiessolchen Fall möglicherweise eine , die Sie einreichen git pull --allow-unrelated-histories origin masterund dann gemäß der obigen Antwort drücken
TheLebDev
1
Funktioniert nicht für mich. Fernbedienung: Push abgelehnt. remote: remote: refs / Heads / Master: ...: erwarteter Committer-Name xxx, aber gefunden yyy. Ich mache eine Git-Konfiguration --global user.email yyy und es erkennt immer noch nicht. Kann nichts erzwingen. !!!
Baruch Atta
284

Wenn dies Ihr erster Stoß ist

ändere einfach die

git push **-u** origin master

ändere es so!

git push -f origin master
Van Mart
quelle
5
Dadurch wurde meine Readme-Datei gelöscht, die ich zuerst auf Github erstellt habe. Jetzt sieht es so aus, als müsste ich es noch einmal machen.
Jack Blank
3
Sie können einfach eine Warnung hinzufügen, die -f erzwingt den Push und könnte mit der Code-Timeline
durcheinander bringen
Dies ist ein schlechter Weg, es hat mir ein Problem verursacht, es hat die Readme-Datei gelöscht, die nicht von mir erstellt wurde. Jetzt muss ich den Betreuer anrufen und ihm sagen, dass ich dumm bin. Entschuldigung, erstellen Sie die Readme-Datei erneut. :(
Mohammad Elsayed
62

⚡️ EINFACH: Alles was Sie brauchen ist ein erzwungener Stoß. Möglicherweise haben Sie eine readme.mdDatei auf Github erstellt und diese noch nicht abgerufen.

git push -f origin master

Und hier ist ein GIF.

Git Push -f Ursprungsmaster

⚠️ ACHTUNG : Mit forcekann der Verlauf für andere Personen im selben Projekt geändert werden. Wenn Sie nicht möchten, dass eine Datei für alle gelöscht wird, fahren Sie einfach fort. Vor allem, wenn Sie der einzige Entwickler im Projekt sind.

Ahmad Awais
quelle
1
Beachten Sie, dass dieser Ansatz den Verlauf ändert, den andere Benutzer dieses Repositorys bereits abgerufen haben. git push -f origin masterist keine große Angewohnheit zu bilden.
Johnsyweb
1
Diese Lösung kann Push-Commit lösen, entfernt aber auch alle früheren Commits!.
Twenk11k
2
Vorsicht vor Github-Noobs ... Wenn Sie eine Readme.md über GitHub erstellt haben, wird dieser Befehl ES ENTFERNEN, wenn er Ihre neuen Änderungen vorantreibt.
daCoda
Das ist vor allem der Grund, warum Menschen hier landen. -fTag entfernt Dateien und sollte mit Vorsicht verwendet werden.
Ahmad Awais
34

Geben Sie einen erzwungenen Push mit dem Befehl aus:

git push -f origin master
Samarth Shah
quelle
10
Beachten Sie, dass dies frühere Commits löschen kann, was wünschenswert oder nicht wünschenswert sein kann
Crashalot
8

Angenommen, Sie haben die Datei Readme.md über die von github bereitgestellte Schnittstelle hinzugefügt, befindet sich die Readme-Datei noch nicht in Ihrem lokalen Ordner. Wenn Sie versuchen, auf das Remote-Repo zu pushen, wird eine Fehlermeldung angezeigt, da Ihrem lokalen Repo die Readme-Datei fehlt - es ist sozusagen "hinter der Zeit". Versuchen Sie daher, wie in der Fehlermeldung vorgeschlagen, zuerst "git pull". Dadurch wird die Readme-Datei aus dem Remote-Repository abgerufen und mit Ihrem lokalen Verzeichnis zusammengeführt. Danach sollten Sie kein Problem damit haben, zum Remote-Repo zu wechseln (die von Ihnen geposteten Befehle scheinen für mich gültig zu sein).

Quercus
quelle
6

Dies ist der Fall, wenn Sie zunächst versuchen zu pushen. In Ihrem GitHub-Repo haben Sie readMe.md oder eine andere neue Sache, die nicht in Ihrem lokalen Repo enthalten ist. Zuerst müssen Sie die nicht verwandte Geschichte Ihres Github-Repos zusammenführen. Um dies zu tun

git pull origin master --allow-unrelated-histories

Dann können Sie die anderen Dateien von Repo (readMe.md oder eine beliebige) damit abrufen

git pull origin master

Nachdem

git push -u origin master

Jetzt haben Sie alle Änderungen erfolgreich in Github Repo übernommen. Ich bin kein Experte für Git, aber jedes Mal, wenn diese Schritte für mich funktionieren.

Chathuranga
quelle
5

Wenn Sie Ihre Änderungen seit einiger Zeit nicht mehr festgeschrieben haben, funktioniert dies möglicherweise für Sie.

git add files
git commit -m "Your Commit"
git push -u origin master

Das hat bei mir funktioniert, hoffentlich auch bei Ihnen.

Rob Mcelvenny
quelle
3

Wenn Sie das Git für Mac in der GUI verwenden, können Sie zuerst Respository-> Pull oder "comm + shift + p" wählen, um "git pull" zu erstellen und dann die Quelle zu veröffentlichen.

Zheng Fuchao
quelle
3

Dieser Fehler tritt auf, wenn Sie die Daten aus Ihrem lokalen Verzeichnis mit dem folgenden git-Befehl in Ihr Remote-Git-Repository übertragen: git push -u origin master

Da die Dateien des lokalen Verzeichnisses und des Git-Remote-Verzeichnisses in Konflikt geraten.

Lösung:

Führen Sie die folgenden Schritte aus, nachdem Sie alle Dateien für die Bereitstellung bereitgestellt haben.

  1. Rufen Sie die Dateien aus dem Remote-Repository ab, da sie mit dem lokalen Arbeitsverzeichnis in Konflikt stehen.

    • git pull <remoter-url> <branch-name>
  2. Übernehmen Sie die Änderungen erneut.

    • git add -A
    • git commit -m ‘<comment>'
  3. Nach festgeschriebenen Zusammenführungsdateien mit beiden Verzeichnissen können Sie verwenden

    • git push -u origin master

Dies wird das Problem beheben. Vielen Dank.

Ravi
quelle
1

Ich hatte ein ähnliches Problem ... Ich habe es so gelöst (ich bin kein Git-Experte, daher weiß ich nicht, ob es eine richtige Lösung ist, aber es hat bei mir funktioniert):

git pull origin master --allow-unrelated-histories
git merge origin origin/master
git rm README.md
git commit -m 'removed readme.md'
git push origin master
Marco Caggiano
quelle
0

Ich hatte mehr als eine Stunde mit diesem Fehler zu kämpfen! Unten ist, was mir geholfen hat, es zu lösen. All dies, während mein Arbeitsverzeichnis das Repo war, das ich auf meinem System geklont hatte.

Wenn Sie Dateien zu Ihrem vorhandenen Repository hinzufügen ** 1. Ich habe alles, was ich meinem Repository hinzugefügt habe, in meinen GitHub-Ordner verschoben:

Git Pull


Die Ausgabe war eine Readme-Datei Datei1 Datei2

  1. Ich habe meine neuen Dateien (die Dateien, die ich pushen wollte) in mein geklontes Repository (GitHub-Repo) kopiert (per Drag & Drop). Wenn Sie dieses Repo haben, sollten Sie Ihre alten und neuen Dateien sehen.

z.B. einige Readme-Datei Datei1 Datei2 Newfile1 Newfile2

  1. git add "newfile1" "newfile2"

  2. [optional] Git-Status Dies stellt sicher, dass die Dateien, die Sie hinzufügen möchten, ordnungsgemäß bereitgestellt wurden oder nicht ausgegeben wurden


Am Filialstamm Ihre Filiale ist mit 'Ursprung / Master' auf dem neuesten Stand. Zu übernehmende Änderungen: (Verwenden Sie "git reset HEAD ...", um die Bühne zu verlassen.)

    new file:   newfile1
    new file:   newfile2

5.git commit -m "Welche Beschreibung Sie auch immer geben möchten" 6.git push

Und alle meine neuen Dateien zusammen mit den älteren wurden in meinem Repo gesehen.

Potatojaisiladki
quelle
0

Eine einfachere Antwort ist das manuelle Hochladen der Datei README.MD von Ihrem Computer auf GitHub. Hat sehr gut für mich funktioniert.

Bogdan Doicin
quelle
0

Ich verwende die Optionen für Zweige und klicke dann mit der rechten Maustaste auf den Ordner "remote / origin" und dann auf "Zweige von remote löschen". Siehe Abbildung unten:

das Bild

Kevin Anderson Gomes Cabral
quelle
0

Ich habe diesen Fehler auf Azure Git erhalten und dies löst das Problem:

git fetch
git pull
git push --no-verify
canmustu
quelle