ওপির প্রশ্নটি এখন 9 বছরেরও বেশি পুরনো। আমি man git-statusতখন কী বলেছি তা জানি না , তবে এটি এখন যা বলে তা এখানে:
--porcelain[=<version>]
Give the output in an easy-to-parse format for scripts. This is similar to the
short output, but will remain stable across Git versions and regardless of user
configuration. See below for details.
The version parameter is used to specify the format version. This is optional and
defaults to the original version v1 format.
এটি প্রস্তাব দেয় যে --porcelainআর্গুমেন্ট পরিবর্তনের জন্য কোনও রেপোর স্থিতি পরীক্ষার জন্য উপযুক্ত।
ওপির প্রশ্নটি লিখেছিলেন, "গত প্রতিশ্রুতি থেকে কোনও পরিবর্তন হয়েছে কিনা এমন কোনও ধরণের বুলিয়ান চেক রয়েছে, বা আমার স্থানীয় ভাণ্ডারে নতুন পরিবর্তন হলে আমি কীভাবে সত্যিই পরীক্ষা করতে পারি?"
আমি মনে করি না যে bashএতে প্রতি বুলিয়ান ডেটা ধরণের রয়েছে , তবে এটি পর্যাপ্ত হতে পারে:
[ -z "`git status --porcelain`" ] && echo "NULL-NO DIFFS" || echo "DIFFS EXIST"
এটি if-then-elseকোনও স্ক্রিপ্টের জন্য ফর্ম হিসাবে পুনরায় কাস্ট করা যেতে পারে , বা গিট রেপো ফোল্ডারে থাকাকালীন সিএমএল হিসাবে কার্যকর করা যেতে পারে । অন্যথায়, -Cআগ্রহের রেপোতে একটি নির্দিষ্ট পথ দিয়ে বিকল্পটি ব্যবহার করুন :
git -C ~/path/to/MyGitRepo status --porcelain
সংযোজন:
- কেউ কেউ
-u, --untracked-fileএড়াতে চান এমন ফাইলগুলিতে স্ট্যাটাসের প্রতিবেদন এড়ানোর জন্য বিকল্পটি ব্যবহার করার পরামর্শ দেয় । নোট করুন এটি একটি দুর্ভাগ্যজনক পার্শ্ব-প্রতিক্রিয়া সহ আসে : সদ্য যুক্ত হওয়া ফাইলগুলিও স্ট্যাচ করা হয় না। বিকল্পটি কিছু পরিস্থিতিতে কার্যকর , তবে ব্যবহারের আগে এটি সাবধানে বিবেচনা করুন।
git status?