|
3 weeks ago | |
---|---|---|
.. | ||
README.md | 3 weeks ago |
README.md
مقدمهای بر گیتهاب
این درس اصول اولیه گیتهاب، یک پلتفرم برای میزبانی و مدیریت تغییرات کد شما را پوشش میدهد.
اسکیچنوت توسط Tomomi Imura
آزمون پیش از درس
مقدمه
در این درس، به موارد زیر خواهیم پرداخت:
- پیگیری کارهایی که روی دستگاه خود انجام میدهید
- کار کردن روی پروژهها با دیگران
- نحوه مشارکت در نرمافزارهای متنباز
پیشنیازها
قبل از شروع، باید بررسی کنید که آیا Git نصب شده است یا خیر. در ترمینال تایپ کنید:
git --version
اگر Git نصب نشده است، Git را دانلود کنید. سپس، پروفایل محلی Git خود را در ترمینال تنظیم کنید:
git config --global user.name "your-name"
git config --global user.email "your-email"
برای بررسی اینکه آیا Git قبلاً تنظیم شده است، میتوانید تایپ کنید:
git config --list
همچنین به یک حساب گیتهاب، یک ویرایشگر کد (مانند Visual Studio Code) و باز کردن ترمینال (یا: Command Prompt) نیاز خواهید داشت.
به github.com بروید و اگر هنوز حسابی ندارید، یک حساب ایجاد کنید یا وارد شوید و پروفایل خود را تکمیل کنید.
✅ گیتهاب تنها مخزن کد در جهان نیست؛ مخازن دیگری نیز وجود دارند، اما گیتهاب شناختهشدهترین است.
آمادهسازی
به یک پوشه با یک پروژه کد روی دستگاه محلی خود (لپتاپ یا کامپیوتر) و یک مخزن عمومی در گیتهاب نیاز دارید که به عنوان نمونهای برای نحوه مشارکت در پروژههای دیگران عمل کند.
مدیریت کد
فرض کنید یک پوشه محلی با یک پروژه کد دارید و میخواهید پیشرفت خود را با استفاده از Git - سیستم کنترل نسخه - پیگیری کنید. برخی افراد استفاده از Git را به نوشتن یک نامه عاشقانه برای خود آیندهتان تشبیه میکنند. با خواندن پیامهای commit خود پس از روزها، هفتهها یا ماهها، میتوانید به یاد بیاورید چرا تصمیمی گرفتهاید یا یک تغییر را "بازگردانید" - البته اگر پیامهای commit خوبی بنویسید.
وظیفه: ایجاد یک مخزن و commit کردن کد
مشاهده ویدیو
-
ایجاد مخزن در گیتهاب. در GitHub.com، در تب مخازن یا از نوار ناوبری بالا-راست، دکمه مخزن جدید را پیدا کنید.
- به مخزن خود (پوشه) یک نام بدهید.
- گزینه ایجاد مخزن را انتخاب کنید.
-
به پوشه کاری خود بروید. در ترمینال، به پوشه (یا همان دایرکتوری) که میخواهید شروع به پیگیری کنید، بروید. تایپ کنید:
cd [name of your folder]
-
مخزن Git را مقداردهی اولیه کنید. در پروژه خود تایپ کنید:
git init
-
بررسی وضعیت. برای بررسی وضعیت مخزن خود تایپ کنید:
git status
خروجی ممکن است چیزی شبیه به این باشد:
Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: file.txt modified: file2.txt
معمولاً دستور
git status
به شما میگوید چه فایلهایی آماده ذخیره در مخزن هستند یا تغییراتی دارند که ممکن است بخواهید آنها را ثبت کنید. -
اضافه کردن تمام فایلها برای پیگیری
این کار همچنین به عنوان مرحلهبندی فایلها/اضافه کردن فایلها به ناحیه مرحلهبندی شناخته میشود.git add .
آرگومان
git add
به همراه.
نشان میدهد که تمام فایلها و تغییرات برای پیگیری اضافه میشوند. -
اضافه کردن فایلهای انتخابی برای پیگیری
git add [file or folder name]
این دستور به ما کمک میکند فقط فایلهای انتخابی را به ناحیه مرحلهبندی اضافه کنیم، زمانی که نمیخواهیم همه فایلها را یکجا commit کنیم.
-
لغو مرحلهبندی تمام فایلها
git reset
این دستور به ما کمک میکند تمام فایلها را یکجا از مرحلهبندی خارج کنیم.
-
لغو مرحلهبندی یک فایل خاص
git reset [file or folder name]
این دستور به ما کمک میکند فقط یک فایل خاص را که نمیخواهیم در commit بعدی شامل شود، از مرحلهبندی خارج کنیم.
-
ثبت کار خود. در این مرحله فایلها را به ناحیهای به نام مرحلهبندی اضافه کردهاید. جایی که Git فایلهای شما را پیگیری میکند. برای دائمی کردن تغییر، باید فایلها را commit کنید. برای این کار یک commit با دستور
git commit
ایجاد کنید. یک commit نمایانگر یک نقطه ذخیره در تاریخچه مخزن شما است. برای ایجاد یک commit تایپ کنید:git commit -m "first commit"
این دستور تمام فایلهای شما را commit میکند و پیام "اولین commit" را اضافه میکند. برای پیامهای commit آینده، بهتر است توضیحات دقیقتری ارائه دهید تا نوع تغییری که ایجاد کردهاید را منتقل کنید.
-
اتصال مخزن محلی Git به گیتهاب. یک مخزن Git روی دستگاه شما خوب است، اما در نهایت میخواهید از فایلهای خود نسخه پشتیبان تهیه کنید و همچنین دیگران را دعوت کنید تا روی مخزن شما کار کنند. یکی از مکانهای عالی برای این کار گیتهاب است. به یاد داشته باشید که قبلاً یک مخزن در گیتهاب ایجاد کردهایم، بنابراین تنها کاری که باید انجام دهیم اتصال مخزن محلی Git به گیتهاب است. دستور
git remote add
این کار را انجام میدهد. دستور زیر را تایپ کنید:توجه: قبل از تایپ دستور، به صفحه مخزن گیتهاب خود بروید تا URL مخزن را پیدا کنید. از آن در دستور زیر استفاده کنید.
https://github.com/username/repository_name.git
را با URL گیتهاب خود جایگزین کنید.git remote add origin https://github.com/username/repository_name.git
این دستور یک remote یا اتصال به نام "origin" ایجاد میکند که به مخزن گیتهاب که قبلاً ایجاد کردهاید اشاره دارد.
-
ارسال فایلهای محلی به گیتهاب. تاکنون یک اتصال بین مخزن محلی و مخزن گیتهاب ایجاد کردهاید. بیایید این فایلها را با دستور
git push
به گیتهاب ارسال کنیم:توجه: نام شاخه شما ممکن است به طور پیشفرض با
main
متفاوت باشد.git push -u origin main
این دستور commitهای شما را در شاخه "main" به گیتهاب ارسال میکند.
-
اضافه کردن تغییرات بیشتر. اگر میخواهید به ایجاد تغییرات و ارسال آنها به گیتهاب ادامه دهید، فقط باید از سه دستور زیر استفاده کنید:
git add . git commit -m "type your commit message here" git push
نکته: ممکن است بخواهید یک فایل
.gitignore
را برای جلوگیری از نمایش فایلهایی که نمیخواهید پیگیری شوند، مانند فایل یادداشتهایی که در همان پوشه ذخیره میکنید اما جایی در یک مخزن عمومی ندارند، اتخاذ کنید. میتوانید قالبهایی برای فایلهای.gitignore
را در .gitignore templates پیدا کنید.
پیامهای Commit
یک خط موضوع عالی برای commit گیت جمله زیر را کامل میکند:
اگر اعمال شود، این commit <خط موضوع شما در اینجا> خواهد بود.
برای موضوع از زمان حال و حالت امری استفاده کنید: "تغییر" نه "تغییر داده شد" و نه "تغییرات".
همانطور که در موضوع، در بدنه (اختیاری) نیز از زمان حال و حالت امری استفاده کنید. بدنه باید انگیزه تغییر را شامل شود و این را با رفتار قبلی مقایسه کند. شما در حال توضیح دادن چرا
هستید، نه چگونه
.
✅ چند دقیقه وقت بگذارید و در گیتهاب جستجو کنید. آیا میتوانید یک پیام commit واقعاً عالی پیدا کنید؟ آیا میتوانید یک پیام بسیار مختصر پیدا کنید؟ به نظر شما چه اطلاعاتی مهمترین و مفیدترین برای انتقال در یک پیام commit هستند؟
وظیفه: همکاری
دلیل اصلی قرار دادن چیزها در گیتهاب، امکان همکاری با سایر توسعهدهندگان است.
کار روی پروژهها با دیگران
مشاهده ویدیو
در مخزن خود، به Insights > Community
بروید تا ببینید پروژه شما چگونه با استانداردهای پیشنهادی جامعه مقایسه میشود.
در اینجا چند مورد وجود دارد که میتواند مخزن گیتهاب شما را بهبود بخشد:
- توضیحات. آیا توضیحی برای پروژه خود اضافه کردهاید؟
- README. آیا یک README اضافه کردهاید؟ گیتهاب راهنماییهایی برای نوشتن یک README ارائه میدهد.
- راهنمای مشارکت. آیا پروژه شما دارای راهنمای مشارکت است؟
- کد اخلاقی. آیا یک کد اخلاقی اضافه کردهاید؟
- مجوز. شاید مهمترین مورد، یک مجوز است.
تمام این منابع به جذب اعضای جدید تیم کمک خواهند کرد. و اینها معمولاً مواردی هستند که مشارکتکنندگان جدید قبل از حتی نگاه کردن به کد شما بررسی میکنند تا بفهمند آیا پروژه شما مکان مناسبی برای صرف وقت آنها است یا خیر.
✅ فایلهای README، اگرچه زمانبر هستند، اغلب توسط نگهدارندگان پرمشغله نادیده گرفته میشوند. آیا میتوانید مثالی از یک README بهویژه توصیفی پیدا کنید؟ توجه: ابزارهایی برای کمک به ایجاد READMEهای خوب وجود دارند که ممکن است بخواهید امتحان کنید، مانند ابزارهای ایجاد README.
وظیفه: ادغام کد
مستندات مشارکت به افراد کمک میکند تا در پروژه مشارکت کنند. این مستندات توضیح میدهند که چه نوع مشارکتهایی مورد نظر شما است و فرآیند چگونه کار میکند. مشارکتکنندگان باید مراحل زیر را برای مشارکت در مخزن شما در گیتهاب طی کنند:
- فورک کردن مخزن شما. احتمالاً میخواهید افراد پروژه شما را فورک کنند. فورک کردن به معنای ایجاد یک نسخه کپی از مخزن شما در پروفایل گیتهاب آنها است.
- کلون کردن. از آنجا، آنها پروژه را به دستگاه محلی خود کلون میکنند.
- ایجاد یک شاخه. از آنها بخواهید یک شاخه برای کار خود ایجاد کنند.
- تمرکز تغییرات روی یک بخش. از مشارکتکنندگان بخواهید مشارکتهای خود را روی یک چیز در یک زمان متمرکز کنند - به این ترتیب احتمال اینکه بتوانید کار آنها را ادغام کنید بیشتر است. تصور کنید آنها یک باگ را رفع میکنند، یک ویژگی جدید اضافه میکنند و چندین تست را بهروزرسانی میکنند - اگر بخواهید یا فقط بتوانید ۲ از ۳ یا ۱ از ۳ تغییر را اعمال کنید چه میشود؟
✅ یک موقعیت را تصور کنید که در آن شاخهها برای نوشتن و ارائه کد خوب بهویژه حیاتی هستند. چه موارد استفادهای میتوانید تصور کنید؟
توجه: تغییری باشید که میخواهید در جهان ببینید و برای کار خود نیز شاخه ایجاد کنید. هر commitی که انجام میدهید در شاخهای که در حال حاضر "چکاوت" شدهاید انجام خواهد شد. از
git status
استفاده کنید تا ببینید در کدام شاخه هستید.
بیایید یک جریان کاری مشارکتکننده را مرور کنیم. فرض کنید مشارکتکننده قبلاً مخزن را فورک و کلون کرده است، بنابراین یک مخزن Git آماده برای کار روی دستگاه محلی خود دارد:
-
ایجاد یک شاخه. از دستور
git branch
برای ایجاد یک شاخه که شامل تغییراتی است که قصد دارند مشارکت کنند، استفاده کنید:git branch [branch-name]
-
تغییر به شاخه کاری. به شاخه مشخصشده تغییر دهید و دایرکتوری کاری را با
git switch
بهروزرسانی کنید:git switch [branch-name]
-
انجام کار. در این مرحله میخواهید تغییرات خود را اضافه کنید. فراموش نکنید که به Git اطلاع دهید با دستورات زیر:
git add . git commit -m "my changes"
اطمینان حاصل کنید که به commit خود یک نام خوب بدهید، برای خودتان و همچنین نگهدارنده مخزنی که در آن کمک میکنید.
-
ترکیب کار خود با شاخه
main
. در یک نقطه، کار شما تمام میشود و میخواهید کار خود را با شاخهmain
ترکیب کنید. ممکن است شاخهmain
meanwhile تغییر کرده باشد، بنابراین مطمئن شوید که ابتدا آن را با دستورات زیر بهروزرسانی کنید:git switch main git pull
در این مرحله میخواهید مطمئن شوید که هرگونه تضاد، موقعیتهایی که Git نمیتواند بهراحتی تغییرات را ترکیب کند، در شاخه کاری شما اتفاق میافتد. بنابراین دستورات زیر را اجرا کنید:
git switch [branch_name] git merge main
این دستور تمام تغییرات از
main
را به شاخه شما میآورد و امیدواریم بتوانید بهراحتی ادامه دهید. اگر نه، VS Code به شما نشان میدهد که Git کجا گیج شده است و شما فقط فایلهای تحت تأثیر را تغییر میدهید تا بگویید کدام محتوا دقیقتر است. -
ارسال کار خود به گیتهاب. ارسال کار خود به گیتهاب به دو چیز نیاز دارد. ارسال شاخه خود به مخزن و سپس باز کردن یک PR (درخواست کشیدن).
git push --set-upstream origin [branch-name]
دستور بالا شاخه را در مخزن فورکشده شما ایجاد میکند.
-
باز کردن یک PR. سپس، میخواهید یک PR باز کنید. این کار را با رفتن به مخزن فورکشده در گیتهاب انجام دهید. در گیتهاب یک اعلان خواهید دید که از شما میپرسد آیا میخواهید یک PR جدید ایجاد کنید، روی آن کلیک کنید و به رابطی هدایت میشوید که میتوانید عنوان پیام commit را تغییر دهید و توضیح مناسبتری بدهید. اکنون نگهدارنده مخزنی که فورک کردهاید این PR را میبیند و انگشتانتان را ضربدری کنید، آنها قدردانی میکنند و PR شما را ادغام میکنند. اکنون شما یک مشارکتکننده هستید، یای :)
-
پاکسازی. پاکسازی پس از موفقیت در ادغام یک PR به عنوان یک عمل خوب در نظر گرفته میشود. میخواهید هم شاخه محلی و هم شاخهای که به گیتهاب ارسال کردهاید را پاک کنید. ابتدا آن را بهصورت محلی با دستور زیر حذف کنید:
git branch -d [branch-name]
اطمینان حاصل کنید که به صفحه گیتهاب مخزن فورک شده بروید و شاخهی ریموتی که به آن پوش کردید را حذف کنید.
اصطلاح Pull request
ممکن است کمی عجیب به نظر برسد، چون در واقع شما میخواهید تغییرات خود را به پروژه ارسال کنید. اما نگهدارنده (مالک پروژه) یا تیم اصلی باید تغییرات شما را قبل از ادغام با شاخهی "اصلی" پروژه بررسی کند، بنابراین در واقع شما درخواست تصمیمگیری برای تغییرات را از یک نگهدارنده دارید.
یک pull request جایی است که تفاوتهای ایجاد شده در یک شاخه با بررسیها، نظرات، تستهای یکپارچه و موارد دیگر مقایسه و بحث میشود. یک pull request خوب تقریباً از همان قوانینی پیروی میکند که یک پیام commit. شما میتوانید به یک issue در ردیاب مشکلات ارجاع دهید، مثلاً وقتی کار شما یک مشکل را حل میکند. این کار با استفاده از #
و سپس شمارهی issue انجام میشود. برای مثال #97
.
🤞امیدواریم که همه بررسیها موفقیتآمیز باشند و مالک(های) پروژه تغییرات شما را در پروژه ادغام کنند🤞
شاخهی کاری محلی فعلی خود را با تمام commitهای جدید از شاخهی ریموت مربوطه در گیتهاب بهروزرسانی کنید:
git pull
چگونه به پروژههای متنباز کمک کنیم
ابتدا، یک مخزن (یا repo) در گیتهاب پیدا کنید که برای شما جالب باشد و بخواهید تغییری در آن ایجاد کنید. شما باید محتوای آن را به دستگاه خود کپی کنید.
✅ یک راه خوب برای پیدا کردن مخازن مناسب برای مبتدیان، جستجو با برچسب 'good-first-issue' است.
روشهای مختلفی برای کپی کردن کد وجود دارد. یکی از روشها "کلون کردن" محتوای مخزن با استفاده از HTTPS، SSH یا GitHub CLI (رابط خط فرمان گیتهاب) است.
ترمینال خود را باز کنید و مخزن را به این صورت کلون کنید:
git clone https://github.com/ProjectURL
برای کار روی پروژه، به پوشهی مناسب بروید:
cd ProjectURL
همچنین میتوانید کل پروژه را با استفاده از Codespaces، ویرایشگر کد تعبیهشدهی گیتهاب / محیط توسعه ابری، یا GitHub Desktop باز کنید.
در نهایت، میتوانید کد را در یک پوشهی زیپشده دانلود کنید.
چند نکته جالب دیگر درباره گیتهاب
شما میتوانید هر مخزن عمومی در گیتهاب را ستارهدار کنید، دنبال کنید یا "فورک" کنید. مخازن ستارهدار خود را میتوانید در منوی کشویی بالا سمت راست پیدا کنید. این کار شبیه به بوکمارک کردن است، اما برای کد.
پروژهها یک ردیاب مشکلات دارند، که معمولاً در گیتهاب در تب "Issues" قرار دارد مگر اینکه به شکل دیگری مشخص شده باشد، جایی که افراد درباره مشکلات مربوط به پروژه بحث میکنند. و تب Pull Requests جایی است که افراد درباره تغییراتی که در حال انجام است بحث و بررسی میکنند.
پروژهها ممکن است همچنین بحثهایی در انجمنها، لیستهای ایمیل یا کانالهای چت مانند Slack، Discord یا IRC داشته باشند.
✅ نگاهی به مخزن جدید گیتهاب خود بیندازید و چند کار انجام دهید، مانند ویرایش تنظیمات، افزودن اطلاعات به مخزن خود و ایجاد یک پروژه (مانند یک تخته کانبان). کارهای زیادی میتوانید انجام دهید!
🚀 چالش
با یک دوست همکاری کنید و روی کد یکدیگر کار کنید. یک پروژه به صورت مشترک ایجاد کنید، کد را فورک کنید، شاخه ایجاد کنید و تغییرات را ادغام کنید.
آزمون پس از درس
مرور و مطالعه شخصی
بیشتر درباره کمک به نرمافزارهای متنباز بخوانید.
تمرین، تمرین، تمرین. گیتهاب مسیرهای یادگیری عالی از طریق skills.github.com ارائه میدهد:
همچنین دورههای پیشرفتهتری نیز پیدا خواهید کرد.
تکلیف
دوره هفته اول در گیتهاب را کامل کنید.
سلب مسئولیت:
این سند با استفاده از سرویس ترجمه هوش مصنوعی Co-op Translator ترجمه شده است. در حالی که ما تلاش میکنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمههای خودکار ممکن است شامل خطاها یا نادرستیها باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، توصیه میشود از ترجمه انسانی حرفهای استفاده کنید. ما مسئولیتی در قبال سوء تفاهمها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.