অন্য একটি প্রশ্ন বলা git pull
একটি git fetch
+ এর মত git merge
।
তবে git pull
ভিএস git fetch
+ এর মধ্যে পার্থক্য কী git rebase
?
অন্য একটি প্রশ্ন বলা git pull
একটি git fetch
+ এর মত git merge
।
তবে git pull
ভিএস git fetch
+ এর মধ্যে পার্থক্য কী git rebase
?
উত্তর:
আপনার প্রশ্ন থেকে এটা স্পষ্ট হওয়া উচিত যে আপনি আসলে git merge
এবং এর মধ্যে পার্থক্য সম্পর্কে জিজ্ঞাসা করছেন git rebase
।
সুতরাং ধরা যাক আপনি সাধারণ ক্ষেত্রে রয়েছেন - আপনি আপনার মাস্টার শাখায় কিছু কাজ করেছেন, এবং আপনি উত্স থেকেও টানছেন, যা কিছু কাজ করেছে। আনার পরে জিনিসগুলি দেখতে এরকম দেখাচ্ছে:
- o - o - o - H - A - B - C (master)
\
P - Q - R (origin/master)
কোনও দ্বন্দ্ব নেই বলে ধরে নিয়ে আপনি যদি এই মুহুর্তে (গিট টানার ডিফল্ট আচরণ) মার্জ করে থাকেন তবে আপনি এটিকে শেষ করবেন:
- o - o - o - H - A - B - C - X (master)
\ /
P - Q - R --- (origin/master)
অন্যদিকে আপনি যদি উপযুক্ত রিবেসটি করেন তবে আপনি এটি শেষ করবেন:
- o - o - o - H - P - Q - R - A' - B' - C' (master)
|
(origin/master)
আপনার কাজের গাছের সামগ্রী উভয় ক্ষেত্রে একই রকম হওয়া উচিত; আপনি সবেমাত্র একটি আলাদা ইতিহাস তৈরি করেছেন । প্রত্যাবর্তনটি আপনার ইতিহাসকে পুনর্লিখন করে, এটিকে দেখে মনে হয় R
আপনি মূলত যেখানে প্রতিশ্রুতিবদ্ধ ছিলেন তার পরিবর্তে আপনি মূলটির নতুন মাস্টার শাখা ( ) এর শীর্ষে প্রতিশ্রুতিবদ্ধ ছিলেন H
। আপনার মাষ্টার শাখা থেকে অন্য কেউ ইতিমধ্যে টানা থাকলে আপনার কখনই রিবেস পদ্ধতির ব্যবহার করা উচিত নয়।
শেষ অবধি, নোট করুন যে আপনি git pull
একটি প্রদত্ত শাখার জন্য কনফিগার প্যারামিটারটিকে branch.<name>.rebase
সত্যে সেট করে মার্জ করার পরিবর্তে রিবেস ব্যবহার করতে সেট করতে পারেন । আপনি একক টান ব্যবহার করে এটিও করতে পারেন git pull --rebase
।
git pull
মত চলমান git fetch
তারপর git merge
git pull --rebase
ভালো হয় git fetch
তারপরgit rebase
git pull
একটি মত হল git fetch
+ + git merge
।
"এর ডিফল্ট মোডে গিট টান সংক্ষিপ্তভাবে
git fetch
অনুসরণ করেgit merge
তারপরে FETCH_HEAD" আরও সুনির্দিষ্টভাবে, প্রদত্ত প্যারামিটারগুলির সাথেgit pull
চালিতgit fetch
হয় এবং তারপরেgit merge
পুনরুদ্ধারকৃত ব্রাঞ্চের মাথাগুলি বর্তমান শাখায় মার্জ করার জন্য আহ্বান জানায় "
(রেফ: https://git-scm.com/docs/git-pull )
'তবে git pull
ভিএস git fetch
+ এর মধ্যে পার্থক্য কী? git rebase
'
আবার, একই উত্স থেকে:
git pull --rebase
"--Rebase সহ, এটি গিট একীকরণের পরিবর্তে গিট রিবেস চালায়।"
'পার্থক্য merge
এবং rebase
'
এখানেও তার উত্তর দেওয়া হয়েছে:
https://git-scm.com/book/en/v2/Git-Branching- রিবেসিং
(সংস্করণ ইতিহাসের রেকর্ড অনুসারে পরিবর্তন করার মধ্যে পার্থক্য)
git fetch + git rebase
এখন থেকে কমান্ডগুলি যেভাবে কাজ করে তা আমি সত্যিই বুঝতে পারি । আমাদের গিট গাছে এখন থেকে কোনও বা কম বিরোধ নেই :) :)