راهنمای git
جزوه آموزشی تکمیلی Git
مقدمه
این جزوه بهعنوان مکمل جزوه قبلی، پراستفادهترین دستورات Git که در جزوه ابتدایی پوشش داده نشدهاند را معرفی میکند. این دستورات برای مدیریت پیشرفتهتر پروژهها و حل مشکلات رایج در کار با Git بسیار کاربردی هستند.
بازگرداندن تغییرات (Reset)
گاهی نیاز است تغییرات انجامشده را به حالت قبلی بازگردانید. میتوانید تغییرات فایلهای ردیابیشده را لغو کنید یا کامیتهای خاصی را حذف کنید.
مثال:
git reset --soft HEAD~1
این دستور آخرین کامیت را لغو میکند اما تغییرات را در staging نگه میدارد.
git reset --hard HEAD~1
این دستور آخرین کامیت و تمام تغییرات مرتبط را کاملاً حذف میکند.
ذخیره موقت تغییرات (Stash)
اگر نیاز دارید تغییرات فعلی را موقتاً ذخیره کنید و به شاخه دیگری بروید، میتوانید از stash استفاده کنید.
مثال:
git stash
تغییرات فعلی ذخیره میشوند و مخزن به حالت تمیز برمیگردد.
git stash pop
تغییرات ذخیرهشده را بازیابی میکند و از لیست stash حذف میکند.
بازنویسی تاریخچه (Rebase)
این دستور به شما امکان میدهد تاریخچه کامیتها را بازنویسی کنید تا خطیتر و تمیزتر شود. معمولاً برای مرتبسازی شاخهها استفاده میشود.
مثال:
git rebase main
شاخه فعلی را روی شاخه main بازنویسی میکند.
git rebase -i HEAD~3
به شما امکان میدهد سه کامیت آخر را ویرایش، ادغام یا حذف کنید.
یافتن و رفع اشکالات (Bisect)
برای پیدا کردن کامیتی که یک خطا را ایجاد کرده، میتوانید از ابزار bisect استفاده کنید.
مثال:
git bisect start
git bisect bad
git bisect good <commit-id>
این دستورات به Git کمک میکنند تا با بررسی کامیتها، کامیتی که مشکل را ایجاد کرده پیدا کند.
git bisect reset
پس از اتمام، به حالت اولیه برمیگردد.
کار با تگها (Tags)
تگها برای نشانهگذاری نسخههای خاص پروژه (مثل نسخههای انتشار) استفاده میشوند.
مثال:
git tag v1.0
یک تگ سبک برای نسخه 1.0 ایجاد میکند.
git push origin v1.0
تگ را به مخزن ریموت ارسال میکند.
نتیجهگیری
این جزوه دستورات پیشرفته و پراستفاده Git را معرفی کرد. با تمرین این دستورات، میتوانید مدیریت پروژههای خود را بهبود دهید و با چالشهای پیچیدهتر بهراحتی مقابله کنید. برای یادگیری عمیقتر، کار با ابزارهای گرافیکی Git یا مستندات رسمی Git پیشنهاد میشود.
راهنمای ساخت و تنظیم کلید SSH برای GitHub
مقدمه
کلید SSH برای ایجاد ارتباط امن بین سیستم شما و GitHub استفاده میشود. این روش به شما امکان میدهد بدون نیاز به وارد کردن نام کاربری و رمز عبور، با مخازن GitHub کار کنید. این راهنما مراحل ساخت، تنظیم و افزودن کلید SSH به GitHub را توضیح میدهد.
بررسی وجود کلید SSH
ابتدا بررسی کنید که آیا کلید SSH از قبل روی سیستم شما وجود دارد یا خیر.
مثال:
ls -al ~/.ssh
این دستور فایلهای موجود در پوشه SSH را نمایش میدهد. اگر فایلهایی مانند id_rsa یا id_ed25519 وجود داشته باشند، کلید SSH از قبل ساخته شده است.
ساخت کلید SSH جدید
اگر کلید SSH ندارید، میتوانید یک کلید جدید ایجاد کنید.
مثال:
ssh-keygen -t ed25519 -C "your.email@example.com"
این دستور یک کلید جدید با الگوریتم ed25519 ایجاد میکند. ایمیل باید همان ایمیلی باشد که در GitHub استفاده میکنید.
اگر از سیستمی قدیمی استفاده میکنید که ed25519 را پشتیبانی نمیکند، به جای آن از این دستور استفاده کنید:
ssh-keygen -t rsa -b 4096 -C "your.email@example.com"
در هنگام پرسوجو، میتوانید Enter بزنید تا مسیر پیشفرض (~/.ssh/id_ed25519 یا ~/.ssh/id_rsa) و بدون رمز عبور استفاده شود، یا رمز عبور دلخواهを設定 کنید.
راهاندازی SSH Agent
برای مدیریت کلیدهای SSH، باید SSH Agent را فعال کنید.
مثال:
eval "$(ssh-agent -s)"
این دستور SSH Agent را راهاندازی میکند. سپس کلید خود را به آن اضافه کنید:
ssh-add ~/.ssh/id_ed25519
اگر از کلید RSA استفاده کردید، به جای id_ed25519 از id_rsa استفاده کنید.
افزودن کلید عمومی به GitHub
کلید عمومی (public key) را کپی کنید و به حساب GitHub خود اضافه کنید.
مثال:
cat ~/.ssh/id_ed25519.pub
این دستور محتوای کلید عمومی را نمایش میدهد. آن را کپی کنید.
سپس:
-
به وبسایت GitHub بروید و وارد حساب خود شوید.
-
به بخش Settings > SSH and GPG keys بروید.
-
روی New SSH key یا Add SSH key کلیک کنید.
-
یک عنوان (مثلاً “My Laptop”) وارد کنید و کلید عمومی کپیشده را در بخش Key جایگذاری کنید.
-
روی Add SSH key کلیک کنید.
تست اتصال SSH به GitHub
برای اطمینان از صحت تنظیمات، اتصال به GitHub را تست کنید.
مثال:
ssh -T git@github.com
اگر همهچیز درست باشد، پیامی مانند “Hi username! You’ve successfully authenticated…” دریافت خواهید کرد.
تنظیم مخزن برای استفاده از SSH
برای استفاده از SSH در مخازن GitHub، باید آدرس ریموت مخزن را به فرمت SSH تنظیم کنید.
مثال:
git remote set-url origin git@github.com:username/repository.git
این دستور آدرس ریموت را از HTTPS به SSH تغییر میدهد. حالا میتوانید با دستوراتی مثل git push و git pull بدون نیاز به وارد کردن نام کاربری و رمز عبور کار کنید.
نتیجهگیری
با تنظیم کلید SSH، ارتباط امن و راحتی با GitHub خواهید داشت. اگر با خطایی مواجه شدید، مطمئن شوید که کلید عمومی بهدرستی در GitHub اضافه شده و SSH Agent فعال است. برای اطلاعات بیشتر، مستندات رسمی GitHub را بررسی کنید.
راهنمای کار با شاخهها (Branches) در Git
مقدمه
شاخهها در Git امکان کار روی نسخههای مختلف پروژه را فراهم میکنند. این قابلیت برای توسعه ویژگیهای جدید، رفع اشکالات یا آزمایش ایدهها بدون تأثیر بر کد اصلی بسیار مفید است. این راهنما مراحل ایجاد، مدیریت و ادغام شاخهها را توضیح میدهد.
ایجاد شاخه جدید
برای کار روی یک ویژگی یا تغییر خاص، میتوانید یک شاخه جدید ایجاد کنید.
مثال:
git branch feature-name
این دستور یک شاخه جدید به نام feature-name ایجاد میکند، اما شما همچنان در شاخه فعلی هستید.
تغییر به شاخه دیگر
برای شروع کار در شاخه جدید، باید به آن تغییر کنید.
مثال:
git checkout feature-name
این دستور شما را به شاخه feature-name منتقل میکند.
همچنین میتوانید ایجاد و تغییر به شاخه را در یک دستور ترکیب کنید:
git checkout -b feature-name
این دستور شاخهای به نام feature-name ایجاد کرده و به آن تغییر میکند.
مشاهده شاخهها
برای دیدن لیست شاخههای موجود و شاخهای که در آن هستید:
مثال:
git branch
شاخه فعلی با علامت * مشخص میشود. برای اطلاعات بیشتر، از این دستور استفاده کنید:
git branch -a
این دستور همه شاخهها، شامل شاخههای ریموت، را نمایش میدهد.
ادغام شاخهها (Merge)
پس از اتمام کار در یک شاخه، میتوانید تغییرات آن را با شاخه اصلی (مثلاً main) ادغام کنید.
مثال:
git checkout main
git merge feature-name
ابتدا به شاخه main تغییر کنید، سپس شاخه feature-name را در آن ادغام کنید. اگر تضاد (conflict) رخ دهد، Git شما را راهنمایی میکند تا آنها را بهصورت دستی رفع کنید.
حذف شاخه
پس از ادغام، میتوانید شاخهای که دیگر نیازی به آن ندارید را حذف کنید.
مثال:
git branch -d feature-name
این دستور شاخه feature-name را حذف میکند، به شرطی که تغییرات آن ادغام شده باشد. برای حذف شاخهای که ادغام نشده است، از این دستور استفاده کنید:
git branch -D feature-name
کار با شاخههای ریموت
برای ارسال شاخه به مخزن ریموت (مثل GitHub) یا دریافت شاخههای ریموت:
مثال:
git push origin feature-name
این دستور شاخه feature-name را به مخزن ریموت ارسال میکند.
برای دریافت یک شاخه از ریموت:
git fetch origin
git checkout feature-name
این دستورات شاخه feature-name را از ریموت دریافت کرده و به آن تغییر میکنند.
رفع تضادها (Conflicts)
اگر در زمان ادغام تضاد رخ دهد، Git فایلهای مشکلدار را مشخص میکند. میتوانید فایلها را ویرایش کرده، تضادها را رفع کنید، سپس تغییرات را اضافه و کامیت کنید.
مثال:
git add resolved-file.txt
git commit
این دستورات فایل رفعشده را به مرحله آمادهسازی اضافه کرده و ادغام را تکمیل میکنند.
نتیجهگیری
کار با شاخهها در Git به شما امکان میدهد پروژههای خود را بهصورت منظم و ایمن مدیریت کنید. با تمرین این دستورات، میتوانید بهراحتی ویژگیهای جدید اضافه کنید یا تغییرات را آزمایش کنید. برای یادگیری بیشتر، کار با ابزارهای گرافیکی Git یا مستندات رسمی را امتحان کنید.