Keine gemeinsamen Refs und keine spezifizierten; nichts tun

70

Ich hatte ein lokales Git-Projekt, das ich zu Capitolit hinzufügen wollte. Anscheinend ist das schwer, also habe ich die Idee aufgegeben. Ich habe ein neues Gitolite-Repo erstellt, indem ich es zu gitolite-admin / conf / gitolite.conf hinzugefügt und die Änderungen festgeschrieben und vorangetrieben habe. Dann habe ich das neue Repo mit git clone git-noah:project-nameerfolgreich geklont . Ich habe dann alle Dateien und Ordner außer .git in den Projektnamenordner kopiert. Ich tat,

git add -A
git commit -a -m "Moved to new repo."
git push

Ich erhalte diesen Fehler:

warning: push.default is unset; its implicit value is changing in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the current behavior after the default changes, use:

  git config --global push.default matching

To squelch this message and adopt the new behavior now, use:

  git config --global push.default simple

See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)

No refs in common and none specified; doing nothing.
Perhaps you should specify a branch such as 'master'.
fatal: The remote end hung up unexpectedly
error: failed to push some refs to 'git-noah:project-name'
Noah
quelle
Sie möchten eine der git configAnweisungen in der Nachricht ausführen . git help configerklärt Ihnen die Unterschiede zwischen ihnen. Und Sie können diese Frage für weitere Informationen lesen .
Paul Hicks
Tatsächlich scheint diese Frage die kanonische Referenz zu sein.
Paul Hicks

Antworten:

183

Im Remote-Repository (Ursprungs-Repository) ist noch kein "main" vorhanden.

git push origin main

Nach diesem ersten Druck können Sie den einfacheren verwenden

git push

Bearbeiten: Mit den jüngsten Trends wurde meine Antwort aktualisiert, um "master" durch "main" zu ersetzen.

Oliver
quelle
1
@Enrico Überprüfen Sie die Filialnamen, die Sie drücken. Mit den jüngsten Trends wird der Begriff "Master" geändert.
Oliver
1
@ Oliver, ja du hast recht. Einige bevorzugen "Master" als "Main".
Tanzeel
1
@Tanzeel ja im Jahr 2020 "main" wäre wohl die passendere Wahl. Meine ursprüngliche Antwort wurde 2014 vor den Diskussionen über die Benennung neuer Zweige geschrieben.
Oliver
Seltsam, main hat nicht funktioniert und mir den Refspec-Fehler gegeben ... Ich musste ihn in Master ändern. Dies ist auf einem frischen Github Repo.
Stapler
0

Wenn Sie git zum Spiegeln verwenden, verwenden Sie Folgendes:

git config remote.backup.mirror true
Kämpfer
quelle
0

Ihr Hauptzweig ist möglicherweise vorgelagert und muss auf dem Zweigstamm deaktiviert werden

Ihre Filiale basiert auf 'Ursprung / Master', aber der Upstream ist weg. ( git branch --unset-upstreamzum Reparieren verwenden)

himanshuk
quelle
-4

Ihre lokalen und Remote-Repositorys haben nicht denselben Verlauf, da Sie das Repo neu erstellt haben. Daher lässt Git Sie diesen Inhalt nicht pushen.

Wenn Sie keine Angst haben, den Inhalt des Remote-Repositorys zu verlieren , können Sie Push erzwingen : git push -f.

Martin
quelle
Sie teilen absolut die Geschichte! Das ist eines der großartigsten Dinge an Git. Es weiß alles, was im Remote-Repo passiert ist, weil Sie das Ganze geklont haben.
Oliver