জিআইটি এবং সিভিএসের মধ্যে পার্থক্য


126

গিট এবং সিভিএস সংস্করণ নিয়ন্ত্রণ সিস্টেমের মধ্যে পার্থক্য কী?

আমি আনন্দের সাথে 10 বছরেরও বেশি সময় ধরে সিভিএস ব্যবহার করে আসছি এবং এখন আমাকে বলা হয়েছে যে গিট আরও ভাল। কেউ দয়া করে ব্যাখ্যা করতে পারেন যে উভয়ের মধ্যে পার্থক্য কী, এবং কেন একজন অপরটির চেয়ে ভাল?


1
লিনাসের এই কথাটি (গিটের মূল লেখক) এটি যথেষ্ট পরিমাণে সমান করে। গুগল টেক কথাবার্তা : লিনাস টর্ভাল্ডস গিট এন্টেনশন: উচ্চ মতামতযুক্ত আলোচনা।
কুংফু

সিভিএস খুব পুরানো এবং আমি বিশ্বাস করতে পারি না কোনও প্রোগ্রামার এটি কাজ করতে পারে।
ফারসিগাল্ফ

10
এই প্রশ্নটি 8 বছর আগে জিজ্ঞাসা করা হয়েছিল। আমি বর্তমানে জিআইটি ব্যবহার করি।
জয়

6
কিছু পুরানো বলেই এটি খারাপ করবেন না।
জাস্টিন মেইনার্স

উত্তর:


338

মূল পার্থক্যটি হ'ল (যেমনটি ইতিমধ্যে অন্যান্য প্রতিক্রিয়াতে বলা হয়েছিল) সিভিএস হ'ল (পুরানো) কেন্দ্রীয় সংস্করণ নিয়ন্ত্রণ ব্যবস্থা, যখন গিট বিতরণ করা হয়।

আপনি যদি একক বিকাশকারী, একক মেশিনে (একক অ্যাকাউন্ট) সংস্করণ নিয়ন্ত্রণ ব্যবহার করেন তবে গিট এবং সিভিএসের মধ্যে কয়েকটি পার্থক্য রয়েছে:

  • সংগ্রহস্থল স্থাপন করা হচ্ছে.gitআপনার প্রকল্পের শীর্ষ ডিরেক্টরিতে ডিরেক্টরিতে গিট স্টোরের সংগ্রহস্থল ; সিভিএসের জন্য বিভিন্ন প্রকল্পের (মডিউল) সংস্করণ নিয়ন্ত্রণ তথ্য সংরক্ষণের জন্য কেন্দ্রীয় স্থান সিভিএস্রুট স্থাপন করা প্রয়োজন। ব্যবহারকারীর জন্য এই নকশার পরিণতি হ'ল সংস্করণ নিয়ন্ত্রণে বিদ্যমান উত্সগুলি আমদানি করা গিটের মধ্যে "গিট আর এন্ড অ্যান্ড গিট অ্যাড। & গিট কমিট" এর মতোই সহজ, যদিও এটি সিভিএসে আরও জটিল

  • পারমাণবিক অপারেশন । কারণ সিভিএস শুরুতে প্রতি-ফাইল আরসিএস সংস্করণ নিয়ন্ত্রণ সিস্টেমের চারপাশে স্ক্রিপ্টগুলির একটি সেট ছিল, কমিট (এবং অন্যান্য ক্রিয়াকলাপগুলি) সিভিএসে পারমাণবিক নয়; যদি ভাণ্ডারটিতে কোনও অপারেশন মাঝখানে বিঘ্নিত হয়, তবে সংগ্রহস্থলটি একটি অসামঞ্জস্য অবস্থায় ফেলে রাখা যেতে পারে। গিতে সমস্ত অপারেশনগুলি পারমাণবিক: হয় তারা পুরোপুরি সফল হয়, অথবা কোনও পরিবর্তন ছাড়াই ব্যর্থ হয়।

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

  • নামকরণ সংশোধন / সংস্করণ নম্বর । সিভিএসের পরিবর্তিত ফাইলগুলির পরিবর্তে এই সংস্করণের আরও একটি সমস্যা রয়েছে: সংস্করণ সংখ্যা (যেমন আপনি কখনও কখনও কীওয়ার্ড প্রসারণে , নীচে দেখুন) যেমন 1.4 প্রতিফলিত করে যে কত সময় প্রদত্ত ফাইলটি পরিবর্তন হয়েছে। সামগ্রিকভাবে একটি প্রকল্পের প্রতিটি সংস্করণে গিটের (প্রতিটি প্রতিশ্রুতিবদ্ধ) SHA-1 আইডি দ্বারা দেওয়া অনন্য নাম রয়েছে; সাধারণত প্রথম --৮ টি অক্ষর শোধ করার জন্য যথেষ্ট (আপনি বিতরণকৃত সংস্করণ নিয়ন্ত্রণ সিস্টেমে সংস্করণগুলির জন্য সহজ সংখ্যা স্কিম ব্যবহার করতে পারবেন না - যার জন্য কেন্দ্রীয় নম্বরকরণ কর্তৃত্বের প্রয়োজন)। সিভিএসে সংস্করণ নম্বর বা প্রতীকী নাম থাকতে পুরো প্রকল্পের রাজ্যের উল্লেখ করে আপনি ট্যাগ ব্যবহার করেন দেখতে পারেন ; আপনি যদি কিছুটির জন্য 'v1.5.6-rc2' এর মতো নাম ব্যবহার করতে চান তবে গিতেও একই কথা) একটি প্রকল্পের সংস্করণ ... তবে গিটের মধ্যে ট্যাগগুলি ব্যবহার করা সহজ।

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

    এর অর্থ হ'ল আপনি বিষয় শাখা ব্যবহার করতে পারবেন , অর্থাত্ পৃথক বৈশিষ্ট্য শাখায় একাধিক ধাপে একটি পৃথক বৈশিষ্ট্য বিকাশ করুন।

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

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

  • কীওয়ার্ড সম্প্রসারণ । সিভিএসের (ডিফল্টরূপে) তুলনায় গিট একটি খুব, খুব সীমিত কীওয়ার্ড সেট সরবরাহ করে। এটি দুটি সত্যের কারণেই: গিটের পরিবর্তনগুলি প্রতি ফাইলের জন্য নয়, প্রতি সংগ্রহস্থল এবং গিট অন্যান্য শাখায় স্যুইচ করার সময় বা ইতিহাসের অন্য বিন্দুতে ফিরে যাওয়ার সময় পরিবর্তিত হয়নি এমন ফাইলগুলিকে সংশোধন করা এড়ায়। আপনি যদি গিট ব্যবহার করে সংশোধন নম্বর এম্বেড করতে চান তবে আপনার বিল্ড সিস্টেমটি ব্যবহার করে এটি করা উচিত, উদাহরণস্বরূপ লিনাক্স কার্নেল উত্স এবং গিট উত্সগুলিতে জিআইটি-ভার্সন-জেন স্ক্রিপ্টের উদাহরণ following

  • সংশোধন প্রতিশ্রুতি । বিতরণিত ভিসিএসে যেমন প্রকাশের গিট অ্যাক্ট প্রতিশ্রুতিবদ্ধতা তৈরি থেকে পৃথক, কেউই অন্য ব্যবহারকারীদের অসুবিধে না করে ইতিহাসের অপ্রকাশিত অংশ পরিবর্তন (সম্পাদনা, পুনর্লিখন) করতে পারেন। বিশেষত যদি আপনি কমিটের বার্তায় টাইপ (বা অন্যান্য ত্রুটি), বা কোনও বাগের প্রতিশ্রুতি লক্ষ্য করেন তবে আপনি কেবল "গিট কমিট --amend" ব্যবহার করতে পারেন। সিভিএসে এটি সম্ভব নয় (কমপক্ষে ভারী হ্যাকারি ছাড়া নয়)।

  • আরও সরঞ্জাম । গিট সিভিএসের চেয়ে অনেক বেশি সরঞ্জাম সরবরাহ করে। আরও গুরুত্বপূর্ণ একটি হ'ল " গিট বিসেক্ট " যা একটি কমিট (পুনর্বিবেচনা) সন্ধান করতে ব্যবহার করা যেতে পারে যা বাগ প্রবর্তন করে; যদি আপনার কমিটগুলি ছোট এবং স্ব-অন্তর্ভুক্ত থাকে তবে বাগটি কোথায় তা আবিষ্কার করা মোটামুটি সহজ হওয়া উচিত।


আপনি যদি কমপক্ষে অন্য একজন বিকাশকারীর সাথে সহযোগিতা করেন তবে আপনি গিট এবং সিভিএসের মধ্যে নিম্নলিখিত পার্থক্যগুলিও দেখতে পাবেন:

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

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

  • গিটের সাথে কেন্দ্রীয় ভান্ডারগুলির প্রয়োজন নেই যেখানে আপনি নিজের প্রতিশ্রুতিবদ্ধ সেখানে একক কেন্দ্রীয় জায়গা থাকার দরকার নেই। প্রতিটি বিকাশকারীর নিজস্ব সংগ্রহস্থল থাকতে পারে (বা আরও ভাল সংগ্রহস্থল: ব্যক্তিগত যেখানে সে উন্নয়ন করে এবং যেখানে সে / সে অংশটি প্রস্তুত করে সেখানে প্রকাশ্য) এবং তারা একে অপরকে সংগ্রহ / সংগ্রহ করতে পারে, প্রতিসম ফ্যাশন। অন্যদিকে বৃহত্তর প্রকল্পের জন্য সামাজিকভাবে সংজ্ঞায়িত / মনোনীত কেন্দ্রীয় ভাণ্ডার রয়েছে যা থেকে প্রত্যেকেই টানেন (এখান থেকে পরিবর্তন আনুন)।


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

  • lurker । যদি আপনি কেবলমাত্র কোনও প্রকল্পের সর্বশেষ পরিবর্তনগুলি পেতে ( আপনার পরিবর্তনের কোনও প্রচার নেই ) বা বেসরকারী উন্নয়ন (মূল প্রকল্পগুলিতে ফিরে অবদান না রেখে) আগ্রহী হন; বা আপনি বিদেশী প্রকল্পগুলি আপনার নিজের প্রকল্পের ভিত্তি হিসাবে ব্যবহার করেন (পরিবর্তনগুলি স্থানীয় হয় এবং এগুলি প্রকাশ করার কোনও অর্থ হয় না)।

    গিটটি এখানে কাস্টম দক্ষ প্রোটোকলের মাধ্যমে বেনামে অজ্ঞাতনামা অবিচলিত পঠনযোগ্য অ্যাক্সেস সমর্থন করে git://বা আপনি যদি ফায়ারওয়াল ব্লক করার পিছনে DEFAULT_GIT_PORT(9418) থাকেন তবে আপনি সরল এইচটিটিপি ব্যবহার করতে পারেন।

    সিভিএসের সর্বাধিক সাধারণ সমাধানের জন্য (যেমন আমি এটি বুঝতে পারি) কেবল পঠনের অ্যাক্সেসের জন্য অতিথি অ্যাকাউন্ট হ'ল 'পেসারভার' প্রোটোকল অন CVS_AUTH_PORT(2401), সাধারণত "বেনামে" এবং খালি পাসওয়ার্ড সহ বলা হয়। শংসাপত্রগুলি $HOME/.cvspassফাইলে ডিফল্টরূপে সংরক্ষণ করা হয় , সুতরাং আপনাকে এটি কেবল একবার সরবরাহ করতে হবে; তবুও, এটি কিছুটা বাধা (আপনাকে অতিথির অ্যাকাউন্টের নাম জানতে হবে, বা সিভিএস সার্ভারের বার্তাগুলিতে মনোযোগ দিতে হবে) এবং বিরক্তি।

  • ফ্রিঞ্জ বিকাশকারী (পাতার অবদানকারী) । ওএসএসে আপনার পরিবর্তনগুলি প্রচারের একটি উপায় ইমেলের মাধ্যমে প্যাচগুলি প্রেরণ করা । আপনি (কম বেশি) দুর্ঘটনা বিকাশকারী, একক পরিবর্তন বা একক বাগফিক্স প্রেরণ করা হলে এটি সর্বাধিক সাধারণ সমাধান। BTW। প্যাচগুলি প্রেরণ পর্যালোচনা বোর্ডের মাধ্যমে (প্যাচ পর্যালোচনা সিস্টেম) বা অনুরূপ উপায়গুলি হতে পারে, কেবল ইমেলের মাধ্যমে নয়।

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

    সিভিএস এ জাতীয় কোনও সরঞ্জাম সরবরাহ করে না: আপনি পরিবর্তনগুলি উত্পন্ন করতে "সিভিএস ডিফ" / "সিভিএস আরডিফ" ব্যবহার করতে পারেন, এবং পরিবর্তনগুলি প্রয়োগ করতে জিএনইউ প্যাচ ব্যবহার করতে পারেন, তবে যতদূর আমি জানি যে প্রতিশ্রুতিবদ্ধ প্রতিশ্রুতি প্রয়োগ করার জন্য স্বয়ংক্রিয় করার কোনও উপায় নেই। সিভিএস বলতে ক্লায়েন্ট <-> সার্ভার ফ্যাশনে ব্যবহার করা হয়েছিল ...

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

    এটি বিতরণযোগ্য সংস্করণ নিয়ন্ত্রণ ব্যবস্থার জন্য নির্দিষ্ট সমাধান , সুতরাং অবশ্যই সিভিএস এই জাতীয় সহযোগিতার উপায়কে সমর্থন করে না। এমনকি "গিট রিকোয়েস্ট-পুল" নামে একটি সরঞ্জাম রয়েছে যা আপনার সংগ্রহশালা থেকে টানতে অনুরোধ সহ রক্ষণাবেক্ষণকারীকে প্রেরণ করতে ইমেল প্রস্তুত করতে সহায়তা করে। "গিট বান্ডিল" ধন্যবাদ আপনাকে ইমেল বা স্নিকার্নেটের মাধ্যমে পরিবর্তনের বান্ডিল প্রেরণ করেও পাবলিক ভান্ডার না করেও এই প্রক্রিয়াটি ব্যবহার করতে পারেন। গিটহাবের মতো কিছু গিট হোস্টিং সাইটের আপনার প্রকল্পে কেউ কাজ করছে (কোনও কাজ প্রকাশিত হয়েছে) তা জানানোর জন্য সমর্থন রয়েছে (শর্তিত যে তিনি একই গিট হোস্টিং সাইট ব্যবহার করেন), এবং প্রধানমন্ত্রীকে এক ধরণের পুল অনুরোধ করার জন্য।

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

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

    সিভিএসের সাথে কাস্টম আনইনক্রিপ্টড (প্লেইন টেক্সট) পার্সার প্রোটোকল বা আপনার পরিবর্তনগুলি প্রকাশের জন্য রিমোট শেল (যেখানে আপনার সত্যিকারের এসএসএইচ ব্যবহার করা উচিত ) এর মধ্যে একটি পছন্দ রয়েছে , যা কেন্দ্রিয়ায়িত সংস্করণ নিয়ন্ত্রণ ব্যবস্থার জন্য আপনার পরিবর্তনগুলি প্রতিশ্রুতিবদ্ধ (কমিট তৈরি করা) বোঝায়। ঠিক আছে, আপনি এসএসএইচ ব্যবহার করে 'পার্সার' প্রোটোকলটি সুড়ঙ্গ করতে পারেন, এবং এটি স্বয়ংক্রিয়রূপে তাদের পক্ষের পক্ষের সরঞ্জামগুলি রয়েছে ... তবে আমি মনে করি না এটি যেমন গিটোসিসের মতো সহজ।

গিটের মতো সাধারণ বিতরণকৃত সংস্করণ নিয়ন্ত্রণ ব্যবস্থাগুলিতে সম্ভাব্য ওয়ার্কফ্লোগুলির বিস্তৃত নির্বাচন সরবরাহ করে। কেন্দ্রিয় সংস্করণ নিয়ন্ত্রণ ব্যবস্থা, যেমন সিভিএসের সাহায্যে আপনার প্রয়োজন অনুসারে ভান্ডারগুলিতে অ্যাক্সেসপ্রাপ্ত লোকদের মধ্যে এবং পার্থক্য নেই ... এবং সিভিএস বিনা লোকের কাছ থেকে অবদান (প্যাচগুলির মাধ্যমে) গ্রহণে সহায়তা করার জন্য কোনও সরঞ্জাম সরবরাহ করে না অ্যাক্সেস প্রতিশ্রুতিবদ্ধ।

সংস্করণ নিয়ন্ত্রণ সম্পর্কে বিভাগে ওপেন সোর্স সফ্টওয়্যার প্রযোজনায় কার্ল ফোগেল বলেছেন যে যেখানে জনসাধারণের ভান্ডারগুলিতে পরিবর্তন আনার অনুমতি দেওয়া হয় সে অঞ্চলে খুব কঠোর, কঠোর এবং কঠোর নিয়ন্ত্রণ না দেওয়া ভাল; প্রযুক্তিগত বিধিনিষেধের চেয়ে সামাজিক বিধিনিষেধ (যেমন কোড পর্যালোচনা) এর উপর নির্ভর করার পক্ষে এটির পক্ষে অনেক ভাল; বিতরণ করা সংস্করণ নিয়ন্ত্রণ সিস্টেমগুলি সেই আইএমএইচও আরও কমিয়ে দেয় ...

এইচটিএইচ (আশা করি সহায়তা করে)


3
জাকুব জিআইটির পাঁচজন খনি লেখকের একজন হিসাবে তালিকাভুক্ত হয়েছে, সুতরাং এটি সম্পূর্ণ উত্তর দেয়। বিশ্বের শাসন আইন যদি সহজ হত তবে কেবলমাত্র চার
জনই এর

1
@ সামুয়েল: আমি গিতের অন্যতম লেখক নই। কমিটের সংখ্যা সব কিছু নয়। আমি কেবল গিটওয়েব (গিট ওয়েব ইন্টারফেস) ক্ষেত্রে সক্রিয়
জাকুব নারেবস্কি

1
আমি সিভিএস এবং জিআইটির মধ্যে তুলনা টেবিলের জন্য জিজ্ঞাসা করতে এসেছি তবে এই উত্তরটি এত ভাল better +1 তার জন্য! :) আরও একটি দরকারী নিবন্ধ রয়েছে যা আমি একটি রেফারেন্স হিসাবে ( থিঙ্কভিটামিন.com/ কোড / ode ) হিসাবে ব্যবহার করার আশাবাদী যদিও এটি এই উত্তরটির মতো সত্যই তেমন ভাল নয়। :)
অ্যান্ড্রয়েড ইভ

4

Git একটি হল DVCS যেমন জীবনবৃত্তান্ত একটি কেন্দ্রীভূত এক হচ্ছে উল্টোদিকে। সরল বিবরণ হবে: যখন আপনি সংযুক্ত থাকেন না তখনও আপনি সংস্করণ নিয়ন্ত্রণের সব সুবিধা পেতে কোনো একাধিক সম্ভব আধারগুলির, প্লাস অপারেশন দ্রুততর হয়।


4

গিট ওয়েবসাইট সম্ভবত এটি সেরা ব্যাখ্যা করে।

আমার পোষা প্রাণী বৈশিষ্ট্যটি অফলাইনে থাকাকালীন কমিটগুলি করতে সক্ষম হয়। এবং গতি, নিছক জ্বলন্ত গতিতে ধাক্কা দেওয়া এবং টানানো ব্যতীত সমস্ত কিছু ঘটে। (এবং এই ক্রিয়াকলাপগুলি নকশাক্রমে নকশাযুক্ত, সুতরাং আপনি যখন আপনার কেন্দ্রীয় রেপোটি পিছিয়ে থাকে তবে আপনি কোনও কফি দখল করতে গেলে আপনি ধাক্কা / টানতে পারেন Another) আর একটি দুর্দান্ত জিনিস হ'ল এটি ব্যাটারি অন্তর্ভুক্ত করে: বিল্টিন gitkএকটি যথেষ্ট যথেষ্ট ইতিহাসের দর্শক; git guiএকটি যথেষ্ট যথেষ্ট প্রতিশ্রুতি সরঞ্জাম; আউটপুট colorization সঙ্গে, git add -i, git add -p, git rebase -iভাল যথেষ্ট ইন্টারেক্টিভ ইন্টারফেস আছে; git daemonএবং git instawebযদি আপনি আপনার কেন্দ্রীয় রেপোতে ফিডল করতে না / করতে চান তবে অ্যাড-হক সহযোগিতার জন্য যথেষ্ট ভাল।


3

আমি একটি 10+ বছর সিভিএসের বেশিরভাগ খুশি ব্যবহারকারী, যদিও আমিও গিট পছন্দ করি এবং সময়ের সাথে এটি পছন্দ করতে পারে, যদিও আমি বর্তমানে বেশিরভাগ প্রকল্প সিভি বা এসএনএন ব্যবহার করি, এবং আমরা মনে করি না আমি যেখানে ফায়ারওয়ালের মাধ্যমে গিট-হোল খোঁচা দেওয়ার জন্য দৃ convinced় বিশ্বাস নিয়ে কাজ করি সেখানে বুরাক্র্যাসি পেতে।

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


2

"আনন্দের সাথে এক্স বছর ধরে সিভিএস ব্যবহার করা", এটি একটি আকর্ষণীয় ধারণা :-) প্রচুর অনুলিপি রাখা থেকে এটি একটি বিশাল পদক্ষেপ, তবে ...

আমি অনুমান করছি যে আপনি এটির সমস্ত কীর্তিতে অভ্যস্ত হয়ে পড়েছেন, বা খুব বেশি শাখা এবং মার্জ করবেন না। আরও খারাপ সম্ভাবনা আছে;

আপনার সংস্থার লোকেরা সিভিএসের সীমাবদ্ধতার অভ্যস্ত হয়ে গেছে এবং আপনার কাজের অনুশীলনগুলি সেই অনুযায়ী মানিয়ে গেছে;

উদাহরণস্বরূপ, একবারে একবারে একাধিক বিকাশকারী এক প্যাকেজে কাজ না করে কেবল জরুরী পরিস্থিতিতে শাখা ব্যবহার ইত্যাদি never

মূল নীতিটি হ'ল সমস্যা যত বেশি হয় লোকে এটি কম করে।

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