গিটহাবের মধ্যে বনাম ব্র্যাঙ্কিং ফোরকিং


278

গিথুব প্রকল্প বনাম গিথুব প্রকল্পের একটি শাখা তৈরির সুবিধা এবং অসুবিধাগুলি সম্পর্কে আমি আরও জানতে চাই।

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

উত্তর:


279

আপনি সর্বদা একটি শাখা তৈরি করতে বা কোনও বিদ্যমান শাখা টানতে এবং এটিতে পিছনে ঠেলাতে পারবেন না, কারণ আপনি সেই নির্দিষ্ট প্রকল্পের সহযোগী হিসাবে নিবন্ধিত নন।

কাঁটাচামচ গিটহাব সার্ভারের পাশের ক্লোন ছাড়া আর কিছুই নয় :

  • সম্ভাবনা ছাড়াই সরাসরি পিছনে ধাক্কা
  • সঙ্গে কাঁটাচামচ কিউ বৈশিষ্ট্য একত্রীকরণ অনুরোধ পরিচালনা যোগ করা

আপনি আসল প্রকল্পের সাথে সিঙ্কে একটি কাঁটাচামচ রাখেন এটি দ্বারা:

  • মূল প্রকল্পটি রিমোট হিসাবে যুক্ত করা হচ্ছে
  • সেই আসল প্রকল্প থেকে নিয়মিত আনছে
  • আপনার বর্তমান বিকাশটি সেই আগ্রহের শাখার শীর্ষে পুনর্বাসিত করুন যা আপনি এই ফিঞ্চ থেকে আপডেট হয়েছেন।

রিবাজ আপনাকে নিশ্চিত করতে পারে যে আপনার পরিবর্তনগুলি সোজা হয়ে গেছে (পরিচালনা করার ক্ষেত্রে কোনও সংঘাতের বিরোধ নেই), যখন আপনি যখন আসল প্রকল্পের রক্ষণাবেক্ষণকারীকে তার প্রকল্পে আপনার প্যাচগুলি অন্তর্ভুক্ত করতে চান তখন আপনার টানা অনুরোধটি আরও সহজ করে তোলে।

প্রত্যক্ষ অংশগ্রহণ সর্বদা সম্ভব না হওয়া সত্ত্বেও লক্ষ্যটি হ'ল সহযোগিতার অনুমতি দেওয়া ।


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

গিটহাবের কাঁটাচামচ

একীভূত হওয়ার অভিজ্ঞতাটি একই রকম হবে, তবে অতিরিক্ত স্তরের ইন্ডিয়ারেশনের সাথে (প্রথমে কাঁটাচামচায় চাপ দিন, তারপরে একটি টান জিজ্ঞাসা করুন, মূল রেপোতে বিবর্তনের ঝুঁকির সাথে আপনার দ্রুত-ফরোয়ার্ডকে আরও দ্রুত-ফরোয়ার্ড না করে) ।
তার অর্থ সঠিক কর্মপ্রবাহটি হ'ল git pull --rebase upstream(উপরের অংশ থেকে নতুন কমিটের শীর্ষে আপনার কাজটি পুনঃতফসিল করা) এবং তারপরে git push --force originইতিহাসকে এমনভাবে পুনর্লিখনের জন্য আপনার নিজের কমিটগুলি সর্বদা আসল (উজানের) রেপো থেকে কমিটের শীর্ষে থাকে ।

আরো দেখুন:


3
আমরা ঘরে একটি প্রকল্প বিকাশ করছি এবং লোকদের সহযোগী হিসাবে যুক্ত করতে কোনও সমস্যা নেই। তবে, আমরা বুঝতে চাই যে কোনও প্রকল্পের কাঁটাচামচ করা মূল প্রকল্পে ফিরে যাওয়া আরও কঠিন করে তুলবে কিনা।
পুনরায় প্রোগ্রামার

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

14
সত্যই, আপনার যদি নাও হয় তবে একটি পবিত্র রেপো রাখা বরাবরই ভাল ধারণা যা কেবল প্রবীণ বিকাশকারী, দলের নেতৃত্ব বা অন্যান্য "বিশ্বস্ত" লোকদের জন্যই লেখার যোগ্য । সমস্ত অন্যান্য দলের সদস্যদের তাদের কাঁটাচামচ (~ স্যান্ডবক্স )গুলিতে কাজ করা উচিত এবং তাদের অনুরোধের আকারে তাদের পরিবর্তনগুলি অবদান রাখতে হবে। যেহেতু ডিভিসিএস এটি সম্ভব করে তোলে, তাই আমরা এটি একটি "সেরা অনুশীলন" হিসাবে রূপান্তর করেছি এবং এটি ক্ষুদ্রতম প্রকল্পগুলিতেও সফলভাবে ব্যবহার করি ...
ইনল্যান্ডল্যান্ড

1
@intland বর্ণনা অনুযায়ী যাতে আপনি একটি "ইন্টিগ্রেশন-ব্যবস্থাপক কর্মপ্রবাহ" পক্ষে বেশি stackoverflow.com/users/6309/vonc?tab=responses তারপর? একটি বড় কর্পোরেশনে গিটকে পরিচয় করিয়ে দেওয়ার জন্য, আমি "ইন্টিগ্রেশন-ম্যানেজার"-এ স্থানান্তরিত হওয়ার আগে প্রথমে একটি কেন্দ্রীয়ীকৃত ওয়ার্কফ্লো গ্রহণ করি (সবার জন্য আরও পরিচিত) to
ভনসি

15
আমাদের কাঁটাচামচগুলি "twigs" বলা উচিত যেহেতু তারা একটি শাখা ভেঙে ফেলেছে এবং সম্পূর্ণ নতুন গাছ শুরু করতে ব্যবহৃত হয়। শুধু আমার দুটি সেন্ট - আমি আরবোরিয়াল প্রতিমাটি পছন্দ করি।
এরিক

66

এখানে উচ্চ-স্তরের পার্থক্য রয়েছে:

forking

পেশাদাররা

  • ব্যবহারকারীর দ্বারা শাখা পৃথক করে রাখে
  • প্রাথমিক সংগ্রহস্থলে বিশৃঙ্খলা হ্রাস করে
  • আপনার দল প্রক্রিয়া বাহ্যিক অবদানকারী প্রক্রিয়া প্রতিবিম্বিত করে

কনস

  • সক্রিয় রয়েছে এমন সমস্ত শাখা দেখতে (বা নিষ্ক্রিয়, সে বিষয়ে) আরও জটিল করে তোলে
  • একটি শাখায় সহযোগিতা করা কৌশলযুক্ত (কাঁটাচামচ মালিককে সেই ব্যক্তিকে সহযোগী হিসাবে যুক্ত করা দরকার)
  • গিটে আপনার একাধিক রিমোটের ধারণাটি বুঝতে হবে
    • অতিরিক্ত মানসিক বুককিপিং প্রয়োজন
    • এটি গিটের সাথে অতি স্বাচ্ছন্দ্যবোধ না করে এমন লোকদের জন্য কর্মপ্রবাহকে আরও কঠিন করে তুলবে

শাখাবিন্যাস

পেশাদাররা

  • একটি প্রকল্পের চারপাশে চলছে সমস্ত কাজ এক জায়গায় রাখে
  • সমস্ত সহযোগী একই শাখায় এটিতে সহযোগিতা করতে চাপ দিতে পারে
  • মোকাবেলা করার জন্য কেবল একটি গিট রিমোট রয়েছে

কনস

  • যে শাখাগুলি পরিত্যক্ত হয় সেগুলি আরও সহজেই গাদা করতে পারে
  • আপনার দলের অবদান প্রক্রিয়াটি বাহ্যিক অবদানকারী প্রক্রিয়াটির সাথে মেলে না
  • শাখা করার আগে আপনাকে দলের সদস্যদের অবদানকারী হিসাবে যুক্ত করতে হবে

"বাইরের অবদানকারী প্রক্রিয়া" বলতে কী বোঝায়?
কারস বারেনড্রেচট

1
"বাহ্যিক অবদানকারী" শব্দটি ব্যবহার করার জন্য @ কার্স বারেন্ড্রেচট আপডেট হয়েছে। যার ভাণ্ডারটিতে writeঅনুমতি নেই Someone
আইডান ফিল্ডম্যান

45

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

সাধারণ প্যাটার্নটি নিম্নরূপ:

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

এটি ছাড়া, সরকারী প্রকল্পগুলির পক্ষে একেবারে অস্বাভাবিক যে কাউকে সরাসরি তাদের নিজস্ব প্রতিশ্রুতিগুলি চাপতে দেয়।


@ রেকো জনসন, ভাল ... আমি আমার উত্তরে "টান" শব্দটি ব্যবহার করি নি (তবে "টান" কার্যকরভাবে "আনতে" + গিটের পদে "মার্জ")। "ধাক্কা" ব্যবহারের কোনটি আপনি ভুল বলে মনে করেন?
ব্রুনো

2
@ রেকো জনসন আপনাকে গিটারহাবের কাঁটাচামচায় অবদান রাখার জন্য; প্রকল্পের রক্ষণাবেক্ষণকারীরা আপনার কাঁটাচামচ থেকে আপনার অবদান টানেন।
mljrg

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

8

ফোর্কিং বিদ্যমান সংগ্রহস্থলগুলি থেকে সম্পূর্ণ নতুন সংগ্রহশালা তৈরি করে (গিটহাব / বিটবাকেটে কেবল গিট ক্লোন করা)

কাঁটাচামচ সর্বোত্তমভাবে ব্যবহৃত হয়: যখন 'বিভক্ত' এর অভিপ্রায়টি একটি যৌক্তিকভাবে স্বতন্ত্র প্রকল্প তৈরি করা হয় যা এর পিতামাতার সাথে পুনরায় মিলিত হতে পারে না।

শাখা কৌশল বিদ্যমান / কার্যকরী ভাণ্ডারগুলির উপর একটি নতুন শাখা তৈরি করে

শাখাগুলি সর্বোত্তমভাবে ব্যবহৃত হয়: যখন কোনও বৈশিষ্ট্যের মাধ্যমে কাজ করার জন্য অস্থায়ী স্থান হিসাবে তৈরি করা হয়, শাখাকে উত্সের সাথে একীভূত করার অভিপ্রায় সহ।

আরও সুনির্দিষ্ট: - ওপেন সোর্স প্রকল্পগুলিতে এটি সেই সংগ্রহস্থলের মালিক যিনি সিদ্ধান্ত নেন যে এই সংগ্রহস্থলটির দিকে যেতে পারে। তবে ওপেন সোর্সের ধারণা হ'ল প্রত্যেকে এই প্রকল্পে অবদান রাখতে পারে।

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

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

নীচের লিঙ্কগুলি একটি সুস্পষ্টভাবে বর্ণিত পার্থক্যটি সরবরাহ করে:

https://blog.gitprime.com/the-definitive-guide-to-forks-and-branches-in-git/

https://buddy.works/blog/5-types-of-git-workflows

http://www.continuousagile.com/unblock/branching.html


এই উত্তরের "সর্বাধিক ব্যবহৃত" বিবৃতিগুলি অনেকগুলি বিষয়কে অগ্রাহ্য করে যা ওপেন-সোর্স প্রকল্পগুলির মতো জিনিসগুলির জন্য শাখা প্রশাখাকে বাধা দেয় এবং সেইসাথে বাস্তব জগতে কাঁটাচামচ কীভাবে ব্যবহৃত হয় তার বাস্তবতা। এমন একটি প্রকল্পে লোকজনকে সহযোগিতা করার মঞ্জুরি দেওয়ার জন্য টান অনুরোধের সাথে একত্রে ব্যবহৃত কাঁটাচামচগুলি দেখা অতি সাধারণ বিষয় যা সবার দেওয়া প্রত্যক্ষ সংগ্রহস্থলটি সরাসরি সংশোধন করার অনুমতি পায় না।
স্ট্রিপলিং ওয়ারিয়র
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.