গিটে, উত্স / মাস্টার বনাম অরিজিন মাস্টারের মধ্যে পার্থক্য কী?


290

আমি জানি, মূলটি দূরবর্তী সংগ্রহস্থলের জন্য একটি শব্দ এবং মাস্টার সেখানে শাখা।

আমি এখানে উদ্দেশ্যমূলকভাবে "প্রসঙ্গ" বাদ দিচ্ছি এবং আমি আশা করছি যে উত্তরটি প্রসঙ্গে নির্ভর করবে না। সুতরাং গিট কমান্ড লাইনে, উত্স / মাস্টার এবং অরিজিন মাস্টারের মধ্যে পার্থক্য কী । অরিজিন / মাস্টার কখন ব্যবহার করতে হবে এবং কখন আমার উত্স মাস্টার ব্যবহার করা উচিত তা বোঝার কোনও অ-দ্বিধাগ্রস্ত উপায় আছে ?


উত্তর:


390

এখানে আসলে তিনটি জিনিস রয়েছে: origin masterদুটি পৃথক জিনিস এবং origin/masterএকটি জিনিস। মোট তিনটি জিনিস।

দুটি শাখা:

  • master একটি স্থানীয় শাখা
  • origin/masterএকটি প্রত্যন্ত শাখা (যা "উত্স" নামে প্রত্যন্ত অঞ্চলে "মাস্টার" নামে পরিচিত শাখার স্থানীয় অনুলিপি )

একটি রিমোট:

  • origin একটি দূরবর্তী

উদাহরণ: দুটি পদক্ষেপে টানুন

যেহেতু origin/masterএকটি শাখা, আপনি এটি মার্জ করতে পারেন। এখানে দুটি ধাপে টানুন:

প্রথম ধাপ, masterরিমোট থেকে আনুন originmasterডালে originসংগৃহীত হতে পারে এবং স্থানীয় অনুলিপি নামকরণ করা হবে origin/master

git fetch origin master

তারপরে আপনি একীভূত origin/masterহন master

git merge origin/master

তারপরে আপনি আপনার নতুন পরিবর্তনগুলিকে masterপিছনে ঠেলাতে পারেন origin:

git push origin master

আরও উদাহরণ

আপনি নামে একাধিক শাখা আনতে পারেন ...

git fetch origin master stable oldstable

আপনি একাধিক শাখা মার্জ করতে পারেন ...

git merge origin/master hotfix-2275 hotfix-2276 hotfix-2290

5
প্রথম অংশটি সত্যিই দরকারী। আমি কীভাবে সংযুক্ত করতে পারিনি আরও উদাহরণগুলি, বিশেষত একত্রিতকরণটি প্রযোজ্য। উত্তর করার জন্য ধন্যবাদ.
সেন্থিল কুমারান

1
... কারণ যখন আমি "গিট চেকআউট উত্স / মাস্টার" থাকি তখন আমি বিচ্ছিন্ন মাথাব্যবস্থায় প্রবেশ করি। আমার কাছে যদি সত্যিই রিমোট মাস্টার শাখার স্থানীয় অনুলিপি থাকে তবে আমি কেন কাজ করতে পারি না এবং এটিতে যুক্ত করতে পারি না? অথবা আমি পারব, তবে কেন এটি বিচ্ছিন্ন?
স্টু

3
আপনি কেবল একটি স্থানীয় শাখায় প্রতিশ্রুতিবদ্ধ করতে পারেন, সুতরাং যখন আপনি একটি দূরবর্তী শাখাটি পরীক্ষা করেন, আপনি "বিচ্ছিন্ন মাথা" পান। অবশ্যই এটি কোনও দূরবর্তী শাখার স্থানীয় কপি, তবে এটি এখনও একটি দূরবর্তী শাখা। কোনও নিয়ম নেই যে "মাস্টার" মোটেই "উত্স / মাস্টার" এর সাথে সম্পর্কিত, তারা সম্পূর্ণ আলাদা হতে পারে।
ডায়েটারিচ এপ্প

7
@ জওয়ান 22২২ "উত্সটি একটি দূরবর্তী" ... "উত্স" কেবল একটি নাম, আপনি রিমোটগুলির জন্য যে কোনও নাম চয়ন করতে পারেন তবে "উত্স" ডিফল্ট নাম। রিমোট অন্য কোথাও একটি সংগ্রহস্থল। এটি গিটহাব হতে পারে বা এটি একটি আলাদা কম্পিউটার হতে পারে বা এটি একই কম্পিউটারে অন্য কোথাও হতে পারে।
ডায়েটারিচ এপ্প

2
@ জওয়ান 22২২: "গিট রিমোট অ্যাড" একটি কমান্ড যা একটি নতুন রিমোট তৈরি করে। রিমোট যুক্ত করা নাম "উত্স"। যেহেতু "উত্স" কেবল একটি নাম, আপনি চাইলে আপনি আলাদা নাম চয়ন করতে পারেন। উদাহরণস্বরূপ, git remote add home my-server:projects/my-project"হোম" নামে একটি রিমোট যুক্ত করুন। আপনি ডকুমেন্টেশনটি উল্লেখ করতে ইচ্ছুক হতে পারেন: git-scm.com/docs/git-remote
ডায়েটরিচ এপ্প

16

origin/masterএটি একটি সত্তা (যেহেতু এটি কোনও দৈহিক শাখা নয়) রিমোটে শাখার অবস্থার প্রতিনিধিত্ব করে ।masterorigin

origin mastermasterদূরবর্তী শাখা হয় origin

সুতরাং আমরা এই আছে:

  • উত্স / মাস্টার (একটি উপস্থাপনা বা দূরবর্তী শাখার একটি নির্দেশক)
  • মাস্টার - ( প্রকৃত শাখা )
  • <আপনার_লোকাল_ব্রাঞ্চ> ( প্রকৃত শাখা )
  • <আপনার_লোকাল_ব্রাঞ্চ 2> ( প্রকৃত শাখা )
  • <আপনার_লোকাল_ব্র্যাঞ্চ 3> ( প্রকৃত শাখা )

উদাহরণ (স্থানীয় শাখায় master):

git fetch # get current state of remote repository
git merge origin/master # merge state of remote master branch into local branch
git push origin master # push local branch master to remote branch master

24
এটি ভুল ... origin masterএকটি শাখা নয় ... এটি আসলে দুটি পৃথক জিনিস, "উত্স" (একটি রিমোট) এবং "মাস্টার" (একটি স্থানীয় শাখা)।
ডায়েটারিচ এপ্প

দূরবর্তী মাস্টার শাখার রাজ্যটি স্থানীয়ভাবে উপস্থিত, তাই না?
সেন্তিল কুমারান

4
হ্যাঁ এটি ভুল origin/master, দূরবর্তী মাস্টার শাখা। লোকাল শাখা শুধু মাস্টার।
অনিকেত ঠাকুর

5

origin/masterদূরবর্তী masterশাখা

git fetch originসার্ভার থেকে সমস্ত পরিবর্তন আনার জন্য সাধারণত একটি করার পরে , আপনি git rebase origin/masterআপনার পরিবর্তনগুলি পুনরায় চালু করতে এবং শাখাকে সর্বশেষ সূচীতে স্থানান্তরিত করতে একটি কাজ করবেন । এখানে, origin/masterপ্রত্যন্ত শাখার কথা উল্লেখ করা হচ্ছে, কারণ আপনি মূলত জিআইটিকে origin/masterবর্তমান শাখায় শাখাটি পুনরায় চালু করতে বলছেন ।

origin masterউদাহরণস্বরূপ আপনি ধাক্কা দেওয়ার সময় ব্যবহার করবেন । git push origin masterজিআইটি-কে কেবল স্থানীয় masterশাখার দূরবর্তী সংগ্রহস্থলে যেতে বলছে ।


1
এটি আসলে ওপি যা খুঁজছিল তার সবচেয়ে কাছাকাছি বলে মনে হচ্ছে - origin masterসফ্টওয়্যারটিকে 'উত্সাহ' রেপোজিটরিতে 'মাস্টার' এর যা কিছু আছে তার সাথে কিছু করার জন্য বলছে। origin/masterএকইভাবে f3a4d5বা HEADহয় হিসাবে একটি রেফারেন্স ।
নিমেসেরিয়াল

4

রিমোট গিট url এর একটি নাম origin নীচে আরও অনেক রিমোট উদাহরণ থাকতে পারে।

ব্যাঙ্গালোরে => banglore.example.com: প্রকল্প.git

বোস্টন => boston.example.com: প্রকল্প.git

উত্স / মাস্টার (উদাহরণস্বরূপ বেঙ্গালুরু / মাস্টার) যতদূর যায়, এটি ব্যাঙ্গালোর সাইটে "মাস্টার" কমিট করার নির্দেশক । আপনি এটি আপনার ক্লোনটিতে দেখতে পাচ্ছেন।

আপনি "আনতে" বা "টানুন" কাজটি করার পরে এটি দূরবর্তী ব্যাঙ্গালোরের উন্নতি হতে পারে


2

origin/masterআপনার নেটওয়ার্কের কেবলটি আনপ্লাগড থাকা অবস্থায় আপনি (যদিও বিচ্ছিন্ন অবস্থায় থাকছেন) স্যুইচ করতে পারেন এই বিষয়টি প্রদত্ত , এটি অবশ্যই masterশাখার স্থানীয় উপস্থাপনা হতে হবে origin


উপরে এবং নীচের উত্তরে লোকেরা বলে যে মূল / মাস্টার হ'ল দূরবর্তী মাস্টার শাখা। আপনার উত্তরটি তারা যা বলে তা বিরোধী of দয়া করে ব্যাখ্যা করুন।
লুনা লাভগুড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.