ধরা যাক গিটে আমাদের নিম্নলিখিত পরিস্থিতি রয়েছে:
একটি তৈরি সংগ্রহস্থল:
mkdir GitTest2 cd GitTest2 git init
মাস্টারের কিছু পরিবর্তন সংঘটিত হয় এবং প্রতিশ্রুতিবদ্ধ হয়:
echo "On Master" > file git commit -a -m "Initial commit"
বৈশিষ্ট্য 1 মাস্টার বন্ধ করে দেওয়া হয়েছে এবং কিছু কাজ শেষ হয়েছে:
git branch feature1 git checkout feature1 echo "Feature1" > featureFile git commit -a -m "Commit for feature1"
এদিকে, মাস্টার-কোডে একটি বাগ আবিষ্কার হয়েছে এবং একটি হটফিক্স-শাখা প্রতিষ্ঠিত হয়েছে:
git checkout master git branch hotfix1 git checkout hotfix1
বাগটি হটফিক্স শাখায় স্থির করা হয়েছে এবং মাস্টারে ফিরে একীভূত করা হয়েছে (সম্ভবত কোনও টানার অনুরোধ / কোড পর্যালোচনা পরে):
echo "Bugfix" > bugfixFile git commit -a -m "Bugfix Commit" git checkout master git merge --no-ff hotfix1
বৈশিষ্ট্য 1 এ বিকাশ অব্যাহত রয়েছে:
git checkout feature1
বলুন আমার বৈশিষ্ট্য শাখায় আমার হটফিক্স দরকার, কারণ বাগটিও সেখানে ঘটে। আমার বৈশিষ্ট্য শাখায় কমিটগুলি নকল না করে আমি কীভাবে এটি অর্জন করতে পারি?
আমি আমার বৈশিষ্ট্য শাখায় দুটি নতুন কমিট পেতে আটকাতে চাই যার বৈশিষ্ট্যটির প্রয়োগের সাথে কোনও সম্পর্ক নেই। এটি আমার জন্য বিশেষত গুরুত্বপূর্ণ মনে হয় যদি আমি টানার অনুরোধগুলি ব্যবহার করি: এই সমস্ত কমিটগুলিও পুল অনুরোধে অন্তর্ভুক্ত করা হবে এবং এটি ইতিমধ্যে সম্পন্ন হয়েছে যদিও এটি পর্যালোচনা করতে হবে (হটফিক্স ইতিমধ্যে মাস্টারটিতে রয়েছে)।
আমি এটি করতে পারি না git merge master --ff-only
: "মারাত্মক: দ্রুত এগিয়ে যাওয়া, গর্ভপাত বন্ধ করা সম্ভব নয়" "তবে আমি নিশ্চিত নই যে এটি আমাকে সাহায্য করেছিল কিনা।
git rebase
আমার কাছে কালো যাদু বলে মনে হচ্ছে ....
git branch feature1
এবং git checkout feature1
একত্রিত হতে পারে git checkout -b feature1
এবং 4 এ সম্পূর্ণরূপে হ্রাস করা যেতে পারেgit checkout -b hotfix1 master
feature1
যদি সম্পূর্ণ স্থানীয় হয় তবে একবার দেখুনgit rebase
।