گیت یک نرمافزار اوپن سورس است که در سال 2005 از سوی لینوس تروالدز ایجاد شده است. این ابزار یک «سیستم کنترل نسخه» (Version Control System) است که در ابتدا برای هماهنگ کار چند توسعهدهنده روی کرنل لینوکس ساخته شده بود. سیستمهای کنترل نسخه زیادی مانند CVS ،SVN ،Mercurial و غیره وجود دارند، اما گیت امروزه به یک نرمافزار استاندارد برای کنترل نسخه تبدیل شده است.
برای شروع استفاده از Git باید بدانید که کجا میتوانید ریپازیتوریهای خود را میزبانی کنید. پلتفرمهای میزبانی زیادی وجود دارند که میتوانید کد خود را به طور رایگان روی آنها میزبانی کنید. برخی گزینهها رایگان نیستند، اما شما به جز در موارد خاص، به اغلب آنها نیازی نخواهید داشت.
در ادامه سه مورد از محبوبترین سرویسهای میزبانی گیت را ملاحظه میکنید:
نکته: پلتفرمهای میزبانی به دو روش در دسترس هستند که یکی روش کلود (میزبانی آنلاین) و دیگری میزبانی مستقل روی سرور شخصی (میزبانی خصوصی) است.
برای انجام هر عملیاتی روی ریپازیتوری های آنلاین(remote) مثل عملیات push یا pull، باید نام کاربری و کلمهی عبور خود را وارد کنید که تکرار این موضوع شاید در طولانی مدت آزار دهنده باشد.
در این آموزش قصد داریم روشی را معرفی کنیم که در آن دیگر نیازی به هر بار وارد کردن نام کاربری و کلمهی عبور نیست. برای انجام این کار، از ssh-key استفاده میکنیم. ssh key ها ابزاری برای اتصال امن از طریق بستر ssh به یک ریموت سرور میباشند و دو طرف از طریق آن احراز هویت میشوند.
جهت استفاده از قابلیت های گیت نیاز است که ابزار Git را روی سیستم خودمان نصب کنیم.
بعد از نصب Git از طریق لینک بالا نیاز است که یک ریپازیتوری local ایجاد کنیم.
برای اینکار Git Bash را اجرا کنید و به مسیر مورد نظر جهت ساخت ریپازیتوری می رویم و با دستورات زیر یک ریپازیتوری ایجاد می کنیم.
mkdir sshKeySetup cd sshKeySetup git init git config --global user.userName yourUserName git config --global user.email yourEmail
مرحله بعدی ایجاد ریپازیتوری روی سرور گیت می باشد که ما در این آموزش GitHub را انتخاب کرده ایم.
ابتدا به وب سایت GitHub مراجعه کنید یک حساب کاربری ایجاد کنید و سپس وارد حساب کاربری خود شوید .
از بخش Your repositories یک ریپازیتوری جدید ایجاد می کنیم.
تنظیمات سطح دسترسی و... بر اساس نیاز خودتون تنظیم کنید و ریپازیتوری را ایجاد کنید.
پس از ایجاد ریپازیتوری کافی است که لینک ssh مربوط به ریپازیتوری را کپی کنید و در ریپازیتوری local بعنوان remote تنظیم کنید.
بعد از کپی کردن لینک ssh به مسیر ریپازیتوری local بر می گردیم و لینک remote سرور را جهت push , pop تنظیم می کنیم.
cd sshKeySetup git remote add origin git@github.com:aramrahmani/sshKeySetup.git
تا اینجای آموزش یک ریپازیتوری local ایجاد کردیم و به یک سرور آنلاین گیت هاب وصل کردیم. در ادامه کافی است که یک جفت کلید خصوصی و عمومی را روی سیستم خودمان ایجاد کنیم. کلید خصوصی را روی سیستم خودمان تنظیم می کنیم و کلید عمومی رو سرور گیت هاب تنظیم می کنیم.
برای ایجاد ssh-key باید پکیج ssh روی سیستم ما نصب باشد زمان نصب Git Bash این پکیج به صورت خودکار نصب می شود.(جهت اطمینان از نصب این پکیج کافی است که دستور ssh را در محیط cmd تایپ کنید.
ssh
برای ایجاد کلید های خصوصی و عمومی می توانید از دستور زیر استفاده کنید.
ssh-KeyGen
پس از اجرای دستور فوق، در آدرس ~/.ssh ، دو فایل id_rsa و id_rsa.pub ساخته میشوند که به ترتیب کلید خصوصی(private key) و کلید عمومی(public key) شما میباشند.
گام بعدی کلید عمومی را با یک ادیتور باز کنید و محتوای آن را کپی کنید تا در سرور گیت هاب اضافه کنیم.
به سایت گیت هاب برگردید وارد حساب کاربری خود شوید از بخش حساب کاربری وارد بخش تنظیمات شوید و از منو سمت چپ گزینه SSH and GPG Keys را انتخاب کنید.
گام بعدی باید کلید خصوصی رو روی سیستم خودمون تنظیم کنیم . برای این کار به محیط Git Bashبروید و دستورات زیر را اجرا کنید.
eval $"(ssh-agent )" ssh-add /Users/you/.ssh/id_rsa
اگر با پیغام زیر مواجه شدید یعنی تنظیمات به درستی انجام شده است.
$ ssh-add id_rsa
Identity added: id_rsa
در نهایت جهت تست یک فایل متنی از طریق ریپازیتوری local به سرور آنلاین push می کنیم. برای این کار یک فایل متنی با نام test.txt در ریپازیتوری local ایجاد می کنیم و با استفاده از دستورات زیر فایل را push می کنیم.
git add test.txt git commit test.txt -m "add test.txt" git push origin master
اگر پس از اجرای دستور push با خطای زیر مواجه شدید:
با استفاده از دستور زیر این خطا را رفع کنید و مجددا push کنید.
ssh-keyscan github.com >> ~/.ssh/known_hosts git push origin master
با مراجعه به سایت گیت هاب و ریپازیتوری ساخته شده مشاهده می کنید که فایل test.txt ایجاد شده است.
در این مقاله سعی شد تنظیم ssh-key برای گیت به صورت ساده و پایه آموزش داده شود امیدوارم مفید واقع بشه.