গিটের একটি ভূমিকা: এটি কী এবং কীভাবে এটি ব্যবহার করবেন

মার্কস স্পিস্কে আনস্প্ল্যাশ-এর ​​ছবি

গিট একটি ওপেন সোর্স বিতরণ সংস্করণ নিয়ন্ত্রণ সিস্টেম। গিট সংজ্ঞায়িত করার জন্য এটি প্রচুর শব্দ।

আমি সংক্ষেপে এবং শব্দটি ব্যাখ্যা করতে দিন:

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

গিটের মতো সংস্করণ নিয়ন্ত্রণ ব্যবস্থা কেন দরকার

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

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

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

এখন গিট ব্যবহার শুরু করা যাক

একবারে সমস্ত ধারণার উল্লেখ করার পরিবর্তে, আমি গিটের ধারণাগুলি অনুসরণ করতে আরও সহজ করার জন্য একটি উদাহরণ ব্যবহার করে ব্যাখ্যা করব।

গিট ডাউনলোড করুন

এই লিঙ্কটিতে একাধিক অপারেটিং সিস্টেমে গিট ইনস্টল করার বিশদ রয়েছে: https://git-scm.com/book/en/v2/Getting-Started-Installing-Git

কমান্ড প্রম্পটে নিম্নলিখিত কমান্ডটি লিখে গিটটি ইনস্টল করা আছে তা যাচাই করুন:

গিট সংস্করণ

আপনার স্থানীয় গিট সংগ্রহস্থল তৈরি করুন

আপনার কম্পিউটারে আপনার প্রকল্পের জন্য একটি ফোল্ডার তৈরি করুন। আসুন প্রজেক্ট ফোল্ডারটিকে সাধারণ-গিট-ডেমো কল করুন।

আপনার প্রকল্প ফোল্ডারে যান এবং নিম্নলিখিত কমান্ডগুলি ব্যবহার করে প্রকল্পে একটি স্থানীয় গিট সংগ্রহস্থল যুক্ত করুন:

সিডি সিম্পল-গিট-ডেমো গিট ইনিশ

Git init কমান্ড প্রকল্পে একটি স্থানীয় গিট সংগ্রহস্থল যুক্ত করে।

এখন একটি সামান্য কোড যুক্ত করা যাক

প্রকল্প ফোল্ডারে ডেমো.এসটিএসটি নামে একটি ফাইল তৈরি করুন এবং নিম্নলিখিত পাঠ্য যুক্ত করুন:

প্রাথমিক সামগ্রী

এখানে আমরা প্রকৃত কোডের পরিবর্তে প্লেইন পাঠ্যটি ব্যবহার করে দেখাব, যেহেতু এই নিবন্ধটির মূল ফোকাস নির্দিষ্ট প্রোগ্রামিং ভাষা নয়, গিটের উপর।

কোড স্থাপন এবং প্রতিশ্রুতিবদ্ধ

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

স্টেজিং এরিয়ায় যুক্ত করা হয়নি এমন ফাইলগুলি প্রতিশ্রুতিবদ্ধ নয়। এটি বিকাশকারীকে নিয়ন্ত্রণ করে যে কোন ফাইলের প্রতিশ্রুতিবদ্ধ হওয়া দরকার।

উৎপাদন

ফাইলটি মাউন্ট করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

গিট যোগ করুন ডেমো.টিএসটিএসটি

আপনি যদি একাধিক ফাইল যুক্ত করতে চান তবে আপনি নিম্নলিখিতগুলি ব্যবহার করতে পারেন:

git যোগ file1 file2 file3

আপনি যদি প্রজেক্ট ফোল্ডারে থাকা সমস্ত ফাইলকে মঞ্চে যুক্ত করতে চান তবে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

গিট যোগ করুন

আপনার প্রকল্পের সমস্ত ফাইল এবং ফোল্ডার মঞ্চ অঞ্চলে যুক্ত হওয়ায় সাবধানতা অবলম্বন করুন।

প্রতিশ্রুতিবদ্ধ, প্রতিশ্রুতিবদ্ধ

ফাইলটি কমিট করার জন্য নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

গিট কমিট - এম "প্রাথমিক কমিট"

"প্রাথমিক প্রতিশ্রুতি" এখানে প্রতিশ্রুতি বার্তা। সেই নির্দিষ্ট প্রতিশ্রুতিতে কোন কোড পরিবর্তন করা হয়েছে তা নির্দেশ করার জন্য একটি উপযুক্ত প্রতিশ্রুতি বার্তা প্রবেশ করুন।

গিট স্ট্যাটাস এবং গিট লগ

এখন ডেমো টেক্সট ফাইলটি পরিবর্তন করুন এবং নিম্নলিখিত স্নিপেট যুক্ত করুন:

প্রাথমিক সামগ্রী আরও কন্টেন্ট যুক্ত করুন

অবস্থা

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

স্থিতিটি দেখতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

গিট স্ট্যাটাস

স্থিতিটি দেখায় যে ডেমো টেক্সট পরিবর্তন করা হয়েছে এবং মঞ্চ অঞ্চলে এখনও নেই।

আসুন মঞ্চে demo.txt ফাইল যুক্ত করুন এবং নিম্নলিখিত কমান্ডগুলির সাথে এটি প্রতিশ্রুতিবদ্ধ:

গিট অ্যাড ডেমো.টেক্সট গিট কমিট-এম "ফাইল ডেমো টেক্সট পরিবর্তন করা হয়েছে"

লগ

পূর্ববর্তী সমস্ত কমিটগুলি মুদ্রণ করতে গিট লগ ব্যবহার করুন।

এর জন্য ব্যবহৃত আদেশটি হ'ল: গিট-লগ

লগটি প্রতিটি প্রতিশ্রুতির লেখক, প্রতিশ্রুতিবদ্ধতার তারিখ এবং প্রতিশ্রুতি বার্তা প্রদর্শন করে।

শাখা

এখনও গীটে আমাদের কোনও শাখা নেই। ডিফল্টরূপে, গিট অঙ্গীকার করে মাস্টার শাখায়।

একটি শাখা কি?

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

একাধিক শাখা কেন প্রয়োজন?

একাধিক সমান্তরাল বিকাশ সমর্থন করার জন্য একাধিক শাখার প্রয়োজন। শাখাগুলি কীভাবে কাজ করে তা দেখতে নীচের চিত্রটি দেখুন।

প্রাথমিকভাবে, কমিট 1 এবং কমিট 2 প্রধান শাখায় সম্পাদিত হয়েছিল were প্রতিশ্রুতি 2 পরে, পরীক্ষা নামে একটি নতুন শাখা তৈরি করা হয় এবং প্রতিশ্রুতিবদ্ধ 3 এবং প্রতিশ্রুতি 4 পরীক্ষা শাখায় যুক্ত করা হয়।

একই সময়ে, আরও একটি প্রতিশ্রুতি 3 এবং আরেকটি প্রতিশ্রুতি 4 মাস্টার শাখায় যুক্ত করা হয়। এখানে আমরা দেখতে পাই যে কমিট 2 এর পরে দুটি সমান্তরাল বিকাশ দুটি পৃথক শাখায় করা হয়।

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

স্থানীয় একটি নতুন শাখা তৈরি করুন

পরীক্ষা নামে একটি নতুন শাখা তৈরি করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

গিট শাখা পরীক্ষা

এই কমান্ডটি পরীক্ষা শাখা তৈরি করে।

আমরা এখনও মাস্টার শাখার প্রসঙ্গে রয়েছি। পরীক্ষা শাখায় স্যুইচ করতে। নিম্নলিখিত কমান্ড ব্যবহার করুন:

গিট চেকআউট পরীক্ষা

এখন আমরা পরীক্ষা শিল্পে আছি।

নিম্নলিখিত কমান্ডের সাহায্যে আপনি স্থানীয় সমস্ত শাখা তালিকাভুক্ত করতে পারেন:

গিট শাখা

নতুন শাখায় কিছু কমিট করুন

নিম্নলিখিত স্নিপেট যুক্ত করে ডেমো.এসটিএসটি ফাইলটি সংশোধন করুন:

প্রাথমিক সামগ্রী আরও কন্টেন্ট যুক্ত করুন পরীক্ষা শাখা থেকে সামগ্রী যুক্ত করুন

এখন নিম্নলিখিত কমান্ডগুলি সরবরাহ এবং পাস করুন:

গিট অ্যাড ডেমো। টেক্সট গিট কমিট-এম "টেস্ট শাখা কমিট"

এই প্রতিশ্রুতি পরীক্ষা শাখায় করা হয়েছিল, এবং এখন পরীক্ষা শাখাটি মূল শাখার আগে 1 টি প্রতিশ্রুতিবদ্ধ কারণ পরীক্ষা শাখায় মূল শাখা থেকে 2 টি প্রতিশ্রুতিও রয়েছে।

আপনি নিম্নলিখিত হিসাবে টেস্ট শাখায় প্রতিশ্রুতিবদ্ধ ইতিহাস পরীক্ষা করতে পারেন:

গিট লগ

সমবেত করা

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

পরীক্ষার শাখা থেকে কোডটি মাস্টার শাখায় মার্জ করতে, নিম্নলিখিতটি করুন:

প্রথমে মূল শাখায় ফিরে যান:

গিট চেকআউট মাস্টার

তারপরে মার্জ কমান্ডটি চালান:

গিট মার্জ পরীক্ষা

এই দুটি কমান্ড কার্যকর করার পরে, মার্জটি সফল হওয়া উচিত। এই উদাহরণে কোনও বিরোধ নেই।

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

এখন গিট লগ চালান এবং আপনি দেখতে পাবেন যে মাস্টারটিরও 3 টি কমিট রয়েছে।

রিমোট গিট সংগ্রহস্থল

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

দূরবর্তী এবং স্থানীয় সংগ্রহস্থলগুলি দেখুন

GitHub

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

Https://github.com/ এ যান এবং একটি অ্যাকাউন্ট তৈরি করুন।

নিবন্ধকরণের পরে, একটি নতুন গিট সংগ্রহস্থল তৈরি করতে গিটহাবের হোম পৃষ্ঠায় প্রজেক্টটি ক্লিক করুন। ভান্ডারটিকে একটি নাম দিন এবং "সংগ্রহস্থল তৈরি করুন" ক্লিক করুন।

গিট-ব্লগ-ডেমো হিসাবে নামটি প্রবেশ করান।

এটি গিটহাবে একটি রিমোট রিপোজিটরি তৈরি করে। আপনি সংগ্রহস্থলটি খুললে নীচের মতো পৃষ্ঠাটি খোলে:

সংগ্রহস্থল ইউআরএল হাইলাইট অংশ https://github.com/aditya-sridhar/git-blog-demo.git

আপনার স্থানীয় সংগ্রহস্থল দূরবর্তী সংগ্রহস্থলের দিকে নির্দেশ করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

গিট রিমোট অ্যাড অরিজিন [সংগ্রহস্থল url]

গিট পুশ

স্থানীয় সংগ্রহস্থল থেকে দূরবর্তী সংগ্রহস্থলের সমস্ত কোড সরিয়ে নিতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

গিট পুশ-উ উত্সের মাস্টার

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

অতিরিক্ত কমান্ড

গিট টান

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

গিট পুল পুলের মাস্টার

গিট ক্লোন

গিট ক্লোন দিয়ে আপনি আপনার কম্পিউটারে একটি বিদ্যমান দূরবর্তী সংগ্রহস্থল ক্লোন করতে পারেন। এর জন্য আদেশটি হ'ল:

গিট ক্লোন [সংগ্রহস্থল url]

অভিনঁদন

এখন যেহেতু আপনি গিট ব্যবহারের প্রাথমিক বিষয়গুলি জানেন, এগিয়ে যান এবং আরও আবিষ্কার করুন!

আমি শীঘ্রই গিটের আরও কিছু উন্নত ধারণাগুলি সম্পর্কে আরও একটি নিবন্ধ প্রকাশ করব। থাকুন

লেখক সম্পর্কে

আমি প্রযুক্তি পছন্দ করি এবং প্রযুক্তিগত অগ্রগতি অনুসরণ করি। আমি প্রযুক্তি ক্ষেত্রে আমার সমস্ত জ্ঞানের সাহায্যে অন্যকেও সহায়তা করতে চাই।

আমার লিঙ্কডইন অ্যাকাউন্ট https://www.linkedin.com/in/aditya1811/ এর মাধ্যমে আমার সাথে নির্দ্বিধায় যোগাযোগ করুন

আপনি আমাকে টুইটারে https://twitter.com/adityasridhar18 এ অনুসরণ করতে পারেন

আমার ওয়েবসাইট: https://adityasridhar.com/

আমার কাছ থেকে অন্যান্য পোস্ট

কীভাবে গিটকে দক্ষতার সাথে ব্যবহার করবেন