क्या कोई गिट रिपॉजिटरी सेट अप करने का कोई तरीका है, ताकि git pull
एक रिमोट पर डिफॉल्ट हो और git push
दूसरे पर डिफ़ॉल्ट हो? मुझे पता है कि remote
के मान को .git/config
के शाखा अनुभाग में बदलकर सेट कर सकते हैं, लेकिन प्रत्येक दिशा के लिए इसे अलग-अलग कैसे करें?गिट पुल और गिट पुश के लिए अलग-अलग डिफ़ॉल्ट रिमोट (ट्रैकिंग शाखा)
उत्तर
गिट 1.6.4 और बाद में, remote.<name>.pushurl
गिट कॉन्फ़िगर के साथ सेट करें।
कोई भी केवल पढ़ने के लिए https:
प्रोटोकॉल का उपयोग करके खींचने के लिए इसका उपयोग कर सकता है और एक एसएसएच-आधारित प्रोटोकॉल का उपयोग करके धक्का दे सकता है।
कहो origin
के यूआरएल (remote.origin.url
) https://git.example.com/some/repo.git
है। यह केवल पढ़ने के लिए है, लेकिन आपके पास एसएसएच-आधारित 'यूआरएल' [email protected]:some/repo.git
के माध्यम से लेखन पहुंच है। ssh आधारित प्रोटोकॉल पर जोर दे प्रभाव के लिए निम्न आदेश चलाएँ:
git config remote.origin.pushurl [email protected]:some/repo.git
मैं क्या git config man page से इकट्ठा कर सकते हैं से, नदी के ऊपर रेपो है:
- डिफ़ॉल्ट मूल के आधार पर
- एक के लिए द्वारा
branch.remote
हमेशा
- सेट दोनों
git pull/fetch
औरgit pull
के लिए दी गई शाखा, मुझे डिफ़ॉल्ट डिफ़ॉल्ट रूप से दो अलग रिमोट रखने का कोई तरीका नहीं दिख रहा है।
यह गिट v1.8.3.2 के लिए प्रैक्टिस में सही लगता है, दोनों 'गिट कॉन्फ़िगर रिमोट ...' और गिट रिमोट सेट-यूआरएल ... 'उत्तर, एक शाखा के लिए या पूरी तरह से एक रेपो की प्रति। –
डिफ़ॉल्ट रिमोट को वर्तमान शाखा के लिए 'मूल' पर रीसेट करने के लिए और मिलान शाखा नाम से पुश/पुल करने के लिए: 'गिट पुश --सेट-अपस्ट्रीम मूल
के बाद से Git संस्करण 1.7.0, आप के साथ इस सेट कर सकते हैं:
git remote set-url --push origin https://your.push.com/blah/
, लेकिन यह नया स्वीकार्य उत्तर होना चाहिए! – Kevlar
@ केवलर क्यों? स्वीकार करने के लिए हमेशा "सर्वश्रेष्ठ" उत्तरों को चिह्नित करने के लिए उपयोग नहीं किया जाता है, लेकिन वह ओपी के लिए काम करता है (अधिक जानकारी के लिए अक्सर पूछे जाने वाले प्रश्न)। उत्तर से ऊपर प्रश्न पूछने के समय काम नहीं करेगा (यहां तक कि अस्तित्व में नहीं होगा), क्योंकि गिट 1.8 से पहले था। स्वीकृत उत्तर हालांकि ओपी के लिए काम किया था। तीन साल बाद ओपी के फैसले को बदलने के लिए आपको क्या कारण है? – trejder
@trejder स्टैक ओवरफ़्लो भी भविष्य के आगंतुकों के उपयोगी उत्तर देने के लिए एक जगह है, जो किसी खोज इंजन या जो भी हो, के माध्यम से कोई प्रश्न पूछता है। वर्तमान में सबसे अच्छा जवाब पहले दिखाई देने योग्य है। मैं यह नहीं कह रहा हूं कि ओपी * को स्वीकार किए गए उत्तर को बदलना चाहिए, लेकिन ऐसा करने के लिए यह पूरी तरह से उचित (और मेरी राय में एक सकारात्मक सकारात्मक) होगा। – amalloy
यह 1.7.1 और बाद के संस्करण में काम करता है -
git remote set-url --push origin [email protected]:username/somerepo.git
[user392887 के उत्तर] से अलग कैसे है (http://stackoverflow.com/a/17930364/41071)? – svick
मेरे पास उस उत्तर को टिप्पणी करने या कम करने की क्षमता नहीं है। मेरे उत्तर में नोट करने के लिए दो महत्वपूर्ण चीजें: 1) मैं एसएसएच का उपयोग करता हूं। गिटहब के अनुसार, "हम गिटहब के साथ बातचीत करते समय एक एसएसएच कनेक्शन का उपयोग करने की दृढ़ता से अनुशंसा करते हैं। एसएसएच कुंजी पासवर्ड शामिल किए बिना विश्वसनीय कंप्यूटरों की पहचान करने का एक तरीका है।" 2) आरएचईएल/सेंटोस 6 का उपयोग करने वाला कोई भी व्यक्ति डिफ़ॉल्ट रूप से गिट 1.7.1 का उपयोग करेगा - 1.7.1 सेट-यूआरएल का समर्थन करता है, मैंने अभी इसका इस्तेमाल किया है। – potto
Git 1.8.3 के बाद से, आप आप क्या चाहते हैं (यानी pull
और push
के लिए अलग-अलग डिफ़ॉल्ट रिमोट वाले) करने के लिए remote.pushDefault
विकल्प का उपयोग कर सकते हैं। आप किसी अन्य की तरह विकल्प सेट कर सकते हैं; उदाहरण के लिए, pushTarget
दूरस्थ करने के लिए इसे स्थापित करने के लिए, का उपयोग
git config remote.pushDefault pushTarget
निम्नलिखित प्रभाव पड़ेगा यह विकल्प:
git pull
प्रासंगिक शाखा खंड मेंremote
विकल्प में से दूरस्थ निर्दिष्ट से खींच लेंगे.git/config
, जबकिgit push
remote.pushDefault
द्वारा निर्दिष्ट दूरस्थ पर धक्का देगा।
ध्यान दें कि आप नाम एक दूरस्थ, नहीं एक यूआरएल के निर्दिष्ट करने के लिए की जरूरत है। यह इस समाधान को remote.<name>.pushurl
से जुड़े समाधान से अधिक लचीला बनाता है, क्योंकि (उदाहरण के लिए) आप अभी भी दोनों रिमोट्स के लिए शाखाओं को ट्रैक करेंगे। चाहे आपको चाहिए या यह लचीलापन आपके ऊपर है या नहीं।
The release notes कहें कि यह विकल्प त्रिकोणीय वर्कफ़्लो का समर्थन करने के लिए विशेष रूप से जोड़ा गया था।
अजीब: मैंने सोचा कि आप केवल अपस्ट्रीम पर दबाव डाल रहे हैं, और आप नहीं जानते कि कितने डाउनस्ट्रीम रेपो आपके द्वारा खींच रहे हैं: http://stackoverflow.com/a/2749166/6309 – VonC
@VonC Ah, हाँ, मैं देखता हूं यह भ्रमित क्यों है। मैं आम तौर पर रिमोट को कॉल करता हूं जिसे मैं डिफ़ॉल्ट रूप से 'अपस्ट्रीम' से * खींचना चाहता हूं क्योंकि ... अच्छी तरह से ... यह उन खींचने के दौरान मेरे भंडार की अपस्ट्रीम है। लेकिन विकल्प 'पुशडिफॉल्ट' है, न कि 'pullDefault', इसलिए मैंने उदाहरण में नाम के रूप में 'डाउनस्ट्रीम' का उपयोग किया। यह संभवतः 'डिफ़ॉल्ट पुश लक्ष्य' कहने का एक बेहतर विचार है;) – MvanGeest
@MvanGeest मैं सहमत हूं। लेकिन मैं पुष्टि करता हूं कि आप आम तौर पर "अपस्ट्रीम" को दबाते हैं। वहाँ एक (या बहुत कम और ज्ञात) अपस्ट्रीम। लेकिन कई (और अज्ञात) डाउनस्ट्रीम हो सकते हैं। ऐसा DVCS (जैसा कि "वितरित" में) ब्रह्मांड है। – VonC
- 1. गिट सेटअप रिमोट ट्रैकिंग शाखा
- 2. गिट: ट्रैकिंग शाखा क्या है?
- 3. गिट पुश और गिट पुल के बीच क्या अंतर है?
- 4. गिट सबमिशन प्रतिबद्ध/पुश/पुल
- 5. गिट पुश काम नहीं कर रहा है लेकिन गिट पुल रिमोट शाखा
- 6. गिट फिल्टर-शाखा के बाद गिट पुश
- 7. एक्सकोड गिट पुल/पुश क्रैश
- 8. रिमोट शाखा "गिट शाखा -आर"
- 9. गिट रिमोट शाखा और रिमोट रेफ
- 10. गिट रिमोट शाखा
- 11. गिट - रिमोट शाखा
- 12. रिफस्पेक मतभेदों के साथ गिट पुल/फ़ेच
- 13. गिट पुश वर्तमान शाखा को हर्मोकू
- 14. एक बार में गिट पुल और गिट पुश
- 15. गिट रिबेस को पुश/पुल कैसे करें
- 16. "गिट रिमोट एड ..." और "गिट पुश मूल मास्टर" क्या है?
- 17. गिट रिमोट गिट सर्वर
- 18. गिट स्टैश और गिट पुल
- 19. गिट - रिमोट शाखा (मूल नहीं)
- 20. गिट: एक निश्चित रिमोट शाखा
- 21. पुश स्थानीय मास्टर रिमोट शाखा
- 22. गिट एक और शाखा
- 23. गिट - रिमोट रिपोजिटरी
- 24. केवल नंगे भंडार के लिए गिट पुश?
- 25. गिट - वर्तमान शाखा शॉर्टकट
- 26. phpstorm गिट पुल --rebase
- 27. गिट पुश
- 28. गिट पोस्ट-पुश हुक?
- 29. रिमोट ट्रैकिंग शाखा और रिमोट पर एक शाखा के बीच क्या अंतर है?
- 30. गिट: गिट पुश रोकें
एक कहने के लिए कैसे धक्का है ' विकास 'शाखा और एक ही रिमोट + नंगे गिट भंडार में' उत्पादन 'शाखा से आने से खींचें? प्रश्न के 3 साल बाद – Ninad