গিতের "উত্স" কী?


582

আমি যখন চালাচ্ছি:

git push origin branchname

ঠিক কী originএবং কেন আমাকে শাখার নামের আগে এটি টাইপ করতে হবে?


63
"উত্স" হ'ল দূরবর্তী সংগ্রহস্থলের নাম যেখানে আপনি প্রতিশ্রুতি প্রকাশ করতে চান। কনভেনশন অনুসারে, ডিফল্ট দূরবর্তী সংগ্রহস্থলটিকে "উত্স" বলা হয়, তবে আপনি একইসাথে বেশ কয়েকটি রিমোট (বিভিন্ন নাম সহ) নিয়ে কাজ করতে পারেন। এখানে আরও তথ্য (উদাহরণস্বরূপ): gitref.org/remotes
বেনোইট

1
নোট যে মূল "upstream" হয় রেপো: দেখুন stackoverflow.com/questions/2739376/...
VonC


/ - কিন্তু তারপর Git আনা এবং তারপর Git শাখা -r স্থানীয় শাখা উৎপত্তি / বিতৃষ্ণা সঙ্গে prepended ব্যবহার করছেন atlassian.com/git/tutorials/syncing/git-fetch
ছোঁড়া

.Git \ কনফিগার ফাইলটি চেকআউট করুন এতে URL গুলিতে এলিয়াসের ম্যাপিং রয়েছে, .git ফোল্ডারটি ডিফল্টরূপে লুকানো থাকে।
অভিজিৎ প্যাটেল

উত্তর:


568

originএকটি নির্দিষ্ট দূরবর্তী সংগ্রহস্থলের জন্য আপনার সিস্টেমে একটি উপনাম । এটি আসলে rep ভান্ডারটির সম্পত্তি নয় a

করেছে

git push origin branchname

আপনি originসংগ্রহস্থলের দিকে ধাক্কা দিতে বলছেন । রিমোট রিপোজিটরির নামকরণের কোনও প্রয়োজন নেই origin: প্রকৃতপক্ষে একই সংগ্রহস্থলের অন্য বিকাশকারীটির জন্য আলাদা আলাদা নাম থাকতে পারে।

রিমোটগুলি কেবলমাত্র একটি উপনাম যা সংগ্রহস্থলের URL গুলি সঞ্চয় করে। আপনি প্রতিটি রিমোটের কী URL টি ব্যবহার করে তা দেখতে পাচ্ছেন

git remote -v

ইন pushকমান্ড আপনি ব্যবহার করতে পারেন remotes ব্যবহার বা আপনি কেবল একটি ব্যবহার করতে পারেন URL টি সরাসরি। ইউআরএল ব্যবহার করে এমন একটি উদাহরণ:

git push git@github.com:git/git.git master

1
একক রিমোট একাধিক অন্যান্য রিমোটগুলির জন্য একটি উপাস হতে পারে? আমি যদি একটি দূরবর্তীকে একাধিক অন্যান্য রিমোটগুলিতে ঠেলাতে চাইতাম তবে কী হবে? উদাহরণস্বরূপ, একটি প্রাথমিক রেপোতে চাপ দিন এবং ব্যাকআপ রেপোতে ধাক্কা দেবেন? কিছু পরিস্থিতিতে এটি কি যুক্তিসঙ্গত জিনিস চাইবে? সম্পাদনা: এখানে বেশ কয়েকটি সমাধান রয়েছে
ইয়ানকি

1
আমি যদি "মূল" কীওয়ার্ডটি বাদ দিই তবে কী হবে? যখন আমরা "গিট পুশ" বলি, তবে কি এটি কি সমস্ত প্রতিশ্রুতিগুলি দূরবর্তী সংগ্রহস্থলের দিকে ঠেলে দেবে না? "মূল" মূল শব্দটি যুক্ত করা নিরর্থক বলে মনে হয়।
মুগেন

@ মিউজেন নথিতে git pushআপনি দেখতে পাচ্ছেন যে এটি প্রথমে সেই কলটির জন্য কনফিগারটি পরীক্ষা করে (যা আপনি যাচাই করতে পারেন git config --list) একটি চাবি চাওয়ার জন্য branch.<branchname>.remote। যদি এটি সেট না করা থাকে, "এটি উত্সের ডিফল্ট হবে" - git-scm.com/docs/git-push
কেনমোর

156

originহয় না দূরবর্তী সংগ্রহস্থল নাম। এটি বরং দূরবর্তী সংগ্রহস্থল URL এর জায়গায় একটি কী হিসাবে স্থানীয় স্থানীয় সেট alias

এটি কোনও ধাক্কা দেওয়ার সময় ব্যবহারকারীকে পুরো দূরবর্তী URL টাইপ করতে এড়িয়ে চলে।

এই নামটি ডিফল্ট হিসাবে এবং গিট দ্বারা কনভেনশনের জন্য সেট করা হয় যখন প্রথমবার কোনও দূরবর্তী থেকে ক্লোনিং করা হয়।

এই উপনামের নামটি হার্ড কোডিং নয় এবং নিম্নলিখিত কমান্ড প্রম্পট ব্যবহার করে পরিবর্তন করা যেতে পারে:

git remote rename origin mynewalias

আরও স্পষ্টতার জন্য http://git-scm.com/docs/git-remote দেখুন ।


1
আমি যদি "মূল" কীওয়ার্ডটি বাদ দিই তবে কী হবে? যখন আমরা "গিট পুশ" বলি, তবে কি এটি কি সমস্ত প্রতিশ্রুতিগুলি দূরবর্তী সংগ্রহস্থলের দিকে ঠেলে দেবে না? "মূল" মূল শব্দটি যুক্ত করা নিরর্থক বলে মনে হয়।
মিগেন

74

গিটের "রিমোটগুলি" ধারণা রয়েছে যা কেবল আপনার সংগ্রহশালার অন্যান্য অনুলিপিগুলিতে ইউআরএল। আপনি যখন অন্য সংগ্রহস্থলটিকে ক্লোন করেন, গিট স্বয়ংক্রিয়ভাবে "উত্স" নামে একটি রিমোট তৈরি করে এবং এটিতে নির্দেশ করে।

আপনি টাইপ করে রিমোট সম্পর্কে আরও তথ্য দেখতে পারেন git remote show origin


1
গিট কমান্ডগুলি প্রাথমিকভাবে খুব বিভ্রান্ত হয়। আমার ধারণা এটির এই সংস্করণ নিয়ন্ত্রণ সিস্টেমের ইতিহাসের সাথে সম্পর্ক আছে। সুতরাং, প্রশ্ন: পরিবর্তে git remote show origin, কেন না সহজ git show origin? অবশ্যই একটি কারণ থাকতে হবে, এটি কি? ধন্যবাদ।
Stack0verflow

5
@ স্ট্যাক0 ওভারফ্লো: নতুন প্রশ্ন হিসাবে এটি সম্ভবত আরও ভাল জিজ্ঞাসা করা হয়েছে যাতে আপনি আগ্রহী হন তবে লোকেরা গবেষণা করতে পারে। 'গিট শো' ইতিমধ্যে অন্য একটি কমান্ড যা প্রতিশ্রুতি প্রদর্শন করে এবং প্রযুক্তিগতভাবে রিমোট নামক উত্স ছাড়াও 'উত্স' নামে পরিচিত একটি শাখা আপনাকে থামাতে পারে না ...
জেসন ম্যালিনোভস্কি


24

সরল! "উত্স" হ'ল আপনি যখন নিজের কমান্ডটি চালাচ্ছিলেন তখন আপনার দূরবর্তী সংগ্রহস্থলের ডাকনামটি হ'ল:

git remote add origin git@github.com:USERNAME/REPOSITORY-NAME.git

এরপরে গিট জানে যে "উত্স" সেই নির্দিষ্ট সংগ্রহস্থলের দিকে নির্দেশ করে (এক্ষেত্রে একটি গিটহাবের সংগ্রহশালা)। আপনি এটির নাম "গিথুব" বা "রেপো" বা আপনি যা খুশি রাখতে পারেন।


19

আমি এটি দ্বারা বিভ্রান্তও হয়েছিলাম এবং নীচে আমি যা শিখেছি তা হল।

আপনি যখন কোনও সংগ্রহশালা ক্লোন করেন, উদাহরণস্বরূপ গিটহাব থেকে:

  • originআপনি যে ইউআরএল থেকে সংগ্রহস্থল ক্লোন করেছেন তার জন্য এটি উপনাম। মনে রাখবেন আপনি এই উপনামটি পরিবর্তন করতে পারেন।

  • masterরিমোট রিপোজিটরিতে একটি শাখা রয়েছে (দ্বারা বাইরের origin) masterস্থানীয়ভাবে তৈরি করা হয়েছে আরও একটি শাখা।

এই তথ্যের প্রশ্ন থেকে আরও তথ্য পাওয়া যাবে: গিট ব্রাঞ্চিং: মাস্টার বনাম উত্স / মাস্টার বনাম রিমোটস / উত্স / মাস্টার


11

আপনি যখন কোনও সংগ্রহস্থলটি ক্লোন করেন git clone, তখন এটি স্বয়ংক্রিয়ভাবে originক্লোনযুক্ত সংগ্রহস্থলের দিকে নির্দেশ করে একটি রিমোট সংযোগ তৈরি করে । এটি কেন্দ্রীয় স্টোরের একটি স্থানীয় অনুলিপি তৈরি করতে বিকাশকারীদের জন্য কার্যকর কারণ এটি প্রবাহের পরিবর্তনগুলি টানতে বা স্থানীয় কমিটগুলি প্রকাশ করার একটি সহজ উপায় সরবরাহ করে। বেশিরভাগ গিট-ভিত্তিক প্রকল্পগুলি তাদের কেন্দ্রীয় সংগ্রহস্থল উত্স বলে This


3

এখানে সেরা উত্তর:

https://www.git-tower.com/learn/git/glossary/origin

গিটে, "উত্স" দূরবর্তী সংগ্রহস্থলের একটি সংক্ষিপ্ত নাম যা একটি প্রকল্প মূলত ক্লোন করা হয়েছিল। আরও স্পষ্টভাবে, এটি মূল সংগ্রহস্থলের URL এর পরিবর্তে ব্যবহৃত হয় - এবং এর ফলে উল্লেখগুলি আরও সহজ করে তোলে।


0

Https://www.git-tower.com/learn/git/glossary/origin থেকে :

গিটে, "উত্স" দূরবর্তী সংগ্রহস্থলের একটি সংক্ষিপ্ত নাম যা একটি প্রকল্প মূলত ক্লোন করা হয়েছিল। আরও স্পষ্টভাবে, এটি মূল সংগ্রহস্থলের URL এর পরিবর্তে ব্যবহৃত হয় - এবং এর ফলে উল্লেখগুলি আরও সহজ করে তোলে।

নোট করুন যে উত্স কোনও উপায়ে কোনও "জাদুকরী" নাম নয়, তবে কেবল একটি আদর্শ কনভেনশন। যদিও এই কনভেনশনটি আউটচুড রেখে দেওয়া বোধগম্য, আপনি কোনও কার্যকারিতা না হারিয়ে পুরোপুরি এর নামকরণ করতে পারেন।

নিম্নলিখিত উদাহরণে, "ক্লোন" কমান্ডের ইউআরএল প্যারামিটার ক্লোন করা স্থানীয় সংগ্রহস্থলের "উত্স" হয়ে ওঠে:

git clone https://github.com/gittower/git-crash-course.git

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

0

অন্য উত্তরগুলি বলে যে originএটি একটি রিমোট রিপোজিটরির URL এর একটি নাম যা পুরোপুরি সঠিক নয়। এটি লক্ষ করা উচিত যে যে ঠিকানাটি দিয়ে শুরু হয় httpতা হ'ল ইউআরএল এবং আরম্ভ হয় git@এমন একটি ইউআরআই বা ইউনিভার্সাল রিসোর্স আইডেন্টিফায়ার।

সমস্ত ইউআরএল ইউআরআই, তবে সমস্ত ইউআরআই ইউআরএল নয়।

সংক্ষেপে, আপনি টাইপ করার সময় আপনি git remote add origin <URI>আপনার স্থানীয় গিটকে বলছেন যে যখনই আপনি শব্দটি ব্যবহার করেন তখন originআপনি আসলে ইউআরআই বোঝান যা আপনি নির্দিষ্ট করেছেন। এটিকে ভ্যারিয়েবলের মতো ভ্যালু বলে মনে করুন।

এবং শুধু একটি পরিবর্তনশীল মতো, আপনি এটির নাম করতে যাহা চান (যেমন। github, heroku, destination, ইত্যাদি)।


0

রিমোট (রিপোজিটরি ইউআরএল ওরফে) → উত্স (আপস্ট্রিম ওরফে) → মাস্টার (ব্রাঞ্চ ওরফে);

  • remote, স্তর হিসাবে একই working directory, index, repository,

  • originদূরবর্তী সংগ্রহস্থল শাখায় স্থানীয় সংগ্রহস্থল শাখার মানচিত্র

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.