J'ai exécuté le serveur gitlabhq rails sur une machine virtuelle, en suivant 1 à 6 étapes de ce tutoriel https://github.com/gitlabhq/gitlab-recipes/blob/master/install/centos/README.md et démarre la commande d'exécution du serveur rails sudo -u git -H bundle exec rails s -e production
. Après cela, j'ai créé un utilisateur, à l'aide des outils d'administration et créé un nouveau projet sous cet utilisateur. Ensuite, j'essaye de pousser le projet existant vers ce dépôt comme toujours. Mais dans la dernière étape, git push origin master
échoue avec l'erreur
[distant rejeté] maître -> maître (crochet de pré-réception refusé)
Information additionnelle:
1) Je n'ai pas activé l'utilisateur (propriétaire du projet) via le lien d'activation par e-mail, car je n'ai pas configuré le service de publication côté serveur et je n'ai pas trouvé d'instructions pour le faire dans ce manuel.
2) Le serveur Gitlab génère des conseils sur la façon de pousser le projet vers le dépôt et il n'y a pas repositories/
de chemin. Je veux dire qu'il génère git@mygitlabhost:user/repo.git
au lieu de git@mygitlabhost:repositories/user/repo.git
qui est correct.
3) Lorsque j'ai essayé de le déboguer, j'ai ouvert pre-receive
script à l' intérieur repo sur le serveur et essayé de variables de sortie (il y a 3 d'entre eux): refs = ARGF.read
, key_id = ENV['GL_ID']
et repo_path = Dir.pwd
et a trouvé que key_id est vide toujours. Peut-être que le problème est là ... Si oui, donnez-moi des suggestions sur la façon de le résoudre. Merci
Réponses:
GitLab par défaut marque la
master
branche commeprotected
(voir la partieProtecting your code
dans https://about.gitlab.com/2014/11/26/keeping-your-code-protected/ why). Si c'est le cas dans votre cas, cela peut vous aider:via https://gitlab.com/gitlab-com/support-forum/issues/40
Pour la version 8.11 et plus, cliquez ici: https://docs.gitlab.com/ee/user/project/protected_branches.html#restricting-push-and-merge-access-to-certain-users
la source
GitLab 8.11
les options ont un peu changé, vérifiez les détails iciA. Tout d'abord, assurez-vous que vous utilisez les informations de connexion correctes pour vous connecter à Bitbucket Server (c'est-à-dire un nom d'utilisateur / mot de passe / clé SSH qui vous appartient)
B. Ensuite, assurez-vous que le nom / l'adresse e-mail est correctement défini dans votre configuration Git locale: définissez votre configuration Git locale pour le compte sous lequel vous essayez de pousser (la vérification affirme que vous êtes la personne qui a validé les fichiers) * Notez que cela est sensible à la casse, à la fois pour le nom et l'adresse e-mail * Il est également sensible à l'espace - certains comptes d'entreprise ont des espaces / caractères supplémentaires dans leur nom, par exemple. "
Contractor/ space space(LDN)
". Vous devez inclure le même nombre d'espaces dans votre configuration que sur Bitbucket Server. Vérifiez ceci dans le Bloc-notes si bloqué.C. Si vous n'utilisiez pas le bon compte, changez simplement les informations d'identification de votre compte (nom d'utilisateur / mot de passe / clé SSH) et réessayez.
D. Sinon, si votre configuration locale est incorrecte, vous devrez la modifier
open -a TextEdit.app ~/.gitconfig
REMARQUE: vous devrez corriger les anciens commits que vous tentiez de pousser.
Modifiez votre dernier commit:
Essayez de repousser vos commits:
la source
Dans mon cas, mon équipe a créé un repo (le repo était vide) et m'a assigné en tant que développeur alors quand j'ai poussé le code directement pour maîtriser l'erreur à laquelle j'étais confronté
! [remote rejected] master -> master (pre-receive hook declined)
Alors comment ça a été corrigé qu'il m'a assigné en tant que mainteneur alors je a pu transmettre le code directement au maître.la source
Il semble que le problème soit lié à certains services, comme sidekiq. L'exécution
sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production
génère tous les problèmes avec config.la source
J'ai suivi les instructions des journaux heroku img https://devcenter.heroku.com/articles/buildpacks#detection-failure (utilisez cmd: heroku logs -> affichez votre erreur) puis faites le cmd: "heroku buildpacks: clear". enfin, ça a marché pour moi!
la source
Vous n'avez peut-être pas accès développeur au projet ou à la branche principale. Vous avez besoin d'un accès de développement pour pousser de nouveaux travaux.
Nouveau travail signifiant de nouvelles branches et de nouveaux engagements.
la source
Ce n'est peut-être pas le cas, mais c'était la solution à mon erreur "Le hook de pré-réception refusé ":
Certains référentiels n'autorisent que les modifications via Pull Request . Cela signifie que vous devez
la source
Vous devez ajouter votre clé ssh à votre compte git, si elle génère une erreur, supprimez la clé ssh précédente et créez une nouvelle clé ssh, puis ajoutez.
la source
J'ai résolu ce problème en passant
remote 'origin' url
du protocolehttp
augit
protocole dans.git/config
la source
Accédez aux paramètres du projet -> Hooks -> (Under) Pre-receive hooks
Désactiver cp nécessite une référence au problème dans les commits
la source
Je suis tombé sur la même erreur en utilisant BitBucket. J'avais un référentiel Git local que je voulais sauvegarder en ligne, j'ai donc créé un nouveau référentiel à partir de mon compte BitBucket (en utilisant l'interface Web).
Après avoir couru
git remote add origin [email protected]:StatMarianne/<a private repo>.git
, j'ai courugit push origin master
en vain (je n'utilise généralement pas l' option -u avecgit push
parce que cela ne me dérange pas de taper le repo complet et les noms de branche lors de la poussée et de l'extraction).L'erreur a lu:
Mais ma branche locale a été poussée avec succès lorsque j'ai couru
git push -u origin master
(en suivant strictement les instructions de BitBucket).Je trouve cela surprenant, puisque -u (
--set-upstream
) ne devrait "ajouter qu'une référence (de suivi) en amont ..." Quoi qu'il en soit.la source
J'ai rencontré le même problème, c'est parce que je pousse mon code directement dans la branche principale et que je n'ai pas les droits pour cela. Je pousse donc mon code dans une nouvelle branche et après cela, j'ai créé une pull request pour fusionner avec master.
la source