সম্পাদনা করুন:
নীচে আমার উত্তরটি মার্জ করার একটি উপায় নথী master
করে aq
, যেখানে আপনি যদি মার্জটির বিশদটি দেখেন তবে এটি মার্জ হওয়ার aq
আগে করা পরিবর্তনগুলি তালিকাভুক্ত করে, পরিবর্তিত পরিবর্তনগুলি তালিকাভুক্ত করে master
। আমি বুঝতে পেরেছি যে এটি সম্ভবত আপনি চান না, এমনকি যদি আপনি এটি মনে করেন!
শুধু:
git checkout aq
git merge master
ভাল.
হ্যাঁ, এই সহজ একত্রীকরণ দেখাব যে থেকে পরিবর্তন master
করা হয় নি aq
এই মুহুর্তে, না অন্যান্য উপায় বৃত্তাকার; তবে তা ঠিক আছে - যেহেতু ঘটেছে! পরে, যখন আপনি শেষ পর্যন্ত আপনার শাখাটি এতে master
মার্জ করবেন, তখনই যখন মার্জটি শেষ অবধি আপনার সমস্ত পরিবর্তনগুলি দেখানো হবে master
(যা আপনি যা চান ঠিক তেমনই, এবং প্রতিশ্রুতিবদ্ধ যেখানে লোকেরা যে কোনও উপায়ে সেই তথ্য সন্ধান করতে পারে)।
আমি পরীক্ষা করে দেখেছি এবং নীচের পদ্ধতির উপরের সাধারণ পদ্ধতির হিসাবে ঠিক একই পরিবর্তনগুলি ( মূল পরিবর্তন এবং এর মধ্যে মূল বিভাজন aq
থেকে শুরু হওয়া সমস্ত পরিবর্তনগুলি) দেখানো হয়েছে , যখন আপনি শেষ পর্যন্ত সবকিছুকে আবার মিশ্রিত করে । সুতরাং আমি মনে করি এর একমাত্র আসল অসুবিধা (অতিরিক্ত-জটিল এবং অ-মানক হওয়া ছাড়া ...: - /) হ'ল আপনি যদি সাম্প্রতিক পরিবর্তনগুলি ঘুরে দেখেন এবং এটি একীভূত হওয়ার পরে চলে যায় তবে নীচের সংস্করণটি নীচে ফিরে যাবে 'ভুল' শাখা, যা আপনাকে হাত দিয়ে ঠিক করতে হবে (উদাহরণস্বরূপ & দিয়ে )।aq
master
master
git reset --hard HEAD~<n>
git reflog
git reset --hard [sha]
[সুতরাং, আমি আগে যা ভেবেছিলাম তা হ'ল:]
এর সাথে একটি সমস্যা রয়েছে:
git checkout aq
git merge master
কারণ মার্জ কমিটে প্রদর্শিত পরিবর্তনগুলি (যেমন আপনি যদি এখন বা পরে গিথুব, বিটবকেট বা আপনার পছন্দসই স্থানীয় গিট ইতিহাসের দর্শকের দিকে তাকান) তবে মাস্টারে করা পরিবর্তনগুলি যা আপনি যা চান তা নাও হতে পারে।
অন্য দিকে
git checkout master
git merge aq
শো AQ তৈরি, যা সম্ভবত পরিবর্তন হয় কি আপনি চান। (বা, কমপক্ষে, প্রায়শই এটি আমি যা চাই!) তবে সঠিক পরিবর্তনগুলি দেখানো মার্জটি ভুল শাখায় রয়েছে!
কি করে মানাবে?!
সম্পূর্ণ প্রক্রিয়াটি, আকের উপরের পরিবর্তনগুলি দেখানো একীভূত অঙ্গীকারের সমাপ্তি (উপরের দ্বিতীয় সংশ্লেষ অনুসারে), তবে একা শাখায় প্রভাবিত হওয়া মার্জটির সাথে:
git checkout master
git merge aq
git checkout aq
git merge master
git checkout master
git reset --hard HEAD~1
git checkout aq
এটি: আককে মাস্টারের সাথে একীভূত করে, আক-তে একই মার্জ করে দ্রুত-ফরোয়ার্ড করে, মাস্টারে এটি পূর্বাবস্থায় ফিরে আসে এবং আপনাকে আবার আক-এ ফিরিয়ে দেয়!
আমার মনে হচ্ছে আমি কিছু মিস করছি - এটি সম্ভবত এমন কিছু বলে মনে হচ্ছে যা আপনি অবশ্যই চান, এবং এমন কিছু যা খুব কঠিন।
এছাড়াও, রিবেস সমতুল্য নয়। এটি আক উপর করা কমিটগুলির টাইমস্ট্যাম্প এবং পরিচয় হারাতে পারে, যা আমি চাই তাও নয়।