یک اسکریپت Bash بنویسید که در صورت وجود نداشتن پوشه مخزن، آن را از یک آدرس گیت کلون کند و در غیر این صورت تغییرات جدید را pull کند و با آرگومان اختیاری --push "پیام" تغییرات محلی را commit و push نماید.
3.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 02:04 0.0
برای حل این مساله از دستورات git مانند git clone، git pull، git add، git commit و git push استفاده کنید؛ در اسکریپت ابتدا با test -d یا [[ -d ]] بررسی کنید که پوشه موجود باشد، اگر نبود git clone را اجرا کنید و اگر بود با git -C pull کنید. برای پشتیبانی از گزینه اختیاری --push "پیام" پارامترهای ورودی را پردازش کرده و در صورت وجود آن با git add . && git commit -m "پیام" و سپس git push عملیات ارسال را انجام دهید؛ نام شاخه فعلی را میتوانید با git -C rev-parse --abbrev-ref HEAD بیابید. نکات: خطاها را با بررسی کد خروجی یا set -e مدیریت کنید، برای احراز هویت از کلیدهای SSH یا credential helper استفاده کنید، و اسکریپت را با chmod +x اجراپذیر کنید؛ از git -C برای حذف نیاز به cd استفاده نمایید تا اسکریپت خواناتر و مقاومتر شود.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
استفاده از git -C به جای cd باعث تمیزتر شدن اسکریپت میشود و با [[ -d ]] میتوان وجود یا عدم پوشه مخزن را بررسی کرد. برای گزینه --push پیام را به صورت آرگومان با نقل قول دریافت کنید تا پیام دارای فاصله هم به درستی استفاده شود و سپس git add . && git commit -m "$MESSAGE" و در نهایت git push را اجرا کنید. برای مدیریت خطاها از set -euo pipefail استفاده کنید و احراز هویت را با SSH keys یا credential helper پشتیبانی کنید تا عملیات clone/pull/push با موفقیت انجام شود. نام شاخه فعلی را با git -C . rev-parse --abbrev-ref HEAD به دست آورید و اگر پوشه مخزن وجود نداشت، آن را از آدرس گیت کلون کنید و در غیر این صورت با pull بهروزرسانی کنید.
گزارش