گیک فارسی

نوشته های یک گیک فارسی از فعالیت ها ،‌ علاقه مندی ها و نقد هایش

Track کردن پوشه های خالی در یک ساختار درختی در Git

نویسنده:
۲ فروردین ۹۶

Git از جمله موضوعاتی هست که من باید خیلی دربار‌ه‌ش بنویسم اما خوب واقعاً نشده اما صد در صد در موردش خواهم نوشت. در مورد این نوشته خاص باید توضیح بدم که اصولاً Git پوشه ها را Track نمیکنه و فایل‌ها را Track میکنه. در نتیجه اگه یک پوشه خالی باشه اصولاً Git بی خیالش میشه و شما هم نمیتونین توی Stage بیارینش.

راه حلی که خیلی مورد استفاده قرار میگیره این هست که یک فایل خالی با عنوان keep. یا gitkeep. توی اون پوشه مورد نظر ایجاد میکنند تا Git اون ها را توی پروسه Track و Stage بیاره. اگه هم پوشه ای باشه که خودش ignore شده باشه توی gitignore. از طریق کد زیر درخواست عدم نادیده گرفتن فایل gitkeep. را میدیم :

!.gitkeep

حالا یکی از سناریو هایی که معمولاً توی ساختار‌های نسبتاً ضعیف دیده میشه یک پوشه و مجموعه فرزندانش توی چند سطح هست که به فایل‌هاشون نیاز نیست و توی gitignore. نادیده گرفته میشن اما پوشه ها باید با همون منطق gitkeep. حفظ بشن مثل نمونه زیر :

folder
 sub1
   sub1-1
   sub1-2
 sub2

توجه: توی همه پوشه ها هم فایل gitkeep. داریم.

توی gitignore. داریم :

folder/*

اما مشکل اینجاست که Git تا نسخه‌ای که در زمان نوشتن این مطلب منتشر شده فقط مجوز Track کردن همون سطح اول پوشه ها را میده (یعنی folder) و باقی را نادیده میگیره (یعنی sub1 و sub2 و همه فرزندانش) و به اصطلاح Recursive عمل نمیکنه.

من راه حلی از طریق Git پیدا نکردم جز اینکه یکی یکی پوشه ها را ignore کنی یا با git-add -f با اعمال قدرت از Git بخوای که فایل‌های gitkeep. را Track کنه! فقط توی این حالت دوم بعد از ساخت فایل‌های gitkeep. دستور زیر کمک میکنه که دستی اون ها را Add نکنیم (دستور را توی root پروژه میزنیم) :

find . -name '.gitkeep' | xargs git add -f

در نظرسنجی برنامه نویسان شرکت کنید

نویسنده:
۲۰ اسفند ۹۵

یکی از موضوعاتی که همیشه ذهن من و شاید خیلی از شما را درگیر به خودش کرده باشه این هست که همکارهام و به طور کلی بازار کار رشته نرم‌افزار توی زمینه‌های مختلف چه مسیری را میره. به عنوان مثال چه زبان‌هایی محبوب هستند ، چه Framework ها و تکنولوژی هایی مورد توجه قرار دارن ، از چه سیستم عاملی استفاده میکنند و به طور میانگین دوستان چقدر حقوق میگیرن و یا چه انتظاری از محیط کار باید داشت یا حتی اگه کمی فوضول باشم شاید برام جالب باشه چی میپوشن و از چه گجت هایی استفاده میکنند.

خوب دونستن این موارد کار آسونی نیست چون باید با طیف نسبتا وسیعی از جامعه برنامه نویس ارتباط داشته باشی و اصلاً راحت باشی باهاشون چنین پرسش هایی را مطرح کنی !

سال گذشته نزدیک به عید ، جادی توی وبلاگش یک نظرسنجی را مطرح کرد که دقیقاً همین پرسش ها و بیشتر را در بر مگیره و بعد از عید هم نتایج را در اختیار همه قرار داد که شخصاً برای من بسیار جالب بود. امسال هم دوباره همین روال تکرار میشه و وظیفه میدونم برای اطلاع رسانی بیشتر توی وبلاگم مطرحش کنم.

پس بشتابید به سوی نظرسنجی برنامه نویسان و مدیران سیستم (برای من ۵ دقیقه هم‌زمان نبرد پس تنبلی نکنید.)