من و git و اندروید

github
github

حتما یه برنامه نویس خوب از git استفاده میکنه و " یه برنامه نویس بدون git یه برنامه نویس مرده است "

مطالب زیادی میشه در مورد git تو نت پیدا کرد ولی دونستن بعضی از نکات ساده خالی از لطف نیست . خصوصا که این یافته پس از کلنجار یکی دو ساعته بدست بیاد .

آقا ما اومدیم یه پروژه قدیمی رو ریفکتور کنیم و مثل همیشه از android studio مستقیم share کردیم روی github و همه چی عالی . بعد یه سری تغییرات اومدم commit کنم دیدم ، الا ماشالله فایل تغییر یافته چقدر زیاده . 

تعداد فايل هايي كه تغيير كرده بسيار زياده
تعداد فايل هايي كه تغيير كرده بسيار زياده

یه بررسی اولیه کردم دیدم به به git اومده همه پوشه های build و .gradle رو هم تحت کنترل خودش گرفته . یعنی هر فایلی اونجا هست رو هم خواست بریزه روی repo سرور !!

اون زمان فرصت نداشتم و مجبور شدم بزنم بره و کلی وقت ما رو گرفت تا 60 مگ فایل رو اپلود کنه . بعد از مدتی که فرصت کردم یه سرچی زدم ببینم اشکال کار کجاست و به تجربیات زیر رسیدم :

حذف کنترل git از پروژه :

باید اول از همه یه کاری میکردم که git بیخیال این پروژه بشه . راهش ساده است . برید تو پوشه پروژه و پوشه .git رو حذف کنید . 

پوشه git كه ممكنه hidden باشه
پوشه git كه ممكنه hidden باشه

اندروید استودیو خودش یه پیغام میده که git اشکال داره و باید config کنید 

پيغام اندرويد استوديو براي تنظيمات git
پيغام اندرويد استوديو براي تنظيمات git

 که میرید ( یا روی لینکش کلیک کنید خودش میره ) تو قسمت version control در تنظیمات و کافیه اونجا هم git رو حذف کنید و تمام ، git بیخیال پروژه میشه و میره خونه خودش !

تنظيمات git پروژه كه بايد حذف بشه
تنظيمات git پروژه كه بايد حذف بشه

اضافه کردن دوباره پروژه به git :

این که روش تو تصویر زیر مشخصه . فقط قبلش یادتون باشه repo تو github رو حذف کنید تا همه چی از اول ساخته بشه . 

انتقال فایل های اصلی پروژه :

یه فایل text ساده تو پروژه ها هست با نام  gitignore . 

فايل gitignore
فايل gitignore

این فایل به git میگه بیخیال چه فایل و پوشه هایی بشه . معمولا هم متن داخلش برای همه میتونه یکسان باشه ولی بسته به تشخیص شما میتونید چیزی روش اضافه کنید . دلیل اینکه پروژه من همه اون پوشه ها رو کنترل میکرد این بود که این فایل رو نداشتم . با اضافه کردنش همه چیز درست شد و فقط فایل اصلی پروژه تحت کنترل قرار گرفت .

https://gist.github.com/githubmor/ac07237b779fdd683f89806e46c72f87


سوالی هم که باقی میمونه اینه که چرا باید git بیخیال این پوشه ها بشه ؟ چون این پوشه ها در هر سیستمی که قرار بگیرن خودشون بصورت اتوماتیک ساخته یا دانلود میشن و نیاز نیست شما همراه پروژه تون انتقالش بدید 

منبع : تجربيات يك برنامه نويس