Wenn ich versuche, eine von mir festgeschriebene Änderung zu pushen, wird folgende Fehlermeldung angezeigt ...
git.exe push -v --progress "origin" iteration1:iteration1
remote: *********************************************************************
To ssh://git@mycogit/cit_pplus.git
! [remote rejected] iteration1 -> iteration1 (pre-receive hook declined)
error: failed to push some refs to 'ssh://git@mycogit/cit_pplus.git'
Was ist los?
Antworten:
Sie sollten fragen, wer das Repo unterhält
git@mycogit/cit_pplus.git
.Ihre Commits wurden vom
pre-receive
Hook dieses Repos abgelehnt (dies ist ein vom Benutzer konfigurierbares Skript, das eingehende Commits analysieren und entscheiden soll, ob sie gut genug sind, um in das Repo aufgenommen zu werden).Es ist auch eine gute Idee, diese Person zu bitten, den Hook zu aktualisieren, damit die Gründe für die Ablehnung gedruckt werden.
Wenn Sie der Betreuer selbst sind, haben Sie anscheinend ein Problem mit Ihrem Setup auf der Serverseite. Bitte teilen Sie dann weitere Informationen.
quelle
git config user.name 'UpdatedUserName'
Ich wette, Sie versuchen einen nicht schnellen Vorwärtsschub und der Haken blockiert ihn. Wenn dies der Fall ist, führen Sie es einfach aus,
git pull --rebase
bevor Sie die lokalen Änderungen auf der neuesten Codebasis neu festlegen.quelle
git branch --set-upstream-to=origin/myBranch
. +1 für deine Antwort.git pull --rebase
, musste mich neu stützen und konnte den Ast schieben. Schließlich stellte ich fest, dass mein Zweig geschützt wurde.Die Dateigröße ist wichtig. Es gibt ein Limit von ~ 120 MB für eine einzelne Datei. In meinem Fall wurde die Datei in .gitignore mit Visual Studio aufgelistet, die Datei wurde jedoch weiterhin festgeschrieben. Bei Verwendung der git cli können wir detailliertere Informationen über den Fehler erhalten.
Der abgelehnte Pre-Receive-Hook war auf die große Datei zurückzuführen. Grundsätzlich den Push validieren.
Um das Problem zu beheben, habe ich das letzte Commit entfernt mit:
Ich habe dann die Datei vom Commit ausgeschlossen.
Hinweis: Verwenden Sie HEAD ~ N, um zur N-Anzahl der vorherigen Commits zurückzukehren. (dh 3, 4) Verwenden Sie immer den Schalter --soft, um Änderungen im Ordner beizubehalten
ich hoffe es hilft.
quelle
Dies kann daran liegen, dass Sie nicht über das Zugriffsrecht verfügten, um ein Commit an einen Zweig wie z
master
. Sie können den Betreuer bitten, Ihnen das Recht zu geben, Commits zu pushen.quelle
In meinem Fall habe ich diese Nachricht erhalten, weil der Zweig in GitLab als "Geschützt" markiert war.
quelle
Protected Branches
finden Sie unter stackoverflow.com/a/28832644/2914140 oder im GitLab-Projekt> Einstellungen> Repository .Ich habe diese Meldung erhalten, als der GitLab-Server einige Änderungen vorgenommen hat. Am nächsten Tag hat das Schieben gut funktioniert. Wie andere bereits betont haben, wenden Sie sich an Ihren Betreuer, um sicherzugehen.
quelle
Ich hatte dieses Problem, als ich versuchte, Änderungen mit einer Dateigröße zusammenzuführen, die größer war als das zulässige Remote-Repository (in meinem Fall GitHub).
quelle
Ich bin auf dasselbe Problem gestoßen.
Was es für mich gelöst hat, war, zu einem anderen Zweig und dann zurück zum ursprünglichen Zweig zu wechseln.
Ich bin mir nicht sicher, was die unterstrichene Ursache war, aber das hat es behoben.
quelle
Bitbucket : Überprüfen Sie die Einstellungen auf Verzweigungsberechtigungen (möglicherweise auf "Alle verweigern"). Wenn dies nicht funktioniert, klonen Sie einfach Ihren Zweig in einen neuen lokalen Zweig , übertragen Sie die Änderungen auf die Remote (ein neuer Remote-Zweig wird erstellt) und erstellen Sie eine PR.
quelle
Falls es jemandem hilft:
Ich hatte ein leeres Repo ohne Hauptzweig zum Aufheben des Schutzes (in Gitlab), bevor ich es ausführte
git push -u origin --all
git push -u origin master
zuerst rennen ,--all
&--tags
)quelle
Bei der Überprüfung, dass ich einen Entwicklerzugriff hatte und keinen neuen Zweig veröffentlichen konnte, trat der gleiche Fehler auf. Durch Hinzufügen höherer Zugriffsrechte wurde dieses Problem behoben. (Gitlab)
quelle
Ich habe diesen Fehler mit GitHub Gist bekommen. Ich habe versucht, ein Commit mit Dateien in Unterverzeichnissen zu pushen. Es stellte sich heraus, dass Gist nur Dateien im Stammverzeichnis haben kann.
quelle
"snippets\\csharp.json"
die es Git unter Windows schwer machte.Entfernen Sie die Option "Geschützter Zweig" oder lassen Sie zusätzliche Rollen wie Entwickler oder Administratoren zu, damit diese Benutzer, bei denen dieser Fehler auftritt, Zusammenführungen und Pushs durchführen können.
quelle
In meinem Fall haben wir Hooks für Festschreibungsnachrichten. Unser Serverskript akzeptiert Festschreibungen, wenn sie das spezielle Format für Festschreibungsnachrichten haben
"<JIRA ID><Message>"
. Es (Hook) lehnt das Festschreiben ab, wenn das entsprechende Jira-Ticket nicht vorhanden ist oder die Festschreibungsnachricht einige spezielle Symbole enthält. Ich sehe diesen Fehler, wenn ich /, [,> usw. in eine Festschreibungsnachricht einfüge und diese entfernt.quelle
Dies geschieht tatsächlich, wenn YACC in BitBucket serverseitig aktiviert ist. Mit YACC können JIRA-Problemnamen in der Festschreibungsnachricht erwähnt werden. Wenn Sie also mindestens etwas festschreiben, behalten Sie Ihre JIRA-Nummer in der Festschreibungsnachricht bei, und Sie können dann zusätzlich Ihre eigene Nachricht hinzufügen.
quelle
Ich habe GitKraken verwendet und wir haben einen lokalen Zweig erstellt, dann haben wir zwei entfernte Zweige darin zusammengeführt und dann versucht, den lokalen Zweig zum Ursprung zu verschieben. Es hat nicht mit der gleichen Fehlermeldung funktioniert.
Die Lösung bestand darin , den lokalen Zweig zu erstellen und ihn zuerst zum Ursprung zu verschieben und dann die Zusammenführung durchzuführen.
quelle
Problem: "PUSH fehlgeschlagen refs / head / - Pre-Receive-Hook abgelehnt"
Ich hatte das Problem, dass ich meine Änderungen nicht in meinen Ursprungszweig und in den Master-Zweig eines bestimmten Projekt-Repositorys übertragen konnte, da die Größe dieses Repos die feste Grenze von 2 GB überschritt. Es warf den Fehler. Das liegt daran, dass wir die Testdaten unwissentlich von anderen Testzweigen auf Bitbucket übertragen hatten.
So versucht, zu überprüfen, ist das gleiche mit anderen Projekt-Repos und sie hatten keine Probleme.
Fix:
Mein Kollege bemerkte, dass das Projekt 110 MB groß war, als wir das Projekt lokal geklont haben. Also haben wir angefangen, die zuvor zusammengeführten Zweige und aktiven Zweige zu reinigen, die nicht mehr benötigt werden. Nachdem diese Reinigung für einige Filialen durchgeführt wurde, stellten wir fest, dass die Größe des Repos drastisch von 2 GB auf 120 MB gesunken ist. Dann haben wir versucht, die Änderungen in meine Filiale zu übertragen, und es hat funktioniert.
quelle
In meinem Fall hatte ich ein neues Repository, habe einen Zweig ('UCA-46', nicht 'Master') gepusht, ihn neu basiert, erneut gewaltsam gepusht und den Fehler erhalten. Es gab keine Web-Hooks. Ich habe ausgeführt,
git pull --rebase
wie @ThiefMaster empfohlen hat, musste erneut eine Basis erstellen und konnte den Zweig verschieben. Aber das war ein seltsamer und schwieriger Weg.Dann sah ich Git Push Fehler Pre-Receive Hook abgelehnt . Ich stellte fest, dass mein Zweig geschützt wurde . Ich entfernte den Schutz und konnte wieder gewaltsam drücken.
quelle
Ich habe das bekommen, als ich versucht habe, auf eine Dokku-Instanz zu pushen. Es stellte sich heraus, dass die Festplatte auf meinem Server voll war.
Ran:
du -f
Und das Ergebnis war:
quelle
Für mich löst die Autorisierung auf einem Remote-Git-Server das Problem.
quelle
In meinem Fall liegt es daran, dass ich versehentlich eine riesige Datei zu meinem nicht festgeschriebenen Push hinzugefügt habe und sie nicht loswerden konnte, egal was ich nachher gezogen oder zurückgesetzt oder rm gemacht habe.
Meine schmutzige, aber praktikable Lösung besteht darin, das aktuelle Verzeichnis umzubenennen, das Verzeichnis erneut in ein lokales Verzeichnis zu klonen und die Änderungen manuell in das neu geklonte lokale Verzeichnis zu übernehmen ...
Es klingt nicht gut, funktioniert aber ...
quelle
Der Fehler für mich war, dass für das Projekt keine Zweige erstellt wurden und meine Rolle Entwickler war, sodass ich keinen Zweig erstellen konnte. Bitten Sie mich, mir die entsprechenden Berechtigungen und alles in Ordnung zu geben!
quelle
Ein Standardzweig (z. B.
master
) ist für Ihre Fernbedienung noch nicht vorhanden. Sie müssen also zuerst einenmaster
Zweig auf dem Git-Remote-Server erstellen (z. B. eine StandarddateiREADME.md
erstellen) und dann versuchen,push
mit diesem Befehl alle vorhandenen lokalen Zweige zu erreichen:quelle
Für mich hat alles gut funktioniert, bis Bitbucket heute (21. April 2020) automatisch seine Richtlinien geändert hat. Dies stimmt mit einer neuen Funktion überein , die kürzlich als Workspaces eingeführt wurde. Ich vermute, dass dies etwas damit zu tun hat.
Problemumgehung : Ich (als Administrator ) habe die Anweisungen zum Hinzufügen der E-Mail-Adresse zu Benutzern in der Benutzeroberfläche befolgt (die von Ihnen verwendete E-Mail kann gefunden werden
git config --list
quelle
Das Angeben einer node.js-Version kann das Problem wie folgt lösen
quelle