লক্ষ্যটি একটি দ্ব্যর্থহীন স্ট্যাটাস পাওয়া যা শেল কমান্ডের মাধ্যমে মূল্যায়ন করা যায়।
আমি চেষ্টা করেছি git status
তবে প্রতিশ্রুতিবদ্ধ আইটেম থাকলেও এটি সর্বদা 0 প্রদান করে।
git status
echo $? #this is always 0
আমার একটি ধারণা আছে তবে আমি মনে করি এটি বরং একটি খারাপ ধারণা।
if [ git status | grep -i -c "[a-z]"> 2 ];
then
code for change...
else
code for nothing change...
fi
অন্য কোন উপায়?
নিম্নলিখিত সমাধান সহ আপডেট করুন, মার্ক লংগায়ারের পোস্ট দেখুন
আমি এটি চেষ্টা করেছিলাম তবে এটি সমস্যার কারণ হয়ে দাঁড়িয়েছে।
if [ -z $(git status --porcelain) ];
then
echo "IT IS CLEAN"
else
echo "PLEASE COMMIT YOUR CHANGE FIRST!!!"
echo git status
fi
আমি নিম্নলিখিত ত্রুটি পেয়েছি [: ??: binary operator expected
এখন, আমি লোকটির দিকে তাকিয়ে আছি এবং গিট ডিফের চেষ্টা করছি
=================== আমার আশার কোড এবং আরও উত্তরের উত্তর আশা করি ======================
#if [ `git status | grep -i -c "$"` -lt 3 ];
# change to below code,although the above code is simple, but I think it is not strict logical
if [ `git diff --cached --exit-code HEAD^ > /dev/null && (git ls-files --other --exclude-standard --directory | grep -c -v '/$')` ];
then
echo "PLEASE COMMIT YOUR CHANGE FIRST!!!"
exit 1
else
exit 0
fi
$(git status --porcelain)
, যেমনটি আমি আপনাকে বলেছিলাম!
$(git status --porcelain)
echo 'PLEASE COMMIT YOUR CHANGE FIRST!!!'