अक्सर, Git और रेल जादू की तरह दिखता है ... इस तरह के first chapter of Rails 3 Tutorial book में के रूप में, यह Git बारे में बात करती:"गिट रिमोट एड ..." और "गिट पुश मूल मास्टर" क्या है?
git remote add origin [email protected]:peter/first_app.git
git push origin master
और यह काफी कहते हैं, "यह सिर्फ काम करता है" वे क्या कर रहे हैं के बारे में बहुत ज्यादा कह बिना और शाखाकरण के बारे में बात करना शुरू करें। नेट शो पर खोज करना कि git remote add
एक "छोटा नाम" जोड़ना है, जैसे कि origin
, और यह कोई भी नाम हो सकता है, जो किसी यूआरएल के उपनाम की तरह है। और origin
रिमोट रेपो कहां से सामान्य मार्ग है। (http://git-scm.com/book/en/Git-Basics-Working-with-Remotes में "रिमोट रेपॉजिटरीज जोड़ना" के तहत)
तो यूआरएल git://[email protected]/peter/first_app.git
क्यों नहीं है लेकिन अन्य वाक्यविन्यास में - यह वाक्यविन्यास क्या है? यह .git
के साथ क्यों समाप्त होना चाहिए? मैंने अंत में .git
का उपयोग नहीं करने की कोशिश की और यह भी काम करता है। यदि .git
नहीं है, तो यह और क्या हो सकता है? git
[email protected]
में गिट सर्वर पर एक उपयोगकर्ता खाता प्रतीत होता है?
इसके अलावा, git push origin master
का उपयोग करने के लिए इसे इतनी वर्बोज़ क्यों होने की आवश्यकता है? डिफ़ॉल्ट और मास्टर मूल नहीं हो सकता है? मैंने पाया कि पहली बार, origin master
की आवश्यकता है, लेकिन एक छोटे से संपादन और प्रतिबद्धता के बाद, git push
इसकी सभी जरूरत है (origin master
की आवश्यकता नहीं है)। क्या कोई जानता है कि क्या हो रहा है कुछ विवरण दे?
कभी-कभी यह स्पष्टीकरण के बिना बहुत सारे जादू की तरह लगता है ... और कभी-कभी इसका उपयोग करने वाला व्यक्ति इतना आत्मविश्वासपूर्ण होता है और जब पूछा जाता है कि क्यों इसे समझा नहीं सकता है, और "जैसा तरीका है" जैसा कुछ जवाब देता है। कभी-कभी बहुत व्यावहारिक और व्यावहारिक। व्यावहारिक होना बुरा नहीं है, लेकिन संभवत: यह जानने के लिए व्यावहारिक नहीं है कि क्या हो रहा है।
आप अपने अनुच्छेद में एक नोट जोड़ना चाहते हैं कि '[email protected]: पीटर/first_app.git' गिट में एसएसआर यूआरएल के लिए' एसपीपी 'शैली वाक्यविन्यास है। एक अन्य बिंदु यह है कि, डिफ़ॉल्ट रूप से, 'मास्टर' की अपस्ट्रीम कॉन्फ़िगरेशन' गिट पुश 'के व्यवहार को प्रभावित नहीं करता है * जब तक आपके पास' push.default' 'ट्रैकिंग' पर सेट नहीं होता है (या बाद के संस्करणों में' अपस्ट्रीम ') - मैंने भ्रम के इस स्रोत के बारे में एक ब्लॉग पोस्ट किया: http://longair.net/blog/2011/02/27/an-asymmetry-between-git-pull-and-git-push/ –
एक छोटा सुधार उस टिप्पणी - 'push.default' के बिना अपस्ट्रीम कॉन्फ़िगरेशन का उपयोग डिफ़ॉल्ट रिमोट को खोजने के लिए किया जाएगा जब आप' गिट पुश 'का उपयोग करते हैं, लेकिन रेफरी के मैपिंग को प्रभावित नहीं करेंगे। –
क्या यह सही है ... अन्य VCS I जैसे TortoiseSVN का उपयोग बहुत ही "ब्लैक बॉक्स" लगता है ... कुछ सरल कमांड जो बहुत स्पष्ट परिभाषित तरीकों से काम करते हैं। इसे सीखना एक घंटे से भी कम समय लेता है, और हर कोई इस बारे में काफी स्पष्ट है कि यह कैसे है। गिट या एचजी के साथ, यह 1-यूनिट सेमेस्टर कक्षा की तरह लगता है। और जब कुछ भी होता है, तो लोग इतने निश्चित नहीं होते कि क्या हो रहा है और इसे कैसे ठीक किया जाए। [cont'd] –