درست یک سال پیش که میخواستم سورس کنترل شرکت قبلی را از SourceSafe به یک سورس کنترل جدیدتر ارتقا بدهم به شدت بین svn و git دودل بودم. یکی از دلایل این تردید سخت بودن کار با git بود خصوصاً برای کسانی که قبل از آن فقط با SourceSafe کار کرده بودند. اما حالا بعد از یک سال که حسابی به svn عادت کردهام و مشکل متمرکز بودن svn حسابی اذیتم کرده تصمیم گرفتم یک بار دیگر شانسم را در به کار گیری git امتحان کنم. خوشبختانه این بار خوش شانس بودم و بلد بودن svn باعث شد خیلی سریع بتوانم از روی راهنمای مخصوص svn کارها، عملیات مقدماتی git را یاد بگیرم.
اگر شما هم میخواهید کار با git را خیلی سریع شروع کنید بهتر است یک فضای git در assembla.com (این سایت امکان ایجاد repo خصوصی را فراهم میکند) ایجاد کرده، Git Extensions یا msysgit را نصب و سپس بر اساس راهنمای git svn crash و instructions خود assembla.com کارتان را شروع کنید. مقداری از اطلاعات مفید:
* git و دستورات خط فرمانی آن خیلی شبیه به svn هستند. با این تفاوت که در git هر کسی برای خودش یک repo دارد و میتواند مدام با repoهای دیگر اعضای گروه push و pull کند.
* تعدادی از دستورات git عبارت هستند از git status، git commit -a، git add و git diff. به شباهت آنها با svn توجه کنید.
* شما در git هر وقت که کارتان تمام شد تغییرات را commit میکنید. هر وقت هم که خواستید این تغییرات را به repo دیگران بفرستید یا تغییرات repo افراد دیگر را دریافت کنید باید از عملیات pull و push استفاده کنید.
* مدل branch و tag در git کمی فرق کرده.
* git هم add-inهایی هم برای Visual Studio و هم برای Windows Explorer دارد.
* در git شماره versionها مثل svn یکی یکی بالا نمیرود بلکه به صورت عددی هگزا دسیمال مشابه Guid است.
* برای شروع کار با یک مخزن دیگر باید با استفاده از git clone یک نسخه از آن را در کامپیوتر خودتان دریافت کنید. این دستور مشابه svn checkout است.
* در git هم میتوان یک repo را به طور قراردادی repo مرکزی فرض کرد و افراد را ملزم به push/pull با آن کرد.
* از اسم git نترسید، امکانات خوبی دارد!
دیدگاهها
مشتاقم بدانم که اگر پروژه شما در محیط توسعه مایکروسافت پیاده سازی می شود چرا از سورس کنترلر های غیر مایکروسافتی استفاده می کنید.
@امیر مهدی:
به خاطر امکانات خیلی بیشتر svn و git نسبت به Source Safe و TFS.
مثلاً در مورد همین git میتوان به صورت پراکنده و چند مخزنی کار کرد که در خیلی از سورس کنترلهای دیگر حتی svn چنین امکانی وجود ندارد.
test disqus commenting…