इसके लिए दो दृष्टिकोण हैं। जहां संभव हो मैं आपके नए गिट वर्किंग डायरेक्टरी के लिए एक साफ फ़ोल्डर के साथ शुरू करूंगा और फिर बाद में आपके संस्करण की नकल करूंगा। यह कुछ इस तरह लग सकता है *:
mv $dir $dir.orig
git clone $url $dir
rsync -av --delete --exclude '.git' $dir.orig/ $dir/
rm -rf $dir.orig
इस बिंदु पर आपके पास वर्तमान कार्यशील निर्देशिका के रूप में आपके पिछले काम करने वाले फ़ोल्डर के साथ एक बहुत ही साफ-सुथरी काम करने वाली प्रति होनी चाहिए ताकि कोई भी परिवर्तन शामिल हो तो फ़ाइल विलोपन रडार पर दिखाई देगा यदि आप चलाते हैं git status
।
दूसरी ओर यदि आप वास्तव में इसे दूसरे तरीके से करना चाहते हैं, तो आप कुछ इस तरह से परिणाम प्राप्त कर सकते हैं:
cd $dir
git clone --no-checkout $url tempdir
mv tempdir/.git .
rmdir tempdir
git reset --mixed HEAD
किसी भी तरह से, पहली चीज जो मैं करूंगा, वह है कि git stash
आपके द्वारा स्थापित सभी स्थानीय परिवर्तनों की एक प्रति प्राप्त करना पसंद है, तो आप उन्हें फिर से लागू कर सकते हैं और वे काम कर सकते हैं जिनके माध्यम से आप प्रतिबद्ध होना चाहते हैं।
* दोनों उदाहरण मानते हैं कि आप अपने प्रोजेक्ट की मूल निर्देशिका में शेल पर शुरू करते हैं।