وبلاگ

گیت چیست؟ یک تعریف مقدماتی از Git

آموزش کامل Git - دوره The Ultimate Git Course - دوره آموزش Git و github

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

گیت يک سيستم کنترل نسخه(version control system) است که توسعه دهندگان از آن در سراسر دنيا استفاده مي کنند. و به شما کمک مي کند نسخه هاي مختلف کد برنامه خود را رديابي کنيد . و با توسعه دهندگان ديگر همکاري کنيد.

اگر بر روی یک پروژه برای بازه ای طولانی کار می کنید ، ممکن است بخواهيد رديابي کنيد که چه تغييراتي توسط چه کسي و در چه زماني انجام شده است. اين مساله در صورت پیش آمدن اشکالی در کد ، اهميت بسیار بیشتری پيدا مي کند! Git مي تواند در اين زمينه به شما کمک کند.

اما Git در ابتدا مي تواند کمي ترسناک و گيج کننده باشد. خصوصا زمانی که براي اولين بار يادگيري آن را شروع مي کنيد ، بنابراين در اين مقاله من Git را به روشي قابل درک براي شما معرفي مي کنم. ما موضوعاتي مانند مخازن ، تعهدات ، شاخه ها .(repositories, commits, branches).اینکه git چیست؟ و github چیست و موارد ديگر را پوشش خواهيم داد . پس بیایید شروع کنیم!

دوره آموزش کامل گیت و گیت هاب را به رایگان از یودمی ایران تهیه کنید

آنچه در اين مقاله بررسي خواهيم کرد:

Git چيست؟

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

براي بررسي اينکه آيا Git را بر روي رايانه خود نصب کرده ايد مي توانيد از این دستور در ترمینال خود استفاده کنید:

git --version

اگر Git را قبلاً نصب کرده باشید ، مي بينيد که چه نسخه اي از آن را داريد. اگر Git را نصب نکرده ايد ، مي توانيد به وب سايت Git مراجعه کرده و به راحتي دستورالعمل هاي نصب را براي دانلود و نصب نسخه صحيح سيستم عامل خود دنبال کنيد.


GitHub چيست؟

GitHub محصولي است که به شما امکان مي دهد پروژه هاي Git خود را در جايي (به عبارتي در فضای ابری) در يک سرور از راه دور ميزباني کنيد.

مهم است که به ياد داشته باشيد که گیت همان GitHub نيست. GitHub فقط يک سرويس ميزباني است. شرکت هاي ديگري هستند که خدمات ميزباني را ارائه مي دهند که در واقع همان کار GitHub را انجام مي دهند ، مانند Bitbucket و GitLab.

گیت چیست - تفاوت git و  - گیت چیستgithub
git چیست(تفاوت git و github)



نحوه شروع کار با Git

ترمينال در مقابل رابط کاربري گرافيکي

شما هم مي توانيد با تايپ دستورات در ترمينال از Git استفاده کنيد . هم مي توانيد از رابطهای کاربري گرافيکي (GUI) مانند Sourcetree يا GitKraken استفاده کنيد.

اگر ترمينال را انتخاب کنيد ، بايد تحقیق و مطالعه کنيد که به کدام دستورات Git نياز داريد.

خوشبختانه شما مجبور نيستيد اينها را دانه به دانه ياد بگيريد و حفظ کنید . به جز تعداد انگشت شماري از دستوراتي که معمولاً استفاده خواهيد کرد ، بقيه موارد را مي توانيد هر زمان که احتياج داشتيد با یک جست و جوی ساده به دست بیاورید. (اين کاري است که اکثر توسعه دهندگان انجام مي دهند ، حتي کساني که چندين دهه تجربه دارند). Git مستندات مفصلي را در وب سايت خود ارائه مي دهد .

اگر استفاده از رابط کاربري گرافيکي را انتخاب کنيد ، اقدامات مختلفي که بايد انجام دهيد به صورت تصويري نمايش داده مي شود.

چه استفاده از ترمينال را انتخاب کنید چه رابط کاربري گرافيکي، بايد اصول کار Git را درک کنيد تا با اطمينان از آن استفاده کنيد.

براي ادامه مقاله git چیست ، ما مثالهايي را با استفاده از Git در ترمينال با شما به اشتراک خواهيم گذاشت. اما اگر از GUI استفاده کنيد ، مراحلي که ما به اشتراک مي گذاريم بسيار شبيه به هم هستند. چرا که هسته کار یکی است.


نحوه تهيه پوشه پروژه خود در Git

براي استفاده از Git بايد پروژه اي داشته باشيم که قصد داریم نسخه آن را کنترل کنيم. اين مي تواند يک پروژه جديد باشد يا يک پروژه ای که از قبل روی آن کار کردیم.

اگر اين يک پروژه جديد است ، پس ما بايد يک پوشه پروژه جديد ايجاد کنيم (نکته: ما مي توانيم از دستور mkdir برای ساخت پوشه استفاده کنيم ) و سپس به پوشه آن پروژه در ترمينال برويم .

اگر بخواهيم يک پروژه موجود را انتخاب کنيم ، به سادگي به پوشه آن پروژه از طربق ترمينال مي رويم.

در مثالی که ما می زنیم، يک پوشه برای پروژه جديد ايجاد خواهيم کرد به نام novel.

ساخت پوشه برای پروژه مان
ساخت پوشه برای پروژه مان (git چیست, گیت چیست)


نحوه ايجاد Git Repository

وقتي وارد پوشه پروژه خود شديم ، براي شروع استفاده از Git بايد مخزني را با استفاده از دستور git init ايجاد کنيم .

هنگامي که دستور را با تايپ کردن آن در ترمينال و فشار دادن enter اجرا مي کنيم .به نظر مي رسد که اتفاق خاصي نيفتاده است. اما اشتباه نکنید ، Git گاهی اوقات بسیار ساکت و بی سر و صدا عمل می کند اما در پشت صحنه اقدامات زيادي را انجام مي دهد.

براي اينکه ببينيم Git در پشت صحنه چه کاري انجام داده است ، بايد فایل هاي مخفي خود را مشاهده کنيم. مطمئن شويد که پوشه پروژه خود را در سيستم فايل سیستم عاملتان باز می کنيد. اگر در سيستم عامل Mac هستيد مي توانيد Command + Shift + Dot را وارد کنيد تا بتوانيد فایل هاي مخفي را در سيستم فايل خود مشاهده کنيد. اگر از سيستم عامل Windows استفاده مي کنيد ، مي توانيد تنظيمات نماي خود را تغيير دهيد تا بتوانيد پرونده هاي مخفي را در سيستم خود مشاهده کنيد.

به منظور مشاهده فایل هاي مخفي با استفاده از ترمينال مي توانيم از دستور زیر استفاده کنيم :

ls -a

چیزی که اکنون بايد مشاهده کنيم پوشه اي به نام git. در داخل پوشه پروژه ماست. اين همان چيزي است که مخزن (Repository) ما را نشان مي دهد.

ساخت repository
گیت چیست- ساخت repository


Git Repository چیست؟

Repository ما همان پوشه git. در داخل پوشه پروژه ما است. آن کليه تغييرات ايجاد شده در فایل هاي پروژه ما را رديابي کرده و آن تاريخ را با گذشت زمان ثبت مي کند.

مخزني (repository) که ما در رايانه خود داريم به عنوان مخزن محلي (local repository) شناخته مي شود .

پيش از اين ما به خدمات ميزباني مانند GitHub ، GitLab و Bitbucket اشاره کرديم. هنگامي که ما مخزن محلي خود را به يکي از اين سرويس ها وارد مي کنیم( همان آپلود کردن به آن سرویس)، مخزني که در اين سرويس در فضاي ابري قرار می گیرد به عنوان مخزن از راه دور (remote repository) شناخته مي شود .

استفاده از يک مخزن از راه دور براي اينکه بتوانيد با افراد ديگر بر روی پروژه ای همکاري کنيد . همچنين در صورت بروز اتفاقي براي لپ تاپ يا رايانه ما ، از پروژه هاي خود بک آپ داشته باشید ،بسیار مهم است.


نحوه همکاري با ساير توسعه دهندگان با استفاده از Git

اگر توسعه دهنده ديگري بخواهد در پروژه ما با ما همکاري کند ، مي تواند remote repository را از سرويس ميزباني که شما پروژه تان را در آن بارگذاري کرده ايد ، Clone (يا به عبارت ديگر دانلود ) کند.

اين به آنها امکان مي دهد پروژه را روي رايانه خود نيز داشته باشند. پس از پروژه موجود در رايانه آنها نیز به عنوان مخزن محلي (local repository) ياد مي شود.

در يک پروژه با چندين توسعه دهنده ، هر کدام يک مخزن محلي (local repository) در رايانه خود دارند. و يک remote repository وجود دارد که همه آنها به آن کمک مي کنند و از آن براي به اشتراک گذاشتن کارهاي خود استفاده مي کنند.

مخزن های محلی و از راه دور
remote repository و local repository


Git چگونه تغييرات را رديابي مي کند؟

به منظور ذخيره نسخه هاي مختلف پروژه خود در Git ، ما از commits استفاده می کنیم.


Git Commit چيست؟

commit يک نسخه از پروژه شما مي باشد. اين يک نسخه مستقل از پروژه شما است .پس به کليه فایل ها و پوشه هايي که بخشي از آن نسخه هستند اشاره دارد.


چگونه مي توانم در Git یک commit بسازم؟

براي درک چگونگي ساخت commit ، بايد در مورد سه فضاي مختلف درون گیت- working directory, staging area و commit history – اطلاعات کسب کنيم.

working directory اساسا همان محتويات پوشه پروژه ما ( يک دايرکتوري همان فولدر است) را بیان می کند. در واقع نوعي محل کار است که در آن مي توانيم پرونده هايي را به پروژه خود اضافه ، ويرايش و حذف کنيم.

staging area و commit history بخشي از مخزن(repository) ما هستند.

staging area مانند يک فضاي پيش نويس برای پروژه ما است. جايي است که مي توانيم نسخه هاي به روز شده فایل ها را اضافه کنيم يا فایل ها را حذف کنيم تا آنچه را مي خواهيم در commit بعدي خود .(نسخه بعدی پروژه خود). قرار دهيم ، انتخاب کنيم. در git. پوشه staging area با فايلي به نام index نمايش داده مي شود.

و در نهایتcommit history جايي است که commit های ما پس از ساخته شدن ذخیره می شوند . در پوشه hot. تاريخچه commit ها با پوشه اي به نام objects نمايش داده مي شود.

Working directory, repository, staging area, وcommit history
Working directory, repository, staging areaوcommit history


یک نمونه رایج از نحوه کارکرد Git


مرحله 1 – ويرايش فایل ها

اگر قصد شروع پروژه جديدي داريد ، اولين فایل را در پروژه جديد خود ايجاد مي کنيد.ما در پروژه ی مثال خود با پوشه ای به نام novel يک فايل متني ساده به نام ایجاد chapter1 می کنیم. ما مي توانيم اين کار را با استفاده از ويرايشگر متن يا مستقيماً در ترمينال انجام دهيم. در این مثال ما اين کار را مستقيماً در ترمينال با تايپ touch chapter1.txt انجام مي دهيم .

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

بعد ، مي توانيم از دستور git status استفاده کنيم . اين دستور وضعيت working directory وstaging area را به ما نشان می دهد .و اگر تفاوتي بين اين دو وجود داشته باشد به ما مي گويد.

اضافه کردن فایل به پروژه مان
اضافه کردن فایل به پروژه مان(git چیست,گیت چیست)

در مثال ما ، فقط يک فایل جديد به پروژه جديد خود اضافه کرديم. هنگامي که از دستور git status استفاده مي کنيم ، Git به ما مي گويد که ما يک فایل رديابي نشده در فهرست کار خود داريم .و بايد ازدستور git add براي وارد کردن آن در commit ، استفاده کنيم. که ما را به مرحله 2 مي رساند.

فایل در پروژه ما-گیت چیست
فایل در پروژه ما(گیت چیست)



مرحله 2 – اضافه کردن فایل ها به Staging Area

ما مي توانيم از دستور git add براي اضافه کردن فایل هاي جديد يا به روز شده درStaging Area استفاده کنيم. اگر تصميم گرفتيم که نمي خواهيم برخي از پرونده هايي را که تغيير داده ايم در commit بعدي خود قرار دهيم.می توانیم به راحتي مطمئن مي شويم که آن پرونده هاي خاص را به قسمت Staging Area اضافه نمی کنیم.

اضافه کردن فایل به staging area
گیت چیست -اضافه کردن فایل به staging area

در مثال ما ، ما با استفاده ازدستور git add و دادن نام فايل ، تنها فايلي را که در پروژه خود داشتیم به منطقه staging اضافه کردیم . پس اگر اکنون از دستور git status استفاده کنيم مي بينيم که Git به ما خواهد گفت که فایل خود را به Staging Area اضافه کرده ايم.

فایل های ما در staging area
گیت چیست -فایل های ما در staging area

اين نکته را نيز به یاد داشته باشيد که فايل هاي شما از working directory به staging area کپی می شوند و جا به جا نمی شوند.


مرحله 3 – انجام commit

سرانجام ، براي انجام commit از دستور git commit با گزينه m- استفاده مي کنيم .سپس یک متن برای commit خود می گذاریم مثلا:

 git commit -m "in avalin commit ma ast".
ساخت اولین commit
گیت چیست -ساخت اولین commit

سپس مي توانيم از دستور git log براي ليست کردن همه commit هایی که در پروژه خود داريم به ترتيب زماني معکوس استفاده کنيم. در مثال ما فقط يک commit داريم.

اکنون ما اولين commit خود را در پروژه خود انجام داده ايم! به عبارت ديگر ما نسخه اول پروژه خود را ذخيره کرده ايم.

commit ها داراي يک هش تشکیل شده از 40 کاراکتر هستند . commit hash ترکیبی از 40 حرف و اعداد است .که به عنوان يک نام براي commit و يا يک راه براي اشاره به آن استفاده می شود.

همچنين مي توانيم اطلاعاتي از جمله اينکه چه کسي commit را انجام داده است . چه زماني commit انجام شده است و پيام commit را مشاهده کنيم.


Commit History در Git چيست؟

repository متشکل از چندين commit است. و در ساده ترين حالت هر commit داراي يک commit اصلي است که همان commit ای است که قبل از آن ساخته شده. به همين دليل است که يک commit به commit که قبل از آن در تصوير زير آمده اشاره مي کند.

مباحث پيچيده تري نیز وجود دارد که وارد حوزه چندين شاخه و ادغام مي شويم . اما از حوصله اين مقاله خارج است.

git چیست-تاریخچه commit ها
تاریخچه commit ها(git چیست,گیت چیست)


سخن آخر، Branch در Git چيست؟

شاخه(Branch) يک اشاره گر به commit است. branch پيش فرض در Git با نام master يا main شناخته مي شود .

با رفتن به پوشه git. و سپس باز کردن پوشه refs،سپس باز کردن پوشه heads و در آخر باز کردن فایلي به نام master ، مي توانيم ببينيم که branch يک اشاره گر به یک commit است . درون اين پرونده خواهيم دید که يک هش وجود دارد. اين هش همان هش commit ما است که branch در حال اشاره کردن به آن است.

ما مي توانيم يک بار ديگر از دستور git log براي ليست کردن همه commit های در repository خود استفاده کنيم و خواهيم دید که آن هش کنار commit ی که برچسب master بغل آن در پرانتز است ، قرار مي گيرد.

git چیست-گیت چیست-نمایش شاخه master در پوشه git.
نمایش شاخه master در پوشه git.

در ترمينال با تايپ کردن دستور git branch مي توان ليستي از همه branch ها را مشاهده کرد .

شاخه ها واقعاً مهم هستند زيرا همکاري با ديگران و کار همزمان روي چندين ويژگي يا قسمتهاي مختلف پروژه شما را بسيار آسان مي کند.

با ثبت commit های بيشتر ، branch اي که در آن هستيم به روز مي شود تا به آخرين commit ثبت شده اشاره کند.

گیت چیست - اشاره گر master branch در حال اشاره به آخرین commit ما-git چیست
اشاره گر master branch در حال اشاره به آخرین commit ما

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

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Refund Reason

0
    0
    سبد خرید
    سبد خرید شما خالی استبازگشت به دوره ها