Git धक्का त्रुटि पूर्व प्राप्त हुक अस्वीकृत


167

मैंने वर्चुअल मशीन पर gitlabhq रेल सर्वर चलाया है, इस ट्यूटोरियल https://github.com/gitlabhq/gitlab-recipes/blob/master/install/centos/README.d से 1-6 चरणों का पालन करके और रेल सर्वर निष्पादित कमांड शुरू करता है sudo -u git -H bundle exec rails s -e production। उसके बाद मैंने उपयोगकर्ता बनाया, व्यवस्थापक उपकरणों का उपयोग करके और इस उपयोगकर्ता के तहत नई परियोजना बनाई। फिर मैं मौजूदा प्रोजेक्ट को हमेशा की तरह इस रेपो में धकेलने की कोशिश कर रहा हूं। लेकिन अंतिम चरण में, git push origin masterत्रुटि के साथ विफल हो जाता है

[रिमोट रिजेक्टेड] मास्टर -> मास्टर (पूर्व प्राप्त हुक अस्वीकृत)

अतिरिक्त जानकारी:

1) मैंने ईमेल सक्रियण लिंक के माध्यम से उपयोगकर्ता (परियोजना के मालिक) को सक्रिय नहीं किया है, क्योंकि मैंने सर्वर-साइड पर पोस्ट सेवा को कॉन्फ़िगर नहीं किया है और मुझे इस मैनुअल में ऐसा करने के निर्देश नहीं मिले हैं।

2) Gitlab सर्वर सुझावों को जनरेट करता है कि कैसे प्रोजेक्ट को रेपो में धकेला जाए और repositories/पथ में नहीं है। मेरा मतलब है कि यह सही है जिसके git@mygitlabhost:user/repo.gitबजाय उत्पन्न git@mygitlabhost:repositories/user/repo.gitकरता है।

3) जब मैं इसे डिबग करने की कोशिश की, मैं खोला pre-receiveसर्वर पर रेपो अंदर स्क्रिप्ट और उत्पादन चर (वहाँ है उनमें से 3) करने की कोशिश की: refs = ARGF.read, key_id = ENV['GL_ID']और repo_path = Dir.pwdकी और पाया कि KEY_ID हमेशा खाली है। शायद समस्या यहाँ है ... यदि हां, तो कृपया मुझे सुझाव दें कि इसे कैसे ठीक किया जाए। धन्यवाद


15
मैं कसम खाता हूं, हर सॉफ्टवेयर डेवलपमेंट टीम में कम से कम 1 व्यक्ति है जो हर रोज उठता है और सोचता है कि अन्य डेवलपर्स के जीवन को बहुत कठिन कैसे बनाया जाए।
samayo

ऐसा लगता है कि बहुत लोकप्रिय उत्तर है जो अधिकांश लोगों के लिए काम करना चाहिए। मेरे मामले में, हालांकि, गिट हब से एक ही संदेश प्राप्त हुआ जब गलती से एक और मशीन से प्रगति में पहले से ही एक और धक्का था जब धक्का देने की कोशिश की जा रही थी।
हैक-आर

जवाबों:


230

GitLab डिफ़ॉल्ट चिह्नों से masterके रूप में शाखा protected(भाग देखें Protecting your codeमें https://about.gitlab.com/2014/11/26/keeping-your-code-protected/ क्यों)। यदि आपके मामले में ऐसा है, तो यह मदद कर सकता है:

अपनी परियोजना> सेटिंग> रिपॉजिटरी खोलें और "संरक्षित शाखाओं" पर जाएं, सूची में "मास्टर" शाखा ढूंढें और "असुरक्षित" पर क्लिक करें और फिर से प्रयास करें।

https://gitlab.com/gitlab-com/support-forum/issues/40 के माध्यम से

संस्करण 8.11 और इसके बाद के संस्करण के लिए यहाँ कैसे: https://docs.gitlab.com/ee/user/project/protected_branches.html#restricting-push-and-merge-access-to-earch-users


8
UI थोड़ा बदल गया है: प्रोजेक्ट "सेटिंग्स" के बाद, "रिपॉजिटरी" टैब पर क्लिक करें। फिर "संरक्षित शाखाओं"
डॉन ली

इसलिए मुझे वही समस्या आ रही थी जो ओपी को थी और इस समाधान ने मेरे लिए काम किया, धन्यवाद! लेकिन अब मैं सोच रहा हूँ, क्यों? मैं थोड़ी देर के लिए gitlab का उपयोग कर रहा हूं और अचानक मेरे पास ऐसा करने के लिए है? किया बदल गया?
एंड्रयू लामरा

2
चूंकि GitLab 8.11विकल्प थोड़ा बदल गए हैं, इसलिए यहां
अर्घ्य सी

उसी मुद्दे का सामना करना पड़ रहा है। यहाँ मैं अन्य शाखा को भी आगे बढ़ाने में सक्षम नहीं हूँ। मैं हालांकि इसे पहली बार आगे बढ़ा रहा हूं।
संतोष कदम

1
मैंने असुरक्षित निकाल दिया लेकिन अब क्या होगा? दुनिया में कोई और भी इस रेपो पर काम कर सकता है?
फ्लटर

14

मेरी स्थानीय मशीन में हल की गई समस्या:

A. पहले, सुनिश्चित करें कि आप Bitbucket Server से कनेक्ट करने के लिए विवरण पर सही लॉग का उपयोग कर रहे हैं (यानी। एक उपयोगकर्ता नाम / पासवर्ड / SSH कुंजी जो आपके अंतर्गत आता है) 

ख। फिर, यह सुनिश्चित करें कि नाम / ईमेल पता आपके स्थानीय Git कॉन्फ़िगरेशन में सही तरीके से सेट किया गया है: अपने स्थानीय Git कॉन्फ़िगरेशन को उस खाते के लिए सेट करें जिसे आप के तहत पुश करने की कोशिश कर रहे हैं (जाँच का दावा है कि आप उस व्यक्ति हैं जो फ़ाइलों के लिए प्रतिबद्ध हैं) * ध्यान दें कि यह मामला संवेदनशील है, नाम और ईमेल पते दोनों के लिए * यह भी अंतरिक्ष संवेदनशील है - कुछ कंपनी खातों में उनके नाम में अतिरिक्त स्थान / वर्ण हैं। " Contractor/ space space(LDN)"। आपको अपने कॉन्फ़िगरेशन में बिटबकेट सर्वर के समान रिक्त स्थान शामिल करना चाहिए। अटक जाने पर नोटपैड में इसकी जांच करें।

C. यदि आप गलत खाते का उपयोग कर रहे थे, तो बस अपना खाता क्रेडेंशियल (उपयोगकर्ता नाम / पासवर्ड / SSH कुंजी) स्विच करें और फिर से पुश करने का प्रयास करें।

D. यदि आपका स्थानीय कॉन्फ़िगरेशन गलत है, तो आपको इसमें संशोधन करने की आवश्यकता होगी

मैक के लिए

open -a TextEdit.app ~/.gitconfig

नोट: आपको उन पुराने कमिटों को ठीक करना होगा जिन्हें आप पुश करने की कोशिश कर रहे थे।

  1. अपनी अंतिम प्रतिबद्धता में संशोधन करें:

    > git commit --amend --reset-author
    
      
    <save and quit the commit file text editor that opens, if Vim then
    :wq to save and quit>
    
  2. अपने कमिट को फिर से पुश करने की कोशिश करें:

    > git push
    

12

मेरे मामले में, अपनी टीम के एक रेपो बनाया (रेपो खाली था) और मुझे के रूप में आवंटित करने के लिए नेतृत्व डेवलपर जब मैं कोड को धक्का दे तो सीधे त्रुटि मैं का सामना करना पड़ रहा था गुरु ! [remote rejected] master -> master (pre-receive hook declined)तो यह कैसे तय किया गया था कि वह मुझे के रूप में करने के लिए सौंपा मेंटेनर तो मैं कोड को सीधे मास्टर तक पहुँचाने में सक्षम था।


10

लगता है कि समस्या कुछ सेवाओं के साथ है, जैसे साइडकीक। रनिंग sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=productionसभी समस्याओं को कॉन्फ़िगर के साथ आउटपुट करता है।


4

ihave ने heroku लॉग्स img https://devcenter.heroku.com/articles/buildpacks#detection-failure (cmd का उपयोग करें: heroku लॉग्स -> अपनी त्रुटि दिखाएं) के निर्देश का पालन किया, फिर cmd करें: "फ़ोकस बिल्ड बिल्डैक्स: स्पष्ट"। अंत में, यह मेरे लिए काम किया!


2

आपके पास प्रोजेक्ट या मास्टर शाखा तक डेवलपर की पहुंच नहीं हो सकती है। नए काम को आगे बढ़ाने के लिए आपको देव पहुंच की आवश्यकता है।

नए काम का अर्थ है नई शाखाएं और कमिट।


2

मामला नहीं हो सकता है, लेकिन यह मेरे " पूर्व प्राप्त हुक अस्वीकृत " त्रुटि का समाधान था :

कुछ रिपॉजिटरी हैं जो केवल पुल अनुरोध के माध्यम से संशोधन की अनुमति देते हैं । इसका मतलब है कि आपको करना है

  1. जिस शाखा को आप अपने परिवर्तनों को धकेलना चाहते हैं, उसे आधार बनाते हुए एक नई शाखा बनाएँ।
  2. नई शाखा में अपने परिवर्तनों को कमिट करें और पुश करें।
  3. मूल शाखा के साथ अपनी शाखा को मर्ज करने के लिए एक पुल अनुरोध खोलें।

0

आपको अपने sit कुंजी को अपने git खाते में जोड़ना होगा, यदि यह त्रुटि फेंकता है तो पिछली ssh कुंजी को हटा दें और एक नई ssh कुंजी बनाएँ।


यह मदद नहीं की। :( दोनों खातों पर परीक्षण किया गया - vm और स्थानीय मशीन के संबंध में रूट और
मायूसर

check git Remote -v, आपका git repo जोड़ा गया है या नहीं?
हार्दिक हार्डिया 17

'git रिमोट -v' आउटपुट: ओरिजिनल git @ mygitlabhost: रिपॉजिटरी / यूजर / रिपॉजिट (fetch) ओरिजिनिट git @ mygitlabhost: रिपॉजिटरी / यूजर / repo.git (पुश)
ह्रदय

यदि आप होस्ट किए गए गिटलैब का उपयोग कर रहे हैं, तो समस्या उनके पक्ष में होने की संभावना है। बस कुछ मिनट बाद फिर से कोशिश करें।
एरिक एरोनिटी

0

मैं बदल कर इस समस्या का समाधान remote 'origin' urlसे httpकरने gitमें प्रोटोकॉल.git/config


0

प्रोजेक्ट सेटिंग्स पर जाएं -> हुक -> (अंडर) हुक पूर्व प्राप्त करें

अक्षम cp को कमिट में इश्यू संदर्भ की आवश्यकता होती है


0

मैं BitBucket का उपयोग करते हुए एक ही त्रुटि पर ठोकर खाई। मेरे पास एक स्थानीय गिट रेपो था जिसे मैं ऑनलाइन बैकअप देना चाहता था, इसलिए मैंने अपने बिटबकेट खाते (वेब ​​इंटरफ़ेस का उपयोग करके) से एक नया भंडार बनाया।

दौड़ने के बाद git remote add origin git@bitbucket.org:StatMarianne/<a private repo>.git, मुझे git push origin masterकोई फायदा नहीं हुआ (मैं आमतौर पर -u विकल्प का उपयोग git pushनहीं करता हूं क्योंकि मुझे धक्का देने और खींचने के दौरान पूर्ण रेपो और शाखा नामों को टाइप करने में कोई आपत्ति नहीं है)।

त्रुटि पढ़ी गई:

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'

लेकिन मेरे स्थानीय शाखा को सफलतापूर्वक धक्का दिया गया जब मैं भाग गया git push -u origin master(सख्ती से BitBucket के निर्देशों का पालन करते हुए)।

मुझे यह आश्चर्यजनक लगता है, क्योंकि -u ( --set-upstream) को केवल "अपस्ट्रीम (ट्रैकिंग) संदर्भ ..." किसी भी तरह जोड़ना चाहिए।


-1

मैंने एक ही मुद्दे का सामना किया है, यह इसलिए है क्योंकि मैं अपने कोड को सीधे मास्टर शाखा में धकेल रहा हूं, और मेरे पास इसके लिए अधिकार नहीं हैं। इसलिए मैं अपने कोड को एक नई शाखा में धकेलता हूं और उसके बाद, मैंने मास्टर के साथ विलय करने के लिए एक पुल अनुरोध बनाया।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.