विलय पर हटाए गए फ़ाइल को अनदेखा करता है मेरे पास दो भंडार हैं। समय-समय पर, मैं other
की सामग्री को main
में मर्ज करना चाहता हूं। हालांकि विलय हटाए गए फाइलों को अनदेखा करता है। मुझे एक उदाहरण के माध्यम से यह स्पष्ट करने दें:गिट
mkdir -p test/main test/other
cd test/other/
git init
touch one two three
git add .
git commit -m "Add one, two and three."
cd ../main/
git init
touch four
git add .
git commit -m "Add four."
रिमोट के रूप में main
करने के लिए other
जोड़ें।
git remote add other ../other/
git fetch other
इसकी सामग्री मर्ज करें।
git merge --squash other/master
git commit -m "Merge other."
यह फ़ाइलों को सही तरीके से जोड़ता है। अब, other
में एक फ़ाइल को हटा दें।
cd ../other/
git rm two
git commit -m "Remove two."
main
में परिवर्तन मर्ज करें।
cd ../main/
git fetch other
git merge --squash other/master
के बाद मर्ज git status
का कहना है:
# On branch master
nothing to commit (working directory clean)
मैं, मर्ज two
नष्ट करने के लिए उम्मीद करेंगे के रूप में यह other
में हटाया गया था। मैं क्या गलत कर रहा हूं?
सच है, यह स्पष्टीकरण समझ में आता है। मैं दूसरे के साथ मुख्य इतिहास को प्रदूषित न करने के लिए स्क्वैश विलय करना चाहता था। लेकिन ऐसा लगता है कि कोई दूसरा रास्ता नहीं है। आपकी सहायताके लिए धन्यवाद! –
@GergoErdosi यदि आप * "अनपॉल किए गए" इतिहास को देखना चाहते हैं, तो 'गिट लॉग' के लिए 'प्रथम-पैरेंट' विकल्प देखें। – Borealid
टिप के लिए धन्यवाद! –