استفاده از Git

من ارسلان میربزرگی، شما را در این مقاله با آرشیو دستورات git  آشنا خواهم کرد. امروزه تعداد نرم افزارهای اوپن سورس، در دنیای IT بسیار گسترده شده است. git یکی از نرم افزاری کنترل نسخه است که در دسته نرم افزارهای اوپن سورس نیز جای میگیرد. وظیفه اصلی این نرم افزار، مدیریت منبع کد و همچنین بازبینی کد منبع توزیع شده است. عمده تمرکز این نرم افزار بر روی پیگیری تغییرات مربوط به فایلهای کامپیوتری و کارهایی که بر روی آنها انجام شده، می‌باشد.

 git  چیست؟

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

 

چگونه git  را نصب کنیم؟

git  و گیت هاب با یکدیگر متفاوت هستند و نباید به اشتباه این 2 را به عنوان یک نرم افزار واحد در نظر بگیرید. برای نصب git  باید به سایت https://git-scm.com مراجعه کرده و مراحل نصب را طبق راهنمایی داخل سایت پیش ببرید. برای نصب گیت هاب نیز از سایت https://desktop.github.com، نرم افزار گیت هاب را دانلود کرده  و نصب کنید. پس از نصب، میتوانید ریپازیتوری‌هایی که تولید می‌کنید را به راحتی مدیریت کنید.

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

ساخت SSH key برای GitLab

اگر بخواهید به پروژه‌ها، دسترسی داشته باشید، نیاز دارید که یک کلید SSH را در پروفایل خودتان بسازید. توسط این کلید، قادر خواهید بود که پروژه خودتان در گیت لب را مدیریت کنید. برای ساخت این کلید، ابتدا وارد پروفایل خودتان در گیت لب شوید. در پروفایل شما یک لینک Generate به منظور ساخت کلید اختصاصی در گیت لب نمایش داده شده است. اگر بر روی این لینک کلیک کنید، کلید برای شما ساخته می‌شود که می‌توانید آن را در کادر مشخص شده در پروفایل خود قرار دهید.

 

برای فعال سازی این کد باید طبق مسیر مورد نظر، ترمینال را باز کرده و کدی را که در زیر نمایش داده است وارد کنید:

 

کد ساخته شده را در قسمتی که در تصویر فوق مشخص شده و طبق دستور زیر کپی می شود، قرار می‌دهیم :

این دستور کپی برای هر سیستم عامل متفاوت است. در اینجا دستور مربوط به سیستم عامل مک را ذکر کردیم و برای سایر سیستم عامل‌ها، این دستورات به صورت زیر است :

 

git

گیت لب ( GitLab )

دستورات موجود در  git به شکل زیر می‌باشند  :

دستور زیر برای ساخت یک ریپازیتوری تازه بر روی کامپیوتر شما است :

 

این دستور برای دانلود از یک ریپازیتوری (url) که بر روی سیستم شما موجود می‌باشد، است :

 

برای فایل‌های تازه ای که هنوز commit نشده اند و همچنین لیست تغییرات انجام شده از دستور زیر استفاده می‌شود :

 

این دستور برای اضافه کردن تمامی فایل های تازه به stage و آماده کردن آن برای commit است :

 

این دستور برای اضافه کردن فایل مورد نظر شما به stage و آماده کردن  برای commit است :

 

 

این دستور برای  comm کردن تمامی فایل‌هایی است که در stage  موجود است :

 

 

با دستور زیر، تمامی فایل‌ها را به شکل همزمان add commit میکنیم و همچنین توضیحی نیز برای قسمت commit تعیین می‌کنیم :

 

این دستور برای آپلود و همینطور ارسال فایلهای تازه به سمت سرور و زیر نظر branchی که در آن قرار داریم می‌باشد :

 

این دستور برای آپلود و همینطور ارسال فایلهای تازه به سمت سرور و زیر نظر branch اصلی master است. اما به طور معمول این کار انجام نمی‌شود. بنابراین ترجیحا ما روی branch دیگری push و سپس merge می‌کنیم.

 

دستور زیر، برای دریافت تغییراتی است که جدیدا از سرور و merge انجام شده است :

نکته : زمانی که شما در قالب یک تیم بر روی پروژه‌ای در حال کار هستید ( به طور مثال بر روی branchای به اسم example هستید و تغییراتی که اخیرا بر روی پروژه انجام شده، بر روی برنچ تست پروژه به اسم برنچ dev قرار دارد )، در این حالت شما نیازی به ارسال مرج ریکویستی ندارید و قادر خواهید بود تا آخرین تغییرات انجام شده را از برنچ dev دریافت کنید.

 

 

توسط این دستور، می‌توانید مشخص کنید که در کدام branch هستید و کدهای شما در کدام branch تغییر و یا دریافت می‌شود :

 

 

این دستور برای دریافت کردن آخرین تغییرات از ( no merge ) origin branch.است :

( اگر در یک Branch قرار داریم و می‌خواهیم branch را تغییر دهیم، در صورتی که branch را اخیرا ساخته باشیم، باید کد زیر را به منظور شناسایی branch ها و تغییرات آن وارد کنیم. )

 

این دستور برای نمایش لیست تمای branch ها است :

 

 

این دستور برای تغییر branch به چیز دیگری به طور مثال به شاخه Develop است :

 

 

این دستور برای ایجاد Branch تازه ای به اسم New_Branch :

 

 

این دستور برای نمایش لیست همه Branch ها و همچنین Local and Remote است :

 

 

این دستور برای حذف My_Branch از لیست همه  Branchها است :

 

 

این دستور برای Merge کردن Branch_B در داخل Branch_A است :

 

 

این دستور برای نمایش تغییرات مربوط به فایل‌هایی است که هنوز به stage وارد نشده اند :

 

 

این دستور برای نمایش تغییرات مربوط به فایل هایی است که به stage وارد شده اند :

 

 

این دستور برای نمایش دادن تمامی تغییرات فایل‌هایی است که به stage وارد شده و همچنین فایل‌هایی که هنوز وارد stage نشده اند (فایل‌های Unstage).

 

این دستور تفاوت تغییرات بین دو commit را نشان می‌دهد :

 

 

توسط این دستور می‌توانید لیست همه تغییرات مربوط به فایل مورد نظر خودتان را به همراه تاریخ و نام دولوپری که این تغییرات را اعمال کرده است، مشاهده کنید :

 

 

این دستور برای نمایش لیست همه تغییرات فایل‌ها است :

 

 

این دستور برای نشان دادن تاریخچه همه تغییرات به همراه اطلاعات تگ آنها است :

 

توسط این دستور، تاریخچه لیست تغییرات فایل file/directory به همراه لیست تغییرات آنها (diff) در طول کامیت‌ها، نمایش داده می‌شود :

 

 

دستور زیر برای unstage کردن فایل مورد نظر به همراه اعمال تغییرات جدید است :

 

 

این دستور برای Revert یا بازگردانی همه تغییرات از آخرین commit انجام شده است :

 

 

این دستور برای نشان دادن لیست تگ‌های موجود است :

 

 

این دستور برای اضافه کردن تگ به آخرین فایل‌ها و همینطور تغییرات انجام شده است :

 

 

این دستور برای حذف کردن تگ از روی ریپازیتوری است :

 

از این دستور برای حذف تگ تولید شده بر روی لوکال استفاده می‌شود :

 

 

توسط این دستور همه تگ‌هایی که بر روی دیپازیتوری ایجاد شده‌اند، ارسال می‌شوند :

 

این دستور برای اضافه کردن تگ‌ها به همراه توضیحات آنها است. پس از استفاده از این دستور، صفحه جدیدی باز می‌شود و می توانید توضیحات تگ جدید را در آن وارد کنید :

 

 

از این دستور برای ساخت تگ به همراه توضیحات آن استفاده می‌شود :

 

 

این دستور برای نشان دادن لیست تگ‌ها، همراه با توضیحات مربوط به هر تگ است :

 

تجربه :

گاهی اوقات ممکن است پس از اعمال تغییرات و همینطور commit کردن آن، هنوز آنها را push نکرده باشیم، در این حالت شاید نیاز داشته باشیم که به اندازه یک commit به عقب برگردیم که در این حالت از این دستور استفاده می‌کنیم :

 

نکته :

اگر بخواهیم پروژه‌ای را از گیت لب clone کرده و روی کامپیوتر خودمان راه اندازی کنیم، می‌توانیم از این دستور استفاده کنیم :

 

 

پس از اجرای این دستور، پوشه‌ای با نام project-name  که قبلا روی git  ساخته‌اید، بر روی کامپیوتر شما ساخته می‌شود. به طور مثال اگر بخواهیم پروژه خودمان را بر روی سرور pull کنیم و نیاز است که قبل از آن پروژه clone شود، شاید نخواهیم که نام پروژه، بر روی گیت و سرور، یکسان باشد و محتویات آن در پوشه‌ای با نام دلخواهی که ما می‌خواهیم، ریخته شود. در این حالت از دستور زیر استفاده می‌کنیم :

 

 

همچنین می‌توانیم به پوشه مورد نظر وارد شده و توسط این دستور نیز این کار را انجام دهیم :

 

 

گذاشتن علامت dot در انتهای دستور بسیار مهم است. در صورتی که آن را ننویسیم، پروژه ما با اسم ریپازیتوری clone خواهد شد.

تجربه شماره ۱ :

در یکی از پروژه‌‌های ما، فایلی با نام composer.json و به شکل اتفاقی، توسط یکی از افراد گروه، بر روی سرور تغییر داده شده بود. زمانی که ما می‌خواستیم آخرین تغییرات را بر روی سرور pull کنیم، این اجازه به ما داده نمی‌شد. دلیل این کار نیز این بود که باید اول تکلیف تغییراتی که بر روی سرور انجام شده بود مشخص می@شد.

همانطور که در تصویر مشاهده می‌کنید، تا زمانی که فایل تغییر داده شده، revert نشد، امکان   pull کردن آخرین تغییرات وجود ندارد. می‌توانیم از دستور زیر برای برگرداندن فایل به حالت قبلی استفاده کنیم :

 

 

تجربه شماره ۲ :

از دستور زیر زمانی که  بخواهید یک برنچ را به شکل کامل کپی کرده و روی یک برنچ دیگر قرار دهید، استفاده کنید :

 

 

برگرداندن پروژه به commit  مورد نظر

همانطور که در بالا توضیح دادیم، توسط دستور  reset git  می توانید پروژه با به commit  مورد نظر خودتان برگردانید البته در این حالت باید توسط دستور زیر و همچنین دارا بودن  ID مربوط به    commit  مورد نظرتان، به این commit  برگردید.

 

 

پس از اجرای این دستور، تمامی فایل‌های اضافه ای که بعد از  commit  کردن ایجاد شده‌اند، باقی می‌مانند و می توانید آنها را نگه داشته و یا حذف کنید. اما اگر بخواهید، تمامی تغییرات و فایل‌های اضافه حذف شده و فقط به commit  قبلی برگردید، باید از دستور زیر استفاده کنید :

 

 

بارگذاری پروژه بر روی GitLab

پس از ایجاد پروژه در گیت‌لب، می‌توانید توسط clone کردن، این پروژه را بر روی لوکال خودتان ایجاد کنید. شاید برایتان این سوال ایجاد شود که اگر فولدر پروژه قبلا ایجاد شده باشد، و بخواهیم آن را بر روی git  ارسال کنیم، باید چطور این کار را انجام دهیم؟

پس از ایجاد پروژه بر روی گیت‌لب، تصویر زیر که حاوی راهنمایی‌های مناسبی است برای شما نمایش داده می‌شود :

همانطور که در این راهنمایی‌های موجود در تصویر مشاهده می‌کنید، یکی از این دو کار را باید انجام دهیم. یا باید پروژه را clone کنید و یا اینکه اگر فولدر پروژه از قبل وجود دارد و می‌خواهید آن را بر روی گیت‌لب قرار دهید، کدهای زیر را به ترتیب اجرا کنید :

 

 

ارسال دیدگاه

19 − 12 =

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

پیام با موفقیت ثبت شد.
خطایی رخ داده است.