मेरा रेपो एसवीएन है, और मैं गिट के साथ सभी विकास करता हूं। हम एक मानक लेआउट है, और मुझे git svn init -s <url to repo>
गिट-एसवीएन कैसे जानता है कि कौन सी शाखा को डॉकिट करना है?
साथ अपने स्थानीय रेपो प्रारंभ यहाँ शाखाओं के साथ काम करने के लिए मेरे कार्यप्रवाह है:
# creates a new branch remotely
git svn branch new-branch-name
# switches to a branch or trunk locally
git reset --hard name-of-branch
git reset --hard trunk
# merge changes from trunk into a branch
git reset —hard name-of-branch
git merge trunk
git svn dcommit
कि पिछले आदेश ऊपर शाखा का नाम के- शाखा में परिवर्तन हो जाएंगे। मेरा सवाल है, गिट यह कैसे जानता है? जब मैं reset --hard foo
गिट करता हूं, तो वास्तव में क्या होता है?
यह गिट के बारे में एक सामान्य प्रश्न पर आ सकता है। हर बार जब मैं एक उत्तर शोध करने की कोशिश करता हूं तो मुझे भ्रमित हो जाता है कि क्या svn एकीकरण एक विशेष मामला है या नहीं।
[1] "गिट-एसवीएन पूर्ववर्ती एसवीएन शाखाओं के अनुरूप पूर्वजों के लिए प्रतिबद्ध पेड़ को देखेगा। फिर यह उन लोगों के लिए कमजोर होगा।" - कभी-कभी यह गलत लगता है - क्या यह स्पष्ट रूप से इसे निर्दिष्ट करने का कोई तरीका है? [2] "इस तरह की चीज आपके एसवीएन इतिहास को फ्यूबर कर सकती है" - तो, इतिहास एकजुट होगा, लेकिन कोड फाइलों का विलय ठीक होना चाहिए, हां? –
हम्म, मैन पेज का कहना है कि '--commit-url' का उपयोग केवल परिवहन को स्विच करने के लिए किया जाना चाहिए, और" किसी भी अन्य उद्देश्य (पूछना नहीं) के लिए इस विकल्प का उपयोग करना बहुत दृढ़ता से निराश होता है। " –
यदि आप प्रतिबद्ध करने के लिए एक विशिष्ट शाखा निर्दिष्ट करना चाहते हैं, तो बस अपने गिट रेपो में संबंधित रिमोट शाखा के शीर्ष पर अपनी फीचर शाखा को रीबेस करें। – cdhowie