जैसा कि अन्य ने कहा है, आप stash
या checkout --merge
का उपयोग कर सकते हैं। हालांकि उन विकल्पों में कुछ फाइल के टाइमस्टैम्प में बदलाव आएगा। यदि आप एक बड़ी परियोजना पर काम कर रहे हैं जहां संकलन में काफी समय लग सकता है (हमारी वर्तमान परियोजना वितरित बिल्डों के साथ संकलित करने में आधे घंटे लगती है), यह इष्टतम नहीं हो सकता है।
इस स्थिति में, आप सही शाखा में प्रतिबद्धता को स्थानांतरित करने के लिए एक और भंडार का उपयोग कर सकते हैं। सबसे पहले, आप (केवल एक बार करना होगा इस जरूरत को) अपने वर्तमान भंडार क्लोन करने के लिए की आवश्यकता होगी:
$ cd /path/to/repository
$ git add path/to/modified/files
$ git commit -m 'Commit message'
अन्य भंडार में:
$ git clone /path/to/repository repository.clone
$ cd repository.clone
$ git remote add origin repository.clone
$ git fetch origin
फिर अपने मौजूदा भंडार में, आप अपने परिवर्तन के लिए प्रतिबद्ध , आप लाने के नए प्रतिबद्ध है, और सही शाखा पर ले जाते हैं:
$ cd ../repository.clone
$ git fetch origin
$ git checkout correct-branch
$ git reset --hard origin/correct-branch
$ git cherry-pick origin/current-branch
$ # resolve conflicts if any, commit with -c option in this case
$ git push origin correct-branch:correct-branch
फिर मूल भंडार पर, आप निकालना अस्थायी प्रतिबद्ध है, और (जुड़े संशोधन को हटाने को छोड़कर आप k करना चाहते हैं उन्हें दोनों शाखाओं में लगाओ)।
$ cd /path/to/repository
$ git reset HEAD^
$ # edit file and remove modifications moved to other branch
यह अधिक जटिल है और इतिहास नए सिरे से लिखना शामिल है, लेकिन जब अपनी परियोजना वास्तव में बड़े हैं, और संकलन समय एक सीमित कारक है, यह तकनीक का पता करने के लिए महान हो सकता है। ध्यान दें कि आप क्लोन रिपोजिटरी का पुन: उपयोग कर सकते हैं, इसलिए प्रत्येक बार इसे हटाने/फिर से बनाने की आवश्यकता नहीं है (यदि संकलन समय लंबा है, तो भंडार शायद बड़ा है, और क्लोनिंग में कुछ समय लग सकता है)।
मीठे। आपको बस यह सुनिश्चित करना होगा कि आपके परिवर्तन चरणबद्ध हैं। अच्छी तरह से काम। – helios
बहुत चालाक, निश्चित रूप से कुछ छेड़छाड़ करना वास्तव में आसान बनाता है – Martin