গিথুবে কাঁটাচামচ এবং শাখার মধ্যে পার্থক্য


127

যদি আমি গিথুবটিতে হোস্ট করা কোনও প্রকল্প কাঁটা করি। আমি কি সব শাখা কাঁটাচামচ করি? আমার কাঁটাচামচটি কোন শাখার উপর ভিত্তি করে আমি কীভাবে জানতে পারি? অন্য কথায় আমার পিসিতে কোন শাখাটি ডাউনলোড হবে?


1
সহজ ইংরেজী ব্যাখ্যা: একটি শাখা কাঁটাচামড়ার মতো যা পিতামাতার কাঁটাচামচ থেকে আসে। কাঁটাচামচ একটি শাখার মতো যার পিতামাতাদের শাখা নেই।
কেন কিন

উত্তর:


41

গিটহাবের সমস্ত শাখা কাঁটাচামচায় অনুলিপি করা হবে। (স্পষ্টতই, এর মধ্যে এমন শাখাগুলি অন্তর্ভুক্ত নয় যেগুলি প্রথমে গিটহাবের দিকে ধাক্কা দেয়নি))

তবে একটি কাঁটাচামচ একটি গিটহাব-টু-গিটহাব অপারেশন; কিছুই আপনার পিসিতে অনুলিপি করা হয় না। এটি গিট ক্লোনটির মতো একরকম নয় । যদি আপনি "আমি কোনও প্রকল্পের ক্লোন করার সময় অনুলিপিটি কি?" জিজ্ঞাসা করার অর্থ যদি করেন তবে ম্যানুয়ালটি দেখুন git-clone(1)


153

এই ভাবে চিন্তা করুন:

রেপো [সিটরি] এক বা একাধিক শাখায় দলের সহযোগিতামূলক কাজের সাথে সম্পর্কিত। সমস্ত অবদানকারীদের এর নিজস্ব কপি রয়েছে।

মূল রেপোটির প্রতিটি কাঁটাচটি করে কোনও অবদানকারীর কাজের সাথে মিল। একটি কাঁটাচামচ সত্যই একটি গিথুব (গিট নয়) আপনার ব্যবহারকারীর অ্যাকাউন্টে রেপোর ক্লোন সংরক্ষণ করার জন্য তৈরি। ক্লোন হিসাবে, আপনি কাঁটাচামচ তৈরি করার সময় এটিতে মূল রেপোতে সমস্ত শাখা থাকবে।

আপনি কীভাবে কাজ করতে চান তার উপর নির্ভর করে কাঁটাচামচ এবং / অথবা প্রধান রেপোর প্রতিটি শাখা বিভিন্ন ধরণের জিনিসের সাথে সামঞ্জস্য করতে পারে। প্রতিটি শাখা প্রকল্পের একটি সংস্করণ উল্লেখ করতে পারে তবে হটফিক্স বা পরীক্ষামূলক কাজের মতো উন্নয়নের বিভিন্ন চ্যানেলের সাথেও মিলিয়ে দিতে পারে।

খিঁচ অনুরোধ (GitHub বাস্তুতন্ত্রের) কাজের অনুরূপ। প্রতিটি সময় আমি প্রধান রেপো একটি বিচ্ছিন্ন সমাপ্ত কাজের অবদান রাখতে চাই, আমি একটি টান অনুরোধ সংশ্লিষ্ট তৈরি করে যে কাজটি তৈরি। এই কমিটগুলি আমার কাঁটাচামচ বা আমার শাখা থেকে প্রধান রেপোতে টানা হয় ।

একটি কমিট কোডে পরিবর্তনগুলির একটি সেট। এটি গিট সম্পর্কে একটি আকর্ষণীয় বিষয়। আপনি ফাইল স্থানান্তর করবেন না, আপনি পরিবর্তন লগ স্থানান্তর।


4
আপনি কীভাবে কাঁটাচা / শাখায় পুল অনুরোধ ম্যাপিংয়ের মতো সম্পর্কিত সমস্ত বিট ব্যাখ্যা করেছেন তা পছন্দ করেছে। "আপনি ফাইল স্থানান্তর করবেন না, আপনি পরিবর্তনগুলির লগগুলি স্থানান্তর করুন" ... আমি ইতিমধ্যে জানতাম তবে এই শব্দগুচ্ছটি নিখুঁত!
কঠোরচাওলা

2
প্লাস-ওয়ানটি পরিষ্কার করার জন্য যে কাঁটাচামচ একটি গিথাব, গিট নয়। ধন্যবাদ!
এমেরি.নোয়েল

10

কাঁটাচামচটি গিটহাবের পাশের একটি ক্লোন (এটি সবকিছুর ক্লোন করে)।
আপনি যখন কোনও রেপো ক্লোন করছেন, আপনি তার সমস্ত শাখাসমূহের সাথে রেডোর সমস্ত ইতিহাস পেয়ে যাবেন।

যদিও আপনি তত্ত্বগতভাবে দূরবর্তী রেপোর ডিফল্ট শাখাটি পরিবর্তন করতে পারেন , গিটহাব রেপো থেকে একটি ক্লোন প্রধানত মাস্টার শাখার সন্ধান করে। "ডিফল্ট" শাখা পরিবর্তন করার অর্থ একটি গিটহাব ক্লোন পাবেন, আপনাকে মাস্টার শাখার নাম পরিবর্তন করতে হবে।


সুতরাং যখন আমি কাঁটাযুক্ত রেপো ক্লোন করব (কার্যকরভাবে এটি আমার পিসিতে ডাউনলোড করুন), সমস্ত শাখাগুলি আমার পিসিতে থাকবে? তবে একটি শাখায় অতিরিক্ত ফাইল যুক্ত করা হয়েছে। তাহলে আমার পিসিতে সেই ফাইলগুলি থাকবে কি না?
জোনাথন

1
@ জোনাথন: আপনার পিসি সমস্ত ফাইল সহ সমস্ত শাখা পাবেন। তবে আপনার কার্যনির্বাহী ডিরেক্টরি (সেই জায়গাগুলির যেখানে আপনি সেই শাখাগুলির একটিতে চেকআউট করবেন) আসলে সেই একমাত্র স্থান যেখানে আপনি এই ফাইলগুলি দেখতে পাবেন।
ভনসি

অন্য ফাইলগুলি আসলে .git ফোল্ডারে সংরক্ষণ করা যাবে?
জোনাথন

@ জোনাথন : আলগা বা বস্তাবন্দী বস্তু হিসাবে, book.git-scm.com/7_how_git_stores_objects.html (বস্তুগুলি একটি ব্লব (আপনার "ফাইল"), গাছ, অঙ্গীকার বা একটি ট্যাগ: book.git-scm.com/ দেখুন 1_ত_গীত_বজেক্ট_মোডেল এইচটিএমএল )
ভনসি

4

যদি আপনি কোনও প্রকল্প কাঁটাচামড়া করে থাকেন তবে আপনি পুরো প্রকল্পের একটি অনুলিপি আপনার গিট হাব অ্যাকাউন্টে তৈরি করছেন। আপনি আপনার পিসিতে কোনও কিছু কপি করছেন না

আপনার পিসিতে একটি অনুলিপি তৈরি করতে আপনাকে এটি ক্লোন করতে হবে এবং সমস্ত জিনিসগুলি টানতে হবে এবং আপনি সেই প্রকল্পের সমস্ত শাখা এবং কোড পাবেন


2

আপনি যদি গিথুব ওয়েবসাইট থেকে কোনও প্রকল্পের কাঁটাচামচ তৈরি করেন তবে আপনি প্রবাহ প্রকল্প থেকে সমস্ত শাখা পাবেন।

আপনি যদি আপনার নতুন পাকা কাঁটা থেকে আপনার স্থানীয় পিসিতে ক্লোন করেন তবে আপনার পিসিতে originরিমোটটি গিথুবে আপনার কাঁটাচালার মাস্টার শাখার দিকে নির্দেশ করবে।


হেল্প.গিটহাব পৃষ্ঠা অনুসারে একটি প্রকল্পকে সমর্থন করা , upstreamশাখা তৈরি করা আপনাকে যা করতে হবে তা হ'ল; এবং তারা আপনাকে বলবে যে এটি কীভাবে করা যায়।
জে সি সালমন

2
এটি একটি রিমোট, কোনও শাখা নয়।
অ্যারোমাস্টার

1

এটি খুব ভালভাবে ব্যাখ্যা করা যেতে পারে। গিটহাবে আপনার কেন্দ্রীয় ভান্ডার রয়েছে। যখনই আপনি কিছু পরিবর্তন করতে ব্যক্তিগত কম্পিউটারে এটির একটি ক্লোন নেন, মূল সংগ্রহস্থলের এই স্থানীয় ক্লোনটিকে কাঁটাচামচ বলা হয়।

শাখাটি কিছু আলাদা এবং কাঁটাচামচ / রেপোতে অন্তর্ভুক্ত। আসলে শাখা হ'ল উন্নয়নের বিভিন্ন পর্যায়ে আপনার কাজ। এগুলি তৈরি করা হয় এবং যখন প্রয়োজন হয় তখন কার্যকারিতার একটি সেট সংরক্ষণ করতে, বিভিন্ন ব্যবহারকারীর অ্যাক্সেস দেওয়ার জন্য, ক্লায়েন্টকে সাইট প্রদর্শন করা ইত্যাদি etc.


1

আমি কখন একটি শাখা ব্যবহার করি এবং কখন আমরা কাঁটাচামড়া ব্যবহার করি তার একটি বাস্তব জীবনের উদাহরণ ভাগ করতে চাই

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

ধরা যাক আমাদের প্রকল্পটি অবস্থিত

https://github.com/yardpenalty/mainproject.git

শাখার ব্যবহার:

বলুন শাখাটি বলা হয় It_doesnt_matter

আমরা যখন আমাদের শাখাটি উত্পাদনের জন্য চাই তখন আমরা এই শাখায় আমাদের চূড়ান্ত ধাক্কা দেই এবং একত্রীকরণের অনুরোধ তৈরি করি যা পরে পরীক্ষার জন্য ইউএটিতে যায় O

একত্রীকরণ থেকে It_doesnt_matter শাখা এখন মাস্টার প্রকল্পে push করা হয়

https://github.com/yardpenalty/mainproject.git

ধরা যাক প্যাকেজ প্রকল্পটি অবস্থিত

https://github.com/yardpenalty/mypackage.git

মনে রাখবেন মূল প্রকল্পটি এই প্যাকেজটিকে উত্পাদনে ব্যবহার করে তাই আমরা কেবলমাত্র এই প্যাকেজে তাদের চাপ দিয়ে পরিবর্তন করতে পারি না (অন্যান্য কারণে)। ধরা যাক যে কোনও ওয়েব দেবকে উত্পাদন পরিবর্তন করতে এই প্যাকেজটি সম্পাদনা করতে হবে।

একটি সাধারণ শাখা কাজ করবে না কারণ প্যাকেজ ইত্যাদি প্রকাশ না করে আমরা আমাদের পরিবর্তনগুলি দেখতে পাচ্ছি না

কাঁটাচামচ ব্যবহার: এখন আমাদের প্যাকেজটির সাথে কিছুটা কৌতুক করতে হবে যাতে কাঁটাচামচ দিয়ে উত্পাদন প্যাকেজের ক্লোন তৈরি করি। কম্পোজার.জসন ফাইলগুলি এখন কাঁটাতে চিহ্নিত করার জন্য আপডেট করা যেতে পারে যা এখন ব্যবহারকারী বা গোষ্ঠীর পথে অবস্থিত

সুতরাং আমরা একটি কাঁটাচামচ তৈরি করব https://github.com/yardpenalty/mypackage.git

এবং এটি কল https://github.com/yardpenalty/yards/mypackage.git

এখন আমাদের "ভান্ডারগুলিতে" এই প্যাকেজটির দিকে ইঙ্গিত করার জন্য আমরা আমাদের রচয়িতা জার্সন ফাইল আপডেট করতে পারি : [এই জাতীয় অ্যারে এবং আমরা চলে যাই!

 {
            "type": "github",
            "url": "https://github.com/yardpenalty/yard/mypackage.git"
 }

]

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