برنامه نویسی

Supercharge Workflow Laravel با Git Hooks: مهاجرت و ذخیره سازی را فقط در صورت نیاز به صورت خودکار انجام دهید

Summarize this content to 400 words in Persian Lang
اگر از اجرای دستی مهاجرت‌ها، پاک کردن حافظه‌های پنهان و بازیابی پیکربندی‌ها هر بار خسته شده‌اید. git pull یا git merge، قلاب های Git اینجا هستند تا زندگی شما را آسان تر کنند. اما به جای اجرای هر بار هر دستور، بیایید این قلاب را هوشمندتر کنیم، بنابراین فقط در صورت لزوم این اقدامات را انجام می دهد.

گردش کار لاراول را با Git Hooks به صورت خودکار انجام دهید

این پست شما را در راه‌اندازی یک قلاب پس از ادغام راهنمایی می‌کند که تغییرات در فایل‌ها یا پوشه‌های خاص را بررسی می‌کند و فقط مهاجرت‌ها را اجرا می‌کند و اگر چیزی به‌روزرسانی شده باشد، پیکربندی، نماها و مسیرها را ذخیره می‌کند. بیایید شیرجه بزنیم!

Git Hooks چیست؟

قلاب‌های Git اسکریپت‌هایی هستند که Git قبل یا بعد از رویدادهای خاص مانند commit کردن یا ادغام کد اجرا می‌شود. ما از قلاب پس از ادغام برای راه‌اندازی خود استفاده می‌کنیم، که هر بار که تغییرات جدید را در مخزن محلی خود می‌کشید یا ادغام می‌کنید اجرا می‌شود. به این ترتیب، محیط توسعه شما همیشه بدون برداشتن انگشت شما آماده کار خواهد بود.

راه اندازی یک قلاب هوشمند پس از ادغام

فایل پس از ادغام را بیابید یا ایجاد کنید. حرکت به .git/hooks دایرکتوری در پروژه شما اگر قبلاً a را نمی بینید post-merge فایل، یکی را در آنجا ایجاد کنید.
اسکریپت را با شرایط هر عمل بنویسید. در اینجا یک اسکریپت هوشمند و بهینه وجود دارد که تغییرات را قبل از اجرای دستورات بررسی می کند:

#!/bin/bash

echo “Running optimized post-merge hook…”

# Check for new migration files
if git diff –name-only HEAD@{1} HEAD | grep -qE ‘^database/migrations/.*\.php’; then
echo “New migrations found. Running database migrations…”
php artisan migrate –force
else
echo “No new migrations found. Skipping migration step.”
fi

# Check for changes in config files
if git diff –name-only HEAD@{1} HEAD | grep -qE ‘^config/.*\.php’; then
echo “Config changes detected. Recaching config…”
php artisan config:cache
else
echo “No config changes detected. Skipping config cache.”
fi

# Check for changes in view files
if git diff –name-only HEAD@{1} HEAD | grep -qE ‘^resources/views/.*\.(php|blade\.php)’; then
echo “View changes detected. Recaching views…”
php artisan view:cache
else
echo “No view changes detected. Skipping view cache.”
fi

# Check for changes in route files
if git diff –name-only HEAD@{1} HEAD | grep -qE ‘^routes/.*\.php’; then
echo “Route changes detected. Recaching routes…”
php artisan route:cache
else
echo “No route changes detected. Skipping route cache.”
fi

echo “Optimized post-merge tasks completed!”

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

توضیح

مهاجرت های پایگاه داده: این قسمت از اسکریپت بررسی می‌کند که آیا فایل‌های مهاجرت جدیدی در آن قرار دارند یا خیر database/migrations دایرکتوری اگر پیدا کرد اجرا می شود php artisan migrate –force برای اعمال خودکار تغییرات
ذخیره سازی پیکربندی: اسکریپت هرگونه تغییر در فایل های پیکربندی را بررسی می کند. در صورت شناسایی تغییرات، فرمان را برای ذخیره مجدد پیکربندی اجرا می کند.
مشاهده ذخیره سازی: را بررسی می کند resources/views دایرکتوری برای هر به روز رسانی اگر تغییراتی وجود داشته باشد، نماها را ذخیره می‌کند تا مطمئن شود از آخرین نسخه‌ها استفاده می‌شود.
حافظه پنهان مسیر: در نهایت، اسکریپت به دنبال تغییراتی در آن است routes دایرکتوری اگر هر فایل مسیری تغییر کرده باشد، دستور ذخیره مجدد مسیرها را اجرا می کند.

اسکریپت خود را قابل اجرا کنید

برای اینکه Git بتواند اسکریپت hook post-merge را اجرا کند، باید دستور زیر را اجرا کنید:

chmod +x .git/hooks/post-merge

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

حتی می توانید کد را در https://gist.github.com/itxshakil/54845e124959bfb70d040964ba0a0eef پیدا کنید

آن را تست کنید!

پس از راه‌اندازی قلاب پس از ادغام، وقت آن است که آن را در عمل ببینید! هر زمان که یک را اجرا کنید git pull یا git merge که شامل به‌روزرسانی‌هایی برای فایل‌های مهاجرت، پیکربندی، مشاهده یا مسیریابی است، اسکریپت به طور هوشمند تصمیم می‌گیرد که کدام وظایف اجرا شود. این بدان معناست که محیط توسعه شما بدون پردازش غیرضروری هماهنگ می‌ماند و کارایی گردش کار شما را افزایش می‌دهد.

خوراکی های کلیدی

*خودکار هوشمندانه: * با افزودن شرایط به قلاب Git شما، تنها در صورت نیاز مهاجرت، ذخیره پیکربندی، کش مشاهده یا کش مسیر را اجرا می کند که در زمان و منابع سیستم با ارزش شما صرفه جویی می کند.
پیاده سازی آسان: چند خط برنامه نویسی Bash می تواند به طور قابل توجهی وظایف راه اندازی شما را ساده کند.
محیط خود را با حداقل تلاش هماهنگ نگه دارید: این قلاب تضمین می کند که محیط محلی شما همیشه با آخرین تغییرات به روز است، بدون نیاز به مداخله دستی.

نتیجه گیری

پیاده سازی این قلاب Git بهینه شده می تواند تجربه توسعه شما را متحول کند، به ویژه برای پروژه هایی که به روز رسانی های مکرر دریافت می کنند. تنها با چند خط کد، گردش کاری را ایجاد می‌کنید که کارآمد، خودکار و به‌طور مداوم با آخرین تغییرات شما همسو باشد – دیگر از مهاجرت‌های از دست رفته یا حافظه پنهان فراموش شده خبری نیست. آن را امتحان کنید و اجازه دهید Git کارهای تکراری را برای شما انجام دهد!

کد نویسی مبارک، و در اینجا به یک تجربه توسعه روان تر و هوشمندانه تر است!

اگر از اجرای دستی مهاجرت‌ها، پاک کردن حافظه‌های پنهان و بازیابی پیکربندی‌ها هر بار خسته شده‌اید. git pull یا git merge، قلاب های Git اینجا هستند تا زندگی شما را آسان تر کنند. اما به جای اجرای هر بار هر دستور، بیایید این قلاب را هوشمندتر کنیم، بنابراین فقط در صورت لزوم این اقدامات را انجام می دهد.

گردش کار لاراول را با Git Hooks به صورت خودکار انجام دهید

این پست شما را در راه‌اندازی یک قلاب پس از ادغام راهنمایی می‌کند که تغییرات در فایل‌ها یا پوشه‌های خاص را بررسی می‌کند و فقط مهاجرت‌ها را اجرا می‌کند و اگر چیزی به‌روزرسانی شده باشد، پیکربندی، نماها و مسیرها را ذخیره می‌کند. بیایید شیرجه بزنیم!

Git Hooks چیست؟

قلاب‌های Git اسکریپت‌هایی هستند که Git قبل یا بعد از رویدادهای خاص مانند commit کردن یا ادغام کد اجرا می‌شود. ما از قلاب پس از ادغام برای راه‌اندازی خود استفاده می‌کنیم، که هر بار که تغییرات جدید را در مخزن محلی خود می‌کشید یا ادغام می‌کنید اجرا می‌شود. به این ترتیب، محیط توسعه شما همیشه بدون برداشتن انگشت شما آماده کار خواهد بود.

راه اندازی یک قلاب هوشمند پس از ادغام

  1. فایل پس از ادغام را بیابید یا ایجاد کنید. حرکت به .git/hooks دایرکتوری در پروژه شما اگر قبلاً a را نمی بینید post-merge فایل، یکی را در آنجا ایجاد کنید.

  2. اسکریپت را با شرایط هر عمل بنویسید. در اینجا یک اسکریپت هوشمند و بهینه وجود دارد که تغییرات را قبل از اجرای دستورات بررسی می کند:

   #!/bin/bash

   echo "Running optimized post-merge hook..."

   # Check for new migration files
   if git diff --name-only HEAD@{1} HEAD | grep -qE '^database/migrations/.*\.php'; then
       echo "New migrations found. Running database migrations..."
       php artisan migrate --force
   else
       echo "No new migrations found. Skipping migration step."
   fi

   # Check for changes in config files
   if git diff --name-only HEAD@{1} HEAD | grep -qE '^config/.*\.php'; then
       echo "Config changes detected. Recaching config..."
       php artisan config:cache
   else
       echo "No config changes detected. Skipping config cache."
   fi

   # Check for changes in view files
   if git diff --name-only HEAD@{1} HEAD | grep -qE '^resources/views/.*\.(php|blade\.php)'; then
       echo "View changes detected. Recaching views..."
       php artisan view:cache
   else
       echo "No view changes detected. Skipping view cache."
   fi

   # Check for changes in route files
   if git diff --name-only HEAD@{1} HEAD | grep -qE '^routes/.*\.php'; then
       echo "Route changes detected. Recaching routes..."
       php artisan route:cache
   else
       echo "No route changes detected. Skipping route cache."
   fi

   echo "Optimized post-merge tasks completed!"
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

توضیح

  • مهاجرت های پایگاه داده: این قسمت از اسکریپت بررسی می‌کند که آیا فایل‌های مهاجرت جدیدی در آن قرار دارند یا خیر database/migrations دایرکتوری اگر پیدا کرد اجرا می شود php artisan migrate --force برای اعمال خودکار تغییرات

  • ذخیره سازی پیکربندی: اسکریپت هرگونه تغییر در فایل های پیکربندی را بررسی می کند. در صورت شناسایی تغییرات، فرمان را برای ذخیره مجدد پیکربندی اجرا می کند.

  • مشاهده ذخیره سازی: را بررسی می کند resources/views دایرکتوری برای هر به روز رسانی اگر تغییراتی وجود داشته باشد، نماها را ذخیره می‌کند تا مطمئن شود از آخرین نسخه‌ها استفاده می‌شود.

  • حافظه پنهان مسیر: در نهایت، اسکریپت به دنبال تغییراتی در آن است routes دایرکتوری اگر هر فایل مسیری تغییر کرده باشد، دستور ذخیره مجدد مسیرها را اجرا می کند.

اسکریپت خود را قابل اجرا کنید

برای اینکه Git بتواند اسکریپت hook post-merge را اجرا کند، باید دستور زیر را اجرا کنید:

chmod +x .git/hooks/post-merge
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

حتی می توانید کد را در https://gist.github.com/itxshakil/54845e124959bfb70d040964ba0a0eef پیدا کنید

آن را تست کنید!

پس از راه‌اندازی قلاب پس از ادغام، وقت آن است که آن را در عمل ببینید! هر زمان که یک را اجرا کنید git pull یا git merge که شامل به‌روزرسانی‌هایی برای فایل‌های مهاجرت، پیکربندی، مشاهده یا مسیریابی است، اسکریپت به طور هوشمند تصمیم می‌گیرد که کدام وظایف اجرا شود. این بدان معناست که محیط توسعه شما بدون پردازش غیرضروری هماهنگ می‌ماند و کارایی گردش کار شما را افزایش می‌دهد.

خوراکی های کلیدی

  • *خودکار هوشمندانه: * با افزودن شرایط به قلاب Git شما، تنها در صورت نیاز مهاجرت، ذخیره پیکربندی، کش مشاهده یا کش مسیر را اجرا می کند که در زمان و منابع سیستم با ارزش شما صرفه جویی می کند.

  • پیاده سازی آسان: چند خط برنامه نویسی Bash می تواند به طور قابل توجهی وظایف راه اندازی شما را ساده کند.

  • محیط خود را با حداقل تلاش هماهنگ نگه دارید: این قلاب تضمین می کند که محیط محلی شما همیشه با آخرین تغییرات به روز است، بدون نیاز به مداخله دستی.

نتیجه گیری

پیاده سازی این قلاب Git بهینه شده می تواند تجربه توسعه شما را متحول کند، به ویژه برای پروژه هایی که به روز رسانی های مکرر دریافت می کنند. تنها با چند خط کد، گردش کاری را ایجاد می‌کنید که کارآمد، خودکار و به‌طور مداوم با آخرین تغییرات شما همسو باشد – دیگر از مهاجرت‌های از دست رفته یا حافظه پنهان فراموش شده خبری نیست. آن را امتحان کنید و اجازه دهید Git کارهای تکراری را برای شما انجام دهد!

کد نویسی مبارک، و در اینجا به یک تجربه توسعه روان تر و هوشمندانه تر است!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا