मुझे अभी पता चला है कि यदि आपके अनकम्पोजिट बदलाव इंडेक्स में जोड़े जाते हैं (अर्थात "स्टेज्ड", का उपयोग करके git add ...
), तो git stash apply
(और, संभवतः git stash pop
) , वास्तव में एक उचित मर्ज करेंगे। यदि कोई संघर्ष नहीं है, तो आप सुनहरे हैं। यदि नहीं, तो उन्हें हमेशा की तरह git mergetool
, या मैन्युअल रूप से एक संपादक के साथ हल करें ।
स्पष्ट होने के लिए, यह वह प्रक्रिया है जिसके बारे में मैं बात कर रहा हूं:
mkdir test-repo && cd test-repo && git init
echo test > test.txt
git add test.txt && git commit -m "Initial version"
# here's the interesting part:
# make a local change and stash it:
echo test2 > test.txt
git stash
# make a different local change:
echo test3 > test.txt
# try to apply the previous changes:
git stash apply
# git complains "Cannot apply to a dirty working tree, please stage your changes"
# add "test3" changes to the index, then re-try the stash:
git add test.txt
git stash apply
# git says: "Auto-merging test.txt"
# git says: "CONFLICT (content): Merge conflict in test.txt"
... जो शायद आप देख रहे हैं।
tl; डॉ
git add
पहले दौड़ो ।