উত্স নিয়ন্ত্রণ কর্মপ্রবাহ Work

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

প্রবাহ

অ্যান্ড্রয়েড বিকাশে নিম্নলিখিত বুনিয়াদি কার্যপ্রবাহ জড়িত:

  1. repo start ব্যবহার করে একটি নতুন বিষয়ের শাখা repo start
  2. ফাইলগুলি সম্পাদনা করুন।
  3. git add ব্যবহার করে পর্যায় পরিবর্তন।
  4. git commit কমিট ব্যবহার করে পরিবর্তনগুলি git commit
  5. repo upload ব্যবহার করে পর্যালোচনা সার্ভারে পরিবর্তনগুলি repo upload

কাজ

অ্যান্ড্রয়েড কোড সংগ্রহস্থলগুলিতে গিট এবং রেপোর সাথে কাজ করাতে নিম্নলিখিত সাধারণ কাজগুলি সম্পাদন করা জড়িত।

কমান্ড বর্ণনা
repo init একটি নতুন ক্লায়েন্ট শুরু।
repo sync ক্লায়েন্টকে সংগ্রহস্থলগুলিতে সিঙ্ক করে।
repo start একটি নতুন শাখা শুরু করে।
repo status বর্তমান শাখার স্থিতি দেখায়।
repo upload পর্যালোচনা সার্ভারে আপলোডগুলি পরিবর্তন করে।
git add ফাইলগুলি পর্যায়িত করে।
git commit মঞ্চযুক্ত ফাইলগুলি কমিট করে।
git branch বর্তমান শাখা দেখায়।
git branch [branch] একটি নতুন বিষয়ের শাখা তৈরি করে।
git checkout [branch] নির্দিষ্ট শাখায় HEAD স্যুইচ করে।
git merge [branch] [branch] বর্তমান শাখায় মার্জ করে।
git diff অবিরত পরিবর্তনগুলি পৃথক করে দেখায়।
git diff --cached মঞ্চস্থ পরিবর্তনের চেয়ে আলাদা দেখায়।
git log বর্তমান শাখার ইতিহাস দেখায়।
git log m/[codeline].. চাপ দেওয়া হয়নি এমন কমিটগুলি দেখায়।

উত্স ডাউনলোড করতে রেপো ব্যবহার সম্পর্কে তথ্যের জন্য, উত্সটি ডাউনলোড করা এবং রেপো কমান্ড রেফারেন্স দেখুন

ক্লায়েন্টদের সিঙ্ক্রোনাইজ করা

সমস্ত উপলব্ধ প্রকল্পের জন্য ফাইলগুলি সিঙ্ক্রোনাইজ করতে:

repo sync

নির্বাচিত প্রকল্পগুলির জন্য ফাইলগুলি সিঙ্ক্রোনাইজ করতে:

repo sync PROJECT0 PROJECT1 ... PROJECTN

বিষয়ের শাখা তৈরি করা হচ্ছে

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

রেপো ব্যবহার করে একটি বিষয় শাখা শুরু করতে, প্রকল্পে নেভিগেট করুন এবং রান করুন:

repo start BRANCH_NAME .

চলার সময়কাল ( . ) বর্তমান কার্যনির্বাহী ডিরেক্টরিতে প্রকল্পটি উপস্থাপন করে।

নতুন শাখাটি তৈরি করা হয়েছে তা যাচাই করতে:

repo status .

টপিক শাখা ব্যবহার করে

একটি নির্দিষ্ট প্রকল্পে শাখাটি নিয়োগের জন্য:

repo start BRANCH_NAME PROJECT_NAME

সমস্ত প্রকল্পের তালিকার জন্য, android.googlesource.com দেখুন । আপনি যদি ইতিমধ্যে প্রকল্প ডিরেক্টরিতে নেভিগেট করে থাকেন তবে বর্তমান প্রকল্পটি উপস্থাপন করার জন্য কেবল একটি সময়কাল ব্যবহার করুন।

আপনার স্থানীয় কাজের পরিবেশে অন্য একটি শাখায় স্যুইচ করতে:

git checkout BRANCH_NAME

বিদ্যমান শাখাগুলির একটি তালিকা দেখতে:

git branch

বা

repo branches

উভয় কমান্ড বর্তমান শাখার নামের সাথে একটি নক্ষত্র (*) এর পূর্বে বিদ্যমান শাখার তালিকা ফিরিয়ে দেয়।

মঞ্চ ফাইল

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

পর্যায় পরিবর্তনগুলি:

git add

এই নির্দেশটি প্রকল্প ডিরেক্টরিতে ফাইল বা ডিরেক্টরিগুলির জন্য আর্গুমেন্ট গ্রহণ করে। নাম সত্ত্বেও git add কেবল গিট সংগ্রহস্থলে ফাইল git add করে না; এটি ফাইল পরিবর্তন এবং মুছে ফেলার পর্যায়েও ব্যবহৃত হতে পারে।

ক্লায়েন্টের স্থিতি দেখুন

ফাইলগুলির স্থিতি তালিকাভুক্ত করতে:

repo status

মুক্ত সম্পাদনাগুলি (স্থানীয় সম্পাদনাগুলি কমিট জন্য চিহ্নিত হয় না) দেখতে:

repo diff

প্রতিশ্রুতিবদ্ধ সম্পাদনাগুলি দেখতে (অবস্থিত সম্পাদনাগুলি যা প্রতিশ্রুতিবদ্ধ হিসাবে চিহ্নিত করা হয়েছে), আপনি প্রকল্প ডিরেক্টরিতে git diff তা নিশ্চিত করে cached আর্গুমেন্টের সাথে git diff চালান:

cd ~/WORKING_DIRECTORY/PROJECT
git diff --cached

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

প্রতিশ্রুতিবদ্ধতা হ'ল গিতে রিভিশন নিয়ন্ত্রণের প্রাথমিক একক এবং এতে পুরো প্রকল্পের জন্য ডিরেক্টরি কাঠামো এবং ফাইল সামগ্রীর স্ন্যাপশট থাকে। গিটে কমিট তৈরি করতে এই কমান্ডটি ব্যবহার করুন:

git commit

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

জেরিটে পরিবর্তনগুলি আপলোড করা হচ্ছে

সর্বশেষ সংস্করণে আপডেট করুন, তারপরে পরিবর্তনটি আপলোড করুন:

repo sync
repo upload

এই কমান্ডগুলি আপনার প্রতিশ্রুতিবদ্ধ পরিবর্তনগুলির একটি তালিকা ফেরত দেয় এবং আপনাকে পর্যালোচনা সার্ভারে আপলোড করার জন্য শাখাগুলি নির্বাচন করতে অনুরোধ করে। যদি কেবল একটি শাখা থাকে তবে আপনি একটি সহজ y/n প্রম্পট দেখতে পাবেন।

সিঙ্ক বিরোধগুলি সমাধান করা

যদি repo sync কমান্ডটি সিঙ্ক বিরোধগুলিতে ফিরে আসে:

  1. যে ফাইলগুলিকে সজ্জিত করা হয়নি তা দেখুন (স্থিতি কোড = ইউ)।
  2. প্রয়োজনীয় হিসাবে বিবাদ অঞ্চলগুলি সম্পাদনা করুন।
  3. প্রাসঙ্গিক প্রকল্প ডিরেক্টরিতে পরিবর্তন করুন। ক্ষতিগ্রস্থ ফাইলগুলি যুক্ত করুন এবং প্রতিশ্রুতিবদ্ধ করুন, তারপরে পরিবর্তনগুলি পুনরায় চালু করুন:
    git add .
    git commit
    git rebase --continue
    
  4. রিবাজ সম্পূর্ণ হওয়ার পরে, পুরো সিঙ্কটি আবার শুরু করুন:
    repo sync PROJECT0 PROJECT1 ... PROJECTN
    

ক্লায়েন্ট পরিষ্কার করা

জেরিটে পরিবর্তনগুলি মার্জ করার পরে, আপনার স্থানীয় কার্য ডিরেক্টরিটি আপডেট করুন, তারপরে বাসি বিষয় শাখাগুলি নিরাপদে অপসারণ করতে repo prune ব্যবহার করুন:

repo sync
repo prune

ক্লায়েন্ট মোছা

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

rm -rf WORKING_DIRECTORY

কোনও ক্লায়েন্টকে মুছে ফেলা আপনি পর্যালোচনার জন্য আপলোড করেন নি এমন কোনও পরিবর্তন স্থায়ীভাবে মুছে দেয়।