এই উত্তরটি সংশোধন করা হয়েছে, কারণ আমার বোঝাপড়া, ডায়াগ্রাম এবং সিদ্ধান্তগুলি ভুল ছিল।
git pull
গিট মার্জ হওয়ার কারণে মার্জ কমিট হয় causes মার্জ করার পরিবর্তে আপনার শাখাগুলি পুনরায় ব্যবহারের জন্য সেট করে এটি পরিবর্তন করা যেতে পারে। টানতে একত্রী হওয়ার পরিবর্তে পুনরায় ব্যবহার করা ভাগ করা সংগ্রহস্থলের আরও লিনিয়ার ইতিহাস সরবরাহ করে। অন্যদিকে, মার্জ কমিটগুলি শাখায় সমান্তরাল বিকাশের প্রচেষ্টা দেখায়।
উদাহরণস্বরূপ, দুটি ব্যক্তি একই শাখায় কাজ করছেন। শাখাটি শুরু হয়:
...->C1
প্রথম ব্যক্তি তাদের কাজ শেষ করে শাখায় চাপ দেয়:
...->C1->C2
দ্বিতীয় ব্যক্তি তাদের কাজ শেষ করে ধাক্কা দিতে চায় তবে তাদের আপডেট করার প্রয়োজন হয় না বলে। দ্বিতীয় ব্যক্তির স্থানীয় সংগ্রহস্থলের মতো দেখতে:
...->C1->C3
যদি টানটি মার্জ করার জন্য সেট করা থাকে তবে দ্বিতীয় ব্যক্তিদের সংগ্রহস্থলের মতো দেখাবে।
...->C1->C3->M1
\ /
->C2->
যেখানে এম 1 হ'ল মার্জ কমিট। এই নতুন শাখার ইতিহাসকে রেপোতে ঠেলে দেওয়া হবে। পরিবর্তে, টানটি স্থানীয় রেপোকে পুনরায় চালু করতে সেট করা লাগবে:
...->C1->C2->C3
কোনও মার্জ কমিট নেই। ইতিহাসকে আরও লিনিয়ার করা হয়েছে।
উভয় পছন্দ শাখার ইতিহাস প্রতিফলিত করে। গিট আপনাকে কোন ইতিহাস পছন্দ করবে তা চয়ন করতে দেয়।
প্রকৃতপক্ষে এমন জায়গাগুলি রয়েছে যেখানে রিবেস দূরবর্তী শাখাগুলিতে সমস্যা তৈরি করতে পারে। এটি এই ক্ষেত্রে অন্যতম নয়। আমরা রিবেস ব্যবহার করতে পছন্দ করি কারণ এটি ইতিমধ্যে জটিল শাখার ইতিহাসকে সহজতর করার পাশাপাশি ভাগ করা সংগ্রহস্থলের তুলনায় ইতিহাসের একটি সংস্করণ দেখায়।
আপনি শাখার সেট করতে পারেন utআটোসেটুপ্রেবেস = সর্বদা গিটটি স্বয়ংক্রিয়ভাবে আপনার দূরবর্তী শাখাগুলিকে মাস্টারের পরিবর্তে পুনরায় হিসাবে স্থাপন করতে হবে।
git config --global branch.autosetuprebase always
এই সেটিংটি গিটকে প্রতিটি প্রত্যন্ত শাখার জন্য স্বয়ংক্রিয়ভাবে একটি কনফিগারেশন সেটিংস তৈরি করতে দেয়:
branch.<branchname>.rebase=true
আপনি ইতিমধ্যে সেটআপ করা আপনার দূরবর্তী শাখাগুলির জন্য নিজেকে এটি সেট করতে পারেন।
git config branch.<branchname>.rebase true
আমি আমার পূর্ববর্তী বক্তব্যগুলি জিজ্ঞাসা ও অনুসরণ করার জন্য @ লরেন্সহলস্টকে ধন্যবাদ জানাতে চাই। গিটটি কীভাবে টানুন এবং মার্জ কমিটগুলির সাথে কাজ করে সে সম্পর্কে অবশ্যই আমি আরও শিখেছি।
মার্জ কমিটস সম্পর্কে আরও তথ্যের জন্য আপনি প্রোজিট-বুকের কোনও প্রকল্পে অবদান পড়তে পারেন । ব্যক্তিগত ছোট দল অধ্যায় শো করে একত্রিত করে।
git log --no-merges