Zorlamaya çalışırken Git hatası - ön alma kancası reddedildi


208

Taahhüt ettiğim bir değişikliği denediğimde şu hatayı alıyorum ...

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'

Neler oluyor?


8
Ön alım kanca kancası nedir?
rob mayoff

Büyük dosyaları github'a aktarmaya çalışmaz mıydınız?
Adam F

Bilginize: Bugün tüm meslektaşım bu hata mesajını aldı, sonunda stash sunucumuzu yeniden başlatmaya karar verdik ve sihirli bir şekilde düzeltildi. Sorunun gerçekte ne olduğu hakkında hiçbir fikrimiz yok.
T_D

Yanıtlar:


126

Depoyu kimin koruduğunu sormalısın git@mycogit/cit_pplus.git .

Taahhütleriniz kanca tarafından reddedildipre-receive bu repo'nun (bu, gelen taahhütleri analiz etmek ve repoya kabul edilebilecek kadar iyi olup olmadıklarına karar vermeyi amaçlayan kullanıcı tarafından yapılandırılabilir bir komut dosyasıdır).

Bu kişiden kancayı güncellemesini istemek de iyi bir fikirdir, bu nedenle ret nedenlerini basacaktır.

Eğer bakıcı sizseniz, sunucu tarafındaki kurulumunuzla ilgili bir sorununuz var gibi görünüyor. Lütfen daha fazla bilgi paylaşın.


7
Benim durumumda, BitBucket taahhüt mesajı içeriğinin doğrulanmasını sağladı ve o anda çevrimdışı olan JIRA biletleriyle yüzleşti.
Vítor Neil Avelino

1
Peki çevrimiçi olduğunda düzeltildi?
shareef

5
Benim durumumda, taahhütlerin oluşturulduğu kullanıcı adında ve BitBucket'teki kullanıcı adında bir uyumsuzluk vardı. BitBucket kullanıcı adını güncelleme yetkim yoktu, bu yüzden taahhütlerimi sıfırlamak ve güncellenmiş kullanıcı adıyla tekrar taahhüt etmek zorunda kaldım. Git kullanıcı adını bu komutla güncelleyebilirsinizgit config user.name 'UpdatedUserName'
MM

3
Bizim durumumuzda, bitbucket kimsenin bu şubeye itmesine izin vermedi.
Ramon Fincken

Benim durumumda bitbucket'te repo ayarlarını bulmak ve Kanca ayarları altındaki doğrulama doğrulayıcısını devre dışı bırakmak zorunda kaldım.
Sizons

79

Bahse girerim, hızlı ilerlemeyen bir itme deniyorsunuz ve kanca bunu engelliyor. Bu durumda, git pull --rebaseen yeni kod tabanındaki yerel değişikliklerinizi yeniden oluşturmaya başlamadan önce çalıştırın .


Bu harika. Şimdi tekrar itip çekebiliyorum, ama ondan önce yukarı doğru ayarlamam gerekiyor git branch --set-upstream-to=origin/myBranch. Cevabınız için +1.
AlokeT

Yeni bir depoda bir kolu (master değil) ittim, sonra tekrar temel aldım ve push sırasında hatayı aldım. Web kancaları bulamadım. git pull --rebaseİnfaz ettim , tekrar soymak zorunda kaldım ve şubeyi itebildim. Sonunda şubemin korunduğunu gördüm.
CoolMind

60

Dosya boyutu önemlidir. Tek bir dosya için ~ 120MB'lık bir sınır vardır. Benim durumumda, Visual Studio'yu kullanan .gitignore dosyası listelenmişti, ancak dosya yine de kararlıydı. Git cli kullanırken hata hakkında daha ayrıntılı bilgi alabiliriz.

ön alma kancası reddedildi nedeniyle büyük dosya oldu. Temel olarak itmeyi doğrulamak.

Çözmek için kullanarak son taahhüdü kaldırdım:

git reset --soft HEAD~1

Daha sonra dosyayı taahhüt dışında bıraktım.

Not: Önceki işlemlerin N sayısına dönmek için HEAD ~ N tuşlarını kullanın. (örn. 3, 4) Klasördeki değişiklikleri korumak için her zaman --soft anahtarını kullanın

Umarım yardımcı olur.


Bu sorunum istenmeyen bir SQL döküm dosyası (dosya boyutu 155mb) (yanlışlıkla) itiliyordu gibi yardımcı oldu.
Mehrdad Dastgir

1
Dosya boyutu sınırı barındırma sağlayıcınıza bağlıdır. GitHub'ın bu boyutta bir sınırı vardır, diğerleri için değişir ve kendi kendine barındırılan git'in doğal olarak böyle sınırları yoktur.
1615903

1
Reddettikten sonra zaten birkaç taahhüdünüz varsa ne yaparsınız? Bu benim durumumda repo itmeye çalışmadan önce önceki taahhütlerin birinde istenmeyen büyük bir dosya (627MB) var
leeCoder 8

Kazara bir CSV dosyası yükledim. Yani benim durumumda, hata bundan kaynaklanıyordu.
tonhozi

Birkaç taahhüdünüz varsa, kafayı bu işleme geri döndürmek için dizini artırın. Örneğin, önceki üç işleme geri dönmek için HEAD ~ 3 kullanın. Klasördeki değişiklikleri korumak için her zaman --soft anahtarını kullanın.
ozkary

13

Bunun nedeni, gibi bir şubeye taahhüt verme hakkına sahip olmamanız olabilir master. Bakıcıdan size taahhütleri zorlama hakkını vermesini isteyebilirsiniz.


Bu doğru olduğunu düşünüyorum, ama ilginç olan VS uzak ana fiili şube adı değil ana dalı itmeye çalışıyor gibi görünüyor. Eğer üst dal korunuyorsa, bu gerçekleşiyor gibi görünüyor ama VS'de bunu düzeltmek için hiçbir şekilde görünmüyor ve cmd hattına geçmeniz gerekiyor.
Mark


8

Bu mesajı GitLab sunucusu bazı değişiklikler geçirdiğinde aldım. Ertesi gün itmek işe yaradı. Her neyse, diğerlerinin de belirttiği gibi, emin olmak için bakımcınızla görüşün.


1
Sadece bu sorunu yaşadım ve sanırım GitLab değişiklikler yapıyorlardı. 10 dakika verdi ve işe yaradı. Hiçbir şeyi değiştirmedim.
woter324

Sadece bu sorunu da yaşadım. Durumun
Renan Ferrari


5

Aynı sorunla karşılaştım.
Benim için çözen şey başka bir dala geçmek ve sonra orijinal olana geri dönmekti.

Altı çizili nedenin ne olduğundan emin değilim, ama bu düzeltti.


Yeni şubeye de
itemedim


2

Birisine yardımcı olması durumunda:

Korumayı kaldıracak ana dalı olmayan (Gitlab'da) boş bir repo'm vardı. git push -u origin --all

  • Ben çalıştırmak zorunda git push -u origin master, ilk
  • ana dalı geçici olarak koruyun
  • gerisini it ( --all& --tags)

2

Aynı hatayla karşılaştım, geliştirici erişimim olduğunu kontrol ettikten sonra yeni bir şube yayınlayamadım. Daha yüksek erişim hakları eklemek bu sorunu çözdü.


2

GitHub gist ile bu hatayı aldım. Alt dizinlerdeki dosyalar için bir taahhütte bulunmaya çalışıyordum. Gist çıktı sadece kök dizinde dosyaları olabilir.


Bunu da anladım. Repo "snippets\\csharp.json", pencerelerde git zor bir zaman verdi dosya vardı çıkıyor .
Carl Walsh

2

Korumalı şube seçeneğini kaldırın veya geliştiriciler veya yöneticiler gibi ek rollerin bu kullanıcıların bu hatayla karşılaşmasına izin vermek ve bunları birleştirmek için izin ver.


1

Benim durumumda, taahhüt mesajları için kancalarımız var, sunucu komut dosyamız taahhüt mesajı için özel biçime sahipse taahhütleri kabul eder "<JIRA ID><Message>". İlgili Jira bileti yoksa veya taahhüt mesajında ​​bazı özel semboller varsa, taahhüdü reddeder. Bir taahhüt iletisine /, [,> vb.


Orijinal posterin (ve gelecekte ziyaret edecek olan herkesin) bir ön alma kancası olarak yapılandırılmış farklı bir komut dosyası olacağından, bu cevabın yardımcı olması muhtemel değildir.
aronisstav

1

Bu aslında BitBucket'te sunucu tarafında YACC etkinleştirildiğinde olur. YACC, JIRA sorun adlarının işleme iletisinde belirtilmesi için etkinleştirilmiştir. Yani en azından bir şey yaptığınızda, JIRA numaranızı taahhüt mesajına tutun ve sonra kendi mesajınızı ekleyebilirsiniz.


1

GitKraken kullanıyordum ve yerel bir şube yaptık, sonra iki uzak dalı birleştirdik ve yerel şubeyi başlangıç ​​noktasına itmeye çalıştık. Aynı hata mesajı ile çalışmadı.

Solüsyon oldu yerel şube oluşturmak ve ilk itin kökeni ve ardından birleştirme yapmak.


1

Sorun: "PUSH Başarısız referanslar / kafa / - alım öncesi kanca reddedildi"

Değişikliklerimin kaynak şubemde ve belirli bir proje havuzunun ana dalında herhangi bir şeyi zorlayamama sorunuyla karşı karşıya kaldım, çünkü bu repo boyutu 2GB'ın üzerinde. Hatayı atıyordu. Çünkü test verilerini bilmeden diğer test dallarından bitbucket'e itmiştik.

PUSH Başarısız referans / kafa / - ön alma kancası reddedildi

Bu yüzden denemek denedim diğer proje repo's ile aynıdır ve herhangi bir sorun yoktu.

Düzeltme:

Meslektaşım, projeyi yerel olarak yeniden klonladığımızda, projenin boyutunun 110 MB olduğunu fark etti. Böylece daha önce birleştirdiğimiz dalları ve artık gerekli olmayan dalları temizlemeye başladık. Bu temizlik birkaç dal için yapıldıktan sonra, repo boyutunun 2GB'dan 120MB'ye düştüğünü fark ettik. Sonra değişiklikleri şubeme aktarmaya çalıştık ve işe yaradı.


1

Benim durumumda yeni bir veri havuzum vardı, bir kolu ittim ('master' değil 'UCA-46'), yeniden temel aldım, zorla tekrar ittim ve hatayı aldım. Web kancaları yoktu. @ThiefMastergit pull --rebase olarak idam ettim önerdiği , tekrar zorunda kaldım ve . Ama bu garip ve zor bir yoldu.

Sonra Git itme hatası ön alma kancasının düştüğünü gördüm . Şubemin haline geldiğini buldum korunduğunu . Korumayı kaldırdım ve zorla tekrar zorlayabilirim.

resim açıklamasını buraya girin


0

Bunu bir dokku örneğine zorlamaya çalışırken anladım. Diskin sunucumda dolu olduğu ortaya çıktı.

Koştu: du -f

Ve sonuç şuydu:

Filesystem      Size  Used Avail Use% Mounted on
udev            476M     0  476M   0% /dev
tmpfs           100M  4.4M   95M   5% /run
/dev/xvda1      7.8G  7.4G  8.9M 100% /

0

Benim için Uzak Git sunucusunda yetkilendirme sorunu çözüyor. resim açıklamasını buraya girin


0

Benim durumumda, kazara benim taahhüt edilmemiş itme dev bir dosya ekledi ve sonra ne çekme, sıfırlama veya rm olursa olsun ondan kurtulamadı çünkü.

benim kirli çözüm ama uygulanabilir çözüm geçerli dizini yeniden adlandırmak, dizini yeniden yerel klonlamak ve değişiklikleri el ile recloned yerel dizine yansıtmaktır ...

Kulağa hoş gelmiyor ama çalışıyor ...


1
Aynı sorunla karşı karşıya kaldım ve @ozkary'nin önerdiği gibi $ git reset --soft HEAD ~ 1 kullanarak.
Eylül 18:18, jarrettyeo

0

Benim için hata, projenin herhangi bir şubesi olmadığı ve rolümün geliştirici olmasıydı, bu yüzden herhangi bir şube oluşturamadım, bana şu anda ilgili izinleri ve her şeyi vermelerini istedim!


0

masterUzaktan kumandanız için henüz varsayılan bir şube (ör. ) Mevcut değil. Bu yüzden önce mastergit uzak sunucusunda şube oluşturmanız gerekir (örneğin, varsayılan bir README.mddosya oluşturmak ), ardından pushbu komutu kullanarak mevcut tüm yerel şubelerinizi deneyin :

git push -u origin --all

0

Benim için Bitbucket bugün politikalarını otomatik olarak değiştirene kadar (21 Nisan 2020) her şey yolunda gidiyordu. Bu , bugün Çalışma Alanları olarak adlandırılan yeni bir özellikle hizalanıyor , bu yüzden bununla ilgili bir şey olduğundan şüpheleniyorum.

Çözüm : Ben (Yönetici olarak) kullanıcı arayüzündeki Kullanıcılar'a e-posta adresini eklemek için talimatları izledim (kullandığınız e-posta bulunabilir)git config --list

resim açıklamasını buraya girin


0

bazen, itmekte olduğunuz dal korunmuş olduğundan, deponun bakım görevlilerinden koruma durumunu değiştirmelerini isteyebilirsiniz. git-lab'da, ayarları> Depo> Korumalı Dallar'da bulabilirsiniz. :)


-7

Bir node.js sürümü belirtmek sorunu çözebilir.

{
  "name": "myapp",
  "description": "a really cool app",
  "version": "1.0.0",
  "engines": {
    "node": "10.3.0"
  }
}
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.