আমার অনুরূপ সমস্যা ছিল এবং আমি লক্ষ্য ফাইল সংস্থার সাথে মেলে আমার কাজটি ছাড় দিয়ে সমাধান করেছি।
বলুন যে আপনি original.txtআপনার শাখায় ( localশাখা) পরিবর্তন করেছেন , তবে মাস্টার শাখায়, original.txtঅন্য একটিতে অনুলিপি করেছেন, বলুন copy.txt। এই অনুলিপি একটি প্রতিশ্রুতিবদ্ধ হয়ে গেছে যে আমরা অঙ্গীকারবদ্ধ নামকরণ CP।
আপনি আপনার স্থানীয় পরিবর্তনগুলি, প্রতিশ্রুতিবদ্ধ Aএবং Bনীচে, যা চালু হয়েছিল original.txtনতুন ফাইলটিতে প্রয়োগ করতে চান copy.txt।
---- X -----CP------ (master)
\
\--A---B--- (local)
moveএর সাথে আপনার পরিবর্তনের শুরুতে একটি নিক্ষেপ শাখা তৈরি করুন git branch move X। এর অর্থ হল, moveশাখাটি কমিট করে রাখুন X, যেটি আপনি সংহত করতে চান তার আগে যেটি অঙ্গীকার করে; সম্ভবত, এটি সেই প্রতিশ্রুতি থেকে আপনি নিজের পরিবর্তনগুলি বাস্তবায়নের জন্য ব্রাঞ্চ আউট করেছিলেন। ব্যবহারকারী @ ডিজিরি ডু নীচে লিখেছেন, আপনি git merge-base master localএটি সন্ধান করতে পারেন X।
---- X (move)-----CP----- (master)
\
\--A---B--- (local)
এই শাখায়, নিম্নলিখিত নামকরণের আদেশটি জারি করুন:
git mv original.txt copy.txt
এটি ফাইলটির নতুন নামকরণ করে। নোট করুন যে copy.txtএই মুহুর্তে আপনার গাছে এখনও উপস্থিত ছিল না।
আপনার পরিবর্তন প্রতিশ্রুতিবদ্ধ (আমরা এই প্রতিশ্রুতি নামকরণ MV)।
/--MV (move)
/
---- X -----CP----- (master)
\
\--A---B--- (local)
আপনি এখন উপরে আপনার কাজটি পুনঃনির্মাণ করতে পারেন move:
git rebase move local
এটি সমস্যা ছাড়াই কাজ করা উচিত এবং আপনার পরিবর্তনগুলি copy.txtআপনার স্থানীয় শাখায় প্রয়োগ করা হয়।
/--MV (move)---A'---B'--- (local)
/
---- X -----CP----- (master)
এখন, আপনি অগত্যা MVআপনার প্রধান শাখার ইতিহাসে প্রতিশ্রুতিবদ্ধতা চান বা প্রয়োজন নেই , কারণ মুভ অপারেশনটি CPমূল শাখায় কমিট করার সময় অনুলিপি অপারেশনের সাথে দ্বন্দ্বের কারণ হতে পারে ।
আপনাকে কেবল নিজের কাজটি পুনরায় শোধ করতে হবে, সরানো ক্রিয়াকলাপটি নিম্নলিখিতভাবে বাদ দিয়ে:
git rebase move local --onto CP
... যেখানে অন্য শাখায় চালু হয়েছিল CPকমিট যেখানে copy.txt। এটি কমিটের copy.txtউপরে থাকা সমস্ত পরিবর্তনকে প্রত্যাখ্যান করে CP। এখন, আপনার localশাখাটি হুবহু হ'ল আপনি সর্বদা সংশোধন করেছেন copy.txtএবং না original.txtএবং আপনি অন্যের সাথে মিশে যেতে পারেন।
/--A''---B''-- (local)
/
-----X-------CP----- (master)
এটি গুরুত্বপূর্ণ যে পরিবর্তনগুলি প্রয়োগ করা হয় CPবা অন্যথায় copy.txtবিদ্যমান ছিল না এবং পরিবর্তনগুলি আবার প্রয়োগ করা হবে original.txt।
আশা করি এটি পরিষ্কার হয়ে গেছে। এই উত্তরটি দেরিতে আসে তবে এটি অন্য কারও পক্ষে কার্যকর হতে পারে।