شاید شما هم مثل من تمام سروکارتان با `Git` خلاصه شود به چند فرمان ابتدایی مثل `git commit` ولی همانطور که میدانید گیت امکاناتی فراتر از اینها نیز دارد، خود من تا چند روز پیش نمیدانستم گیت چنین قابلیتی (چیزی که در این مطلب میبینیم) دارد. چند روز پیش روی VPS خودم سرور گیت راه اندازی کردم بمنظور اینکه پابلیش کدها سریعتر و مطمئن تر انجام شود (یکی از مطلب‌های آینده درباره‌ی همین کار است). کار بسیار عالی بود و تنها یک اشکال وجود داشت و آن اینکه برای کامیت کردن کدها و پوش روی سرور اول باید یک فایل را دستی تغییر میدادم و بعد کامیت و `push` دوباره به حالت اول برمی‌گرداندم (خیلی از مواقع محیط گسترش شما با محیط اجرای اصلی تفاوت‌هایی دارد). خب ازجایی که آدم تنبلی هستم و تنبل‌ها همیشه دنبال راحتی هستند :) دست به دامن پرل و ترمینال و گیت شدیم تا این تغییرات را انجام دهد. قبل از اینکه شیرجه بزنیم درون دستورات، لازم است بدانیم که در گیت قلاب‌هایی `(hook)` وجود دارد که با استفاده از آنها میتوانید کدهای دلخواه خود را در زمان‌های مشخص اجرا کنید، در مورد من قلاب های `pre-commit` و `post-commit` مورد نیاز بود. این هوک‌ها یا قلاب‌ها درون دایرکتوری `hooks` در دایرکتوری اصلی گیت نوشته می‌شوند`(.git/hooks/)`.

تغییری که در کد من لازم به انجام بود تنها تغییر کلید `$conf['development_mode']` از `true` به `false` هنگام کامیت و برعکس پس از آن بود. پس با توجه به گفته‌ی بالا فایل `.git/hooks/pre-commit` با این صورت نوشته می شود. ``` #!/bin/sh perl -i -pe "s/\$conf.?\'development_mode\'.? = true;/ '$conf[\'development_mode\'] = false;' /e" core/bootstrap.php echo "Development Mode OFF" git add core/bootstrap.php ``` همچنین محتویات فایل `.git/hooks/post-commit` نیز بصورت زیر است: ``` #!/bin/sh perl -i -pe "s/\$conf.?\'development_mode\'.? = false;/ '$conf[\'development_mode\'] = true;' /e" core/bootstrap.php echo "Development Mode ON" git add core/bootstrap.php ```

بخاطر داشته باشید این قلاب‌ها فایل های اجرایی هستند و الزاما باید دسترسی اجرایی داشته باشند `chmod +x pre-commit` و `chmod +x post-commit`

خب ماموریت انجام شد :) اگر به دستور پرل درون قلاب آشنایی ندارید نگران نباشید، این دستور تنها در مورد من کاربرد دارد و شما باید کدهای خود را بنویسید، چه با پرل چه هر چیز دیگر تنها بخاطر داشته باشد که اگر فایلی را تغییر میدهید حتما باید با دستور