Git itme hatası alma öncesi kancası reddedildi


168

Bu eğitimde 1-6 adımları izleyerek, gitlabhq sanal makinede sunucu raylar yayınlanmış olan https://github.com/gitlabhq/gitlab-recipes/blob/master/install/centos/README.md ve başlar sunucu yürütme komutu raylar sudo -u git -H bundle exec rails s -e production. Bundan sonra yönetici araçları kullanarak kullanıcı oluşturdum ve bu kullanıcı altında yeni bir proje oluşturdum. Sonra her zamanki gibi mevcut projeyi bu repoya itmeye çalışıyorum. Ancak son adımda git push origin masterhata ile başarısız olur

[uzaktan reddedildi] master -> master (alım öncesi kanca reddedildi)

İlave bilgi:

1) Kullanıcıyı (proje sahibi) e-posta etkinleştirme bağlantısı aracılığıyla etkinleştirmedim, çünkü sunucu tarafında posta hizmetini yapılandırmadım ve bu kılavuzda bunun nasıl yapılacağı ile ilgili talimatları bulamadım.

2) Gitlab sunucusu, projeyi repo yapmaya nasıl yönlendireceklerine dair ipuçları üretir ve repositories/yol yoktur. Ben oluşturduğu anlamına git@mygitlabhost:user/repo.gityerine git@mygitlabhost:repositories/user/repo.githangi doğrudur.

Bunu hata ayıklamak çalıştım 3), ben açtı pre-receivesunucuda repo iç senaryo ve çıktı değişkenleri (3 tanesi yoktur) çalıştı: refs = ARGF.read, key_id = ENV['GL_ID']ve repo_path = Dir.pwdve bu KEY_ID hep boş olduğunu gördük. Belki sorun burada ... Öyleyse, lütfen bunu nasıl düzelteceğime dair önerilerde bulunun. Teşekkürler


15
Yemin ederim, her yazılım geliştirme ekibinde her gün uyanan ve diğer geliştiricilerin hayatlarını nasıl daha zor hale getireceklerini düşünen en az 1 kişi var.
samayo

Çoğu insan için çalışması gereken çok popüler bir cevap var gibi görünüyor. Ancak benim durumumda, aynı mesaj gitmeye çalışırken başka bir makineden yanlışlıkla devam eden başka bir push olduğunda Git Hub'dan alındı.
Hack-R

Yanıtlar:


230

GitLab varsayılan masterolarak dalı olarak işaretler protected( https://about.gitlab.com/2014/11/26/keeping-your-code-protected/ adresindeProtecting your code bulunan bölüme bakın ). Durumunuz buysa, bu yardımcı olabilir:

Projenizi açın> Ayarlar> Depo ve "Korumalı dallar" a gidin, listeden "ana" dalını bulun ve "Korumayı kaldır" ı tıklayın ve tekrar deneyin.

https://gitlab.com/gitlab-com/support-forum/issues/40 aracılığıyla

8.11 ve sonraki sürümler için nasıl yapılır: https://docs.gitlab.com/ee/user/project/protected_branches.html#restricting-push-and-merge-access-to-certain-users


8
Kullanıcı arayüzü biraz değişti: "Ayarlar" projesinden sonra "Depo" sekmesini tıklayın. Sonra "Korumalı Dallar"
Donn Lee

Bu yüzden OP ile aynı problemi yaşıyordum ve bu çözüm benim için çalıştı, teşekkürler! Ama şimdi merak ediyorum, neden? Gitlab'ı bir süredir kullanıyorum ve aniden bunu yaptım mı? Ne değişti?
17'de Andrew Lamarra

2
Yana GitLab 8.11seçenekler biraz değişti, ayrıntıları kontrol buraya
Arghya Ci

aynı sorunla karşı karşıya. Burada başka bir dalı bile zorlayamıyorum. Yine de ilk kez itiyorum.
Santosh Kadam

1
korumasız kaldırdım ama şimdi ne olacak? dünyadaki herhangi biri bu repo üzerinde çalışabilir mi?
Çırpınan

14

Yerel makinemde aşağıdaki sorun çözüldü:

C. İlk olarak, Bitbucket Sunucusuna (örneğin, size ait bir kullanıcı adı / şifre / SSH anahtarı) bağlanmak için doğru oturum açma ayrıntılarını kullandığınızdan emin olun. 

B. Ardından, adın / e-posta adresinin yerel Git yapılandırmanızda doğru bir şekilde ayarlandığından emin olun: Altına koymaya çalıştığınız hesap için yerel Git yapılandırmanızı ayarlayın (onay, dosyaları işleyen kişi olduğunuzu varsayar) * Bunun hem ad hem de e-posta adresi için büyük / küçük harfe duyarlı olduğunu unutmayın * Aynı zamanda alana duyarlıdır - bazı şirket hesaplarının adlarında fazladan boşluk / karakter vardır. " Contractor/ space space(LDN)". Yapılandırmanıza Bitbucket Sunucusuyla aynı sayıda boşluk eklemeniz gerekir. Takılıysa Not Defteri'nde kontrol edin.

C. Yanlış hesap kullanıyorsanız, hesap kimlik bilgilerinizi (kullanıcı adı / şifre / SSH anahtarı) değiştirin ve tekrar zorlamayı deneyin.

D. Başka, yerel yapılandırmanız yanlışsa, değiştirmeniz gerekir

Mac için

open -a TextEdit.app ~/.gitconfig

NOT: Zorlamaya çalıştığınız eski taahhütleri düzeltmeniz gerekecektir.

  1. Son taahhüdünüzü değiştirin:

    > git commit --amend --reset-author
    
      
    <save and quit the commit file text editor that opens, if Vim then
    :wq to save and quit>
    
  2. Taahhütlerinizi tekrar zorlamayı deneyin:

    > git push
    

12

Benim durumumda, bir repo oluşturulan (repo boştu) ve beni atamak için ekibim kurşun geliştirici doğrudan ben bakıyordu hatayı master koduna itti böylece zaman ! [remote rejected] master -> master (pre-receive hook declined)o kadar bana devredildi olduğu tespit edilmiştir olmasi çok bakımcıya I yüzden kodu doğrudan master'a aktarabildi.


10

Sorun sidekiq gibi bazı servislerde. Çalıştırma sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production, config ile ilgili tüm sorunları çıkarır.



2

Projeye veya ana şubeye geliştirici erişiminiz olmayabilir. Yeni işlerin üstesinden gelmek için geliştirici erişimine ihtiyacınız var.

Yeni dallar ve taahhütler anlamına gelen yeni çalışma.


2

Durum böyle olmayabilir, ama bu benim " ön alma kanca reddedilen çözüm oldu " hatasının çözümüydü:

Yalnızca Çekme İsteği ile değişiklik yapılmasına izin veren bazı depolar vardır . Bu demektir ki

  1. Değişikliklerinizi göndermek istediğiniz dalı temel alarak yeni bir şube oluşturun.
  2. Yaptığınız değişiklikleri yeni şubeye aktarın.
  3. Şubenizi orijinaliyle birleştirmek için bir Çekme İsteği açın.

0

Ssh anahtarını git hesabınıza eklemeniz gerekir, eğer hata atarsa ​​önceki ssh anahtarını silin ve yeni bir ssh anahtarı oluşturun ve ekleyin.


Bu yardımcı olmadı. :( Her iki hesapta da test edildi - vm ve yerel makine için root ve myuser
Hroft

kontrol git remote -v, git repo'nuz eklendi mi değil mi?
Hardik Hardiya

'git remote -v' çıkışları: origin git @ mygitlabhost: depolar / kullanıcı / repo.git (getirme) origin git @ mygitlabhost: depolar / kullanıcı / repo.git (push)
Hroft 5:15

Barındırılan gitlab kullanıyorsanız, sorun büyük olasılıkla onların tarafındadır. Birkaç dakika sonra tekrar deneyin.
Erik Aronesty

0

Ben değiştirerek bu sorunu çözmüş remote 'origin' urlgelen httpetmek gitprotokol.git/config


0

Proje ayarlarına gidin -> Kancalar -> (Altında) Ön alma kancaları

Cp'yi devre dışı bırak, işlemlerde sorun referansı gerektir


0

BitBucket kullanarak aynı hatayı tökezledi. Çevrimiçi yedeklemek istediğim yerel bir Git repo'm vardı, bu yüzden BitBucket hesabımdan (web arayüzünü kullanarak) yeni bir depo oluşturdum.

Çalıştırdıktan sonra boşuna git remote add origin git@bitbucket.org:StatMarianne/<a private repo>.gitkoştum git push origin master(genellikle -u seçeneğini kullanmıyorumgit push itme ve çekme sırasında tam repo ve şube adlarını yazmayı umursamadığım ).

Hata şöyle:

remote: You're not allowed to write to this repository.
To bitbucket.org:StatMarianne/<a private repo>.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@bitbucket.org:StatMarianne/<a private repo>.git'

Ama koştuğumda yerel şubem başarılı bir şekilde itildi git push -u origin master şubem (kesinlikle BitBucket'in talimatlarını izleyerek).

Şaşırtıcı buluyorum, çünkü -u ( --set-upstream) sadece "yukarı akış (izleme) referansı eklemelidir ..." Her neyse.


-1

Aynı sorunla karşı karşıya kaldım, çünkü kodumu doğrudan ana dalda itiyorum ve bunun için haklarım yok. Bu yüzden kodumu yeni bir dalda itiyorum ve bundan sonra master ile birleştirmek için bir çekme isteği oluşturdum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.