मैगिट-पुश विंडोज पर लटका हुआ है


10

मैं विंडोज पर GNU Emacs का उपयोग कर रहा हूं, और मैं magit-pushअपने स्थानीय परिवर्तनों को दूरस्थ रिपॉजिटरी में धकेलने के लिए उपयोग करने में असमर्थ हूं। यह दूरस्थ रिपॉजिटरी के साथ होता है, भले ही वे SSH या HTTPS के साथ एक्सेस किए गए हों। magit-pushविंडोज पर काम को मूल रूप से (या कम से कम लगभग) करने के लिए मुझे क्या करने की आवश्यकता है, जैसा कि मेरी लिनक्स मशीनों पर होता है?

मैं *Messages*बफर में देख रहा हूँ

Running c:/Program Files (x86)/Git/bin/git.exe push -v origin master:refs/heads/master

*magit-process*बफर में एक ही शो , कम या ज्यादा। अधिक उपयोगी कुछ भी नहीं है। मैं कमांड लाइन से पुश करने में सक्षम हूं, लेकिन यह मेरी ssh कुंजी का पासवर्ड मांगता है। समस्या है कि हो सकता है? मैंने पेजेंट (PuTTY के प्रमुख एजेंट) के साथ कुंजी लोड करने की कोशिश की है, लेकिन इससे कोई फर्क नहीं पड़ता।

यदि यह मददगार है, तो मैंने Cygwin को स्थापित किया है, और एक समाधान से खुश होगा जिसमें Emacs को Cygwin के निष्पादनयोग्य का उपयोग करने के लिए मजबूर किया गया था।

जवाबों:


6

मैगिट की विकी अब एमएस विंडोज का उपयोग करते समय मैगिट से धक्का दे सकने वाले विभिन्न तरीकों के बारे में एक पृष्ठ पेश करती है। नए ssh-agencyपैकेज की भी जांच करें । विकी पेज और पैकेज दोनों @npostavs द्वारा लिखे गए थे।

यह भी ध्यान दें कि यदि आप धक्का नहीं दे सकते तो यह वास्तव में कभी भी मैगिट की गलती नहीं है। यह आमतौर पर एक कॉन्फ़िगरेशन समस्या है (भले ही आप शेल से धक्का दे सकते हैं लेकिन मैगिट का उपयोग करते समय नहीं)।


6

आमतौर पर, समस्या यह है कि Emacs विंडोज पर पासवर्ड प्रॉम्प्ट का उपयोग नहीं कर सकते हैं। इस प्रकार, यह पुश पर "लटका" लगता है, जहां यह वास्तव में आपके पासवर्ड की प्रतीक्षा कर रहा है। आप अपने git रेपो में उपयोगकर्ता नाम / पासवर्ड के बजाय ssh कुंजी का उपयोग करके इसे दरकिनार कर सकते हैं, और शेल में मैन्युअल रूप से पहला पुश कर रहे हैं (git पहले पुश के बाद आपके ssh पासवर्ड को याद रखेगा)।


1
Git bash शेल मेरे ssh पासवर्ड को याद नहीं करता है, इसलिए अधिक पुश केवल उसी चीज़ को देख रहे हैं।
रयान

3

यदि आपने पहले से ऐसा नहीं किया है, तो मैं HTTP के बजाय SSH का उपयोग करने की सलाह दूंगा क्योंकि कई लोगों ने इसकी जांच के दौरान मुझसे सिफारिश की है। कहा कि, मैं नीचे दिए गए FAQ का उपयोग करके इस समस्या को हल करने में सक्षम था:

https://github.com/magit/magit/wiki/FAQ#windows-cannot-push-with-ssh-passphrase

लापता घटक (जीथब के गिट बैश .bashrc स्क्रिप्ट से) यह है कि यह विंडोज़ कमांड लाइन या ईमैक्स जैसे इंटरफेस के लिए ssh- एजेंट स्टार्टअप को हैंडल नहीं करता है। उपरोक्त चरणों के बाद emacs स्टार्टअप पर ssh-agent आरंभ करता है। ध्यान दें, आपको अपनी मशीन को शुरू / पुनः आरंभ करने पर Git Bash शुरू करना होगा और अपना SSH पासफ़्रेज़ दर्ज करना होगा।


2

मैंने भी कुछ समय के लिए इस व्यवहार का अनुभव किया है, और आज तक वास्तव में इसे ठीक करने की कोशिश नहीं कर रहा है। मैंने अपनी इन-फाइल में निम्नलिखित को रखा:

(setenv "GIT_SSH" "C:/Path/to/PuTTY/plink.exe")

मैंने एक साफ इमैक ( emacs -Q), लोडिंग magit, और उस लाइन का मूल्यांकन करके, और यह काम करके इसका परीक्षण किया।

यह साथ काम करता है Pageant, इसलिए इसके साथ खिलवाड़ करने की कोई जरूरत नहीं है ssh-agent


1
मेरे लिए यह किसी के लिए सबसे अच्छा समाधान था जिसने कमांड-लाइन गिट और पगेटी-संबंधित निष्पादन जैसे पेजेंट को स्थापित किया था।
टॉम पुरल

1

यदि आपके पास पहले से ही Cygwin स्थापित है तो आप अपनी चाबी का प्रबंधन करने के लिए चाबी का गुच्छा और चाबी का गुच्छा-पर्यावरण का उपयोग कर सकते हैं ।

चाबी का गुच्छा लॉन्च करने के लिए अपनी पसंद के शेल का उपयोग करें

(require 'keychain-environment)
(keychain-refresh-environment)

यह सुनिश्चित करने के लिए कि चाबियाँ Emacs में भरी हुई हैं।


हममम। मैंने यह कोशिश की, और वास्तव में कुछ भी नहीं बदला। यह magit-pushआदेश हमेशा की तरह ही लटका रहा।
रयान

1

मुझे कभी नहीं लगा कि इसे केवल MSYS Git और Emacs के साथ कैसे ठीक किया जाए, लेकिन यहाँ सहज समाधान है।

अपने $ पेट में Git क्रेडेंशियल Winstore जोड़ें । Git-Credential-Winstore आपके लिए अपने पासवर्ड का प्रबंधन करने के लिए विंडोज चाबी का गुच्छा का उपयोग करेगा और मैगिट खुशी से दूरस्थ रिपॉजिटरी पर धक्का देगा।

अपनी .gitconfigफ़ाइल में, निम्नलिखित सेट करें:

[credential]
        helper = "winstore"

यह काम करता है क्योंकि Git क्रेडेंशियल डॉक्स यह बताता है कि "यदि हेल्पर नाम एक पूर्ण पथ नहीं है, तो स्ट्रिंग git क्रेडेंशियल- पूर्वनिर्मित है।" मैं इस दृष्टिकोण को पसंद करता हूं।

वैकल्पिक रूप से, आप बस git-क्रेडेंशियल-winstore.exe चला सकते हैं और यह आपके AppData फ़ोल्डर में स्थापित हो जाएगा और आपकी .gitconfigफ़ाइल को हार्डकोड किए गए पथ के साथ भर देगा । इसे चलाने के बाद, आपका हाथ .gitconfigइस तरह दिखेगा:

[credential]
        helper = !"c:\\Users\Joe\\\AppData\\Roaming\\GitCredStore\\git-credential-winstore.exe"

विस्मयादिबोधक बिंदु गिट को स्ट्रिंग को एक पूर्ण पथ के रूप में व्यवहार करने का निर्देश देता है।


0

जैसा कि @bastibe ने बताया, मैगिट शायद एक पासवर्ड इनपुट की प्रतीक्षा कर रहा है और बस वहां लटका हुआ है ...

मुझे निम्न कार्य याद है जब मुझे Windows :-) का उपयोग करने के लिए मजबूर किया गया था। मुझे सटीक कमांड नाम याद नहीं है, यह भी सुनिश्चित करें कि exec-pathइसमें शामिल है c:/Program Files (x86)/Git/bin/

(setenv "GIT_ASKPASS" "git-gui--askpass")

0

मैं गित शेल से runemacs.exe चलाता हूं। अब मैजिट कार्यों से गिट धक्का।


1
यह किसी भी तरह से सवाल से संबंधित नहीं लगता है। यदि आप प्रश्न का उत्तर देना चाहते हैं, तो कृपया अपने उत्तर को संपादित करें जो बताता है कि कैसे चल रहा runemacsहै किसी भी तरह से मैजिट से संबंधित है।
गाइल्स का SO- बुराई से दूर रहना '

अच्छा। इससे पहले कि मैं बेहतर तरीके से समझाने का मौका पाऊं, मैं विलोपन के लिए चिह्नित हो जाऊं? यह समस्या का जवाब (समाधान) है।
माजिद अलदोसारी

1
मुझे नहीं लगता कि उत्तर को अस्वीकार किया जाना चाहिए। लेकिन इसका कारण समझाने में बेहतर हो सकता है कि यह क्यों काम किया (अगर खिड़कियों पर गिट शेल से चल रहा है, तो कुछ पर्यावरण चर को एमएसीएस में अलग-अलग रूप से आरंभ किया जाएगा, इससे मैगिट को भी समझ में आने वाले तरीके से गिट के साथ बातचीत करने में सक्षम हो जाएगा)। शायद जिस तरह से ओपी ने मैगिट आदेशों को चलाने की कोशिश की, जिस तरह से मैगिट ने उम्मीद नहीं की थी।
wvxvw

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