আমি যদি বর্তমান প্রতিশ্রুতি ট্যাগ করতে চান। আমি নিম্নলিখিত দুটি কমান্ড লাইনের কাজ জানি:
git tag <tagname>
এবং
git tag -a <tagname> -m '<message>'
এই আদেশের মধ্যে পার্থক্য কি?
আমি যদি বর্তমান প্রতিশ্রুতি ট্যাগ করতে চান। আমি নিম্নলিখিত দুটি কমান্ড লাইনের কাজ জানি:
git tag <tagname>
এবং
git tag -a <tagname> -m '<message>'
এই আদেশের মধ্যে পার্থক্য কি?
উত্তর:
কমান্ডের মধ্যে পার্থক্য হ'ল একটি আপনাকে ট্যাগ বার্তা সরবরাহ করে যখন অন্যটি দেয় না। একটি টীকাযুক্ত ট্যাগে একটি বার্তা রয়েছে যা গিট শো (1) এর সাথে প্রদর্শিত হতে পারে, যখন টীকাবিহীন ট্যাগটি কেবল একটি প্রতিশ্রুতিবদ্ধ জন্য নির্দিষ্ট পয়েন্টার।
ডকুমেন্টেশন অনুসারে : "একটি লাইটওয়েট ট্যাগ তৈরি করতে, -a, -s, অথবা -m বিকল্পগুলির কোনও সরবরাহ করবেন না, কেবল একটি ট্যাগের নাম সরবরাহ করুন"। টীকাগুলি ট্যাগগুলিতে একটি বার্তা লেখার জন্য কিছু পৃথক বিকল্প রয়েছে:
git tag <tagname>
, গিট বর্তমান সংশোধনীতে একটি ট্যাগ তৈরি করবে তবে আপনাকে কোনও টিকা দেওয়ার জন্য অনুরোধ করবে না। এটি কোনও বার্তা ছাড়াই ট্যাগ করা হবে (এটি একটি লাইটওয়েটের ট্যাগ)।git tag -a <tagname>
, গিট আপনাকে একটি টীকা দেওয়ার জন্য অনুরোধ করবে যদি আপনি কোনও বার্তা দেওয়ার জন্য -m পতাকা ব্যবহার না করেন।git tag -a -m <msg> <tagname>
, গিট কমিটিকে ট্যাগ করবে এবং সরবরাহিত বার্তার সাথে এটিকে টীকা দেবে।git tag -m <msg> <tagname>
গিট এমন আচরণ করবে যেন আপনি টীকা দেওয়ার জন্য -a পতাকা পাস করেছেন এবং প্রদত্ত বার্তাটি ব্যবহার করবেন।মূলত, আপনি ট্যাগটি কোনও টিকা এবং এর সাথে যুক্ত কিছু অন্যান্য তথ্য রাখতে চান তা কেবলমাত্র এটির পরিমাণেই।
git tag -a <tag> -m ''
), কিন্তু একটি সটীক ট্যাগ সবসময় ট্যাগার (লেখক) এবং তারিখ ।
git push --follow-tags
দিকে ধাক্কা দেন, কেবলমাত্র বর্ণিত ট্যাগগুলিকেই চাপ দেওয়া হবে।
টীকাগুলি ট্যাগ ঠেকান, হালকা লোকাল রাখুন
man git-tag
বলেছেন:
টীকাগুলি ট্যাগগুলি প্রকাশের জন্য বোঝানো হয় যখন হালকা ট্যাগ ব্যক্তিগত বা অস্থায়ী বস্তুর লেবেলের জন্য বোঝানো হয়।
এবং নির্দিষ্ট আচরণগুলি এই সুপারিশটি কার্যকর যেমন উপায়ে তাদের মধ্যে পার্থক্য করে:
টীকাগুলি ট্যাগগুলিতে একটি বার্তা, স্রষ্টা এবং তারিখ তারা যে প্রতিশ্রুতিবদ্ধ সেটির চেয়ে আলাদা থাকতে পারে। সুতরাং আপনি এগুলি কোনও মুক্তির প্রতিশ্রুতি না দিয়েই কোনও মুক্তির বর্ণনা দিতে ব্যবহার করতে পারেন।
লাইটওয়েট ট্যাগগুলির অতিরিক্ত অতিরিক্ত তথ্য নেই এবং এটির প্রয়োজন নেই, যেহেতু আপনি কেবল এটি বিকাশের জন্য ব্যবহার করছেন।
git describe
কমান্ড লাইন বিকল্প ব্যতীত কেবল টীকায়িত ট্যাগগুলিই দেখুনঅভ্যন্তরীণ পার্থক্য
লাইটওয়েট এবং টীকাগুলি ট্যাগ উভয়ই এমন একটি ফাইল .git/refs/tags
যা একটি SHA-1 ধারণ করে
লাইটওয়েট ট্যাগগুলির জন্য, SHA-1 সরাসরি প্রতিশ্রুতিতে নির্দেশ করে:
git tag light
cat .git/refs/tags/light
হেডের SHA-1 এর মতোই মুদ্রণ করে।
সুতরাং আশ্চর্যের কিছু নেই যে তারা অন্য কোনও মেটাডেটা ধারণ করতে পারে না।
টীকাগুলি ট্যাগ অবজেক্ট ডাটাবেসের কোনও ট্যাগ অবজেক্টে নির্দেশ করে।
git tag -as -m msg annot
cat .git/refs/tags/annot
টীকাযুক্ত ট্যাগ অবজেক্টের এসএএচএ রয়েছে:
c1d7720e99f9dd1d1c8aee625fd6ce09b3a81fef
এবং তারপরে আমরা এর সামগ্রীটি এর সাথে পেতে পারি:
git cat-file -p c1d7720e99f9dd1d1c8aee625fd6ce09b3a81fef
নমুনা আউটপুট:
object 4284c41353e51a07e4ed4192ad2e9eaada9c059f
type commit
tag annot
tagger Ciro Santilli <your@mail.com> 1411478848 +0200
msg
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
<YOUR PGP SIGNATURE>
-----END PGP SIGNAT
এবং এটিতে এটিতে অতিরিক্ত মেটাডেটা রয়েছে। আমরা আউটপুট থেকে দেখতে পাচ্ছি, মেটাডেটা ক্ষেত্রগুলি হ'ল:
বিন্যাসটির আরও বিশদ বিশ্লেষণটি এখানে উপস্থিত রয়েছে: গিট ট্যাগ অবজেক্টের বিন্যাস কী এবং কীভাবে তার এসএএচএ গণনা করা যায়?
বোনাসেস
কোনও ট্যাগ টিকা দেওয়া আছে কিনা তা নির্ধারণ করুন:
git cat-file -t tag
আউটপুট
commit
লাইটওয়েটের জন্য, যেহেতু কোনও ট্যাগ অবজেক্ট নেই, এটি সরাসরি কমিটিকে নির্দেশ করেtag
টীকাগুলির জন্য, যেহেতু সেই ক্ষেত্রে কোনও ট্যাগ অবজেক্ট রয়েছেকেবলমাত্র লাইটওয়েট ট্যাগের তালিকা করুন: আমি কীভাবে সমস্ত লাইটওয়েট ট্যাগ তালিকা করতে পারি?
বড় পার্থক্য পুরোপুরি ব্যাখ্যা করা হয় এখানে ।
মূলত, লাইটওয়েট ট্যাগগুলি নির্দিষ্ট কমিটের কেবলমাত্র পয়েন্টার। আর কোনও তথ্য সংরক্ষণ করা হয় না ; অন্য দিকে, সটীক ট্যাগ হয় নিয়মিত বস্তু , যা একটি লেখক এবং একটি তারিখ আছে এবং উল্লেখ করা যাবে না কারণ তারা তাদের নিজস্ব রয়েছে SHA কী রয়েছে।
যদি তা জানা কি যারা বাঁধা কি এবং যখন আপনার জন্য প্রাসঙ্গিক হয়, তাহলে সটীক ট্যাগ ব্যবহার। আপনি যদি কেবলমাত্র আপনার বিকাশের কোনও নির্দিষ্ট পয়েন্ট ট্যাগ করতে চান তবে কে এবং কখন এটি করেছে তা বিবেচনা না করেই হালকা ট্যাগ যথেষ্ট পরিমাণে ভাল।
সাধারণত আপনি টীকাগুলি ট্যাগ করতে যান, তবে এটি সত্যিই প্রকল্পের গিট মাস্টারের উপর নির্ভর করে।