আমি কয়েকটি শাখা নামকরণের সম্মেলনগুলি ব্যবহার করি যা আমি ব্যবহার করি এবং এর কারণগুলি
শাখার নামকরণের সম্মেলন
- আপনার শাখার নামের শুরুতে গ্রুপিং টোকেন (শব্দ) ব্যবহার করুন।
- আপনার কার্যপ্রবাহের জন্য অর্থপূর্ণ এমনভাবে শাখাগুলি আলাদা করতে সংক্ষিপ্ত সীসা টোকেনগুলি ব্যবহার করুন এবং ব্যবহার করুন।
- আপনার শাখার নামের পৃথক অংশে স্ল্যাশ ব্যবহার করুন।
- শীর্ষস্থানীয় অংশ হিসাবে খালি সংখ্যা ব্যবহার করবেন না।
- দীর্ঘস্থায়ী শাখার জন্য দীর্ঘ বর্ণনামূলক নামগুলি এড়িয়ে চলুন।
গ্রুপ টোকেন
আপনার শাখার নামের সামনে "গোষ্ঠীকরণ" টোকেন ব্যবহার করুন।
group1/foo
group2/foo
group1/bar
group2/bar
group3/bar
group1/baz
আপনার কর্মপ্রবাহের সাথে মেলে যা পছন্দ তাই গোষ্ঠীগুলির নাম দেওয়া যেতে পারে। আমি আমার জন্য সংক্ষিপ্ত নাম ব্যবহার করতে চাই আরও স্পষ্টতা জন্য পড়ুন।
সংক্ষিপ্ত সুস্পষ্ট সংজ্ঞাযুক্ত টোকেন
সংক্ষিপ্ত টোকেনগুলি চয়ন করুন যাতে তারা আপনার শাখার প্রত্যেকটির নামের সাথে খুব বেশি শব্দ না যোগ করে। আমি এগুলি ব্যবহার করি:
wip Works in progress; stuff I know won't be finished soon
feat Feature I'm adding or expanding
bug Bug fix or experiment
junk Throwaway branch created to experiment
এই প্রতিটি টোকেন প্রতিটি শাখার আপনার কর্মপ্রবাহের কোন অংশের তা আপনাকে জানাতে ব্যবহার করা যেতে পারে।
মনে হচ্ছে আপনার পরিবর্তনের বিভিন্ন চক্রের একাধিক শাখা রয়েছে। আপনার চক্রগুলি কী তা আমি জানি না, তবে ধরা যাক সেগুলি 'নতুন', 'পরীক্ষা' এবং 'যাচাই' হয়েছে। আপনি এই শাখাগুলির সংক্ষিপ্ত সংস্করণগুলির সাথে আপনার শাখাগুলির নাম রাখতে পারেন, সর্বদা একইভাবে বানান করুন, উভয় গ্রুপকে এবং আপনাকে স্মরণ করিয়ে দিতে যে আপনি কোন পর্যায়ে আছেন।
new/frabnotz
new/foo
new/bar
test/foo
test/frabnotz
ver/foo
প্রতিটি শাখাগুলি প্রতিটি আলাদা পর্যায়ে পৌঁছেছে তা আপনি তাড়াতাড়ি বলতে পারেন এবং গিটের প্যাটার্ন মেলানো বিকল্পগুলি ব্যবহার করে আপনি সহজেই তাদের একসাথে গ্রুপ করতে পারেন।
$ git branch --list "test/*"
test/foo
test/frabnotz
$ git branch --list "*/foo"
new/foo
test/foo
ver/foo
$ gitk --branches="*/foo"
পৃথক অংশে স্ল্যাশ ব্যবহার করুন
আপনি শাখার নামগুলিতে আপনার পছন্দ মতো সবচেয়ে বেশি ডিলিমিটার ব্যবহার করতে পারেন তবে আমি স্ল্যাশগুলি সবচেয়ে নমনীয় বলে মনে করি। আপনি ড্যাশ বা বিন্দু ব্যবহার করতে পছন্দ করতে পারেন। কিন্তু স্ল্যাশগুলি আপনাকে রিমোট থেকে / থেকে পুশ করা বা আনার সময় কিছু শাখা নামকরণ করতে দেয়।
$ git push origin 'refs/heads/feature/*:refs/heads/phord/feat/*'
$ git push origin 'refs/heads/bug/*:refs/heads/review/bugfix/*'
আমার জন্য, স্ল্যাশগুলি আমার শেলের ট্যাব সম্প্রসারণ (কমান্ড সমাপ্তি) এর জন্য আরও ভাল কাজ করে। আমি এটি যেভাবে কনফিগার করেছি তাতে আমি অংশের প্রথম অক্ষরগুলি টাইপ করে এবং টিএবি কী টিপে বিভিন্ন উপ-অংশের শাখা অনুসন্ধান করতে পারি। জেডশ তখন আমাকে শাখাগুলির একটি তালিকা দেয় যা আমি টাইপ করা টোকেনের অংশটির সাথে মেলে। এটি পূর্ববর্তী টোকেনের পাশাপাশি এম্বেড থাকাগুলির জন্য কাজ করে।
$ git checkout new<TAB>
Menu: new/frabnotz new/foo new/bar
$ git checkout foo<TAB>
Menu: new/foo test/foo ver/foo
(জেড শেল কমান্ড সমাপ্তি সম্পর্কে খুব কনফিগারযোগ্য এবং আমি ড্যাশগুলি, আন্ডারস্কোরগুলি বা বিন্দুগুলি একইভাবে পরিচালনা করতেও এটিটি কনফিগার করতে পারি But তবে আমি তা বেছে নিই না))
এটি আপনাকে অনেকগুলি গিট কমান্ডে শাখাগুলি অনুসন্ধান করতে দেয়:
git branch --list "feature/*"
git log --graph --oneline --decorate --branches="feature/*"
gitk --branches="feature/*"
কেভেট: স্লিপ মন্তব্যগুলিতে যেমন উল্লেখ করেছেন, স্ল্যাশ সমস্যার কারণ হতে পারে। শাখাগুলি পাথ হিসাবে প্রয়োগ করা হয়েছে, আপনার "foo" নামে একটি শাখা এবং "foo / বার" নামে অন্য একটি শাখা থাকতে পারে না। এটি নতুন ব্যবহারকারীদের জন্য বিভ্রান্তিকর হতে পারে।
খালি সংখ্যা ব্যবহার করবেন না
আপনার শাখার নামকরণ প্রকল্পের অংশ হিসাবে খালি সংখ্যা (বা হেক্স নম্বর) ব্যবহার করবেন না। একটি রেফারেন্স নামের ট্যাব-প্রসারণের অভ্যন্তরে গিট সিদ্ধান্ত নিতে পারে যে কোনও সংখ্যা একটি শাখার নামের পরিবর্তে শ -1 এর একটি অংশ। উদাহরণস্বরূপ, আমার ইস্যু ট্র্যাকার দশমিক সংখ্যা সহ বাগের নাম দেয়। আমি বিভ্রান্তি এড়াতে কেবল nnnnn এর চেয়ে আমার সম্পর্কিত শাখার নাম CRnnnnn করি।
$ git checkout CR15032<TAB>
Menu: fix/CR15032 test/CR15032
আমি যদি মাত্র 15032 প্রসারিত করার চেষ্টা করি, তবে SHA-1 এর বা শাখার নামগুলি অনুসন্ধান করতে চাই কিনা তা সম্পর্কে গিটটি নিশ্চিত নয় এবং আমার পছন্দগুলি কিছুটা সীমাবদ্ধ থাকবে।
দীর্ঘ বর্ণনামূলক নাম এড়িয়ে চলুন
আপনি যখন শাখাগুলির একটি তালিকা দেখছেন তখন দীর্ঘ শাখার নামগুলি খুব সহায়ক হতে পারে। শাখার নামগুলি একক লাইনের বেশিরভাগ অংশ খেয়ে ফেলতে পারে এবং লগের দৃশ্যমান অংশটিকে সংক্ষিপ্ত করতে পারে এমনভাবে সজ্জিত এক-লাইন লগগুলিতে তাকানোর সময় এটি পেতে পারে।
অন্যদিকে দীর্ঘ শাখার নামগুলি যদি আপনি অভ্যাসগতভাবে হাত দ্বারা পুনরায় লেখেন না তবে "মার্জ কমিটগুলি" করতে আরও সহায়ক হতে পারে। ডিফল্ট মার্জ কমিট বার্তাটি Merge branch 'branch-name'
। আপনি মার্জ হওয়া বার্তাগুলিকে ন্যায়বিচারের Merge branch 'fix/CR15032/crash-when-unformatted-disk-inserted'
পরিবর্তে দেখাতে আরও সহায়ক হতে পারেন Merge branch 'fix/CR15032'
।