در جلسه قبل با اکثر دستورات اصلی git آشنا شدید، البته در حوزه کار با فایل ها به صورت محلی! در حال حاضر پروژه ما به صورت local (محلی - یعنی روی سیستم خودمان) است بنابراین فقط در پوشه git. وجود دارد. با اینکه حالت local قابلیتی بسیار کاربردی است اما در اکثر مواقع نیاز است که پروژه را روی یک سرور آنلاین قرار دهیم و بحث جلسه امروز نیز همین است. من مقاله این جلسه را به چهار قسمت اصلی تقسیم کرده ام:
remote repository یعنی هر repository ای که به صورت محلی نباشد. برای آپلود کردن پروژه به repository آنلاین باید ابتدا به آن متصل شویم. من یک آدرس جدید به نام https://github.com/Amir-Zouerami/roxo-ir-sample را ساخته ام تا با آن کار کنیم. شما می توانید به راحتی با ورود به GitHub و کلیک روی علامت + (بالا و سمت راست صفحه) یک repository جدید بسازید. برای لینک کردن repository محلی خودمان با GitHub باید دستور زیر را در ترمینال خود وارد کنیم:
$ git remote add origin https://github.com/Amir-Zouerami/roxo-ir-sample.git
نکته: اگر هنگام نصب Git گزینه استفاده از command prompt ویندوز را انتخاب کرده باشید می توانید در همان محیط با Git کار کنید، در غیر این صورت git bash را باز کنید (در منوی start ویندوز آن را سرچ کنید) و کدها را درون آن بنویسید.
عجیب نیست که پروژه ما چندین repository آنلاین داشته باشد بنابراین برای اینکه بتوانیم آن ها را از هم تشخیص دهیم نام های مختلفی برایشان انتخاب می کنیم. معمولا توسعه دهندگان برای repository اصلی نام origin را انتخاب می کنند بنابراین ما هم در دستور بالا نام origin را انتخاب کرده ایم اما شما می توانید هر نامی که دوست داشتید انتخاب کنید. همچنین توجه داشته باشید که به جای آدرس https://github.com/Amir-Zouerami/roxo-ir-sample.git باید آدرس repository خودتان را قرار دهید.
حالا به repository خود متصل شده ایم.
پس از آنکه به repository خود متصل شده ایم باید فایل پروژه خود را به سرور بفرستیم. به همین پروسه ارسال commit محلی به سرور push می گویند بنابراین اگر عملیات push را جایی دیدید سر در گم نشوید؛ هر زمان که بخواهیم repository روی سرور (remote repository) خود را بروزرسانی کنیم باید از دستور push استفاده کنیم.
دستور push دو پارامتر می گیرد:
حالا می گوییم:
$ git push origin master
سپس از شما درخواست می شود نام کاربری و ایمیل خود را وارد کنید تا وارد حساب خود شوید. اگر two-factor authentication را فعال کرده باشید (چه با شماره تلفن و چه از طریق نرم افزار های authenticator) از شما خواسته می شود که کد آن را نیز ارسال کنید.
در صورتی که این مرحله را به طور صحیح انجام دهید، باید چنین نتیجه ای دریافت کنید:
$ git push origin master Enumerating objects: 3, done. Counting objects: 100% (3/3), done. Writing objects: 100% (3/3), 215 bytes | 215.00 KiB/s, done. Total 3 (delta 0), reused 0 (delta 0) To https://github.com/Amir-Zouerami/roxo-ir-sample.git * [new branch] master -> master
اگر به پروفایل GitHub خود رفته و سپس روی repository مورد نظرتان کلیک کنید باید فایل hello.txt را در آنجا ببینید.
در حال حاضر تمام کاربران می توانند repository شما را روی سایت GitHub ببینند، آن را دانلود کنند و یک کپی کامل از پروژه شما را با دستور git clone داشته باشند، مگر اینکه در هنگام ایجاد repository در سایت GitHub آن را روی private تنظیم کرده باشید.
به طور مثال اگر ما از پروژه خودمان clone (به معنی «شبیه سازی») بگیریم:
$ git clone https://github.com/Amir-Zouerami/roxo-ir-sample.git
و حالا به پوشه git_exercise مراجعه کنیم می بینیم که یک پوشه به نام roxo-ir-sample در آن ایجاد شده است. در واقع repository ما درون پوشه ما کپی شده است. حالا فرض کنید که میخواهیم از پروژه https://github.com/buzinas/simple-scrollbar یک clone ایجاد کنیم:
$ git clone https://github.com/buzinas/simple-scrollbar
حالا یک پوشه دیگر به نام simple-scrollbar در پوشه git_exersice ایجاد می شود.
نکته: ما درون پوشه git_exercise هستیم (استفاده از دستور cd در ابتدای جلسات قبل) به همین دلیل repository ها در این پوشه clone می شوند. در صورتی که می خواهید آن ها را در پوشه دیگری clone کنید ساده ترین راه این است که به پوشه مورد نظر بروید و سپس کلید shift را نگه دارید و کلیک راست کنید. از آنجا گزینه git bash here را انتخاب کنید تا ترمینال git bash برایتان باز شود. حالا اگر دستور git clone را اجرا کنید، repository ها درون این پوشه کپی می شوند.
اگر تغییراتی را درون repository خود ایجاد کنید، افراد می توانند با استفاده از دستور pull (به معنی «کشیدن» - برخلاف دستور push به معنی «هل دادن») تمامی این تغییرات را دانلود کنند. به طور مثال:
$ git pull origin master From https://github.com/Amir-Zouerami/roxo-ir-sample * branch master -> FETCH_HEAD Already up to date.
از آنجایی که هیچ تغییری در این repository انجام نشده است پیام Already up to date (به معنی «در حال حاضر بروز است») را دریافت می کنیم.
در قسمت بعد وارد مبحث branch ها خواهیم شد. امیدوارم این قسمت برای شما مفید بوده باشد.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.