আদর্শভাবে, হুকগুলি ব্যাশে লেখা হয়, আপনি যদি নমুনা ফাইলগুলি অনুসরণ করেন। তবে আপনি এটি যে কোনও ভাষায় উপলভ্য করতে পারেন এবং এটি নির্বাহযোগ্য পতাকা রয়েছে তা নিশ্চিত করে নিন।
সুতরাং, আপনার লক্ষ্য অর্জনের জন্য আপনি পাইথন বা গো কোড লিখতে পারেন এবং এটি হুকস ফোল্ডারের নীচে রাখতে পারেন। এটি কাজ করবে তবে এটি সংগ্রহস্থলের পাশাপাশি পরিচালনা করা হবে না।
দুটি বিকল্প
ক) বহু লিপি
আপনি আপনার সাহায্যের অভ্যন্তরে আপনার হুকগুলি কোড করতে পারেন, এবং আপনার নিখুঁত স্ক্রিপ্টটি কল করতে, হুকগুলিতে কোডের একটি ছোট্ট টুকরো যুক্ত করতে পারেন:
$ cat .git/hooks/pre-commit
#!/bin/bash
../../hooks/myprecommit.js
খ) একক লিপি
একটি শীতল বিকল্পটি হ'ল কয়েকটি স্ক্রিপ্টের পরিবর্তে সমস্তগুলি শাসন করার জন্য একটি স্ক্রিপ্ট যুক্ত করা। সুতরাং, আপনি একটি হুক / mysuperhook.go তৈরি করেন এবং প্রতিটি হুক আপনি এটি করতে চান তা নির্দেশ করুন।
$ cat .git/hooks/pre-commit
#!/bin/bash
../../hooks/mysuperhook.go $(basename $0)
প্যারামিটারটি আপনার স্ক্রিপ্ট সরবরাহ করবে যা হুকটি ট্রিগার হয়েছিল এবং আপনি এটি আপনার কোডের মধ্যে আলাদা করতে পারেন। কেন? কখনও কখনও আপনি কমিট এবং ধাক্কা জন্য একই চেক চালাতে চাইবেন, উদাহরণস্বরূপ।
এবং তারপর?
তারপরে, আপনার আরও কার্যকারিতা থাকতে পারে যেমন:
- প্রতিশ্রুতিবদ্ধ বা ধাক্কা দেওয়ার আগেও সবকিছু ঠিক আছে কিনা তা পরীক্ষা করতে ম্যানুয়ালি হুকটি ট্রিগার করুন। আপনি যদি কেবল আপনার স্ক্রিপ্টকে কল করেন (বিকল্প a বা b) কৌশলটি করবে।
- সিআই-তে হুকগুলি ট্রিগার করুন, সুতরাং আপনাকে সিআই-র জন্য একই চেকগুলি পুনরায় লেখার দরকার নেই, উদাহরণস্বরূপ এটি কেবল প্রতিশ্রুতি কল করা এবং ট্রিগারগুলিকে ধাক্কা দেওয়া হবে। উপরের মত একই এটি সমাধান করা উচিত।
- মার্কডাউন বৈধকারক বা একটি ওয়াইএএমএল বৈধকারকের মতো বাহ্যিক সরঞ্জামগুলিকে কল করুন। আপনি সিস্কলগুলি তৈরি করতে পারেন এবং এসটিডিআউট এবং এসটিডিআরআর পরিচালনা করতে হবে।
- সমস্ত বিকাশকারীদের হুকগুলি ইনস্টল করার সহজ উপায় রয়েছে তা নিশ্চিত করুন, তাই ডিফল্ট হুকগুলি সঠিকগুলির সাথে প্রতিস্থাপনের জন্য একটি দুর্দান্ত স্ক্রিপ্ট সংগ্রহস্থলটিতে যুক্ত করা দরকার
- কিছু গ্লোবাল সহায়ক রয়েছে যেমন শাখাগুলি বিকাশ এবং মাস্টারকে প্রতিরোধ করার জন্য প্রতিরোধ করার জন্য চেকের মতো, এটি প্রতিটি ভান্ডারে যুক্ত না করে not আপনি বিশ্বব্যাপী স্ক্রিপ্টগুলির সাথে অন্য একটি সংগ্রহস্থল রেখে এটি সমাধান করতে পারেন।
এটি সহজ হতে পারে?
হ্যাঁ, গিট-হুক পরিচালনা করতে আপনাকে সহায়তা করার জন্য বেশ কয়েকটি সরঞ্জাম রয়েছে। তাদের প্রত্যেকেই ভিন্ন দৃষ্টিকোণ থেকে সমস্যাটি মোকাবেলার জন্য তৈরি করা হয়েছে এবং আপনার বা আপনার দলের পক্ষে সবচেয়ে ভাল এমন একটি পেতে আপনার সকলের বুঝতে হবে। GitHooks.com হুকিং সম্পর্কে প্রচুর পড়া এবং আজ উপলভ্য বেশ কয়েকটি সরঞ্জাম সরবরাহ করে।
আজ অবধি, 21 টি প্রকল্প এখানে গিট হুক পরিচালনা করার জন্য বিভিন্ন কৌশল সহ তালিকাভুক্ত রয়েছে। কিছু এটি কেবল একটি একক হুকের জন্য করে, কিছু নির্দিষ্ট ভাষার জন্য করে এবং আরও অনেক কিছু।
এই সরঞ্জামগুলির মধ্যে একটি, আমার দ্বারা লিখিত এবং একটি মুক্ত উত্স প্রকল্প হিসাবে বিনামূল্যে অফার করা হয়েছে, তাকে হুকস 4 গিট বলে । এটি পাইথনে লেখা হয়েছে (কারণ আমি এটি পছন্দ করি) তবে ধারণাটি হ'ল উপরে রেকর্ড করা সমস্ত আইটেমকে .hooks4git.ini নামক একক কনফিগারেশন ফাইলের মধ্যে পরিচালনা করা হবে যা আপনার ভান্ডারের অভ্যন্তরে থাকে এবং যে কোনও স্ক্রিপ্টকে যে কোনও ভাষায় কল করতে পারে can ।
গিট হুক ব্যবহার করা একেবারে দুর্দান্ত, তবে সাধারণত যেভাবে তাদের দেওয়া হয় তা কেবল লোককে এ থেকে দূরে সরিয়ে দেয়।