গিট প্রি-কমিট হুক কেবল তখনই চালিত করুন যদি নির্দিষ্ট ডিরেক্টরিতে ফাইলগুলি সংশোধিত হয়


11

আমি গিট প্রাক কমিট হুকের জন্য বাশ স্ক্রিপ্ট তৈরি করার চেষ্টা করছি। যখনই কোন প্রতিশ্রুতিবদ্ধ হয়, আমি তা পরীক্ষা করে দেখতে চাই যে কোনও নির্দিষ্ট ডিরেক্টরিতে থাকা ফাইলগুলি মঞ্চযুক্ত ফাইলগুলির অংশ কিনা এবং যদি তা হয় তবে একটি কমান্ড (গ্রান্ট টাস্ক) চালান। এখন পর্যন্ত আমার কাছে সমস্ত কিছু কাজ করছে, কেবলমাত্র নির্দিষ্ট ফাইলগুলি সংশোধন করা হলে চলমান ব্যতীত working আমি এটি কাজে লাগানোর চেষ্টা করছি:

SRC_PATTERN="site/assets/js/"
if [ grep --quiet $SRC_PATTERN `git diff --cached --name-only` ]
then
  echo "none"
  exit 0
fi

এটি দুর্ভাগ্যক্রমে আমাকে ত্রুটি দিচ্ছে।

উত্তর:


9

চেষ্টা করুন,

git diff --cached --name-only | if grep --quiet "$SRC_PATTERN"
then
    ...

শুভ হ্যাকিং


8

এটির মতো চেষ্টা করুন:

SRC_PATTERN="site/assets/js/"
if git diff --cached --name-only | grep --quiet "$SRC_PATTERN"
then
  echo "none"
  exit 0
fi

এটি দেখতে অনেকটা গৃহীত উত্তরের মতো, তবে এটি একটি ভুল। বাশ / এস-তে পাইপলাইনের প্রতিটি কমান্ড পৃথক সাবশেলে চালিত হয়, সুতরাং তত্কালীন অংশে একটি প্রস্থান কেবল সাব-শেল থেকে প্রস্থান করবে, ফাই অনুসরণকারী কোনও কোড এখনও কার্যকর করা হবে!

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.