آموزش گیت-بخش پنجم-آموزش گیتهاب (Github)

سلام دوستان. در بخش قبل، مفهوم شاخه یا برنچ (branch) در گیت را بررسی کردیم. در این جلسه می خواهیم نحوه همکاری و مشارکت تیمی در پروژه ها را توسط گیت آموزش دهیم.
فهرست موضوعات جلسه پنجم:
- پروسه مشارکت یا collaboration
- عملیات push و fetch و pull
- تسک های pull request
- مشارکت در پروژه های open source گیتهاب
- نحوه آپلود پروژه لوکال در گیتهاب
در فرآیند کار با ورژن کنترل ها (مانند Git) دو حالت کلی داریم: Centralized و Distributed
در ویدیوی کوتاه زیر، انواع متدهای مربوط به version control ها و نحوه مشارکت یا collaboration در پروژه های متن باز توضیح داده شده است:
در ادامه می خواهیم نحوه کار با سایت Github را آموزش دهیم.
ثبت نام در گیتهاب و تعریف اولین مخزن:
ابتدا وارد سایت github.com شوید و اگر از قبل اکانت ندارید، بصورت رایگان ثبت نام و لاگین کنید. سپس مطابق تصویر زیر در منوی بالا سمت راست، روی New Repository کلیک کنید:
و مطابق تصویر زیر تنظیمات rep فوق را انجام دهید. با نام Mars و نوع public و فعال بودن تیک readme file:
در نوع public همه افراد می توانند این repo را مشاهده کنند. اما در نهایت شما تصمیم می گیرید که چه کسی تغییری در آن commit کند.
در نوع private، (که بدلیل تحریم تا چند وقت پیش برای ایرانیان غیرفعال بود اما خوشبختانه فعال شده است) فقط شما تصمیم می گیرید که چه کسی این repo را ببیند و تغییراتی در آن اعمال کند.
در ادامه وارد صفحه اول repo می شویم که به شکل زیر خواهد بود:
مشاهده می شود که در حال حاضر فقط یک شاخه بنام main داریم که فعلا یک commit بنام initial commit دارد (که خود گیتهاب آن را انجام داده است). همانطور که گفتیم در public repo تمام افراد داخل اینترنت می توانند آن را مشاهده کنند و لیست commit ها را ببیند اما نمی تواند بدون اجازه شما تغییری در آن commit کنند.
افزودن collaborator در گیتهاب:
برای اینکه بتوانید به افراد تیم همکار خود دسترسی لازم جهت ویرایش کدها و commit بدهید، بصورت زیر عمل کنید:
ابتدا به منوی Settings (آخرین لینک در تصویر بالا) مراجعه کرده و در سایدبار روی لینک Manage access کلیک کنید:
در باکس سمت راست، روی دکمه Invite a collaborator کلیک کنید و در پاپ آپ باز شده، نام کاربری یا آدرس ایمیل فرد مورد نظرتان را وارد کنید. من در این دمو، آدرس دیگر گیتهاب خود را وارد می کنم:
در مرحله بعد روی دکمه add کلیک کنید. اکنون اکانت گیتهاب انتخابی شما در لیست انتظار قرار می گیرد:
یک ایمیل حاوی اطلاعاتی از دعوت شما به ایمیل فرد گیرنده ارسال می شود. مانند شکل زیر:
حالا فرد گیرنده 7 روز مهلت دارد دعوت rahkarino را accept یا decline کند.
نحوه گرفتن clone در گیتهاب:
سایر افراد در گیتهاب می توانند از یک مخزن clone بگیرند و در سیستم لوکال خود به توسعه یا استفاده از آن سورس کد بپردازند. برای کلون گرفتن از یک repo در گیتهاب به روش زیر عمل کنید:
به منوی اول یعنی Code رفته و روی دکمه سبزرنگ Code کلیک کنید. مانند تصویر زیر. سپس آدرس مذکور را کپی کنید.
حال ترمینال یا cmd یا git bash را باز کرده و دستور زیر را اجرا کنید:
git clone https://github.com/rahkarino/Mars.git
با اجرای این دستور گیت یک فولدر بنام Mars می سازد و سورس کد مخزن فوق را در آن کپی می کند. اگر می خواهید نام فولدر را تغییر دهید، می توانید دستور بالا را به شکل زیر اجرا کنید:
git clone https://github.com/rahkarino/Mars.git MarsProject
که بجای MarsProject می توانید نام دلخواه خود را برای فولدر تعریف کنید. اکنون تمام commit های پروژه Mars موجود در گیتهاب در فولدر لوکال ما نیز قرار دارند. فعلا یک کامیت initial داریم. با دستور cd وارد فولدر پروژه شوید و دستور git log را اجرا کنید:
نکته: در تصویر بالا مشاهده می کنید که نشانگر HEAD به سه مورد اشاره دارد: main, origin/main, origin/HEAD
دو مورد origin/main, origin/HEAD با رنگ قرمز مشخص شده اند. به این معنی که اینها مربوط به ریموت هستند و نمی توان به آنها سوئیچ کرد یا در آنها کامیت انجام داد. تنها برنچی که ما دسترسی داریم main است.
برای مشاهده لیست مخازن ریموت یا remote repositories، دستور git remote را اجرا کنید. برای نمایش جزئیات بیشتر درباره مخازن ریموت به انتهای این دستور v- اضافه کنید:
مخازن یا ریپازیتوری های ریموت در سیستم لوکال ما قرار ندارند و ما به آنها دسترسی نداریم و در گیتهاب هستند.
Fetch کردن تغییرات از مخزن گیتهاب:
وقتی شما در گیتهاب یک فایلی را اضافه کنید یا به هر نحوی تغییری در سورس کد پروژه فوق انجام دهید، این تغییر در ریپازیتوری لوکال شما قابل مشاهده نخواهد بود و فقط در origin قابل دسترسی است. برای اینکه بتوانید پروژه لوکال خود را با گیتهاب sync کنید باید از دستور fetch استفاده کنید. برای شبیه سازی این سناریو مراحل زیر را انجام دهید:
به مخزن Mars در گیتهاب مراجعه کنید و فایل README.md را ویرایش کنید. مطابق تصویر زیر روی آیکون مداد کلیک کنید:
و در مرحله بعد، Commit کنید. تمام گزینه ها را به حالت پیش فرض رها کنید. مانند تصویرزیر:
در واقع تغییر فوق را مستقیما روی برنچ main اعمال کردیم. اکنون اگر روی تعداد commit ها در این repo کلیک کنید خواهید دید که کامیت دوم هم در آن لیست شده است:
همانطور که گفتیم تغییرات گیتهاب را در سورس کد لوکال خود نخواهیم داشت. برای اثبات قضیه، در git bash یا ترمینال، دستور git log –oneline را اجرا کنید. کامیت جدیدی نمی بینید. برای دریافت کامیت جدید از ریموت، دستور git fetch origin را اجرا کنید.
برای کسب اطمینان از عملیات فوق، دستور git log –oneline –all را اجرا کنید.
مشاهده خواهید کرد که نشانگر HEAD در مخزن لوکال ما به کامیت اول یعنی Initial اشاره دارد ولی دو مورد origin به کامیت جدید. یعنی شاخه main لوکال یک مرحله از ریموت عقب تر است. دستور دیگری برای مشاهده وضعیت لوکال و ریموت داریم بنام git branch -vv که اگر آن را اجرا کنیم می گوید شاخه main ما یک مرحله از origin عقب تر است:
برای اینکه برنچ main لوکال ما با origin/main یکی شود، باید دستور زیر را اجرا کنیم:
git merge origin/main
در نهایت برای اطمینان از صحت ادغام، دستور git log –oneline را مجددا اجرا کنید:
اکنون نشانگر HEAD ریموت و شاخه main ریموت و شاخه main لوکال هر سه sync یا هماهنگ شدند.
Pull کردن تغییرات از مخزن گیتهاب:
در ادامه می خواهیم سناریو را کمی پیچیده تر کنیم. بدین صورت که ابتدا در گیتهاب تغییری در فایل README اعمال می کنیم و سپس در مخزن لوکال نیز یک فایل جدید به پروژه اضافه می کنیم. می خواهیم آموزش دهیم که چطور می توان تغییرات ریموت و لوکال را روی لوکال بطور همزمان داشت. لطفا مراحل زیر را انجام دهید:
در مخزن پروژه در گیتهاب خود فایل README.md را ویرایش کنید و یک خط دیگر به انتهای آن اضافه کنید. در نهایت تغییرات را با تنظیمات پیش فرض commit کنید. سپس وارد ترمینال یا bash شده و با اجرای دستور echo sample-text > file1.txt یک فایل جدید با محتوای sample-text در پروژه لوکال ایجاد کنید. تغییرات لوکال را add to stage و در نهایت commit کنید:
اکنون تغییرات لوکال را در مخزن لوکال ثبت کرده ایم اما هنوز تغییرات ریموت (فایل ویرایش شده readme) را دریافت نکرده ایم. دستور git log –oneline را اجرا کنید.
به منظور دریافت تغییرات origin/main در لوکال، دستور git pull را اجرا کنید. فایلی بنام MEGE_MSG بطور اتومات در VSCode باز می شود. آن را بسته و مجددا وارد ترمینال یا git bash شوید.
نکته: شاید بپرسید فرق بین fetch و pull چیست؟ خب در بخش قبل دیدیم که پس از دریافت تغییرات مخزن ریموت توسط دستور fetch مجبودر بودیم در مخزن لوکال عملیات merge را نیز انجام دهیم. اما وقتی در این بخش با دستور pull تغییرات جدید را از گیتهاب گرفتیم، دیگر نیازی به اجرای دستور merge نبود.
اکنون اگر دستور git log –oneline را دوباره اجرا کنیم مشاهده می کنیم که هر دو تغییر ریموت و لوکال را داریم:
Push کردن تغییرات لوکال به مخزن گیتهاب:
اگر متوجه شده باشید، ما تا الان توانستیم تغییرات واقع در مخزن گیتهاب را روی لوکال خود لود کنیم. اما فایل جدیدی که در مخزن لوکال ساختیم هنوز به گیتهاب منتقل نشده است. برای انجام اینکار، از دستور git push استفاده می شود.
پس از اجرای این دستور، یک پنجره باز می شود که باید نام کاربری و رمز عبور اکانت Github خود را وارد کنید. پس از انجام اینکار احراز هویت (Authorization) شما انجام شده و تغییرات جدید لوکال شما به ریموت منتقل خواهد شد.
نکته: گاهی اوقات پیش می آید که دستور push ما توسط گیتهاب ریجکت می شود. در این موارد می توان به صورت زیر عمل کرد:
آخرین تغییرات مخزن ریموت گیتهاب را توسط دستور git pull دریافت کنید. اگر تداخل یا CONFLICT در کدها وجود دارد آن را برطرف کرده و به همراه تغییرات لوکال خود مجددا به گیتهاب push کنید.
ذخیره مشخصات احراز هویت گیتهاب:
در بخش قبل مشاهده کردید که برای اجرای دستور git push نیاز بود username و password مربوط به اکانت گیتهاب خود را وارد کنید. انجام این پروسه در هر بار اجرای push زمانبر و خسته کننده است. این امکان وجود دارد که مشخصات احراز هویت گیتهاب خود را بعنوان کانفیگ ذخیره کنید تا در دفعات بعد براحتی بتوانید push را به سرور انجام دهید.
به منظور ذخیره اطلاعات حساب کاربری Github در سیستم عامل مک باید از keychain استفاده کنید و در سیستم عامل ویندوز ابزار Credential Manager for Windows را دانلود و نصب کنید.
در این آموزش از ویندوز استفاده خواهیم کرد. برای دانلود این ابزار وارد آدرس زیر شوید و در بخش Download & Install آخرین نسخه آن را دانلود و نصب کنید.
پس از نصب این ابزار، دیگر نیازی نیست با هر push یوزر و پسورد خود را وارد کنید. کافیست یکبار آن را انجام دهید. اطلاعات بطور اتوماتیک ذخیره خواهند شد. برای تست قضیه، یک فایل جدید بنام file2 در لوکال ایجاد می کنیم و یک محتوای تستی درج می کنیم و push می کنیم:
مشاهده می کنید که براحتی push انجام شد. بدون اینکه نیاز باشد username و password را وارد کنیم.
درج تگ (Tag) در گیتهاب:
تگ های تعریف شده برای commit ها در ریپازیتوری لوکال همزمان با اجرای دستور push در گیتهاب ثبت نمی شوند. ما باید آنها را جداگانه به گیتهاب ارسال کنیم. به این منظور ابتدا یک تگ برای آخرین commit تعریف می کنیم.
تگ v1.0 با موفقیت به آخرین کامیت متصل شده است. حالا اگر بخواهیم این تگ را به گیتهاب منتقل کنیم تا سایر توسعه دهندگان و کاربران بتوانند آن را ببینند، باید کد زیر را اجرا کنیم:
git push origin v1.0
اکنون تگ v1.0 در گیتهاب ثبت شده است. برای اطمینان به گیتهاب رفته و صفحه را رفرش کنید.
با کلیک روی Tag صفحه زیر را خواهیم داشت:
اگر روی لینک v1.0 کلیک کنید وارد صفحه ای می شوید که در انتهای آن، مطابق تصویر زیر، می توانید سورس کد پروژه را تا لحظه کامیت v1.0 دانلود کنید:
نکته: اگر اشتباها یک تگ را به گیتهاب ارسال کردیم، می توان آن را به دستور زیر حذف کرد:
git push origin --delete v1.0
نحوه افزودن Release در گیتهاب:
این امکان در گیتهاب وجود دارد که روی یک کامیت دلخواه release انجام دهیم. مثلا نسخه v1.0 از پروژه مارس
برای اینکار در مخزن گیتهاب روی tag کلیک کنید و سپس در صفحه جدید روی Release کلیک کنید. و در نهایت روی دکمه Create a new release کلیک کنید:
در صفحه جدید، مشخصات نسخه جدید را وارد کنید، مانند تصویر زیر، سپس Publish release را بزنید.
در نهایت به صفحه ای منتقل می شوید که مشخصات release شما درج شده است:
این release روی آخرین commit مخزن گیتهاب صورت گرفته است. اگر نسخه را اشتباهی تعریف کرده اید امکان حذف یا ویرایش آن نیز وجود دارد.
به اشتراک گذاری Branch لوکال با گیتهاب:
تا الان فقط روی شاخه اصلی یا main branch کار کردیم. اما در یک پروژه واقعی، نیاز است چند برنچ مختلف داشته باشیم. در این بخش می خواهیم آموزش دهیم که چگونه می توانید برنچ های مختلف را بین مخزن لوکال و مخزن گیتهاب به اشتراک گذاشت.
برای اجرای سناریو، لطفا کد زیر را برای ایجاد یک برنچ جدید و سوئیچ به آن اجرا کنید:
git switch -C feature/change-password
اکنون اگر دستور git push را اجرا کنیم ارور می دهد و می گوید برنج متناظر feature در مخزن ریموت وجود ندارد.
برای مشاهده وضعیت برنچ های ریموت و لوکال دستور git branch -vv را اجرا کنید.
در تصویر زیر مشاهده می کنید که شاخه main به شاخه ریموت origin/main متصل است ولی شاخه feature/change-password به هیچ برنچی در ریموت متصل نیست. برای مشاهده لیست تمام برنچ هایی که به ریموت متصل هستند، دستور git branch -r را اجرا کنید:
بنابراین برای برقراری ارتباط بین یک برنچ جدید در مخزن لوکال و یک برنچ ریموت (origin)، دستور زیر را اجرا کنید:
git push -u origin feature/change-password
دقت کنید که این دستور را فقط در اولین push برای برنچ جدید اجرا کنید. خروجی زیر را داریم:
اکنون اتصال بین در شاخه با موفقیت انجام شد. برای چک کردن قضیه، وارد گیتهاب شده و در منوی branches دو برنچ خواهیم داشت:
اکنون اگر دستور git branch -vv و دستور git branch -r را اجرا کنیم دو برنچ main و feature به برنچ های origin متصل شده اند:
از الان به بعد می توان همانند برنچ اصلی، با این برنچ جدید کار کرد، تغییرات را کامیت کرد و push کرد. در نهایت پس از اینکه کارمان با برنچ تمام شد و خواستیم آن را پاک کنیم دستور زیر را اجرا می کنیم:
git push -d origin feature/change-password
و اگر دستور git branch -r را اجرا کنیم، برنچ ریموت feature از لیست حذف شده است. یعنی برنچ change-password از گیتهاب پاک شده است. اما اگر دستور git branch را اجرا کنیم، مشاهده می کنیم که این برنچ همچنان در مخزن لوکال ما وجود دارد. به منظور حذف آن از لوکال، ابتدا به شاخه main سوئیچ کرده و با دستور زیر، شاخه feature را حذف می کنیم:
git branch -d feature/change-password
به اشتراک گذاری Branch گیتهاب با لوکال:
ما در بخش قبل یک شاخه جدید در ریپازیتوری لوکال ایجاد کردیم و آن را به گیتهاب منتقل و متصل کردیم. اما حالا می خواهیم برعکس اینکار را انجام دهیم. یعنی یک برنچ را در گیتهاب بسازیم و در مخزن لوکال آن را دریافت کنیم. کافیست مراحل زیر را انجام دهید:
ابتدا به سایت گیتهاب رفته و در باکس مربوطه، بک برنچ جدید بسازید. مطابق تصویر زیر:
پس از تعریف نام برنچ، روی لینک Create branch: feature/change-password کلیک کنید تا برنچ ایجاد شود. حالا به سیستم لوکال خود رفته و در محیط git bash یا ترمینال، دستور git fetch را (برای دریافت شاخه جدید از گیتهاب) اجرا کنید. اما اگر git branch را اجرا کنیم برنچ جدید را در لوکال نخواهیم دید!
دلیلش اینست که وقتی ما از دستور fetch برای دریافت برنچ های گیتهاب استفاده می کنیم، فقط برنچ origin از گیتهاب وارد لوکال می شود. ما باید یک برنچ متناظر با همان نام در لوکال خود تعریف کنیم و این دو شاخه origin و local را به هم متصل کنیم. برای انجام اینکار دستور زیر را اجرا کنید:
git switch -C feature/change-password origin/feature/change-password
اکنون branch های مخزن لوکال و ریموت با یکدیگر sync شدند. برای اطمینان دستور git branch را اجرا کنید:
همانطور که ملاحظه می کنید شاخه جدید feature با موفقیت به لیست شاخه های موجود در لوکال اضافه شده است. حالا می توانید تغییرات لازم را انجام داده و commit و push کنید.
حذف Branch از مخزن لوکال و گیتهاب:
وقتی کارمان با یک برنچ تمام می شود، باید آن را هم از ریپازیتوری گیتهاب پاک کنیم و هم از لوکال. برای اینکار می توان ابتدا وارد گیتهاب شد و در منوی branch شاخه change-password را با کلیک روی آیکون شطل زباله پاک کرد. سپس وارد ترمینال شویم و دستور زیر را اجرا کنیم:
git remote prune origin
کار دستور prune در گیت اینست که برنچ هایی که در ریموت گیتهاب وجود ندارد و پاک شده اند اما در مخزن لوکال هنوز قرار دارند را از لوکال پاک می کند. در این مثال، چون ما شاخه change-password را از گیتهاب حذف کرده ایم، با اجرای دستور prune این شاخه از مخزن لوکال ما نیز حذف خواهد شد. تصویر زیر:
در نهایت باید شاخه feature/change-password را نیز از مخزن لوکال پاک کنیم. به این منظور دستور زیر را اجرا کنید:
git branch -d feature/change-password
در نهایت با اجرای git branch خروجی زیر را خواهیم داشت:
مشارکت در پروژههای OpenSource گیتهاب:
یکی از قابلیت های بسیار کاربردی و بی نظیر Github اینست که افراد مختلف می توانند روی یک پروژه متن باز یا open source در گیتهاب شرکت کنند و کد آن را توسعه دهند. سناریوی این بخش به صورت زیر می باشد:
فرض کنید فرد B با آیدی mohtavaban در گیتهاب می خواهد روی ریپازیتوری Mars در گیتهاب فرد A (با آیدی rahkarino) کار کند و در آن مشارکت داشته باشد. نکته اینجاست که هیپ فردی نمی تواند مستقبما روی مخزن Mars کدهای خود را push کند. بلکه باید ابتدا آن را Fork کند (در واقع یک نسخه از این مخزن را روی گیتهاب خود کپی کند) و سپس تغییرات خود را روی این نسخه اعمال کند. سپس برای فرد A یک pull request بفرستد و از او بخواهد که تغییراتش را بپذیرد. پس از قبول این تغییرات توسط فرد A (اکانت RAHKARINO) فرد B می تواند کدهای مخزن خود را با مخزن اصلی ادغام یا Merge کند.
برای پیاده سازی این سناریو مراحل زیر را خواهیم داشت:
فرد B با اکانت mohtavaban وارد مخزن Mars در گیتهاب فرد A می شود و دکمه Fork را می زند. بخش هیلایت شده در تصویر زیر:
با اینکار، یک کپی از Mars Repository در اکانت فرد B ایجاد می شود و او کنترل کامل بر روی کدهای آن خواهد داشت (مانند ایجاد برنچ، تغییر کد، کامیت و پوش) اکنون نسخه کپی شده Mars بصورت زیر قابل مشاهده و دسترسی می باشد:
در مرحله بعد، توسعه دهنده B باید مانند شکل زیر در منوی Code، آدرس مخزن را کپی کرده و با دستور زیر، یک clone از آن در لوکال خود ایجاد کند:
git clone https://github.com/mohtavaban/Mars.git
پس از اجرای دستور فوق، به فولدر Mars می رویم و یک برنچ جدید بنام bugfix تعریف می کنیم:
بعنوان تغییر، می خواهیم یک خط جدید به انتهای فایل file2.txt اضافه کنیم و تغییرات را کامیت کنیم:
اکنون نوبت اینست که توسعه دهنده B تغییرات جدید را به اکانت گیتهاب خود Push کند. برای اینکار، همانطور که قبلا گفتیم باید از دستور زیر استفاده شود:
git push -u origin bugfix
در مرحله بعد احتمالا نیاز به احراز هویت گیتهاب و وارد کردن نام کاربری و رمز عبور می باشد.
نکته: اگر در این مرحله، با خطای permission denied و remote rejected مواجه شدید، فرد B باید به تنظیمات Credential Manager ویندوز خود مراجعه کرده و user و pass اکانت خود را تعریف کند.
اکنون اگر فرد B به گیتهاب خود مراجعه کند، مشاهده می کند که یک پیغام Pull Request با باکس زردرنگ نمایش یافته است:
روی دکمه Compare & pull request کلیک کنید. در صفحه بعد خواهیم داشت:
تصویر فوق به این معنیست که mohtavaban/Mars قرار است با rahkarino/Mars ادغام یا merge شود.
در ادامه صفحه، فرم مربوط به عنوان و متن پیغام commit را مشاهده می کنید. متن دلخواهتان را وارد کرده و روی Create pull request کلیک کنید.
اکنون یک Pull Request با موفقیت برای فرد A (توسعه دهنده اصلی پروژه Mars) ارسال شده است.
در مرحله بعد، یک ایمیل حاوی اطلاعات مربوط به pull request به فرد A ارسال می شود و همچنین در اکانت گیتهاب او نیز یک Notification خواهد آمد.
فرد A با کلیک روی لینک “add bugfix code file2.txt” وارد صفحه ای می شود که مطابق تصویر زیر می تواند نظرات خود را روی تغییرات فرد B اعلام کند و از او بخواهد تغییرات لازم را روی کدهای خود اعمال کرده و مجددا Pull request را ارسال کند.
او پس از بررسی تغییرات فرد B و تایید آنها، می تواند pull request او را approve کند. در نهایت Maintainer یعنی فرد A می تواند تغییرات جدید Contributor یعنی فرد B را با کدهای قبلی خود Merge کند.
انتشار پروژه لوکال در گیتهاب:
یکی از کاربردهای رایج گیت و گیتهاب آپلود پروژه موجود در مخزن لوکال روی گیتهاب است. فرض کنید پروژه ای را در سیستم لوکال خود توسعه داده اید و اکنون می خواهید آن را به گیتهاب خود منتقل کنید. مراحل زیر را طی کنید:
ابتدا با دستور git init یک Local Repository در فولدر پروژه خود ایجاد کنید. سپس کدهای خود را ابتدا add to stage سپس commit کنید. پس دستورات زیر را باید به ترتیب اجرا کنید:
git init git add . git commit -m "your message"
سپس باید به اکانت گیتهاب خود مراجعه کنید و یک repository جدید با نام دلخواه بسازید. در منوی Code آدرس مخزن را کپی کنید و در cmd مطابق دستور زیر یک اتصال از لوکال به ریموت ایجاد کنید:
git remote add origin https://github.com/rahkarino/Mars.git
دقت کنید که بجای عبارت آخر باید آدرس کپی شده مخزن گیتهاب خود را قرار دهید.
سپس برای اطمینان از صحت انجام کار، دستور git remote -v را اجرا کنید. در مرحله بعد دستور زیر را جهت پوش کردن کدهای لوکال به ریموت اجرا کنید:
git push -u origin master
احتمالا در این مرحله نیاز به احراز هویت اکانت گیتهاب خود دارید. username و password خود را وارد کرده و دستور push را اجرا کنید. اگر در مرحله احراز هویت با خطا مواجه شدید وارد ابزار Credential Manager سیستم عامل خود شوید و رکورد مربوط به github را ویرایش کنید.
تبریک میگم! پروژه شما با موفقیت از لوکال به گیتهاب منتقل شد.
در صورتی که سوال یا پیشنهادی دارید می توانید به یکی از روش های زیر آن را با آکادمی راهکارینو در میان بگذارید:
- ایمیل info@rahkarino.com
- صفحه اینستاگرام rahkarino
- آیدی تلگرام rahkarino@
- فرم ارسال دیدگاه پایین مقاله
- فرم تماس با ما
2 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
سلام و عرض خسته نباشید مطالب عالی و کاربردی و کامل به مخاطب انتقال داده شده است.
همچنین از دوره گیت codewithmosh استفاده کردید که مشفق همدانی در دوره هاش مطالب کاربردی و واقعی رو جمع آوری می کند.
سلام امیر جان. ممنون از ابراز محبتت. سعی ما در مجموعه راهکارینو اینه که مطالب آموزشی کاربردی رو به روش ساده بیان کنیم.
آموزش گیت و گیتهاب از دوره آقای Mosh Hamedani برگرفته شده و امیدوارم مورد استفاده شما عزیزان قرار بگیره.
موفق باشید