मैगिट के साथ एक शाखा के अपस्ट्रीम को बदलें


47

जब आप मैगिट (साथ P P) के साथ एक शाखा को धक्का देते हैं और शाखा का कोई अपस्ट्रीम नहीं होता है, तो मैगिट आपसे उस शाखा का नाम पूछता है जिसे आप पुश करना चाहते हैं। एक दम बढ़िया।

एक बार जब आप एक शाखा के लिए अपस्ट्रीम सेट करते हैं, हालांकि, मैगिट अब आपसे यह नहीं पूछता है कि आप इसे कहां धक्का देना चाहते हैं। यह आमतौर पर सुविधाजनक है (आप हर बार पूछा जाना नहीं चाहते हैं), लेकिन यह एक शाखा को एक अलग दूरस्थ शाखा में धकेलना मुश्किल बनाता है।

क्या मैगिट के पास मुझे गंतव्य शाखा के बारे में फिर से पूछने का एक तरीका है, भले ही वर्तमान शाखा में पहले से ही एक अपस्ट्रीम हो?


उदाहरण

यह काफी सामान्य है कि मेरे पास इस तरह की एक शाखा है:

Local:    issue-30 ~/Git-Projects/repo/
Remote:   issue-30 @ origin (git@github.com:.../repo.git)
Head:     ebe4054 Some commit message

और मैं स्थानीय और दूरस्थ दोनों शाखाओं को बदलना चाहता हूं issue-30-and-34। यदि मैं सिर्फ स्थानीय शाखा का नाम बदल देता हूं, तो मैं इसके साथ रह जाता हूं:

Local:    issue-30-and-34 ~/Git-Projects/repo/
Remote:   issue-30 @ origin (git@github.com:.../repo.git)
Head:     ebe4054 Some commit message

यहां तक कि अगर मेरे द्वारा हटाए जाने origin/issue-30, कर P Pपर issue-30-and-34 बस को पुन: होगा origin/issue-30

मैं जो कर रहा हूं वह निम्नलिखित है, लेकिन यह उस चीज के लिए गोल चक्कर लगता है जो एक ही gitआदेश में किया जा सकता है :

  1. नामक एक नई शाखा बनाएँ issue-30-and-34 (पुराने नाम बदलने के बजाय),
  2. दोनों स्थानीय और के दूरस्थ संस्करण हटाने issue-30,
  3. धक्का issue-30-and-34(चूँकि इसमें अभी तक कोई अपस्ट्रीम नहीं है, मैगिट मुझसे पूछेगा कि मुझे धक्का कहाँ देना है)।

कृपया मेरे बजाय @tarsius द्वारा उत्तर को स्वीकार करने पर विचार करें ( प्रासंगिक जानकारी खोजने में आसान बनाने के लिए )।
कांस्टेंटाइन

@ कॉन्सटेंटाइन ने किया।
मालाबार

जवाबों:


60

v2.1आपके साथ शुरू करके वर्तमान शाखा के अपस्ट्रीम को रिमोट या लोकल ब्रांच में बदल सकते हैं bu[REMOTE/]BRANCHRET। इसके साथ शुरू v2.4, यदि एक अपस्ट्रीम पहले से ही सेट है, तो buबस इसे अनसेट कर देगा। uनया मान सेट करने के लिए फिर से दबाएं ।

साथ शुरू करना v2.4और यदि अपस्ट्रीम परेशान है, तो आप उपयोग करके धक्का देते हुए अपस्ट्रीम भी सेट कर सकते हैं pu[REMOTE/]BRANCHRET। आपसे स्वचालित रूप से पूछा जाएगा कि अपस्ट्रीम के रूप में किस शाखा का उपयोग करना है। एक बार अपस्ट्रीम सेट puहो जाने के बाद आप इसे अपस्ट्रीम में बदलाव किए बिना धक्का देंगे। इसलिए अपस्ट्रीम को बदलने के लिए, आपको पिछले पैराग्राफ में वर्णित दृष्टिकोण का उपयोग करना होगा।

इससे पहले v2.4दूरस्थ शाखा को सेट करना भी संभव था जिसे आप अपस्ट्रीम शाखा के रूप में उपयोग कर रहे हैं p-ueREMOTE/BRANCHRET। लेकिन अब --set-upstreamस्विच डिफ़ॉल्ट रूप से पुश पॉपअप में उपलब्ध नहीं है । आप इसे magit-push-current-set-remote-if-missingशून्य पर सेट करके प्राप्त कर सकते हैं । इसके दो प्रभाव हैं: --set-upstreamस्विच अगले पुनरारंभ के बाद फिर से उपलब्ध होगा और पिछले पैराग्राफ में वर्णित दृष्टिकोण अब काम नहीं करेगा।


यदि आप चाहते हैं कि दूसरे और तीसरे पैराग्राफ में वर्णित दोनों विशेषताएं एक ही समय में उपलब्ध हों, तो magit-push-current-set-remote-if-missingअछूता छोड़ दें और इसे आप इनिट फ़ाइल में जोड़ें:

(magit-define-popup-switch 'magit-push-popup
  ?u "Set upstream" "--set-upstream")

11

प्रेस " P C-u C-u P" मैगिट बनाने के लिए पूछें कि धक्का देने से पहले रिमोट और रिमोट शाखा का क्या उपयोग करना है।

(एकल उपसर्ग तर्क के साथ (" P C-u P") मैगिट पूछता है कि रिमोट का क्या उपयोग करना है।)

मैंने इसे P C-h k Pमैगिट स्टेटस बफर में दबाकर पाया , डॉक्स ऑफ़ ( magit-pushऔर magit-push-dwimये डॉक्स आउट ऑफ डेट, बीटीडब्लू), और प्रयोग करते हुए पढ़ते हैं ।

PS: मैं मैगिट का उपयोग करता हूं magit-1.2.0-2049-ge6839e8


5
यह उत्तर थोड़ा पुराना है।
सिजमन व्याग्नस्की

1

ऐसा लगता है कि यह अभी शाखा / कॉन्फ़िगर अनुभाग के तहत है:

b C p pushRemote सेट करने के लिए


किसी भी विचार कैसे डिफ़ॉल्ट के अलावा एक रिमोट निर्दिष्ट करने के लिए?
scry

0

नवंबर 2016 तक, और नवीनतम magit, यहाँ एक आंशिक समाधान है:

P e- आपको धक्का देने की अनुमति देता है elsewhere, लेकिन यह याद नहीं है

मुझे मैजिट के लिए कोई रास्ता नहीं मिला --set-upstream, इसलिए मैंने बस टर्मिनल से किया, एक तरह का धोखा लेकिन यह मुझे इस समस्या पर मिला:

git push --set-upstream origin <branch-name>

और अब नया अपस्ट्रीम बच गया है, और मैं अपनी अगली चीज़ बना सकता हूं :)


1
"मुझे कोई रास्ता नहीं मिल रहा है [...] --set-upstream" - शायद आपको
ट्राइसियस का

यकीन है, यह मुझे यह पता लगाने में मदद मिली है। बस, magitतब से थोड़ा बदल गया है, और मेरी उम्मीद यह है कि मेरा समाधान किसी को कुछ मिनटों में बचाता है
जोश।

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