লিনাক্সে কীভাবে গিট সংস্করণ নিয়ন্ত্রণ ব্যবস্থা ব্যবহার করতে হবে [বিস্তৃত গাইড]


সংস্করণ নিয়ন্ত্রণ (পুনর্বিবেচনা নিয়ন্ত্রণ বা উত্স নিয়ন্ত্রণ) একটি ফাইল বা সময়ের সাথে সাথে ফাইল সংগ্রহের রেকর্ডিংয়ের একটি উপায় যাতে আপনি পরে নির্দিষ্ট সংস্করণগুলি স্মরণ করতে পারেন। একটি সংস্করণ নিয়ন্ত্রণ ব্যবস্থা (বা সংক্ষেপে ভিসিএস) একটি সরঞ্জাম যা একটি ফাইল সিস্টেমের ফাইলগুলিতে পরিবর্তনগুলি রেকর্ড করে।

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

সংস্করণ নিয়ন্ত্রণ সিস্টেম/সরঞ্জামগুলি এমন বেশ কয়েকটি বৈশিষ্ট্য সরবরাহ করে যা ব্যক্তি বা একটি গোষ্ঠীর লোককে এর অনুমতি দেয়:

  • একটি প্রকল্পের সংস্করণ তৈরি করুন
  • ট্র্যাক সঠিকভাবে পরিবর্তন করে এবং বিরোধগুলি সমাধান করুন
  • পরিবর্তনগুলিকে একটি সাধারণ সংস্করণে মার্জ করুন
  • নির্বাচিত ফাইল বা একটি সম্পূর্ণ প্রকল্পে রোলব্যাক এবং পরিবর্তনগুলি পূর্বাবস্থায় ফেরান
  • সময়ের সাথে পরিবর্তনের তুলনা করতে কোনও প্রকল্পের historicalতিহাসিক সংস্করণ অ্যাক্সেস করুন
  • শেষবার কে এমন কিছু পরিবর্তন করেছেন যা কোনও সমস্যার কারণ হতে পারে
  • কোনও প্রকল্পের একটি সুরক্ষিত অফসাইট ব্যাকআপ তৈরি করুন
  • একক প্রকল্পে কাজ করতে একাধিক মেশিন ব্যবহার করুন এবং আরও অনেক কিছু।

গিটের মতো সংস্করণ নিয়ন্ত্রণ ব্যবস্থার অধীনে একটি প্রকল্পের মূলত তিনটি বিভাগ থাকবে:

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

ভিসিএসের দুটি প্রধান প্রকার রয়েছে, মূল পার্থক্যটির সাথে সংগ্রহস্থলের সংখ্যা:

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

এছাড়াও, একটি গিট সংগ্রহস্থল খালি থাকতে পারে (যে সংগ্রহশালাটির একটি কার্যনির্বাহী ডিরেক্টরি নেই) বা নন-বেয়ার (একটি ওয়ার্কিং ডিরেক্টরি সহ একটি)। ভাগ করা (বা সর্বজনীন বা কেন্দ্রীয়) সংগ্রহশালা সর্বদা খালি থাকা উচিত - সমস্ত গিথুব সংগ্রহশালা খালি থাকে।

গিট সহ সংস্করণ নিয়ন্ত্রণ শিখুন

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

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

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

লিনাক্সে গিট ইনস্টল করতে আপনার পছন্দমত বিতরণের জন্য উপযুক্ত কমান্ডটি ব্যবহার করুন:

$ sudo apt install git   [On Debian/Ubuntu]
$ sudo yum install git   [On CentOS/RHEL]

গিট ইনস্টল করার পরে, আপনার পুরো নাম এবং ইমেল ঠিকানা সরবরাহ করে আপনি কারা কে তা আপনাকে সুপারিশ করা উচিত:

$ git config --global user.name “Aaron Kili”
$ git config --global user.email “[email ”

আপনার গিট সেটিংস পরীক্ষা করতে, নিম্নলিখিত কমান্ডটি ব্যবহার করুন।

$ git config --list 

একটি নতুন গিট সংগ্রহশালা তৈরি করে

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

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

# mkdir-p /projects/scripts/
# groupadd sysadmins
# usermod -aG sysadmins admin
# chown :sysadmins -R /projects/scripts/
# chmod 770 -R /projects/scripts/

তারপরে একটি খালি প্রকল্পের সংগ্রহস্থল শুরু করুন।

# git init --bare /projects/scripts/bashscripts

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

# ls -la /projects/scripts/bashscripts/

গিট রিপোজিটরি ক্লোন করুন

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

$ git clone ssh://[email _server_ip:/projects/scripts/bashscripts 

এটি একটি নির্দিষ্ট ডিরেক্টরিতে ক্লোন করতে (~/bin/bashscriptts) নীচের কমান্ডটি ব্যবহার করুন।

$ git clone ssh://[email _server_ip:/projects/scripts/bashscripts ~/bin/bashscripts

আপনার এখন প্রকল্পের স্থানীয় উদাহরণ নন-বেয়ার রিপোজিটরিতে রয়েছে (একটি কার্যনির্বাহী ডিরেক্টরি সহ), আপনি প্রকল্পের প্রাথমিক কাঠামো তৈরি করতে পারেন (যেমন একটি README.md ফাইল যুক্ত করতে পারেন, বিভিন্ন বিভাগের স্ক্রিপ্টগুলির জন্য উপ-ডিরেক্টরি যেমন পুনরায় পুনরুদ্ধার স্ক্রিপ্ট, সিসাদমিন রো স্টোর স্যাসাদমিন স্ক্রিপ্ট ইত্যাদি সংরক্ষণ করতে):

$ cd ~/bin/bashscripts/
$ ls -la

গিটের স্থিতির সংক্ষিপ্তসার পরীক্ষা করুন

আপনার কর্মনির্দেশক ডিরেক্টরিটির স্থিতি প্রদর্শন করতে, স্ট্যাটাস কমান্ডটি ব্যবহার করুন যা আপনাকে যে কোনও পরিবর্তন দেখিয়ে দেবে; কোন ফাইলগুলি গিট দ্বারা ট্র্যাক করা যাচ্ছে না; এই পরিবর্তনগুলি যে মঞ্চস্থ হয়েছে এবং তাই।

$ git status 

গিট স্টেজ পরিবর্তন এবং প্রতিশ্রুতিবদ্ধ

এরপরে -A স্যুইচ দিয়ে অ্যাড কমান্ড ব্যবহার করে সমস্ত পরিবর্তন মঞ্চ করুন এবং প্রাথমিক প্রতিশ্রুতি করুন। -a ফ্ল্যাগটি কমান্ডকে স্বয়ংক্রিয়ভাবে সংশোধন করা ফাইলগুলি মঞ্চ করার নির্দেশ দেয় এবং -m কমিট বার্তা নির্দিষ্ট করতে ব্যবহৃত হয়:

$ git add -A
$ git commit -a -m "Initial Commit"

রিমোট গিট রিপোজিটরিতে স্থানীয় কমিট প্রকাশ করুন

প্রকল্প দলের নেতৃত্ব হিসাবে, এখন আপনি প্রকল্প কাঠামো তৈরি করেছেন, আপনি প্রদর্শিত পুশ কমান্ড ব্যবহার করে কেন্দ্রীয় সংগ্রহস্থলগুলিতে পরিবর্তনগুলি প্রকাশ করতে পারেন।

$ git push origin master

এখনই, আপনার স্থানীয় গিট সংগ্রহস্থলটি প্রকল্পের কেন্দ্রীয় সংগ্রহস্থল (উত্স) এর সাথে আপ-টু-ডেট হওয়া উচিত, আপনি আরও একবার স্ট্যাটাস কমান্ড চালিয়ে এটি নিশ্চিত করতে পারবেন।

$ git status

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

একটি নতুন গিট শাখা তৈরি করুন

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

$ git branch latest
$ git checkout latest

বিকল্পভাবে, আপনি একটি নতুন শাখা তৈরি করতে পারেন এবং -b পতাকাটি দিয়ে চেকআউট কমান্ডটি ব্যবহার করে এক ধাপে এটিতে স্যুইচ করতে পারেন।

$ git checkout -b latest

আপনি অন্য একটি শাখার উপর ভিত্তি করে একটি নতুন শাখাও তৈরি করতে পারেন, উদাহরণস্বরূপ।

$ git checkout -b latest master

আপনি কোন শাখায় আছেন তা যাচাই করতে, শাখা কমান্ডটি ব্যবহার করুন (একটি নক্ষত্রের অক্ষর সক্রিয় শাখা নির্দেশ করে):

$ git branch

নতুন শাখাটি তৈরি এবং স্যুইচ করার পরে, এর অধীনে কিছু পরিবর্তন করুন এবং কিছু কমিট করুন।

$ vim sysadmin/topprocs.sh
$ git status
$ git commit add  sysadmin/topprocs.sh
$ git commit -a -m 'modified topprocs.sh'

এক শাখা থেকে অন্য শাখায় পরিবর্তনগুলি মার্জ করুন

শাখা পরীক্ষার অধীনে পরিবর্তনগুলি মাস্টার শাখায় মার্জ করতে, মাস্টার শাখায় স্যুইচ করুন এবং মার্জ করুন।

$ git checkout master 
$ git merge test 

আপনার যদি আর কোনও নির্দিষ্ট শাখার প্রয়োজন না হয় তবে আপনি -d স্যুইচ ব্যবহার করে এটি মুছতে পারেন।

$ git branch -d test

দূরবর্তী কেন্দ্রীয় সংগ্রহশালা থেকে পরিবর্তনগুলি ডাউনলোড করুন

আপনার টিমের সদস্যরা কেন্দ্রীয় প্রকল্পের ভাণ্ডারে পরিবর্তন ঠেকিয়েছেন বলে ধরে নিচ্ছেন, আপনি পুল কমান্ড ব্যবহার করে প্রকল্পের স্থানীয় দৃষ্টান্তে যে কোনও পরিবর্তন ডাউনলোড করতে পারবেন।

$ git pull origin
OR
$ git pull origin master	#if you have switched to another branch

গিট সংগ্রহস্থল পরিদর্শন করুন এবং তুলনা করুন

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

প্রথম বৈশিষ্ট্যটি হ'ল গিট লগ, যা কমিট লগগুলি প্রদর্শন করে:

$ git log

আর একটি গুরুত্বপূর্ণ বৈশিষ্ট্য হ'ল শো কমান্ড যা বিভিন্ন ধরণের অবজেক্টগুলি প্রদর্শন করে (যেমন কমিট, ট্যাগ, গাছ ইত্যাদি)):

$ git show

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

উদাহরণস্বরূপ, মাস্টার এবং সর্বশেষ শাখার মধ্যে পার্থক্য দেখানোর জন্য, আপনি নিম্নলিখিত কমান্ডটি চালাতে পারেন।

$ git diff master latest

গিট লোকদের একটি দলকে একই ফাইল (গুলি) ব্যবহার করে একসাথে কাজ করার মঞ্জুরি দেয়, সময়ের সাথে সাথে ফাইলগুলিতে পরিবর্তন রেকর্ড করে যাতে তারা পরে নির্দিষ্ট সংস্করণগুলি স্মরণ করতে পারে।

এইভাবে, আপনি সোর্স কোড, কনফিগারেশন ফাইল বা কম্পিউটারে সঞ্চিত যে কোনও ফাইল পরিচালনা করার জন্য গিট ব্যবহার করতে পারেন। আপনি আরও ডকুমেন্টেশনের জন্য গিট অনলাইন ডকুমেন্টেশন উল্লেখ করতে চাইতে পারেন।