जब मैं git format-patch
का उपयोग करता हूं, तो इसमें विलय शामिल नहीं लगता है। मैं विलय कैसे कर सकता हूं और फिर इसे पैच के सेट के रूप में किसी को ईमेल कर सकता हूं?गिट: मर्ज के लिए पैच कैसे बनाएं?
B
/ \
A M - D
\ /
C
अब मैं चेकआउट करने के लिए प्रयास करें:
git init
echo "initial file" > test.txt
git add test.txt
git commit -m "Commit A"
git checkout -b foo master
echo "foo" > test.txt
git commit -a -m "Commit B"
git checkout -b bar master
echo "bar" > test.txt
git commit -a -m "Commit C"
git merge foo
echo "foobar" > test.txt
git commit -a -m "Commit M"
echo "2nd line" >> test.txt
git commit -a -m "Commit D"
यह निम्न पेड़ बनाता है:
उदाहरण के लिए, मान लें कि मैं दो शाखाओं विलय और प्रदर्शन एक और मर्ज के शीर्ष पर प्रतिबद्ध जाने प्रारंभिक प्रतिबद्धता और उपरोक्त परिवर्तनों को दोबारा दोहराएं:
git checkout -b replay master
git format-patch --stdout master..bar | git am -3
यह एक विलय confl पैदा करता है आईसीटी। इस परिदृश्य में, git format-patch master..bar
केवल "कमिट एम" को छोड़कर 3 पैच उत्पन्न करता है। इससे मैं कैसे निपटूं?
-Geoffrey ली
नकारात्मक साबित करना मुश्किल है लेकिन सीह की तरह, मैंने इस समस्या पर एक झटका लगा और मुझे लगता है कि आप सही हैं। – JasonSmith
हां, मैं पैच फ़ाइलों के साथ मुद्दों को समझता हूं। मैं उम्मीद कर रहा था कि एक कामकाज होगा, क्योंकि कोई यह मान लेगा कि लिनक्स या गिट परियोजनाओं में इसी तरह की स्थितियों का सामना करना पड़ा है, और वे पूरी तरह से पुश/पुल के बजाय ई-मेल के माध्यम से पैच सबमिट करने पर भरोसा करते हैं। मैं गिट मेलिंग सूची पिंग करूँगा और देख सकता हूं कि उनके पास कोई अतिरिक्त प्रतिक्रिया है या नहीं। धन्यवाद। – geofflee
यदि आप के बजाय ऊपर $ Git के साथ विलय --squash foo $ Git प्रतिबद्ध -एक -m मर्ज लाइन प्रतिस्थापित किया था कि "कमिट एम" अपने पैच सफाई से लागू किया गया होता ... – omnisis