Ich habe den gitlabhq-Rails-Server auf einer virtuellen Maschine ausgeführt und dabei 1-6 Schritte in diesem Tutorial ausgeführt: https://github.com/gitlabhq/gitlab-recipes/blob/master/install/centos/README.mdsudo -u git -H bundle exec rails s -e production
. Der Befehl zum Ausführen des Rails-Servers wird gestartet . Danach habe ich mit Admin-Tools einen Benutzer erstellt und unter diesem Benutzer ein neues Projekt erstellt. Dann versuche ich, das bestehende Projekt wie immer in dieses Repo zu verschieben. Aber im letzten Schritt git push origin master
schlägt mit dem Fehler fehl
[Remote abgelehnt] Master -> Master (Pre-Receive-Hook abgelehnt)
Zusätzliche Information:
1) Ich habe den Benutzer (Projektbesitzer) nicht über den E-Mail-Aktivierungslink aktiviert, da ich den Postdienst auf der Serverseite nicht konfiguriert habe und in diesem Handbuch keine Anweisungen dazu gefunden habe.
2) Der Gitlab-Server generiert Tipps, wie das Projekt zum Repo verschoben werden kann, und es befindet sich kein repositories/
Pfad. Ich meine, es erzeugt git@mygitlabhost:user/repo.git
stattgit@mygitlabhost:repositories/user/repo.git
was richtig ist.
3) Wenn ich versuche , es zu debuggen, öffnete ich pre-receive
Skript in Repo auf dem Server und versuchte, Ausgangsvariablen (es gibt drei von ihnen): refs = ARGF.read
, key_id = ENV['GL_ID']
und repo_path = Dir.pwd
und fand, dass key_id ist immer leer. Vielleicht liegt das Problem hier ... Wenn ja, geben Sie mir bitte Vorschläge, wie Sie das beheben können. Vielen Dank
Antworten:
GitLab markiert den
master
Zweig standardmäßig alsprotected
(siehe TeilProtecting your code
unter https://about.gitlab.com/2014/11/26/keeping-your-code-protected/ why). Wenn ja, kann dies in Ihrem Fall helfen:über https://gitlab.com/gitlab-com/support-forum/issues/40
Informationen zur Version 8.11 und höher finden Sie hier: https://docs.gitlab.com/ee/user/project/protected_branches.html#restricting-push-and-merge-access-to-certain-users
quelle
GitLab 8.11
die Optionen etwas geändert haben, überprüfen Sie die Details hierA. Stellen Sie zunächst sicher, dass Sie die richtigen Anmeldedaten verwenden, um eine Verbindung zum Bitbucket-Server herzustellen (z. B. einen Benutzernamen / ein Kennwort / einen SSH-Schlüssel, der Ihnen gehört).
B. Stellen Sie dann sicher, dass der Name / die E-Mail-Adresse in Ihrer lokalen Git-Konfiguration korrekt eingestellt ist: Legen Sie Ihre lokale Git-Konfiguration für das Konto fest, unter das Sie pushen möchten (die Prüfung bestätigt, dass Sie die Person sind, die die Dateien festgeschrieben hat) * Beachten Sie, dass sowohl für den Namen als auch für die E-Mail-Adresse zwischen Groß- und Kleinschreibung unterschieden wird. * Es wird auch zwischen Leerzeichen unterschieden. Einige Unternehmenskonten enthalten zusätzliche Leerzeichen / Zeichen in ihrem Namen, z. "
Contractor/ space space(LDN)
". Sie müssen dieselbe Anzahl von Leerzeichen in Ihre Konfiguration aufnehmen wie auf Bitbucket Server. Überprüfen Sie dies im Editor, wenn Sie nicht weiterkommen.C. Wenn Sie das falsche Konto verwendet haben, wechseln Sie einfach Ihre Kontoanmeldeinformationen (Benutzername / Passwort / SSH-Schlüssel) und versuchen Sie es erneut.
D. Andernfalls müssen Sie Ihre lokale Konfiguration ändern, wenn sie nicht korrekt ist
open -a TextEdit.app ~/.gitconfig
HINWEIS: Sie müssen die alten Commits korrigieren, die Sie pushen wollten.
Ändern Sie Ihr letztes Commit:
Versuchen Sie, Ihre Commits erneut zu verschieben:
quelle
In meinem Fall führte mein Team dazu, ein Repo zu erstellen (Repo war leer) und mich als Entwickler zuzuweisen. Als ich direkt auf den Code drückte, um den Fehler zu meistern, mit dem ich konfrontiert war
! [remote rejected] master -> master (pre-receive hook declined)
, wurde behoben, dass er mir als Betreuer zugewiesen wurde, also ich konnte den Code direkt an den Master senden.quelle
Das Problem scheint bei einigen Diensten wie Sidekiq zu liegen. Beim Ausführen werden
sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production
alle Probleme mit der Konfiguration ausgegeben.quelle
ihave folgte der Anweisung von Heroku Protokolle img https://devcenter.heroku.com/articles/buildpacks#detection-failure (Verwendung cmd: Heroku Protokolle -> Ihre Fehler zeigen) , dann die cmd tun: "Heroku buildpacks: clear". Endlich hat es bei mir funktioniert!
quelle
Möglicherweise haben Sie keinen Entwicklerzugriff auf das Projekt oder den Hauptzweig. Sie benötigen Entwicklerzugriff, um neue Arbeiten voranzutreiben.
Neue Arbeit bedeutet neue Niederlassungen und Verpflichtungen.
quelle
Könnte nicht der Fall sein, aber dies war die Lösung für meinen " Pre-Receive Hook abgelehnt" Fehler " ":
Es gibt einige Repositorys, die nur Änderungen über Pull Request zulassen . Das bedeutet, dass Sie müssen
quelle
Sie müssen Ihren SSH-Schlüssel zu Ihrem Git-Konto hinzufügen. Wenn ein Fehler auftritt, löschen Sie den vorherigen SSH-Schlüssel und erstellen Sie einen neuen SSH-Schlüssel. Fügen Sie dann hinzu.
quelle
Ich habe dieses Problem gelöst, indem ich
remote 'origin' url
vonhttp
zugit
Protokoll in gewechselt habe.git/config
quelle
Gehen Sie zu Projekteinstellungen -> Hooks -> (Unter) Hooks vor dem Empfang
Für die Deaktivierung von cp ist eine Problemreferenz in Commits erforderlich
quelle
Ich bin mit BitBucket auf denselben Fehler gestoßen. Ich hatte ein lokales Git-Repo, das ich online sichern wollte, also habe ich ein neues Repository aus meinem BitBucket-Konto erstellt (über die Weboberfläche).
Nach dem Ausführen
git remote add origin [email protected]:StatMarianne/<a private repo>.git
lief ichgit push origin master
ohne Erfolg (normalerweise verwende ich die Option -u nicht mit,git push
da es mir nichts ausmacht, beim Drücken und Ziehen die vollständigen Repo- und Filialnamen einzugeben).Der Fehler lautete:
Aber meine lokale Niederlassung wurde erfolgreich gepusht, als ich lief
git push -u origin master
(genau nach den Anweisungen von BitBucket).Ich finde es überraschend, da -u (
--set-upstream
) sowieso nur "Upstream (Tracking) Referenz hinzufügen sollte ...".quelle
Ich habe das gleiche Problem, weil ich meinen Code direkt in den Hauptzweig schiebe und keine Rechte dafür habe. Also schiebe ich meinen Code in einen neuen Zweig und danach habe ich eine Pull-Anfrage zum Zusammenführen mit dem Master erstellt.
quelle