آموزش ارسال (push) کد به گیت هاب

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


این مطلب به شما نشان می‌دهد که چگونه با استفاده از خط فرمان به GitHub کد بفرستید یا به اصطلاح push کنید. در پایان در مورد اینکه چرا درخواست‌های pull باید چیزی باشد که یاد می‌گیرید و اینکه چگونه با push کد مرتبط هستند صحبت می‌کنیم.

 

یک توسعه دهنده یا برنامه نویس چگونه از GitHub استفاده می‌کند

GitHub  به دلایل متعدد یک ابزار ضروری برای توسعه دهندگان و برنامه نویسان در سراسر جهان است که به ایشان  امکان می‌دهد کد خود را در یک مکان متمرکز ذخیره کنند تا دسترسی به آن را آسان نموده و همکاری بیشتری با توسعه دهندگان دیگر داشته باشند.
همچنین می‌توان تغییرات ایجاد شده در کد را ردیابی و در صورت لزوم به نسخه‌های قبلی برگرداند. علاوه بر این، GitHub ابزارهایی برای کمک به مدیریت مشکلات و باگ‌ها ارائه می‌دهد و این امر حفظ codebase را ساده‌تر می‌نماید.
همکاری یکی از دلایل کلیدی برای استفاده از GitHub به عنوان سیستم کنترل نسخه(VCS)  ریموت است که امکان می‌دهد کد را به اشتراک گذاشته، تغییرات را پیگیری نموده و بدون سر و صدا در مورد مسائل همکاری کنید که می‌تواند به کارایی کمک نموده و منجر به کیفیت بهتر کد شود.

 GitHub  راهی برای مدیریت چندین نسخه از یک codebase، ردیابی تغییرات و در صورت نیاز به عقب برگرداندن کدها است. به این ترتیب، شما می خواهید یاد بگیرید که چگونه به GitHub پوش کنید، چون این دانش تقریبا هر روز برای شما مفید خواهد بود.
 

نحوه فرستادن (Push کردن) به GitHub از خط فرمان

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


آنچه برای پوش کردن به GitHub نیاز دارید

مهم است که اطمینان حاصل کنید که پروژه خود را برای پشتیبانی با استفاده از remote repoو integrating pushing در جریان کاری(workflow) خود تنظیم کرده‌اید. پس قبل از هر چیز، به یک مخزن Git نیاز دارید، یک repo برای ذخیره کد در آن ( مانند پوشه‌ای که حاوی فایل‌های مرتبط با پروژه شما است)

همچنین به یک حساب کاربری GitHub نیاز دارید. در واقع، می‌توانید از هاست VCS آنلاین دیگری مانند GitLab، BitBucket، Buddy و غیره نیز استفاده کنید. دستورالعمل‌هایی که در اینجا به شما می‌دهیم، در بیشتر موارد به پلتفرم‌های دیگر منتقل می‌شوند. با این حال مقایسه این هاست‌ها از حوصله این مطلب خارج است.

برای ارسال کد خود به GitHub، می‌توانید از خط فرمان یا رابط کاربری گرافیکی (GUI) استفاده کنید. بخش عمده مطلب ما در مورد گردش کار خط فرمان خواهد بود، اما بخشی نیز در مورد استفاده از رابط کاربری گرافیکی وجود دارد. توجه داشته باشید که هر رابط کاربری گرافیکی ممکن است فرآیند متفاوتی برای پوش کردن به GitHub داشته باشد، به این معنی که برای اینکه بهترین استفاده را از آن ببرید باید روی یک برنامه خاص تمرکز کنید.
در نهایت، اطمینان حاصل کنید که دسترسی مناسب به مخزن خود دارید. داکیومنت GitHub بسیار جامع است و شما باید به دنبال HTTPS access tokens یا دسترسی SSH باشید. بدون این، قادر به انجام هیچ کاری نخواهید بود!
 

  1. یک مخزن GitHub ایجاد کنید

اولین قدم ایجاد یک مخزن آنلاین جدید در GitHub است. در حالی که می‌توانید این کار را از خط فرمان انجام دهید، انجام آن با استفاده از یک مرورگر وب هم بسیار ساده است.
پس از ورود یا ثبت نام به GitHub، به گوشه سمت راست بالای صفحه رفته و در کنار آواتار نمایه خود به دنبال یک منوی کشویی + بگردید. اگر این را باز کنید، چند گزینه به شما نشان می‌دهد که شامل New repository  هم است:

ایجاد  repository جدید در گیتهاب

پس از کلیک بر روی آن، به صفحه Create a New Repository می‌آیید که مجموعه تنظیماتی را برای کمک به تنظیم مخزن ریموت به شما نشان می‌دهد:

ایجاد repository  در GitHub

 

گزینه‌هایی که در اینجا تنظیم می‌کنید برای نیازهای پروژه شما منحصر به فرد خواهد بود. با این حال، اگر در حال حاضر یک مخزن لوکال  برای پوش کردن به GitHub دارید، تا حد ممکن کمتر تیک می زنیم تا برابری بین لوکال و ریموت را حفظ کنیم.

از اینجا روی دکمه Create Repository کلیک کرده و GitHub موارد زیر را تنظیم می‌کند. در این مرحله، با دستورالعمل‌هایی در مورد نحوه راه‌اندازی یک مخزن محلی جدید که با استفاده از خط فرمان به مخزن ریموت پیوند می‌دهد، به صفحه اصلی مخزن می‌آیید. مسیری که دنبال می‌کنید به این بستگی دارد که آیا هنوز مخزن ندارید یا می‌خواهید محتوای یک پروژه موجود را clone کنید.

اگر قبلا Git را راه اندازی نموده و مخزن لوکال خود را پر کرده‌اید، نیازی به انجام کاری از مرحله دو نخواهید داشت و می‌توانید مستقیم به مرحله سوم بروید، جایی که ما به دنبال ارسال کد به GitHub از مخزن لوکال هستیم.

خرید وی پی اس یک ماشین مجازی کامل است که امکان دسترسی SSH طبق آموزش را به آن خواهید داشت.
خرید وی پی اس در پنج موقعیت جغرافیایی ایران، ترکیه، هلند، آلمان و آمریکا با قابلیت تحویل آنی در پارسدو فراهم است.
  1. بخش اول - مخزن ریموت Git  را clone کنید

اگر هنوز یک مخزن لوکال ندارید، نسخه GitHub تنها نسخه خواهد بود. بهترین راه برای همگام سازی هر دو مکان، استفاده از دستور git clone در کامپیوتر شما است. با این حال، شما به URL برای مخزن خود نیاز دارید.
برای دریافت این مورد، به مخزن موجود در GitHub بروید و به دنبال گزینه سبز رنگ کشویی Code بالای لیست فایل‌های خود بگردید:

باز کردن منوی drop-down کد در گیتهاب


اگر این را نمی‌بینید، احتمالا به این دلیل است که هنوز یک مخزن populated ندارید. توجه داشته باشید که می توانید URL repo را از کادر آبی رنگ Quick Setup در بالای صفحه کپی کنید. به سادگی با استفاده از دکمه ها به HTTPS بروید و URL را کپی کنید.

استفاده از Quick setup برای کپی آدرس repo در گیت هاب


با این حال، ما ترجیح می‌دهیم یک فایل .gitignore تولید کنیم، زیرا به هر حال این چیزی است که شما به آن نیاز دارید. می‌توانید به کمک gitignore.io ابزارهایی که استفاده می‌کنید را جستجو نموده و از آنجا، یک فایل gitignore کامل برای آپلود در مخزن ایجاد کنید:

سایت  gitignore.io

صرف نظر از این، زمانی که بتوانید منوی کشویی Code را باز کنید، URL‌هایی را برای مخزن شما نشان می‌دهد. گزینه‌هایی برای HTTPS، SSH و موارد دیگر وجود خواهد داشت. با این حال، رویکرد ساده استفاده از URL HTTPS است. می‌توانید روی نماد Copy کوچک در کنار URL مورد نظر کلیک کنید تا آن را در کلیپ‌بورد خود کپی نمائید.

سپس به ترمینال یا خط فرمان خود برگردید و موارد زیر را اجرا کنید:


git clone

پس از اجرای دستور، Git مخزن ریموت را در محیط لوکال  شما کپی می کند.

  1. بخش دوم- Git را در پوشه پروژه لوکال خود راه اندازی کنید

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

  • ابتدا با استفاده از cd  به پوشه‌ای که می‌خواهید برای پروژه خود استفاده کنید، وارد شوید.
  • سپس دستور git init را اجرا کنید. با این کار Git در پوشه پروژه لوکال شما مقداردهی اولیه می‌شود و یک پوشه .git مخفی ایجاد می‌کند.
  • فایل .gitignore خود را به root پوشه لوکال پروژه خود اضافه کنید، زیرا نمی‌خواهید تغییرات مربوط به فایل های سیستم را انجام دهید.

در این مرحله، باید فایل‌های فعلی خود را ایندکس کنید. شما این کار را به روش معمولی با استفاده از git add انجام می‌دهید و سپس تغییرات را انجام می دهید:

git add .

git commit -m “Initial Commit”

git branch -M trunk

اگر هنوز از master تغییر نکرده اید، خط آخر شاخه اصلی شما را به چیزی دیگر که انتخاب می کنید تغییر می دهد. مورد دوم مشکل ساز است زیرا مفاهیم منفی برای slave دارد، بنابراین توصیه می شود آن را تغییر دهید. ما در اینجا از main استفاده کرده ایم. اگر می دانید این خط مورد نیاز شما نیست، می توانید آن را حذف کنید.

در این مرحله، شما آماده یادگیری نحوه پوش کردن به GitHub هستید!

 

  1. یک منبع جدید ریموت اضافه و کد خود را به GitHub پوش کنید

هنگامی که یک مخزن راه دور جدید در GitHub ایجاد کردید، باید یک remote origin جدید به مخزن لوکال خود اضافه کنید. این در واقع لینک مخزن ریموت شما است، به طوری که لوکال شما بداند تغییرات بالادستی را به کجا ارسال کند.

برای این کار دستور زیر را در ترمینال خود وارد کنید:


git remote add origin [github-url]

از نظر فنی، کنترلی که اضافه می‌کنید می تواند هر نامی باشد. با این حال، بیشتر آن را origin می‌نامند زیرا شما فقط از یک افزوده از راه دور استفاده می کنید و وضوح مطلق را ارائه می دهد. در این مرحله، می توانید با استفاده از موارد زیر به GitHub پوش کنید:


git push -u origin main

این دستور کد شما را به remote origin  جدید که origin نام دارد پوش می‌کند و شاخه بالادست را روی  Main تنظیم می‌کند. همچنین می‌توانید در صورت نیاز، هر شاخه‌ای را به مخزن از راه دور push دهید.

 


پس از تکمیل فرآیند، باید تأیید کنید که push موفقیت آمیز بوده است. چند راه برای این کار وجود دارد. به عنوان مثال، می توانید به مخزن در GitHub بروید و بررسی کنید که آیا تغییرات live هستند یا خیر:

بررسی تغییرات زنده و لحظه‌ای در repo گیت هاب

با این حال، می توانید git log را از خط فرمان نیز اجرا کنید:

نمایش خروجی دستور  git log


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

 

چگونه بدون خطا به GitHub پوش کنید

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

نمایش RSA key errorبعد از پوش کردن به گیت

این زمانی اتفاق می‌افتد که از قبل از طریق یک پروژه قدیمی، اما با استفاده از یک کلید RSA قدیمی، یک اتصال امن به GitHub داشته باشید. ما راهنمایی در مورد چگونگی رفع این مشکل به طور کلی داریم. با این حال، برای رفع این مشکل به طور خاص برای GitHub، می توانید موارد زیر را اجرا کنید:


ssh-keygen -R github.com


با این کار فایل known hosts  شما به روز می شود، سپس یک پیام تایید نمایش داده می شود:

 

حذف host key  از ترمینال

از اینجا، برای افزودن کلید RSA جدید به فایل known hosts خود، موارد زیر را اجرا کنید:


curl -L https://api.github.com/meta | jq -r '.ssh_keys | .[]' | sed -e 's/^/github.com /' >> ~/.ssh/known_hosts

 

در واقع، ممکن است در اینجا نیز خطای مربوط به بسته jq را مشاهده کنید. اگر این مورد است، بسته به سیستم عامل خود می توانید یکی از موارد زیر را اجرا کنید:

 

  • Windows: curl -L -o /usr/bin/jq.exe https://github.com/stedolan/jq/releases/latest/download/jq-win64.exe
  • Mac: brew install jq
  • Linux: apt-get update | apt-get -y install jq


پس از نصب، دستور را دوباره اجرا کنید و منتظر بمانید تا کامل شود.


در نهایت می‌توانید دستور git push را دوباره اجرا کنید و این بار باید فرآیند را کامل ببینید. در غیر این صورت، این مشکل احتمالاً به دلیل کلیدهای SSH نادرست است یا حتی نیاز به راه‌اندازی اتصالات امن با استفاده از کلیدهای اختصاصی دارد. ما یک راهنمای کامل در مورد نحوه تولید کلیدهای SSH جدید برای GitHub داریم و مستندات GitHub نیز در اینجا جامع است.


رابط کاربری گرافیکی برای ارسال کد به GitHub

در حالی که فرآیند ارسال کد به GitHub پس از راه اندازی ساده است، مراحل، هشدارها و فرآیندهای فرعی زیادی وجود دارد که باید در نظر بگیرید. 
به عنوان مثال، شما تمام عملکردهای خط فرمان را دارید، اما از یک رابط زیباتر استفاده می کنید (در برخی موارد با کشیدن و رها کردن). یک رابط کاربری گرافیکی می تواند فرآیند را ساده کند.
اگر می دانید که هرگز نیازی به استفاده از برنامه رابط کاربری گرافیکی خود برای دسترسی به یک میزبان VCS راه دور دیگر ندارید، دسکتاپ GitHub می تواند عالی باشد.

این برنامه به شما امکان می دهد مخازن را ایجاد و مدیریت کنید، تغییرات را انجام دهید و آن تغییرات را تنها با چند کلیک به GitHub پوش کنید. با استفاده از قابلیت کشیدن و رها کردن کار می‌کند و دارای یک ابزار visual diff است که شناسایی تغییرات کد بین نسخه‌ها را ساده می‌کند:

استفاده از GitHub Desktop


Sourcetree یکی دیگر از Git GUI محبوب است که ما در جمع بندی ابزارهای توسعه وب خود به آن نگاه می‌کنیم. در حالی که VCS ترجیحی BitBucket است (به دلیل اینکه محصول Atlassian است)، همچنان می‌توانید از این ابزار با GitHub استفاده کنید. ابزار حل تعارض ادغام نیز مفید است و یکی از ویژگی های برجسته است.

GitKraken مسلما بهترین برنامه رابط کاربری گرافیکی موجود است و یک نسخه رایگان معقول را برای مخازن لوکال و پابلیک ارائه می‌دهد که از همه میزبان های اصلی VCS پشتیبانی می‌کند.


استفاده از GitHub Desktop برای پوش کردن به GitHub

در حالی که روند هر برنامه کمی متفاوت خواهد بود، دسکتاپ GitHub نرم و روان است. شما در یک صفحه کار می‌کنید که از پنجره‌ها و پنل‌های مختلف استفاده می‌کند. هنگامی که یک فایل را تغییر دادید (که می توانید آن را در ویرایشگر انتخابی خود از منوی زمینه کلیک راست باز کنید)، از یک ویجت کوچک روی صفحه استفاده می کنید:

استفاده از ویجت روی گیت‌هاب دسکتاپ

این commit قسمتی از بخش Push Origin در نوار ابزار بالا خواهد شد: اگر هیچ تغییری برای انجام ندارید، همچنین یک اعلان برای ارسال commit های شما به کنترل از راه دور مبدا وجود خواهد داشت:

نمایی از GitHub Desktop

این یک راهکار با یک کلیک برای ایجاد تغییرات در مخزن GitHub شما است. کل گردش کار سریع و ساده برای اجرا است.

خلاصه

GitHub یک ابزار ضروری برای توسعه دهندگان و برنامه نویسان است که یک مخزن متمرکز برای ذخیره، ردیابی و همکاری روی کد فراهم می‌کند. هنگامی که یاد گرفتید چگونه کد خود را از یک مخزن لوکال به GitHub پوش کنید، می توانید از آن استفاده کنید.

با استفاده از خط فرمان، پوش کردن کد به GitHub ساده است و زمانی که همه چیز را تنظیم کردید، تنها به تعدادی دستور نیاز خواهید داشت. با این حال، ممکن است بخواهید یک برنامه رابط کاربری گرافیکی اختصاصی، مانند GitKraken یا GitHub Desktop را در نظر بگیرید. اینها می توانند خط فرمان را از معادله خارج کنند و به شما اجازه دهند ت