
Git یک سیستم کنترل نسخه منبع باز یا VCS (مخفف Version Control System) است. فناوری ارزشمندی که به شما امکان می دهد نسخه های قدیمی فایل ها را ردیابی کنید و به شما امکان می دهد نسخه های مختلف فایل ها را به طور همزمان با هم مقایسه کنید.
در گذشته، قبل از ظهور Git، از SVN و CVS استفاده می شد که سیستم های کنترل نسخه محبوب آن زمان بودند. لینوس توروالد، خالق لینوکس، اولین بار Git را توسعه داد و امروزه ابزاری ضروری برای کسانی است که با نرم افزار منبع باز کار می کنند.
پیشنهاد مقاله: آغاز آموزش برنامه نویسی
VCS توزیع شده
Git یک سیستم توزیع شده است که توسط تعداد زیادی از توسعه دهندگان نرم افزار استفاده می شود. یک توسعه دهنده نرم افزار می تواند کد منبع مورد نظر (اصطلاحاً مخزن) را از یک مکان مرکزی (به اصطلاح کلون) دریافت کند و به طور مستقل روی بخشی از کد خود کار کند. پس از ایجاد تغییرات، یک توسعه دهنده می تواند تغییرات خود را مجدداً (به نام commit) در مکان مرکزی ارسال کند. این تغییرات همراه با تغییرات سایر توسعه دهندگان نگه داشته می شود تا بعداً در مورد بهترین نسخه تصمیم گیری شود.
یکی از سرویسهای محبوبی که Git را به طور خاص برای نرمافزار متنباز میزبانی میکند، GitHub نام دارد، اما سرویسهای دیگری مانند BitBucket، GitLab و بسیاری دیگر وجود دارد که تیمهای نرمافزاری در سراسر جهان از آنها برای اشتراکگذاری کد بهصورت خصوصی استفاده میکنند.
نصب دروازه
نصب Git بر روی همه پلتفرم ها یک فرآیند بسیار ساده است:
OS X (Mac):
از Homebrew دستور زیر را اجرا کنید:
پنجره ها:
برنامه Git را از اینترنت دانلود و نصب کنید.
لینوکس:
از مدیر بسته خود برای نصب Git استفاده کنید.
یا
راه اندازی یک مخزن
هنگامی که Git را روی سیستم خود نصب کردید، می توانید از طریق خط فرمان و دستور git به آن دسترسی داشته باشید.
هنگامی که پوشه پروژه خود را باز کردید، می توانید مخزن خود را با استفاده از دستور زیر راه اندازی کنید:
Git یک سیستم کنترل نسخه منبع باز یا VCS (مخفف Version Control System) است. فناوری ارزشمندی که به شما امکان می دهد نسخه های قدیمی فایل ها را ردیابی کنید و به شما امکان می دهد نسخه های مختلف فایل ها را به طور همزمان با هم مقایسه کنید.
در گذشته قبل از ظهور git از SVN و CVS که سیستم های کنترل نسخه محبوب آن زمان بودند استفاده می شد. لینوس توروالد، خالق لینوکس، اولین بار Git را توسعه داد و امروزه ابزاری ضروری برای کسانی است که با نرم افزار منبع باز کار می کنند.
برنامه نویسی بوت کمپ مجتمع دانش و فناوری بامد
VCS توزیع شده
Git یک سیستم توزیع شده است که توسط تعداد زیادی از توسعه دهندگان نرم افزار استفاده می شود. یک توسعه دهنده نرم افزار می تواند کد منبع مورد نظر (اصطلاحاً مخزن) را از یک مکان مرکزی (به اصطلاح کلون) دریافت کند و به طور مستقل روی بخشی از کد خود کار کند. پس از ایجاد تغییرات، یک توسعه دهنده می تواند تغییرات خود را مجدداً (به نام commit) در مکان مرکزی ارسال کند. این تغییرات همراه با تغییرات سایر توسعه دهندگان نگه داشته می شود تا بعداً در مورد بهترین نسخه تصمیم گیری شود.
یکی از سرویسهای محبوبی که Git را به طور خاص برای نرمافزار متنباز میزبانی میکند، GitHub نام دارد، اما سرویسهای دیگری مانند BitBucket، GitLab و سایر سرویسها وجود دارد که تیمهای نرمافزاری در سراسر جهان از آنها برای اشتراکگذاری کد بهصورت خصوصی استفاده میکنند.
نصب دروازه
نصب Git بر روی همه پلتفرم ها یک فرآیند بسیار ساده است:
OS X (Mac):
از Homebrew دستور زیر را اجرا کنید:
پنجره ها:
برنامه Git را از اینترنت دانلود و نصب کنید.
لینوکس:
از مدیر بسته خود برای نصب Git استفاده کنید.
یا
راه اندازی یک مخزن
هنگامی که Git را روی سیستم خود نصب کردید، می توانید از طریق خط فرمان و دستور git به آن دسترسی داشته باشید.
هنگامی که پوشه پروژه خود را باز کردید، می توانید مخزن خود را با استفاده از دستور زیر راه اندازی کنید:
این دستور چه کاری انجام می دهد؟ پوشه ای به نام .git در داخل پوشه ای که کد منبع پروژه شما قرار دارد ایجاد می کند و از این پس می توانید دستورات Git را اجرا کنید. اگر این پوشه را نمی بینید به این دلیل است که پنهان است و باید پوشه های مخفی را با استفاده از تنظیمات سیستم عامل خود قابل مشاهده کنید.
در مخزن جدیدی که ایجاد کرده اید، تمام اطلاعات مربوط به Git در پوشه .git ذخیره می شود.
فایل ها را به یک مخزن اضافه کنید
در مرحله بعد، می خواهیم ببینیم چگونه یک فایل به Git اضافه کنیم. دستور زیر را وارد کنید:
در حال حاضر، همانطور که خروجی دستور git status در تصویر زیر نشان می دهد، فایل readme.text در دایرکتوری پروژه قرار دارد، اما شما هنوز از Git درخواست نکرده اید که این فایل را به فهرست خود اضافه کند:
یک فایل به قسمت مرحله اضافه کنید
با استفاده از دستور زیر فایل خود را اضافه کنید:
برای اینکه فایل خود را در دسترس gıt قرار دهید، باید آن را به قسمت مرحله اضافه کنید:
پس از قرار دادن فایل شما، می توانید با وارد کردن دستور زیر آن را از این قسمت حذف کنید:
توضیح: در مرحله استیج فایل شما هنوز ردیابی نشده است و در commit بعدی ردیابی می شود و تغییرات ایجاد شده در آن توسط دیگران قابل پیگیری است.
معمولاً بعد از اینکه فایلی را به استیج اضافه کردید، می خواهید آن را commit کنید.
تغییرات ایجاد کنید
پس از ایجاد یک یا چند تغییر در ناحیه مرحله بندی، آن تغییرات را با استفاده از دستور زیر انجام می دهید:
با اجرای این دستور فضای استیج شما خالی می شود. می توانید با استفاده از دستور git status (تصویر زیر) بررسی کنید که ناحیه مرحله بندی خالی است:
همچنین در این مرحله تغییراتی که در فایل خود ایجاد کرده اید به صورت دائمی ذخیره و نگهداری می شوند که می توانید با استفاده از دستور git log::
شاخه ها
هنگامی که یک فایل را به Git commit می کنید، فایل به شاخه فعلی متعهد می شود.
Git به شما این امکان را می دهد که همزمان روی چندین شاخه جداگانه کار کنید. این شاخه ها خطوط کاری مختلف فرآیند توسعه هستند که شاخه هایی از شاخه اصلی محسوب می شوند.
Git بسیار منعطف است: شما می توانید تعداد بی نهایت شاخه را به طور همزمان داشته باشید، هر شاخه را مستقل از بقیه توسعه دهید و در نهایت همه آنها را با هم ادغام کنید.
به طور پیش فرض، Git از شاخه ای به نام master استفاده می کند. این شاخه هیچ تفاوتی با شاخه های دیگر ندارد جز اینکه اولین شاخه ای است که قبل از شاخه های دیگر ایجاد شده است.
با تایپ دستور زیر می توانید یک شاخه جدید به نام توسعه ایجاد کنید:
دستور git branch لیستی از شاخه های موجود در مخزن شما را نمایش می دهد.
هنگامی که یک شاخه جدید ایجاد می کنید، آن شاخه به آخرین commit انجام شده در شاخه فعلی اشاره دارد. اگر با استفاده از دستور توسعه git checkout به یک شاخه جدید (در این مثال، شاخه توسعه) بروید و دستور git log را اجرا کنید، همان log را در شاخه قبلی (در این مثال شاخه اصلی) خواهید دید.
لباس و پول
در Git، شما همیشه commit های خود را به صورت محلی انجام می دهید. این یک مزیت بزرگ نسبت به SVN و CSV است که در آن commit ها باید از طریق یک سرور انجام می شدند.
شما همه چیز را به صورت آفلاین انجام می دهید و هر تعداد تعامل ایجاد می کنید. هنگامی که آماده فشار دادن و فشار دادن مخزن خود به GitHub هستید، اعضای تیم شما می توانند به آخرین و بهترین کد تولید شما دسترسی داشته باشند.
اما برای کار با فشار و کشش، باید یک نسخه از راه دور برای پروژه خود ایجاد کنید.
Posh تغییرات شما را ارسال خواهد کرد.
استخر تغییرات از راه دور را در نسخه کاری شما دانلود می کند.
یک کنترل از راه دور ایجاد کنید
کنترل از راه دور پروژه شما یک کپی از مخزن شما است که روی یک کامپیوتر راه دور میزبانی شده است.
بیایید به یک مثال با GitHub نگاه کنیم. اگر یک مخزن ساخته اید، می توانید آن را در GitHub منتشر کنید. این فرآیند مستلزم ایجاد یک مخزن در پلتفرم GitHub است که از طریق رابط وب GitHub ایجاد می شود. پس از انجام این کار، می توانید آن مخزن را به عنوان ریموت خود اضافه کنید و کد خود را در آنجا وارد کنید.
برای افزودن ریموت، دستور زیر را وارد کنید.
راه دیگر برای انجام این کار این است که یک مخزن خالی در GitHub خود ایجاد کنید و سپس یک نسخه محلی از آن را در دستگاه خود ایجاد کنید. در این صورت ریموت به صورت خودکار برای شما ساخته می شود.
فشار دادن
پس از انجام مراحل قبلی، با استفاده از دستور git push آماده هستید تا کد خود را به ریموت کنترل کنید
از آنجایی که از نظر فنی می توانید بیش از یک ریموت داشته باشید، در کد بالا نسخه اصلی را به عنوان ریموت در نظر گرفته ایم.
پول
یک نحو مشابه برای فرآیند دانلود استفاده می شود:
دستور بالا به Git می گوید که شاخه اصلی را از منبع بیرون بکشد و آن را با شاخه محلی ما ادغام کند.
مغایرت ها
هم شیک و هم پولی مشکلی دارند که باید در نظر بگیرید: اگر تغییراتی در کنترل از راه دور شما وجود داشته باشد که با مجموعه تعهد شما سازگار نباشد، عملیات شکست می خورد و سقط می شود.
این زمانی اتفاق میافتد که تغییراتی در کنترل از راه دور شما ایجاد میشود که اخیراً پولی بوده و روی کدی که روی آن کار میکردید تأثیر میگذارد.
در حالت فشار، این مشکل با انجام تغییرات و تجزیه و تحلیل ناهماهنگی ها و ایجاد یک commit جدید برای رفع آنها حل می شود.
در شرایط پولی، نسخه کاری شما (نسخه ای که روی آن کار می کنید) به طور خودکار تغییرات ناسازگاری را ویرایش می کند و باید یک commit جدید ایجاد کنید تا پایگاه کد خود حاوی تغییرات مشکل ساز در کنترل از راه دور باشد. ایجاد شده
خط فرمان یا رابط کاربری گرافیکی مشکل است
همه چیزهایی که تا کنون گفتیم با استفاده از خط فرمان برنامه Git انجام شده است.
این روش برای توضیح نحوه عملکرد Git مفید است، اما در استفاده روزمره احتمالاً از برنامهای استفاده میکنید که همه این دستورات را میتوان از طریق یک رابط کاربری گرافیکی خوب اجرا کرد. اما توسعه دهندگان حرفه ای ترجیح می دهند از CLI (خط فرمان) استفاده کنند.
برای مثال اگر نیاز به پیکربندی گیت وی از طریق SSH روی سرور راه دور داشته باشید، خط فرمان یا CLI بسیار مفید خواهد بود و دانستن دستورات آن به هیچ وجه بی فایده نخواهد بود.
برنامه های مفید زیادی وجود دارد که کار توسعه دهندگان نرم افزار را آسان می کند و به خصوص اگر درگیر پیچیدگی های یک مخزن git شوید، این نرم افزار می تواند بسیار مفید و موثر باشد. در واقع، کارهای ساده در همه جا ساده هستند، اما با پیشرفت کارها، ممکن است به جایی برسید که استفاده از CLI دشوار شود.
برخی از برنامه های محبوب Git عبارتند از:
دسکتاپ GitHub
https://desktop.github.com
در زمان نگارش، فقط برای مک و ویندوز رایگان است.
برج
https://git-tower.com
برای ویندوز و مک موجود است و پولی است.
GıtKraken
https://gitkraken.com
این برای مک، ویندوز و لینوکس در دسترس است و بسته به ویژگی های مورد نیاز شما می تواند رایگان یا پولی باشد.
استراتژی خوبی برای git
توسعه دهندگان و تیم های مختلف نرم افزار از استراتژی های مختلفی برای مدیریت موثر git استفاده می کنند. در اینجا می خواهیم شما را با یکی از استراتژی هایی که نتیجه داده است آشنا کنیم.
فقط از دو شاخه اصلی ثابت استفاده کنید: استاد و توسعه
سعی کنید این قوانین را در زندگی روزمره خود رعایت کنید:
هنگامی که با مشکل جدیدی مواجه می شوید یا می خواهید ویژگی جدیدی اضافه کنید، دو مسیر اصلی پیش روی شما قرار دارد:
این ویژگی جدید به سرعت قابل پیاده سازی است
اگر commit هایی که انجام می دهید کد را نمی شکند (یا حداقل امیدوارید که نکنند): می توانید commit خود را به شاخه توسعه متعهد کنید (یا یک شاخه سریع دیگر ایجاد کنید و سپس آن را در توسعه ادغام کنید).
این ویژگی جدید به بیش از یک commit نیاز دارد
ممکن است چند روز طول بکشد (و متعهد شود) تا ویژگی جدید تکمیل شود: در این صورت، از شاخه featrue استفاده کنید و زمانی که آماده شد آن را در توسعه ادغام کنید (که ممکن است هفته ها طول بکشد).
مقاله پیشنهادی: بهترین زبان برنامه نویسی – مقایسه کامل C# و PHP
توسعه یک فرآیند بی ثبات است. Master آخرین نسخه پایدار محصول شما است
شاخه Develop همیشه در حالت سیال است و بنابراین هنگام آماده شدن نسخه جدید باید فریز شود. پس از تست کد و تایید و تایید نهایی کد، آن را برای ادغام با شعبه اصلی آماده کنید.
هر زمان که می خواهید شاخه توسعه یا شاخه های اصلاحی دیگر را در شاخه ادغام کنید، یک شماره نسخه جدید روی آن قرار دهید، بنابراین اگر نسخه جدیدی را نیز در گیت هاب ایجاد می کنید و آن نسخه مشکل دارد، به راحتی می توانید نسخه قبلی را بازیابی کنید.
نوشتن راهنمای کامل استفاده از git برای اولین بار در دانش و فناوری. به نظر می رسد.