2013-10-09 8 views
5

मैं अपने मर्ज बदलने के बारे में सोच रहा हूँ "फ़ॉलबैक मर्ज करने के लिए, rebase कोशिश" केवल का उपयोग कर rebase अधिक बार के लिए कार्यप्रवाह। इस विशेष मामले में, मैं एकमात्र डेवलपर हूं, लेकिन मैं कई प्लेटफ़ॉर्म पर काम करता हूं, अक्सर प्लेटफ़ॉर्म-विशिष्ट भागों के लिए समान फ़ाइलों को संपादित करता हूं, आमतौर पर गैर-विरोधाभासी परिवर्तनों के साथ। लेकिन मैं इसके बारे में कुछ अनिश्चित हूं, गिट विलय बनाम गिट रिबेस के बारे में बहस के कारण, और उनकी सुरक्षा (उदाहरण के लिए this बनाम this देखें, a question के दो शीर्ष उत्तरों)।Git सुरक्षित रिबेस या

प्रश्न: संभव पुल के रूप में के रूप में स्वच्छ "सुरक्षित" लेकिन अभी भी के लक्ष्य के साथ निम्नलिखित की तरह कुछ, कैसे करना है/rebase/सम्मिलित करें:

  • अगर कोई गैर-धक्का दे दिया करता है, तो git pull --rebase तक कर रहे हैं पहला विलय ऑपरेशन जो स्थानीय इतिहास के साथ संघर्ष करता है।
  • फिर git pull --no-rebase बाकी को मर्ज करने और संघर्ष समाधान करने के लिए।
  • संभावित रूप से जितना संभव हो सके इतिहास के समानांतर हिस्से को रखने के लिए, संभवतः अंतिम गैर विरोधाभासी परिवर्तनों के लिए पुन: प्रयास करने के लिए वापस स्विच करें।

तो यदि कोई संघर्ष नहीं है, तो अंतिम परिणाम रिबेस और अच्छे रैखिक इतिहास के साथ खींच जाएगा। यदि संघर्ष हैं, तो विलय दिखाई देंगे, लेकिन समांतर इतिहास जितना संभव हो उतना छोटा होगा।

क्या यह सही साइड गिट कमांड या दो के साथ संभव है, सही स्विच के साथ (जिसे मैं पुल स्क्रिप्ट या उपनाम में लिख सकता हूं)? यदि नहीं, तो क्या यह कुछ मौजूदा उपकरण के साथ संभव है?

एक और तरीका है इस सवाल को देखने के लिए: मैं rebase या विलय को चुनने का निर्णय स्वचालित करना चाहते हैं, तो मुझे लगता है कि विस्तार के बारे में सोचना जब पुल कर जरूरत नहीं है।

इसके अलावा, क्या यह कोई समझ भी आता है? :)

उत्तर

2

मैं जो सुझाव दे रहा हूं उसका पालन करता हूं। सबसे पहले मैं एक रिबेस का प्रयास करता हूं, और यदि कोई संघर्ष नहीं होता है तो यह सिर्फ काम करता है, और आपका इतिहास बहुत साफ है। यदि कोई संघर्ष है तो मैं विलय करता हूं।

एकमात्र अंतर यह है कि मैं आपके तीसरे बुलेट बिंदु में सुझाव दे रहे एक पुल के बीच विलय को विभाजित करने और पुन: विभाजन करने का प्रयास नहीं करता। वास्तव में, मुझे यकीन नहीं है कि यहां तक ​​कि समझ में आता है। जब आप संघर्षों को हल करते हैं तो यह विवादों के माध्यम से काम करने और rebase continue करने जैसा ही लगता है। नतीजा संघर्ष के साथ एक रिबेस के समान होगा।

यदि आपके पास ऐसे परिवर्तन हैं जिन्हें धक्का देने की आवश्यकता है। या तो एक rebase करो या, यदि संघर्ष है, तो एक विलय करें।

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