টি এল; ডিআর;
সংক্ষেপে ( বেনুবার্ডের মতামত হিসাবে ), কখন:
git checkout A
git rebase B # rebase A on top of B
local
হয় B
(রি-বেসের ফলে সম্মুখের ),
remote
হয় A
এবং:
git checkout A
git merge B # merge B into A
local
হয় A
(একত্রীকরণ মধ্যে ),
remote
হয় B
একটি রিবেস স্যুইচ করে ours
(রিবেস শুরুর আগে বর্তমান শাখা) এবং theirs
(যে শাখার উপরে আপনি পুনঃস্থাপন করতে চান)।
কুত্স্কেম উল্লেখ করেছেন যে, জিইউআই মার্জারটুল প্রসঙ্গে :
- স্থানীয় রেফারেন্স আংশিকভাবে রিবেসড কমিটস : "
ours
" (উজানের শাখা)
- রিমোট আসন্ন পরিবর্তনগুলি বোঝায় : "
theirs
" - রিবেসের আগে বর্তমান শাখা।
এই উত্তরের শেষ অংশে চিত্র দেখুন।
রিবেস করার সময় বিপর্যয়
বিভ্রান্তি একটি রিবেসের বিপরীতকরণের সময় ours
এবং এরtheirs
সাথে সম্পর্কিত হতে পারে ।
(প্রাসঙ্গিক নিষ্কাশন)
git rebase
ম্যান পৃষ্ঠা :
নোট করুন যে একটি রিবেস মার্জ শাখার উপরে কার্যকারী শাখা থেকে প্রতিটি প্রতিশ্রুতি পুনরায় খেলতে কাজ করে <upstream>
।
এ কারণে, যখন মার্জ সংঘাত ঘটে:
- '
ours
' হিসাবে উল্লিখিত পার্শ্বটি এতদূর প্রত্যাবর্তিত সিরিজ, যার সাথে শুরু করে <upstream>
,
- এবং '
theirs
' হ'ল কার্যকারী শাখা। অন্য কথায়, পক্ষগুলি অদলবদল করা হয়।
বিপরীত চিত্রিত
সংযুক্তিতে
x--x--x--x--x(*) <- current branch B ('*'=HEAD)
\
\
\--y--y--y <- other branch to merge
, আমরা বর্তমান শাখা 'বি' পরিবর্তন করি না, তাই আমাদের যা আছে তা এখনও আমরা কাজ করে যাচ্ছিলাম (এবং আমরা অন্য একটি শাখা থেকে মার্জ করি)
x--x--x--x--x---------o(*) MERGE, still on branch B
\ ^ /
\ ours /
\ /
--y--y--y--/
^
their
একটি রিবেস উপর:
তবে একটি রিবেসে আমরা সাইড স্যুইচ করি কারণ রিবাজে প্রথম কাজটি হ'ল উজানের শাখাটি চেকআউট করা! (এটির উপরে বর্তমান কমিটগুলি পুনরায় খেলতে)
x--x--x--x--x(*) <- current branch B
\
\
\--y--y--y <- upstream branch
A git rebase upstream
প্রথমে HEAD
বি এর প্রবাহিত শাখায় পরিবর্তিত হবে HEAD
(অতএব পূর্ববর্তী "বর্তমান" কার্যকারী শাখার তুলনায় 'আমাদের' এবং 'তাদের' স্যুইচ করা হবে।)
x--x--x--x--x <- former "current" branch, new "theirs"
\
\
\--y--y--y(*) <- upstream branch with B reset on it,
new "ours", to replay x's on it
, এবং তারপরে রিবেস নতুন 'আমাদের' বি শাখায় 'তাদের' প্রতিশ্রুতিগুলি পুনরায় খেলবে:
x--x..x..x..x <- old "theirs" commits, now "ghosts", available through reflogs
\
\
\--y--y--y--x'--x'--x'(*) <- branch B with HEAD updated ("ours")
^
|
upstream branch
দ্রষ্টব্য: "আপস্ট্রিম" ধারণাটি ডেটাগুলির রেফারেনটিভ সেট (একটি সমস্ত রেপো বা এখানে যেমন একটি শাখা, যা একটি স্থানীয় শাখা হতে পারে ) যা থেকে ডেটা পড়া হয় বা কোন নতুন ডেটা যুক্ত করা / তৈরি করা হয়।
' local
' এবং ' remote
' বনাম ' mine
' এবং ' theirs
'
Pandawood মধ্যে যোগ করা মন্তব্য :
আমার কাছে, এখনও প্রশ্নটি রয়ে গেছে, যা "স্থানীয়" এবং কে "রিমোট" (যেহেতু "আমাদের" এবং "তাদের" শব্দটি গিটে ছাড়ার সময় ব্যবহৃত হয় না, তাদের উল্লেখ করে মনে হয় একটি উত্তর আরও বিভ্রান্ত করে তোলে) ।
জিইউআই গিট মার্জারটুল
কুত্স্কেম যোগ করে, এবং ঠিক তাই:
বিরোধগুলি সমাধান করার সময়, গিট এই জাতীয় কিছু বলবে:
local: modified file and remote: modified file.
আমি নিশ্চিত যে প্রশ্নটি এই মুহুর্তে স্থানীয় এবং দূরবর্তী সংজ্ঞায় লক্ষ্য করে। এই মুহুর্তে, আমার অভিজ্ঞতা থেকে আমার কাছে মনে হয় যে:
- স্থানীয় রেফারেন্স আংশিকভাবে রিবেসড কমিটস : "
ours
" (উজানের শাখা)
- রিমোট আসন্ন পরিবর্তনগুলি বোঝায় : "
theirs
" - রিবেসের আগে বর্তমান শাখা।
git mergetool
প্রকৃতপক্ষে 'স্থানীয়' এবং 'রিমোট' উল্লেখ করেছে :
Merging:
f.txt
Normal merge conflict for 'f.txt':
{local}: modified file
{remote}: modified file
Hit return to start merge resolution tool (kdiff3):
উদাহরণস্বরূপ, KDiff3 হবে তাই মত একত্রীকরণ রেজল্যুশন প্রদর্শন :

এবং meld এটি প্রদর্শন করবে :

ভিমডিফের জন্য একই , যা প্রদর্শিত হয় :
ভিটমিডকে গিট মার্জেটুল-ট জিভিমডিফ দিয়ে মার্জারুল হিসাবে ডাকা। গিটের সাম্প্রতিক সংস্করণগুলি নিম্নলিখিত উইন্ডো বিন্যাসের সাথে ভিমডিফকে ডাকে:
+--------------------------------+
| LOCAL | BASE | REMOTE |
+--------------------------------+
| MERGED |
+--------------------------------+
LOCAL
:
বর্তমান শাখায় ফাইলের বিষয়বস্তু সমেত একটি অস্থায়ী ফাইল।
BASE
:
একত্রীকরণের জন্য সাধারণ ভিত্তিযুক্ত ফাইল।
REMOTE
:
এক অস্থায়ী ফাইল যা ফাইলের বিষয়বস্তুগুলিকে একীভূত করতে হবে।
MERGED
:
সংঘাতের চিহ্নিতকারীদের সমন্বিত ফাইল।
গিট যথাসম্ভব স্বয়ংক্রিয় দ্বন্দ্বের সমাধান করেছে এবং এই ফাইলটির অবস্থা উভয়ের সংমিশ্রণ LOCAL
এবং REMOTE
দ্বন্দ্ব চিহ্নিতকারীদের এমন কোনও কিছুকে ঘিরে রয়েছে যা গিট নিজেই সমাধান করতে পারেনি। এই ফাইলে রেজল্যুশন ফল লিখতে হবে।
mergetool