2013-10-16 13 views
11

मैं आमतौर पर चलाएँ:एक ही कमांड में "गिट पुश" और "गिट पुश --टैग"?

git push 
git tag v4.7 
git push --tags 

दोनों पहले और तीसरे आपरेशन सर्वर, जो समय बरबाद करने के लिए कनेक्ट।
मैं इसे केवल एक बार दबाकर तेज़ी से बनाना चाहता हूं। यह आदेश क्या प्राप्त करेगा?
यह script को एक बाश में है, और किसी भी शाखा में ठीक से चलाने की आवश्यकता है, न केवल master

--all:

मैनुअल पढ़ना, मुझे नहीं लगता कि git push all समाधान है इसके बजाय प्रत्येक रेफरी नामकरण पुश करने के लिए की, यह बताता है कि के तहत refs/सिर/धकेल दिया सब refs।

- टैग: रेफरी/टैग के तहत सभी रेफरी को कमांड लाइन पर स्पष्ट रूप से सूचीबद्ध रेफस्पेक्स के अतिरिक्त धक्का दिया जाता है।

+0

'गीट पुश - टैग्स हेड' के बारे में क्या पढ़ सकते हैं? –

+0

HEAD का मतलब वर्तमान शाखा है, इसलिए मैं इसे "रेफस्पेक स्पष्ट रूप से सूचीबद्ध" के रूप में उपयोग कर सकता हूं! क्या आप इसे उत्तर के रूप में पोस्ट कर सकते हैं ताकि मैं इसे स्वीकार कर सकूं? –

उत्तर

11

निकटतम विकल्प हो सकता है:

git push --follow-tags 

पुश सभी refs कि इस विकल्प के बिना धक्का दे दिया जाएगा, और भी refs/टैग में एनोटेट टैग पुश जो रिमोट से गायब हैं लेकिन पर इंगित कर रहे हैं जो धक्का देने वाले रेफरी से पहुंच योग्य हैं।

+0

यह एक वैध समाधान की तरह लगता है ... यह 'गिट पुश - टैग्स हेड' से अलग कैसे है? –

+0

@ निकोलसराउल 'गीट पुश' की तरह यह अन्य ट्रैकिंग शाखाओं को भी धक्का देता है ('push.default' कॉन्फ़िगरेशन पर निर्भर करता है), न केवल 'HEAD', और यह धक्का वाली शाखाओं पर टैग को धक्का देता है, सभी टैग नहीं। – Kornel

+0

मुझे नहीं लगता कि यह सही है। AFAIK 'गिट पुश 'केवल मौजूदा शाखा को धक्का देता है। –

-4

आप उपयोग कर सकते हैं git push origin <your branch name>

+0

यह सवाल का जवाब नहीं देता है क्योंकि यह टैग को धक्का नहीं देता है। –

4

--tags के प्रलेखन के अनुसार आप धक्का देने के लिए अतिरिक्त रेफस्पेक्स निर्दिष्ट कर सकते हैं।

तो आप बस का उपयोग कर सकते

git push --tags origin HEAD 
+2

यह नहीं करता है काम पर दिखाई देते हैं: "घातक: 'हेड' एक गिट भंडार प्रतीत नहीं होता है"। 'गिट पुश उत्पत्ति हेड - टैग्स' काम करता है, यद्यपि। –

+0

@MariusGedminas: इसे पकड़ने के लिए धन्यवाद। फिक्स्ड। –

1

आप इस आदेश के लिए एक तेज उपयोग किया है उर्फ ​​बना सकते हैं:

git config --global alias.p '!git push && git push --tags' 

या

git config --global alias.pa '!git push --all && git push --tags' 

अब आप इसे की तरह कर सकते हैं यह:

git tag v4.7 
git p 

आप एलियस here

+0

दिलचस्प युक्ति, लेकिन यह सर्वर से किए गए अनुरोधों की संख्या को कम नहीं करता है, है ना? जैसा कि सवाल में बताया गया है कि यह एक बैश स्क्रिप्ट के लिए है, इसलिए मेरा प्रश्न कम टाइप करने के बारे में नहीं है। –

संबंधित मुद्दे