এই পদ্ধতির কাছে এসেছিলেন (এবং এটি সম্ভবত ইন্টারেক্টিভ রিবেস ব্যবহারের মতোই একই) তবে আমার জন্য এটি একধরনের সোজা।
দ্রষ্টব্য: প্রতিদিনের বিকল্পের চেয়ে আপনি যা করতে পারেন তার উদাহরণের জন্য আমি এই পদ্ধতির উপস্থাপন করছি। যেহেতু এটির অনেকগুলি পদক্ষেপ রয়েছে (এবং সম্ভবত কিছু ক্যাভেট রয়েছে))
বলুন আপনি প্রতিশ্রুতি পরিবর্তন করতে চান 0
এবং আপনি বর্তমানে চালু আছেনfeature-branch
some-commit---0---1---2---(feature-branch)HEAD
এই প্রতিশ্রুতিতে চেকআউট করুন এবং একটি তৈরি করুন quick-branch
। আপনি পুনরুদ্ধার পয়েন্ট হিসাবে (বৈশিষ্ট্য শুরুর আগে) হিসাবে আপনার বৈশিষ্ট্য শাখা ক্লোন করতে পারেন।
?(git checkout -b feature-branch-backup)
git checkout 0
git checkout -b quick-branch
আপনার এখন এই জাতীয় কিছু থাকবে:
0(quick-branch)HEAD---1---2---(feature-branch)
পর্যায় পরিবর্তন হয়, স্ট্যাশ সব কিছু।
git add ./example.txt
git stash
পরিবর্তনগুলি প্রতিশ্রুতিবদ্ধ এবং চেকআউটে ফিরে feature-branch
git commit --amend
git checkout feature-branch
আপনার এখন এই জাতীয় কিছু থাকবে:
some-commit---0---1---2---(feature-branch)HEAD
\
---0'(quick-branch)
রি-বেসের ফলে feature-branch
সম্মুখের quick-branch
(পথ ধরে কোন দ্বন্দ্ব সমাধান)। স্ট্যাশ প্রয়োগ করুন এবং সরান quick-branch
।
git rebase quick-branch
git stash pop
git branch -D quick-branch
এবং আপনি এখানে দিয়ে শেষ:
some-commit---0'---1'---2'---HEAD(feature-branch)
গিটটি নকল করবে না (যদিও আমি সত্যিই বলতে পারি না কতটা পরিমাণে) রিবাইজ করার সময় 0 কমিট করে।
দ্রষ্টব্য: সমস্ত প্রতিশ্রুতিবদ্ধ হ্যাশগুলি মূলত পরিবর্তনের উদ্দেশ্যে আমরা যে প্রতিশ্রুতি দিয়েছিলাম তা থেকে শুরু হয়।