در سطح بالا، GitHub یک وب سایت و سرویس مبتنی بر ابر است که به توسعه دهندگان کمک می کند تا کد خود را ذخیره و مدیریت کنند و همچنین تغییرات کد خود را ردیابی و کنترل کنند. برای درک دقیق GitHub، باید دو اصل مرتبط را بدانید:
اما اگر از GitHub هرگز استفاده نکرده باشید، می تواند گیج کننده باشد. آیا این یک سایت ذخیره سازی ابری است؟ یک سایت شبکه اجتماعی برای برنامه نویسان؟ سایت به اشتراک گذاری کد؟ پاسخ همه این سوالات بله است و حتی بیشتر.
در این مقاله ابتدا دو اصل کنترل نخسه و GIT را توضیح خواهیم داد. سپس، در مورد GitHub و نحوه استفاده از GitHub اطلاعات بیشتری خواهیم داشت.
کنترل نسخه چیست؟
کنترل نسخه به توسعه دهندگان کمک می کند تا تغییرات کد یک پروژه نرم افزاری را ردیابی و مدیریت کنند. با رشد یک پروژه نرم افزاری، کنترل نسخه ضروری می شود.
احتمالاً قبلاً با نوعی از کنترل نسخه کار کرده اید. به عنوان مثال، Google Docs (و همچنین سایر ابزارهای Google Workspace) دارای یک ابزار "تاریخچه نسخه" است که در آن می توانید تغییرات سند را در مقاطع مختلف زمانی مشاهده کنید. مایکروسافت آفیس با ویژگی «ردیابی تغییرات» چیزی مشابه دارد. یا ممکن است ترجیح دهید چندین نسخه از یک فایل را ذخیره کنید و آنها را با برچسب "v1"، "v2" و غیره انتخاب کنید.
کنترل نسخه پیشرفته برای پروژه های نرم افزاری، به ویژه پروژه های مشارکتی ضروری است. در عوض، کنترل نسخه به توسعهدهندگان اجازه میدهد با خیال راحت از طریق شاخهبندی و ادغام کار کنند.
با فورک، یک توسعه دهنده بخشی از کد منبع (به نام مخزن) را کپی می کند. سپس توسعهدهنده میتواند با خیال راحت تغییراتی در آن قسمت از کد ایجاد کند، بدون اینکه بر بقیه پروژه تأثیر بگذارد.
سپس، هنگامی که توسعه دهنده بخشی از کد خود را به درستی کار می کند، می تواند آن کد را دوباره در کد منبع اصلی ادغام کند تا رسمی شود.
سپس همه این تغییرات ردیابی می شوند و در صورت لزوم می توان آنها را برگرداند.
Git چیست؟
Git یک سیستم کنترل نسخه منبع باز خاص است که توسط لینوس توروالدز در سال 2005 ایجاد شد.
به طور خاص، Git یک سیستم کنترل نسخه توزیع شده است، به این معنی که کل پایگاه کد و تاریخچه در رایانه هر توسعه دهنده در دسترس است، که امکان fork و ادغام آسان را فراهم می کند.
طبق نظرسنجی توسعه دهندگان Stack Overflow، بیش از 87 درصد از توسعه دهندگان از Git استفاده می کنند.
GitHub چیست؟
GitHub یک شرکت انتفاعی است که یک سرویس میزبانی مخزن Git مبتنی بر ابر ارائه می دهد. در اصل، استفاده از Git برای کنترل نسخه و همکاری برای افراد و تیم ها بسیار آسان تر می شود.
رابط GitHub به اندازه کافی کاربرپسند است بنابراین حتی کدنویسان مبتدی نیز می توانند از مزایای Git استفاده کنند. بدون GitHub، استفاده از Git به طور کلی نیاز به دانش فنی و استفاده از خط فرمان دارد.
با این حال، GitHub به قدری کاربرپسند است که برخی از افراد حتی از GitHub برای مدیریت انواع دیگر پروژهها مانند نوشتن کتاب استفاده میکنند.
علاوه بر این، هر کسی می تواند ثبت نام کند و یک مخزن کد عمومی را به صورت رایگان میزبانی کند، که GitHub را به ویژه در پروژه های منبع باز محبوب می کند.
به عنوان یک شرکت، GitHub با فروش مخازن کد خصوصی میزبانی شده و همچنین سایر برنامه های متمرکز بر کسب و کار که مدیریت اعضای تیم و امنیت را برای سازمان ها آسان تر می کند، درآمد کسب می کند. ما از Github به طور گسترده در آنوفل (Anophel) برای مدیریت و توسعه پروژه های داخلی استفاده می کنیم.
به اشتراک گذاری فایل های کد و همکاری با توسعه دهندگان دیگر در پروژه های منبع باز را برای توسعه دهندگان آسان می کند. GitHub همچنین به عنوان یک سایت شبکه اجتماعی عمل میکند که در آن توسعهدهندگان میتوانند آشکارا شبکهسازی کنند، همکاری کنند و کارهای خود را مطرح کنند.
GitHub از زمان تأسیس خود در سال 2008 میلیون ها کاربر را جذب کرده و خود را به عنوان یک پلتفرم پیشرو برای پروژه های نرم افزاری مشترک معرفی کرده است. این سرویس رایگان دارای چندین ویژگی مفید برای به اشتراک گذاری کد و کار با دیگران در زمان واقعی است.
علاوه بر عملکردهای مرتبط با کد، GitHub کاربران را تشویق می کند تا یک پروفایل شخصی و برند برای خود بسازند. میتوانید از پروفایل های هر کسی دیدن کنید و ببینید مالک چه پروژههایی هستند و در آن مشارکت دارند. این امر GitHub را به نوعی شبکه اجتماعی برای برنامه نویسان تبدیل می کند و رویکردی مشترک برای توسعه نرم افزار و وب سایت را تقویت می کند.
GitHub چگونه کار می کند؟
کاربران GitHub حساب ایجاد می کنند، فایل ها را آپلود می کنند و پروژه های کدنویسی ایجاد می کنند. اما کار واقعی GitHub زمانی اتفاق می افتد که کاربران شروع به همکاری کنند.
در حالی که هر کسی می تواند به طور مستقل کدنویسی کند، تیم هایی از افراد بیشتر پروژه های توسعه را می سازند. گاهی اوقات این تیم ها همه در یک مکان در یک زمان هستند، اما اغلب آنها به صورت ناهمزمان کار می کنند. چالش های زیادی برای ایجاد پروژه های مشترک با تیم های توزیع شده وجود دارد. GitHub این فرآیند را به روش های مختلف بسیار ساده تر می کند.
اول اینکه تمام کدها و اسناد در یک مکان هستند. این موضوع مشکلات دسترسی را برای هر کسی که میخواهد در پروژه مشارکت کند محدود میکند. هر مخزن همچنین حاوی دستورالعمل ها و جزئیات دیگری برای کمک به ترسیم اهداف و قوانین پروژه است.
در مرحله بعد، کدنویسی خلاقانه تر و انتزاعی تر از آن چیزی است که اکثر افراد غیر فنی فکر می کنند. به عنوان مثال، فرض کنید دو برنامهنویس روی کدهای مختلف کار میکنند. این دو کد باید با هم کار کنند. اما گاهی اوقات یک کد می تواند باعث خرابی کد دیگر شود. یا یک قطعه کد می تواند تأثیر غیرمنتظره ای بر نحوه عملکرد کد دیگر داشته باشد.
GitHub با نشان دادن اینکه چگونه هر دو فایل شاخه اصلی را تغییر می دهند، این مشکلات را حل می کند. قبل از اعمال تغییرات، این خطاها را میگیرد و فرآیند کدگذاری را کارآمدتر میکند.
GitHub همچنین ردیابی تغییرات و بازگشت به نسخه های قبلی پروژه را آسان تر می کند. برای توضیح این موضوع، باید فناوری GitHub مبتنی بر Git را درک کنیم و در مورد کنترل نسخه صحبت کنیم.
چرا کنترل نسخه برای کدنویسی مفید است؟
هنگام ساخت نرم افزار، توسعه دهندگان به طور مکرر و همزمان کد را به روز می کنند تا ویژگی ها را اضافه کنند و اشکالات را برطرف کنند. منطقی نیست که این تغییرات را مستقیماً در کد منبع ایجاد کنید، زیرا هر مشکلی روی کاربران تأثیر می گذارد. در عوض، توسعهدهندگان با کپیهای خود از کد کار میکنند، سپس، پس از آزمایش کامل کد، این کد را به پایگاه کد اصلی اضافه میکنند.
به نظر می رسد همه چیز خوب و عالی است. اما، با مشارکتکنندگان متعدد، همه چیز میتواند به سرعت آشفته شود. این امر مخصوصاً زمانی صدق می کند که هیچ راهی برای ترکیب مشارکتهای همه در یک پایگاه کد یکپارچه وجود نداشته باشد یا ببینید چه کسی در چه تغییراتی مشارکت داشته است. هر تغییر نیز باید ردیابی و ذخیره شود. این زمانی مفید است که چیزی خراب شود و توسعه دهندگان نیاز به عقب نشینی و بازیابی نسخه قبلی داشته باشند.
Git برای همین است. هنگامی که یک توسعه دهنده می خواهد تغییری در یک نرم افزار ایجاد کند، آنها:
کپی کد منبع آنها را از محل ذخیره مرکزی آن (به نام مخزن) در سیستم محلی خود دانلود کنید
تغییراتی را با خیال راحت در کپی آنها انجام دهید
کپی اصلاح شده آنها را با فایل های منبع موجود در مخزن ادغام(Merge) کنید
نظراتی(کامیت) را در توضیح تغییرات اضافه کنید
Git همه این تغییرات را ردیابی می کند و نسخه های قبلی را به عنوان پشتیبان ذخیره می کند. و GitHub دیدن زمانی که توسعه دهندگان تغییرات را به صورت گروهی انجام می دهند، نه فقط تغییرات فردی خاص را آسان تر می کند. این در هنگام عیب یابی پروژه های پیچیده مفید است.
GitHub برای چه مواردی استفاده می شود؟
GitHub به توسعه دهندگان و مهندسان نرم افزار اجازه می دهد تا مخازن عمومی از راه دور و به صورت رایگان در فضای ابری ایجاد کنند. مخزن یا به اختصار "repo"، فایل های یک پروژه کدگذاری و تاریخچه بازبینی هر فایل است.
هنگامی که یک مخزن را در GitHub راه اندازی کردید، می توانید آن را در دستگاه خود کپی کنید، فایل ها را به صورت محلی اضافه و اصلاح کنید، سپس تغییرات خود را به مخزنی که در آن تغییرات شما برای عموم نمایش داده می شود، برگردانید.
بنابراین، چرا GitHub را به توسعه با یک مخزن خصوصی ترجیح می دهید؟ در اینجا دلایل اصلی این است که چرا GitHub یک بازیکن بزرگ است:
همکاری پیشرفته
بزرگترین نقطه فروش GitHub مجموعه ای از ویژگی های همکاری پروژه است، از جمله کنترل نسخه و کنترل دسترسی.
برای نشان دادن آنچه با GitHub ممکن است، این سناریو را تصور کنید. شما می خواهید یک بازی آنلاین را کدنویسی کنید و دوست خود را برای کمک به شما دعوت می کنید.
شما یک مخزن در GitHub ایجاد میکنید که تمام فایلها، از جمله نسخههای فعلی و گذشته را ذخیره میکند، سپس به همکار دوست خود نیز اجازه دسترسی به این مخزن را میدهید.
شما تصمیم میگیرید که روی گیمپلی اصلی و صفحههای نمایش کار کنید، در حالی که شریکتان با منوی بازی و صفحههای تنظیمات بازی کار میکند. برای اینکه هر دوی شما همزمان تغییرات خود را بدون دخالت در کار دیگری انجام دهید، یک شاخه ایجاد می کنید، یک منطقه توسعه جداگانه، که در آن هم تیمی شما می تواند صفحه نمایش خود را بسازد. در ضمن شما در شاخه خود به کار ادامه می دهید.
هنگامی که دوست شما کار خود را به پایان رساند، می تواند یک درخواست pull بدهد و بخواهد کار خود را با شما ترکیب کند. در صورت تایید، می توانید شاخه های خود و در نتیجه کد خود را ادغام کنید.
حالا، بگویید یک توسعهدهنده دیگر مخزن بازی شما را میبیند و ایده اضافه کردن حالت چند نفره را دارد. آنها میتوانند مخزن شما را فورک کنند، یا از آن کپی کنند، سپس ویژگیهای جدید خود را اضافه کنند.
پس از اتمام، آنها می توانند یک درخواست pull برای شما ارسال کنند. اگر تایید کنید، این مخزن فورک شده با شما ادغام می شود و بازی شما اکنون چند نفره است.
توجه: هر کسی میتواند یک مخزن عمومی را فورک کند، اما پذیرفتن یا رد درخواستهای pull به عهده صاحبان مخزن است.
هیچ نرمافزاری در اولین قدم کامل نیست، به همین دلیل است که مخزن GitHub شما یک بخش مشکلات نیز برای فهرست کردن کارهای انجام شده و گزارش مشکلات مربوط به بازی شما، بحث در مورد آنها و علامتگذاری حلشده آنها دارد.
برای رسیدگی به این مشکلات، ممکن است به گزارش تغییرات یک فایل نگاهی بیاندازید تا ببینید چه زمانی و در کجا مشکل پیش آمده است.
به طور خلاصه، GitHub فضای متمرکزی را فراهم میکند که در آن چندین، دهها یا حتی هزاران توسعهدهنده میتوانند به طور یکپارچه در یک پروژه مشارکت کنند، بدون اینکه نگران نادیده گرفتن کار دیگران یا از دست دادن مسیر تغییرات باشند.
مدیریت آسان فایل
استفاده از GitHub به این معنی است که شما محدود به یک دستگاه یا محیط نیستید.
GitHub یک لایه رابط کاربری گرافیکی شیک (GUI) در بالای Git اضافه می کند. Git به تنهایی از طریق خط فرمان (رابط مبتنی بر متن یک رایانه) عمل می کند. توسعه دهندگان می دانند که چگونه از خط فرمان استفاده کنند، اما برای بسیاری، همیشه کارآمدترین راه برای تعامل با فایل ها نیست.
رابط GitHub راهی تمیز و کاربرپسند برای انجام اقدامات Git و همچنین مشاهده تاریخچه فایل ارائه می دهد. این برای توسعه دهندگان راحت تر است و برای مبتدیانی که از Git استفاده می کنند در دسترس تر است.
مزیت دیگری که GitHub را در دسترس تر می کند، زیرساخت مبتنی بر ابر آن است. یک کاربر GitHub ممکن است از هر مکان و هر دستگاهی به مخزن خود دسترسی داشته باشد، مخزن را دانلود کند و تغییرات خود را اعمال کند.
شبکه اجتماعی
هر کاربر GitHub می داند که این پلتفرم چیزی بیش از یک مکان برای کار روی کد است. همه کاربران GitHub پروفایل هایی برای نمایش پروژه ها، مشارکت ها و فعالیت های خود در سایت دارند و می توانند پروفایل ها و مخازن عمومی هر کسی را ببینند.
شبکه اجتماعی GitHub برای موفقیت آن بسیار مهم است، زیرا توسعه دهندگان را تشویق میکند تا پروژههای منبع باز از همه نوع را بررسی کنند و در آن مشارکت کنند. قبلاً، همکاران مشتاق باید شخصاً با صاحبان پروژه تماس بگیرند و از آنها اجازه مشارکت بخواهند.
با GitHub، این کار به آسانی انجام پروژه و سپس درخواست pull است. مالک پروژه میتواند پروفایل و مشارکتهای قبلی شخص را قبل از پذیرش درخواست بررسی کند.
GitHub همچنین به عنوان راهی برای نمایش پروژهها برای کارفرمایان عمل میکند و به عنوان مجموعهای از انواع عمل میکند. برای مثال، استخدامکنندگان اغلب از GitHub برای جستجوی استعدادها استفاده میکنند، زیرا کد مشتریان بالقوه برای بررسی در دسترس است.
پروژه های منبع باز
به لطف مزایایی که در مورد آنها آموخته ایم، GitHub به افزایش همکاری های منبع باز دامن زده است که منجر به ایجاد بسیاری از فناوری های نرم افزاری پرکاربرد شده است. از چارچوبهای CSS گرفته تا کتابخانههای تجسم دادهها تا بازیهایی که ممکن است زمان زیادی را صرف بازی کنید، بسیاری از شاهکارهای چشمگیر بدون مخازن گیتهاب باز وجود ندارند.
همانطور که در وب 2.0 یک روند وجود داشت، GitHub همچنین توسعه نرم افزار را به روی هر کسی که می خواهد برنامه نویسی بیاموزد باز کرده است و جامعه ای فعال، نوآور و سازنده را تقویت می کند.
مخازن خصوصی
مطمئنا، همه اینها عالی است، اما اگر همه چیز رایگان و منبع باز باشد، GitHub چگونه درآمد کسب می کند؟
پاسخ این است که GitHub خدمات پولی را نیز ارائه می دهد، از جمله مخازن خصوصی. در یک طرح پولی، تیمها میتوانند در GitHub با یکدیگر همکاری کنند و در عین حال کد خود را پشت درهای مجازی بسته نگه دارند. GitHub همچنین راه حل های سازمانی را ارائه می دهد که سازمان ها را به ابزارهای همکاری داخلی مجهز می کند.
نحوه شروع استفاده از GitHub
در GitHub فروخته شده است؟ در اینجا نحوه شروع به کار آمده است. یک نکته سریع: قبل از کار با GitHub باید با استفاده از خط فرمان راحت باشید، زیرا Git از ترمینال به عنوان رابط خود استفاده می کند.
1. GIT را نصب کنید.
آخرین نسخه Git را روی دستگاه خود نصب کنید. برای کار با مخزن GitHub خود نیاز به نصب Git دارید. راه های مختلفی برای انجام این کار وجود دارد، بنابراین توصیه های وب سایت Git را دنبال کنید. نرم افزار Git رایگان است.
2. در GitHub ثبت نام کنید.
پس از نصب Git، به وب سایت GitHub بروید و یک حساب کاربری با آدرس ایمیل خود ایجاد کنید.
3. یک مخزن راه اندازی کنید.
هنگامی که حساب GitHub شما راه اندازی شد، به داشبورد خود منتقل خواهید شد. برای شروع اولین مخزن خود، روی ایجاد مخزن کلیک کنید. این به شما امکان می دهد تمام کدهای پروژه جدید GitHub خود را در یک مکان نگه دارید.
4. نام پروژه خود را بنوسید.
در صفحه ایجاد یک مخزن جدید، نام مخزن خود و یک توضیح اختیاری را وارد کنید (بعداً می توانید هر دو را تغییر دهید).
5. مخزن خود را ایجاد کنید.
روی ایجاد مخزن کلیک کنید. شما به صفحه مخزن اصلی خود هدایت می شوید که فایل های شما را فهرست می کند.
اکنون یک کپی محلی از مخزن GitHub خود ایجاد خواهید کرد (یا به عبارت GitHub، مخزن خود را "کلون" کنید) که در آن فایل های خود را ویرایش کرده و تغییرات خود را push دهید. در صفحه مخزن اصلی خود، روی دکمه سبز کد کلیک کنید، سپس URL HTTPS مخزن خود را کپی کنید.
شما در حال حاضر یک نسخه از پروژه خود را بر روی هارد دیسک خود دارید، پس چرا باید مخزن خود را شبیه سازی کنید؟ این بهترین روش است زیرا به راحتی می توانید ببینید که چه زمانی افراد فایل ها را اضافه یا حذف می کنند. همچنین رفع تضادهای ادغام را آسان تر می کند.
برای آشنایی با دستورات گیت می توانید مقاله آشنایی با دستورات پیشرفته گیت را بررسی کنید.
نتیجه
وقتی به نوآوری های تکنولوژی فکر می کنیم، گاهی اوقات آسان است که همه چیز را به یک شخص نسبت دهیم، فکر کنید استیو جابز یا بیل گیتس. البته واقعیت این است که نرم افزار از ذهن هایی که با هم کار می کنند نشات می گیرد. به لطف میلیون ها توسعه دهنده حرفه ای و آماتور که با هم کار می کنند تا چیزهای جدید را به روش های جدید توسعه دهند، پیشرفت می کند.
این زیبایی GitHub است. این مانع ورود برای همکاری را کاهش می دهد، بنابراین هر کسی می تواند ایده های خود را در مورد پروژه های مورد علاقه خود مطرح کند یا پروژه ای را برای خود شروع کند.
تصور دنیای نرم افزارهای منبع باز قبل از GitHub دشوار است. اکنون، برای هر کسی، از جمله شما، برای کاوش آماده است.