2012-04-21 11 views
98

अक्षम करने के लिए गिट का उपयोग कर रहा हूं और मैं अपना विकास कार्य कर रहा हूं, जिसे मैं गलती से भी धक्का नहीं देना चाहता हूं। क्या कुछ स्थानीय भंडार में पुश को अक्षम करने का कोई तरीका है। शाखा का नाम बदलने का एक तरीका है, दूसरा undo push है यदि कोई गलती से करता है, लेकिन मुझे उम्मीद है कि एक और सीधी विधि होनी चाहिए।गिट कैसे पुश

उत्तर

206

निम्न आदेश खींचतान काम करने देगा, लेकिन यूआरएल no_push का उपयोग करने की कोशिश करेंगे धक्का और असफल:

git remote set-url --push origin no_push 
+3

धन्यवाद। 'केवल एक निश्चित शाखा के धक्का' को अक्षम करने के लिए कैसे? – user984260

+5

@ user984260: मुझे लगता है कि आप केवल उस शाखा के लिए रिमोट सेट कर सकते हैं: 'git config branch। .remote no_push'। लेकिन यदि शाखा एक स्थानीय विकास शाखा है, तो इसका नाम है, क्या यह वास्तव में एक समस्या है? इसे डिफ़ॉल्ट रूप से धक्का नहीं दिया जाएगा (डिफ़ॉल्ट रूप से कोई तर्क नहीं के साथ 'गिट पुश' केवल स्थानीय शाखाओं और रिमोट पर मौजूद शाखाओं को धक्का देता है) और यहां तक ​​कि यदि आप इसे धक्का देते हैं, तो आप केवल उस रिमोट पर एक नई शाखा बना रहे हैं जिसे आप तुरंत हटा सकते हैं। – Cascabel

+0

हाँ, आप सही हैं। धन्यवाद। – user984260

6

रिमोट के आधार पर, आप एसएसएच या एचटीटीपीएस के बजाय केवल पढ़ने के लिए गिट प्रोटोकॉल का उपयोग करने के लिए अपने यूआरएल को रीसेट करने में सक्षम हो सकते हैं। जैसे, GitHub पर एक परियोजना के लिए,

git remote set-url <remote> git://github.com/Team/Project.git 

कर जहां <remote> सामान्यतः origin है। git remote -v आपको रिमोट की एक सूची देगा; जो https से शुरू होते हैं या फॉर्म <user>@<host>:<path> आमतौर पर पुश करने की अनुमति देते हैं।

+0

मेरे लिए काम नहीं किया! यह भी खींचता है :( –

-1

Git 2.0 में, git branch --unset-upstream वर्तमान शाखा के खिलाफ काम कर git push कर पाएगा। शायद यह भी रोकता है इस केवल ब्लॉक संक्षिप्त git push यह, (यह भी Git के संस्करणों में, अगर push.default या तो upstream या simple पर सेट है काम करेंगे> = 1.8।)

# git push works 
$ git push 
Everything up-to-date 

# unset upstream 
$ git branch --unset-upstream 

# git push fails 
$ git push 
fatal: The current branch master has no upstream branch. 
To push the current branch and set the remote as upstream, use 

    git push --set-upstream origin master 

(ध्यान दें कि git push origin master अभी भी काम करेगा। गिट स्टेटस संकेतक जो शेल प्रॉम्प्ट में दिखाई देते हैं, यह दर्शाते हुए कि आप रिमोट से आगे या पीछे हैं।)

+16

का उपयोग करें यह 'गिट पुल' को भी अक्षम करता है। – orome

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