संक्षेप में;
- मैं दूरस्थ मल्टीपल मर्ज किए गए रीमोट को कैसे हटा सकता हूं?
अधिक पृष्ठभूमि;
मेरे पास दसियों रीमोट्स के साथ जीआईटी रेपो है जिसे मास्टर में मिला दिया गया है। मैं इन रिमोट को एक बार में प्रयोग करके हटा सकता हूं:
git push --delete origin myBranch-1234
हालांकि यह सभी रीमोट के लिए धीमी और थकाऊ प्रक्रिया है। तो मैं इस आदेश की कोशिश कर रहा हूँ:
git branch -r --merged | grep origin | grep -v master | xargs git push origin --delete
git branch -r --merged
सभी मर्ज किए गए रीमोट को सूचीबद्ध करता है।
grep origin
उत्पत्ति को शामिल करने की आज्ञा बताता है।
grep -v master
मास्टर को बाहर करने की आज्ञा बताता है।
xargs git push origin --delete
रीमोट की सूची को हटाने के लिए कमांड को बताता है।
सभी एक साथ, मैं यह उम्मीद करता हूं कि सभी मर्ज किए गए अवशेषों को इकट्ठा करें और उन्हें हटा दें।
जब मैं उपरोक्त कमांड चलाता हूं, तो मुझे हर मर्ज किए गए रिमोट के लिए निम्नलिखित प्राप्त होता है;
error: unable to delete 'origin/myBranch-1234': remote ref does not exist
error: unable to delete 'origin/myBranch-1235': remote ref does not exist
error: unable to delete 'origin/myBranch-1236': remote ref does not exist
error: unable to delete 'origin/myBranch-1237': remote ref does not exist
... etc
हालांकि ये उपाय मौजूद हैं और मैं उनमें से प्रत्येक की जांच कर सकता हूं। कई साइटें और लोग सलाह देते हैं कि मैं git fetch --prune
लापता संदर्भों को साफ करने के लिए दौड़ता हूं । यह कुछ नहीं करता है क्योंकि इन सभी के अवशेष मौजूद हैं।
तो मैं आपसे पूछता हूं, प्रिय स्टैक एक्सचेंज;
- मैं एक रिमोट क्यों हटा सकता हूं, लेकिन कई नहीं?
- क्या मेरी आज्ञा सही है?
मुझे लगता है कि मुझे कुछ छोटा याद आ रहा है। हर बार जब मैं इस पर शोध करता हूं, तो ऐसा लगता है कि मैं इसे सही तरीके से कर रहा हूं, लेकिन मुझे उपरोक्त त्रुटियां हो रही हैं।
--prune
? मेरी राय में यह बहुत भ्रामक है