push.default यह
परिभाषित करता है कि यदि कोई रिफस्पेक्ट स्पष्ट रूप से नहीं दिया गया है तो कार्रवाई को धक्का देना चाहिए। विशिष्ट वर्कफ़्लोज़ के लिए विभिन्न मूल्य अच्छी तरह से अनुकूल हैं; उदाहरण के लिए, विशुद्ध रूप से केंद्रीय वर्कफ़्लो में (यानी फ़ोकस स्रोत पुश डेस्टिनेशन के बराबर है), अपस्ट्रीम शायद वही है जो आप चाहते हैं। संभावित मूल्य हैं:
कुछ भी नहीं - जब तक स्पष्ट रूप से एक refspec नहीं दिया जाता है, तब तक किसी भी चीज (त्रुटि) को धक्का न दें। यह मुख्य रूप से उन लोगों के लिए है जो हमेशा स्पष्ट होने से गलतियों से बचना चाहते हैं।
करंट - वर्तमान ब्रांच को प्राप्त करने वाले सिरे पर उसी नाम के साथ ब्रांच को अपडेट करने के लिए पुश करें। केंद्रीय और गैर-केंद्रीय दोनों वर्कफ़्लो में काम करता है।
अपस्ट्रीम - वर्तमान शाखा को उस शाखा पर वापस धकेलें, जिसके परिवर्तन आमतौर पर वर्तमान शाखा में एकीकृत होते हैं (जिसे @ {अपस्ट्रीम} कहा जाता है)। यह मोड केवल तभी समझ में आता है यदि आप उसी रिपॉजिटरी पर जोर दे रहे हैं जिसे आप सामान्य रूप से (यानी केंद्रीय वर्कफ़्लो) से खींचेंगे।
सरल - केंद्रीकृत वर्कफ़्लो में, अपस्ट्रीम ब्रांच के नाम के साथ काम करने से इंकार करने के लिए अपस्ट्रीम ब्रांच का नाम लोकल से अलग है।
जब आप ऐसे रिमोट से धक्का देते हैं जो आपके द्वारा खींचे जाने वाले रिमोट से अलग होता है, तो करंट के रूप में काम करते हैं। यह सबसे सुरक्षित विकल्प है और शुरुआती लोगों के लिए अनुकूल है।
यह मोड Git 2.0 में डिफ़ॉल्ट हो जाएगा।
मिलान - दोनों छोरों पर समान नाम वाली सभी शाखाओं को धक्का दें। यह उस रिपॉजिटरी को बनाता है जिसे आप उन शाखाओं के सेट को याद करने के लिए धकेल रहे हैं जिन्हें बाहर धकेला जाएगा (जैसे कि यदि आप हमेशा मेन्ट और मास्टर को धक्का देते हैं और कोई अन्य शाखा नहीं है, तो आप जिस रिपॉजिटरी को धक्का देते हैं, उसकी इन दो शाखाएँ होंगी, और आपका स्थानीय मेन्ट और मास्टर वहाँ धकेल दिया जाएगा)।
इस मोड का प्रभावी ढंग से उपयोग करने के लिए, आपको यह सुनिश्चित करना होगा कि आप जिन सभी शाखाओं को बाहर निकालेंगे वे गिट पुश को चलाने से पहले धक्का देने के लिए तैयार हैं, क्योंकि इस मोड का पूरा बिंदु आपको एक ही बार में सभी शाखाओं को धक्का देने की अनुमति देता है। यदि आप आमतौर पर केवल एक शाखा पर काम खत्म करते हैं और परिणाम को बाहर निकालते हैं, जबकि अन्य शाखाएं अपूर्ण हैं, तो यह मोड आपके लिए नहीं है। साथ ही यह मोड एक साझा केंद्रीय भंडार में धकेलने के लिए उपयुक्त नहीं है, क्योंकि अन्य लोग वहां नई शाखाएँ जोड़ सकते हैं, या अपने नियंत्रण के बाहर मौजूदा शाखाओं की नोक को अपडेट कर सकते हैं।
यह वर्तमान में डिफ़ॉल्ट है, लेकिन Git 2.0 डिफ़ॉल्ट को सरल में बदल देगा।