প্রোগ্রামিংয়ের মৌলিক ধারণা/ভার্সন কন্ট্রোল
সংক্ষিপ্ত বিবরণ
[সম্পাদনা]সংস্করণ নিয়ন্ত্রণ, যা পুনর্বিবেচনা নিয়ন্ত্রণ বা উৎস নিয়ন্ত্রণ নামেও পরিচিত, হল নথি, কম্পিউটার প্রোগ্রাম, বৃহৎ ওয়েবসাইট এবং অন্যান্য তথ্য সংগ্রহের পরিবর্তনের ব্যবস্থাপনা। প্রতিটি পুনর্বিবেচনা একটি টাইমস্ট্যাম্প এবং পরিবর্তনকারী ব্যক্তির সাথে সম্পর্কিত। পুনর্বিবেচনাগুলি তুলনা করা যেতে পারে, পুনরুদ্ধার করা যেতে পারে এবং কিছু ধরণের ফাইলের সাথে একত্রিত করা যেতে পারে।[১]
সংস্করণ নিয়ন্ত্রণ ব্যবস্থা (VCS) সাধারণত স্বতন্ত্র অ্যাপ্লিকেশন হিসাবে চলে, তবে বিভিন্ন ধরণের সফ্টওয়্যারেও এমবেড করা যেতে পারে, যার মধ্যে রয়েছে সমন্বিত উন্নয়ন পরিবেশ (IDEs)।
আলোচনা
[সম্পাদনা]সংস্করণ নিয়ন্ত্রণ ফাইলের পরিবর্তন রেকর্ডিং এবং পরিচালনা করার জন্য একটি পদ্ধতিগত পদ্ধতি প্রয়োগ করে। সবচেয়ে সহজ উপায়ে, সংস্করণ নিয়ন্ত্রণে বিভিন্ন পর্যায়ে আপনার ফাইলের 'স্ন্যাপশট' নেওয়া জড়িত। এই স্ন্যাপশটটি কখন স্ন্যাপশটটি নেওয়া হয়েছিল এবং বিভিন্ন স্ন্যাপশটের মধ্যে কী পরিবর্তন ঘটেছে সে সম্পর্কে তথ্য রেকর্ড করে। এটি আপনাকে আপনার ফাইলটিকে একটি পুরানো সংস্করণে 'রিওয়াইন্ড' করতে দেয়। সংস্করণ নিয়ন্ত্রণের এই মৌলিক লক্ষ্য থেকে, আরও অনেক সম্ভাবনা উপলব্ধ করা হয়েছে।[২]
সংস্করণ নিয়ন্ত্রণ আপনাকে নিম্নলিখিতগুলি করতে দেয়:[৩]
- আপনার ফাইলের উন্নয়ন এবং পরিবর্তনগুলি ট্র্যাক করুন
- আপনার ফাইলে করা পরিবর্তনগুলি এমনভাবে রেকর্ড করুন যাতে আপনি পরে বুঝতে সক্ষম হন
- মূল সংস্করণ বজায় রেখে একটি ফাইলের বিভিন্ন সংস্করণ নিয়ে পরীক্ষা করুন
- একটি ফাইলের দুটি সংস্করণ 'মার্জ' করুন এবং সংস্করণগুলির মধ্যে দ্বন্দ্ব পরিচালনা করুন
- পরিবর্তনগুলি ফিরিয়ে আনুন, আপনার ইতিহাসের মাধ্যমে 'পিছনে' আপনার ফাইলের পূর্ববর্তী সংস্করণগুলিতে স্থানান্তর করুন
সংস্করণ নিয়ন্ত্রণ সহযোগিতা সহজতর করার জন্য বিশেষভাবে কার্যকর। সংস্করণ নিয়ন্ত্রণ ব্যবস্থার পিছনে মূল প্রেরণাগুলির মধ্যে একটি ছিল বিভিন্ন লোককে একসাথে বড় প্রকল্পগুলিতে কাজ করার অনুমতি দেওয়া। সহযোগিতার জন্য সংস্করণ নিয়ন্ত্রণ ব্যবহার করলে অন্যান্য অনেক সমাধানের তুলনায় নমনীয়তা এবং নিয়ন্ত্রণ অনেক বেশি পাওয়া যায়। উদাহরণস্বরূপ, একই সময়ে দুটি ব্যক্তির একটি ফাইলে কাজ করা এবং তারপর এগুলি একত্রিত করা সম্ভব হবে। যদি দুটি সংস্করণের মধ্যে 'দ্বন্দ্ব' থাকে, তাহলে সংস্করণ নিয়ন্ত্রণ ব্যবস্থা আপনাকে এই দ্বন্দ্বগুলি দেখতে এবং এই বিভিন্ন সংস্করণগুলিকে একটি নতুন 'তৃতীয়' নথিতে কীভাবে 'একত্রীকরণ' করা যায় সে সম্পর্কে সক্রিয় সিদ্ধান্ত নেওয়ার অনুমতি দেবে। এই পদ্ধতির সাহায্যে আপনি যদি পরবর্তীতে এইগুলির মধ্যে একটিতে ফিরে যেতে চান তবে পূর্ববর্তী সংস্করণের একটি 'ইতিহাস'ও ধরে রাখতে পারবেন।[৪]
জনপ্রিয় সংস্করণ নিয়ন্ত্রণ ব্যবস্থাগুলির মধ্যে রয়েছে:[৫]
- Git
- Helix VCS
- Microsoft Team Foundation Server
- Subversion
এই পাঠের বাকি অংশ Git সংস্করণ নিয়ন্ত্রণ ব্যবস্থা ব্যবহারের উপর আলোকপাত করে।
Git
[সম্পাদনা]Git হল কম্পিউটার ফাইলের পরিবর্তন ট্র্যাক করার এবং একাধিক ব্যক্তির মধ্যে সেই ফাইলগুলিতে কাজ সমন্বয় করার জন্য একটি সংস্করণ নিয়ন্ত্রণ ব্যবস্থা। এটি মূলত সফ্টওয়্যার ডেভেলপমেন্টে সোর্স কোড পরিচালনার জন্য ব্যবহৃত হয়, তবে এটি যেকোনো ফাইলের সেটের পরিবর্তন ট্র্যাক করার জন্য ব্যবহার করা যেতে পারে। লিনাক্স কার্নেল ডেভেলপমেন্টের জন্য লিনাস টরভাল্ডস ২০০৫ সালে গিট তৈরি করেছিলেন এবং এটি একটি বিনামূল্যের এবং ওপেন সোর্স সফ্টওয়্যার।[৬]
বিনামূল্যে পাবলিক গিট রিপোজিটরিগুলি এখান থেকে পাওয়া যায়:
- বিটবাকেট
- গিটহাব
বর্তমান কার্যকরী ডিরেক্টরিতে একটি .git সাবডিরেক্টরি তৈরি করে একটি নতুন গিট রিপোজিটরি শুরু করে:
git init
একটি বিদ্যমান রিপোজিটরি ক্লোন করার জন্য শুধুমাত্র রিপোজিটরির একটি URL এবং নিম্নলিখিত git কমান্ডের প্রয়োজন হয়:
git clone <url>
ক্লোন করার পরে, পরিবর্তনগুলি পুশ এবং টেনে রিপোজিটরিগুলি সিঙ্ক্রোনাইজ করা হয়। যদি মূল উৎস সংগ্রহস্থলটি পরিবর্তন করা হয়ে থাকে, তাহলে স্থানীয় সংগ্রহস্থলে পরিবর্তনগুলি টানতে নিম্নলিখিত git কমান্ড ব্যবহার করা হয়:
git pull
স্থানীয় পরিবর্তনগুলি যোগ করতে হবে এবং কমিট করতে হবে, এবং তারপর রিমোট সংগ্রহস্থলে পুশ করতে হবে। প্রথম কমান্ডের শেষে পিরিয়ড (ডট) লক্ষ্য করুন।
git add .git commit -m "কমিটের কারণ"git push
স্থানীয় এবং দূরবর্তী সংগ্রহস্থলের মধ্যে দ্বন্দ্ব থাকলে, পরিবর্তনগুলি একত্রিত করে তারপর পুশ করা উচিত। প্রয়োজনে, স্থানীয় পরিবর্তনগুলি রিমোট সার্ভারে জোর করে প্রয়োগ করা যেতে পারে:
git push --force
মূল শর্তাবলী
[সম্পাদনা]- শাখা
- সংস্করণ নিয়ন্ত্রণের অধীনে ফাইলগুলির একটি পৃথক কার্যকরী অনুলিপি যা মূল থেকে স্বাধীনভাবে তৈরি করা যেতে পারে।
- ক্লোন
- অন্য সংগ্রহস্থল থেকে সংশোধনগুলি ধারণ করে একটি নতুন সংগ্রহস্থল তৈরি করুন।
- কমিট
- কার্যকরী অনুলিপিতে করা পরিবর্তনগুলি সংগ্রহস্থলে ফিরিয়ে আনতে বা মার্জ করতে।
- মার্জ
- একটি অপারেশন যেখানে দুটি সেট পরিবর্তন একটি ফাইল বা ফাইলের সেটে প্রয়োগ করা হয়।
- পুশ
- বর্তমান সংগ্রহস্থল থেকে একটি দূরবর্তী সংগ্রহস্থলে সংশোধনগুলি অনুলিপি করুন।
- টান
- একটি দূরবর্তী সংগ্রহস্থল থেকে বর্তমান সংগ্রহস্থলে সংশোধনগুলি অনুলিপি করুন।
- সংস্করণ নিয়ন্ত্রণ
- নথি, কম্পিউটার প্রোগ্রাম, বৃহৎ ওয়েবসাইট এবং অন্যান্য তথ্য সংগ্রহের পরিবর্তনগুলির ব্যবস্থাপনা।
- সংস্করণ নিয়ন্ত্রণ ব্যবস্থা
- সাধারণত স্বতন্ত্র অ্যাপ্লিকেশন হিসাবে চালিত হয়, তবে বিভিন্ন ধরণের সফ্টওয়্যারেও এমবেড করা যেতে পারে, যার মধ্যে সমন্বিত উন্নয়ন পরিবেশ অন্তর্ভুক্ত রয়েছে
References
[সম্পাদনা]- ↑ Wikipedia: Version control
- ↑ Programming Historian: An Introduction to Version Control Using GitHub Desktop
- ↑ Programming Historian: An Introduction to Version Control Using GitHub Desktop
- ↑ Programming Historian: An Introduction to Version Control Using GitHub Desktop
- ↑ G2Crowd: সেরা সংস্করণ নিয়ন্ত্রণ ব্যবস্থা
- ↑ Wikipedia: Git
Ajmain Istheak (আলাপ) ১১:০৯, ২০ মে ২০২৫ (ইউটিসি)