আপনার সত্যিই এমন একটি ওয়ার্কফ্লো থাকা উচিত যা আপনাকে মার্জ করে এই সব করতে দেয়:
- x - x - x (v2) - x - x - x (v2.1)
\
x - x - x (wss)
সুতরাং আপনাকে যা করতে হবে তা হ'ল git checkout v2.1
এবং git merge wss
। যদি কোনও কারণে আপনি সত্যিই এটি করতে না পারেন এবং আপনি আপনার ডাব্লুএসএস শাখাকে সঠিক জায়গায় নিয়ে যেতে গিট রিবেস ব্যবহার করতে না পারেন তবে কোথাও থেকে একটি একক প্রতিশ্রুতি গ্রহণ করতে এবং এটি অন্য কোথাও প্রয়োগ করার কমান্ডটি হ'ল গিট চেরি-পিক । আপনি যে শাখায় এটি প্রয়োগ করতে চান তা কেবল পরীক্ষা করে দেখুন এবং চালান git cherry-pick <SHA of commit to cherry-pick>
।
পুনঃবাসের কিছু উপায় আপনাকে রক্ষা করতে পারে:
যদি আপনার ইতিহাসটি এমন দেখাচ্ছে:
- x - x - x (v2) - x - x - x (v2.1)
\
x - x - x (v2-only) - x - x - x (wss)
আপনি git rebase --onto v2 v2-only wss
ডাব্লুএসএসকে সরাসরি ভি 2 এ স্থানান্তর করতে ব্যবহার করতে পারেন :
- x - x - x (v2) - x - x - x (v2.1)
|\
| x - x - x (v2-only)
\
x - x - x (wss)
তাহলে আপনি একীভূত করতে পারেন! আপনি যদি সত্যিকার অর্থে সত্যই সত্যিকার অর্থে পৌঁছাতে না পারেন যেখানে আপনি একীভূত করতে পারেন তবে আপনি একবারে বেশ কয়েকটি চেরি-পিকগুলি কার্যকরভাবে কার্যকর করতে পুনরায় ব্যবহার করতে পারেন:
# wss-starting-point is the SHA1/branch immediately before the first commit to rebase
git branch wss-to-rebase wss
git rebase --onto v2.1 wss-starting-point wss-to-rebase
git checkout v2.1
git merge wss-to-rebase
দ্রষ্টব্য: এটি করার জন্য কিছু অতিরিক্ত কাজ করার কারণটি হ'ল এটি আপনার ভান্ডারটিতে সদৃশ কমিট তৈরি করছে। এটি সত্যিই খুব ভাল জিনিস নয় - সহজ শাখা এবং মার্জ করার পুরো বিষয়টি হ'ল এক জায়গায় প্রতিশ্রুতিবদ্ধ (গুলি) তৈরি করে এবং যেখানে যেখানে প্রয়োজন সেখানে মার্জ করে সমস্ত কিছু করতে সক্ষম হবেন। সদৃশ কমিটস এর অর্থ হ'ল এই দুটি শাখাকে কখনই মার্জ করবেন না (যদি আপনি পরে সিদ্ধান্ত নিতে চান তবে আপনি বিরোধ পাবেন)।