TL; ড
আপনার ক্ষেত্রে ব্যবহারের Bশীর্ষে রিবেস করার সঠিক বাক্য গঠন :Agit rebase --onto
git checkout B
git rebase --onto A B^
বা রি-বেসের ফলে Bশীর্ষে Aথেকে শুরু কমিট যে পিতা বা মাতা হলB সঙ্গে রেফারেন্সড B^বা B~1।
আপনি যদি এর মধ্যে পার্থক্যটি আগ্রহী হন git rebase <branch>এবং git rebase --onto <branch>পড়ুন।
দ্য কুইক: গিট রিবেস
git rebase <branch>শাখা আপনি বর্তমানে চেক আউট করেছি, দ্বারা সমর্থিত রি-বেসের ফলে যাচ্ছে HEAD, শীর্ষ উপর সর্বশেষ কমিট যে যোগাযোগ করা যাবে থেকে <branch>কিন্তু না থেকে HEAD।
এটি প্রত্যাবর্তনের সবচেয়ে সাধারণ ঘটনা এবং তর্কসাপেক্ষে এটির জন্য সামনের পরিকল্পনা কম প্রয়োজন।
Before After
A---B---C---F---G (branch) A---B---C---F---G (branch)
\ \
D---E (HEAD) D---E (HEAD)
এই উদাহরণে, Fএবং Gএমন কমিটগুলি রয়েছে যেগুলি থেকে পৌঁছানো যায় branchতবে আসে না HEAD। বলছে git rebase branchনিতে হবে D, হয় যে প্রথম শাখাবিন্যাস বিন্দু পরে কমিট, এবং এটা রি-বেসের ফলে (অর্থাত তার পিতা বা মাতা পরিবর্তন ) সর্বশেষ উপরে কমিট থেকে পৌঁছানো branchকিন্তু থেকে HEAD, যে G।
যথার্থ: গিট রিবেস - 2 তর্ক যুক্তি দিয়ে
git rebase --ontoআপনাকে একটি নির্দিষ্ট কমিট থেকে শুরু করে রিবেস করতে দেয় । এটি আপনাকে কী রিবেস করা হচ্ছে এবং কোথায় হচ্ছে তার সঠিক নিয়ন্ত্রণ দেয়। এটি এমন দৃশ্যের জন্য যেখানে আপনার সুনির্দিষ্ট হওয়া দরকার।
উদাহরণস্বরূপ, আসুন কল্পনা করুন যে শুরু থেকে আমাদের HEADউপরে অবিকল পুনঃবারণ প্রয়োজন । আমরা কেবল আমাদের কার্যকারী শাখায় আনতে আগ্রহী যখন একই সময়ে আমরা রাখতে চাই না কারণ এতে কিছুটা বেমানান পরিবর্তন রয়েছে।FEFD
Before After
A---B---C---F---G (branch) A---B---C---F---G (branch)
\ \
D---E---H---I (HEAD) E---H---I (HEAD)
এই ক্ষেত্রে, আমরা বলব git rebase --onto F D। এর অর্থ:
রি-বেসের ফলে থেকে পৌঁছানো কমিট HEADযার পিতা বা মাতা হল Dউপরে F।
অন্য কথায়, পিতা বা মাতা পরিবর্তন এর Eথেকে Dথেকে F। এর সিনট্যাক্সটি git rebase --ontoতখন git rebase --onto <newparent> <oldparent>।
আর একটি দৃশ্য যেখানে এটি কার্যকর হয় তা হ'ল আপনি যখন ইন্টারেক্টিভ রিবেস না করেই বর্তমান শাখা থেকে কিছু কমিট দ্রুত সরিয়ে ফেলতে চান :
Before After
A---B---C---E---F (HEAD) A---B---F (HEAD)
এই উদাহরণস্বরূপ, সারণিটি সরিয়ে ফেলতে Cএবং Eক্রম থেকে আপনি বলবেন git rebase --onto B Eবা পুরানো পিতা বা মাতা যেখানে ছিলেন তার HEADউপরে পুনরায় সরিয়ে ফেলুন ।BE
সার্জন: গিট রিবেস - 3 টি আর্গুমেন্ট সহ
git rebase --ontoনির্ভুলতার দিক থেকে আরও একধাপ এগিয়ে যেতে পারে। প্রকৃতপক্ষে, এটি আপনাকে অন্য একের শীর্ষে কমিটসগুলির একটি স্বেচ্ছাসেবী সীমাটি পুনরায় চালু করতে দেয়।
এখানে একটি উদাহরণ:
Before After
A---B---C---F---G (branch) A---B---C---F---G (branch)
\ \
D---E---H---I (HEAD) E---H (HEAD)
এই ক্ষেত্রে, আমরা বর্তমানে দিকে ইশারা দিচ্ছি তা উপেক্ষা E---Hকরে উপরে সঠিক রেঞ্জটি পুনরায় চালু করতে চাই। আমরা এটি করে বলতে পারি , যার অর্থ:FHEADgit rebase --onto F D H
করে যার পিতা বা মাতা হয় পরিসীমা রি-বেসের ফলে Dপর্যন্ত Hশীর্ষে F।
কমিটের git rebase --ontoএকটি ব্যাপ্তির সাথে সিনট্যাক্সটি হয়ে যায় git rebase --onto <newparent> <oldparent> <until>। কৌতুক এখানে স্মরণ করা হয় যে, দ্বারা সমর্থিত কমিট <until>করা হয় অন্তর্ভুক্ত সীমার মধ্যে এবং নতুন হয়ে যাবে HEADপর রি-বেসের ফলে সম্পূর্ণ।