برنامه نویسی

راهنمای بقای Ned's Git 📚

Summarize this content to 400 words in Persian Lang

به Ned's Git Survival Guide خوش آمدید! 📚 در این راهنما، دستورات ضروری Git مانند git checkout y git restore برای لغو تغییرات، git stash برای ذخیره موقت کار غیرمتعهد، git cherry-pick برای کشیدن commit های خاص از یک شاخه به شاخه دیگر و git reflog برای بازیابی “تعهدات از دست رفته”. چه در حال رفع یک باگ باشید، چه در حال تغییر اولویت‌ها به دلیل تصمیم رئیس‌تان یا بازیابی کدهای حذف شده، این دستورات به شما کمک می‌کند تا سناریوهای رایج را با اطمینان مدیریت کنید. بنابراین، بیایید با هم شیرجه بزنیم و به Git مسلط شویم!

این چیزی است که امروز خواهیم آموخت:

فهرست 📋

قسمت 1: روز اول کار و اشتباهات

با استفاده از git checkout برای بازیابی فایل ها از یک commit قبلی.
ذخیره تغییرات غیرمتعهد با git restore.

قسمت 2: ما یک اولویت جدید داریم، هیوستون

نحوه ذخیره فایل های ردیابی نشده با git stash.
ذخیره ها را مدیریت کنید و در صورت لزوم آنها را بازیابی کنید.

قسمت 3: ¡Crisis de CoolFeature!

برای استفاده git cherry-pick برای انتخاب و اعمال commit های خاص.

قسمت 4: درام “من نظرم را تغییر دادم”

بازیابی commit های حذف شده با git reflog.

نتیجه گیری

فرض کنید در حال ساخت یک برنامه نقشه برداری برای محل کار شما هستیم و ساختار پوشه زیر را داریم:

ما فایل خود را بازسازی می کنیم main.tsx چون ما می خواهیم MapsApp.tsx فایل اصلی برنامه ما باشد، اما به طور تصادفی خطایی را معرفی می کنیم.

ما متوجه آن نیستیم و اقدام به commit و فشار به مخزن راه دور می کنیم:

(در صورتی که کنجکاو هستید، من از gitmoji برای پیام های commit جالب استفاده می کنم.)

اکنون، پروژه خود را اجرا می کنید و متوجه می شوید که یک خطا در آن وجود دارد main.tsx چون کنسول به شما می گوید، اما به دلایلی نمی توانید آن را پیدا کنید – شاید عصبی باشید، بنابراین …

چیکار کنم که سرزنشم نکنن؟

نکته شماره 1: بازیابی فایل ها جان انسان ها را نجات می دهد

در این سناریو، برای سادگی، اجازه دهید فرض کنیم که پروژه را قبل از بازسازی به عنوان یک تمرین خوب پیش برده اید (در غیر این صورت با مشکل مواجه هستید). شما استفاده می کنید git log، و موارد زیر را به شما نشان می دهد:

از آنجایی که شما یک فایل قدیمی خوب دارید، می توانید به سادگی استفاده کنید git log و انتخاب کنید هش کردن که می خواهید آن را بازیابی کنید. در مورد ما این است:

سپس به نوشتن ادامه دهید:

git checkout 4d7490e src/main.tsx

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

و شما آن را بازیابی کردید – تادا!

سلام، من فقط یک commit در پروژه خود دارم، آیا می توانم آن را برگردانم؟

نکته شماره 2: استفاده کنید git restore برای تغییرات غیرمتعهد

شما تغییرات غیرمتعهد زیر را دارید main.tsx:

می توانید تأیید کنید که آنها به الف متعهد نیستند git status:

و تو git log فقط اولین commit را دارد که در آن پروژه خود را ایجاد کردید:

شما دو گزینه دارید، یکی آسان و دیگری دشوار:

# La fácil
git restore src/main.tsx
# La difícil
git checkout — src/main.tsx

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

من میرم با restore:

حالا فایل ما دوباره تمیز است! هورا!

اکنون، رئیس یا رهبر تیم شما تصمیم می گیرد که روز خوبی برای تغییر اولویت ها است (زیرا این موضوع آنهاست). فرض کنید در حال ایجاد یک صفحه جدید به نام هستید MyCoolPage.tsx:

حالا شما باید تصمیم بگیرید: آیا باید commit ها را commit و سپس rebase کنم، مواردی را که می خواهم انتخاب کنم و آن را تمیز کنم؟

بعداً فقط برای آن تغییر زمان زیادی را تلف خواهم کرد، چه کاری می توانم انجام دهم؟

نکته 3: آن را ذخیره کن، برادر

در این مورد مراقب باشید! این مثال خاص شامل ایجاد یک فایل جدید است که در مخزن شما وجود ندارد، بنابراین باید از موارد زیر استفاده کنید:

git stash –include-untracked
# O la bandera más corta
git stash -u

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اکنون، می بینید که فایل دیگر در اختیار ما نیست:

اما اگر بنویسید:

git stash list

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

هنوز اینجاست:

نام انبار است stash@{0}.

اکنون چندین گزینه داریم:

# Podemos extraer el stash y eliminarlo de la lista con un simple
git stash pop
# O aplicarlo y dejarlo en la lista para que podamos acceder a él más tarde con
git stash apply stash@{número de tu stash}

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

من میرم با pop، و می توانید ببینید که بازگشته است:

وقتی سعی میکنم استفاده کنم git stash list، چیزی را نشان نمی دهد زیرا در نهایت از لیست استخراج شد:

شما در حال کار بر روی شاخه دیگری برای یک ویژگی به نام هستید feature/myCoolFeature، که سه الزام دارد. شما قبلاً دو مورد از آنها را تکمیل کرده اید، بنابراین دو commit در آن شاخه دارید.

حالا رئیستان به شما می گوید: هی، ما نیاز داریم CoolFeature که شما از شعبه خود مستقر کردید، اما فقط اولین، و ما اکنون به آن نیاز داریم!

شما می توانید یک شاخه از شاخه فعلی ایجاد کنید، commit HEAD را حذف کرده و آن را در آن ادغام کنید main، اما برای چنین کار ساده ای خیلی زیاد است.

اوه مرد، من برای این به زمان نیاز دارم و آنها اکنون به آن نیاز دارند، آیا راه سریع تری وجود دارد؟

نکته 4: از Cherry-Pick برای دریافت این تعهد استفاده کنید

و یک تو راما main باهم git checkout main و گزارش شعبه دیگر را با:

git log feature/myCoolFeature

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

سپس، commit خاص را انتخاب کنید:

git cherry-pick 714cf87

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

و لینوس توروالدز (خلق Git و Linux) دوباره روز را نجات می دهد! و اگر استفاده می کنید git log، می توانید ببینید که تغییرات شما وجود دارد:

فرض کنید یک ویژگی جدید ایجاد کرده اید:

شما اضافه کنید و درست کنید

متعهد شوید، اما نظر خود را تغییر می دهید و تصمیم به حذف آن می گیرید، بنابراین به جستجو در گوگل ادامه می دهید cómo eliminar un commit. شما که با a git reset –hard HEAD~1، شما اقدام به استفاده از آن می کنید.

شما خوب هستید تا زمانی که متوجه شوید می خواهید دوباره از برخی کدها استفاده کنید، اما اکنون که از آن استفاده می کنید git log، نمی توانید آن را پیدا کنید. شما فکر می کنید:

او برای همیشه رفته است، حالا من زمان را تلف می کنم …

نکته شماره 5: اگر نمی توانید آن را در آن پیدا کنید git log، وقت آن است که reflog

فقط جادوی این دستور را بررسی کنید:

git reflog

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اکنون هش برای بازگردانی commit خود دارید:

یک پایان خوش دیگر!

تبریک می‌گوییم، شما کتابچه راهنمای بقای Git خود را تأیید کرده‌اید! 🎉 درست مانند کتاب راهنمای بقای مدرسه Ned 📚، اکنون مجموعه خوبی از ابزارها برای پیمایش در راهروهای پیچیده کنترل نسخه دارید. از زمان استفاده git checkout برای رفع این اشکالات تصادفی، صرفه جویی در تغییرات غیرمتعهد مانند یک حرفه ای، cherry-pick زمانی که فشار زیاد است انجام می شود، حتی کار از دست رفته را نجات دهید git reflog، شما آماده هستید تا با اطمینان خاطر هر چالش Git را انجام دهید. بنابراین، این نکات را عملی کنید و پروژه های خود را به خوبی اجرا کنید.

با تشکر ویژه از Midu بدون کتاب Git او، من نمی توانستم این مقاله را انجام دهم. 🙏💻✨

با تشکر برای خواندن!

برادر، نظرات یا پیشنهادات خود را در مورد Git در نظرات زیر به من بگویید 👇

به Ned's Git Survival Guide خوش آمدید! 📚 در این راهنما، دستورات ضروری Git مانند git checkout y git restore برای لغو تغییرات، git stash برای ذخیره موقت کار غیرمتعهد، git cherry-pick برای کشیدن commit های خاص از یک شاخه به شاخه دیگر و git reflog برای بازیابی “تعهدات از دست رفته”. چه در حال رفع یک باگ باشید، چه در حال تغییر اولویت‌ها به دلیل تصمیم رئیس‌تان یا بازیابی کدهای حذف شده، این دستورات به شما کمک می‌کند تا سناریوهای رایج را با اطمینان مدیریت کنید. بنابراین، بیایید با هم شیرجه بزنیم و به Git مسلط شویم!

این چیزی است که امروز خواهیم آموخت:


فهرست 📋

  1. قسمت 1: روز اول کار و اشتباهات

    • با استفاده از git checkout برای بازیابی فایل ها از یک commit قبلی.
    • ذخیره تغییرات غیرمتعهد با git restore.
  2. قسمت 2: ما یک اولویت جدید داریم، هیوستون

    • نحوه ذخیره فایل های ردیابی نشده با git stash.
    • ذخیره ها را مدیریت کنید و در صورت لزوم آنها را بازیابی کنید.
  3. قسمت 3: ¡Crisis de CoolFeature!

    • برای استفاده git cherry-pick برای انتخاب و اعمال commit های خاص.
  4. قسمت 4: درام “من نظرم را تغییر دادم”

    • بازیابی commit های حذف شده با git reflog.
  5. نتیجه گیری


فرض کنید در حال ساخت یک برنامه نقشه برداری برای محل کار شما هستیم و ساختار پوشه زیر را داریم:

ساختار پوشه React در Vite

ما فایل خود را بازسازی می کنیم main.tsx چون ما می خواهیم MapsApp.tsx فایل اصلی برنامه ما باشد، اما به طور تصادفی خطایی را معرفی می کنیم.

ارتکاب با خطا در main.tsx

ما متوجه آن نیستیم و اقدام به commit و فشار به مخزن راه دور می کنیم:

انجام فرآیند تعهد

(در صورتی که کنجکاو هستید، من از gitmoji برای پیام های commit جالب استفاده می کنم.)

اکنون، پروژه خود را اجرا می کنید و متوجه می شوید که یک خطا در آن وجود دارد main.tsx چون کنسول به شما می گوید، اما به دلایلی نمی توانید آن را پیدا کنید – شاید عصبی باشید، بنابراین …

چیکار کنم که سرزنشم نکنن؟

نکته شماره 1: بازیابی فایل ها جان انسان ها را نجات می دهد

در این سناریو، برای سادگی، اجازه دهید فرض کنیم که پروژه را قبل از بازسازی به عنوان یک تمرین خوب پیش برده اید (در غیر این صورت با مشکل مواجه هستید). شما استفاده می کنید git log، و موارد زیر را به شما نشان می دهد:

گزارش گیت

از آنجایی که شما یک فایل قدیمی خوب دارید، می توانید به سادگی استفاده کنید git log و انتخاب کنید هش کردن که می خواهید آن را بازیابی کنید. در مورد ما این است:

انتخاب هش commit

سپس به نوشتن ادامه دهید:

git checkout 4d7490e src/main.tsx
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

و شما آن را بازیابی کردید – تادا!

فایل بازیابی شده

سلام، من فقط یک commit در پروژه خود دارم، آیا می توانم آن را برگردانم؟

نکته شماره 2: استفاده کنید git restore برای تغییرات غیرمتعهد

شما تغییرات غیرمتعهد زیر را دارید main.tsx:

تغییرات غیرمتعهد

می توانید تأیید کنید که آنها به الف متعهد نیستند git status:

وضعیت Git

و تو git log فقط اولین commit را دارد که در آن پروژه خود را ایجاد کردید:

گزارش گیت

شما دو گزینه دارید، یکی آسان و دیگری دشوار:

# La fácil
git restore src/main.tsx
# La difícil
git checkout -- src/main.tsx
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

من میرم با restore:

فایل پاک کنید

حالا فایل ما دوباره تمیز است! هورا!


اکنون، رئیس یا رهبر تیم شما تصمیم می گیرد که روز خوبی برای تغییر اولویت ها است (زیرا این موضوع آنهاست). فرض کنید در حال ایجاد یک صفحه جدید به نام هستید MyCoolPage.tsx:

ایجاد MyCoolPage.tsx

حالا شما باید تصمیم بگیرید: آیا باید commit ها را commit و سپس rebase کنم، مواردی را که می خواهم انتخاب کنم و آن را تمیز کنم؟

بعداً فقط برای آن تغییر زمان زیادی را تلف خواهم کرد، چه کاری می توانم انجام دهم؟

نکته 3: آن را ذخیره کن، برادر

در این مورد مراقب باشید! این مثال خاص شامل ایجاد یک فایل جدید است که در مخزن شما وجود ندارد، بنابراین باید از موارد زیر استفاده کنید:

git stash --include-untracked
# O la bandera más corta
git stash -u
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اکنون، می بینید که فایل دیگر در اختیار ما نیست:

فایل در انبار ذخیره شد

اما اگر بنویسید:

git stash list
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

هنوز اینجاست:

لیست انبارها

نام انبار است stash@{0}.

اکنون چندین گزینه داریم:

# Podemos extraer el stash y eliminarlo de la lista con un simple
git stash pop
# O aplicarlo y dejarlo en la lista para que podamos acceder a él más tarde con
git stash apply stash@{número de tu stash}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

من میرم با pop، و می توانید ببینید که بازگشته است:

فایل از مخفیگاه استخراج شد

وقتی سعی میکنم استفاده کنم git stash list، چیزی را نشان نمی دهد زیرا در نهایت از لیست استخراج شد:

لیست انبار خالی


شما در حال کار بر روی شاخه دیگری برای یک ویژگی به نام هستید feature/myCoolFeature، که سه الزام دارد. شما قبلاً دو مورد از آنها را تکمیل کرده اید، بنابراین دو commit در آن شاخه دارید.

حالا رئیستان به شما می گوید: هی، ما نیاز داریم CoolFeature که شما از شعبه خود مستقر کردید، اما فقط اولین، و ما اکنون به آن نیاز داریم!

درخواست فوری

شما می توانید یک شاخه از شاخه فعلی ایجاد کنید، commit HEAD را حذف کرده و آن را در آن ادغام کنید main، اما برای چنین کار ساده ای خیلی زیاد است.

اوه مرد، من برای این به زمان نیاز دارم و آنها اکنون به آن نیاز دارند، آیا راه سریع تری وجود دارد؟

نکته 4: از Cherry-Pick برای دریافت این تعهد استفاده کنید

و یک تو راما main باهم git checkout main و گزارش شعبه دیگر را با:

git log feature/myCoolFeature
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

سپس، commit خاص را انتخاب کنید:

git cherry-pick 714cf87
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

گیلاس چیدن el commit

و لینوس توروالدز (خلق Git و Linux) دوباره روز را نجات می دهد! و اگر استفاده می کنید git log، می توانید ببینید که تغییرات شما وجود دارد:

گزارش git اصلی


فرض کنید یک ویژگی جدید ایجاد کرده اید:

ویژگی

شما اضافه کنید و درست کنید

متعهد شوید، اما نظر خود را تغییر می دهید و تصمیم به حذف آن می گیرید، بنابراین به جستجو در گوگل ادامه می دهید cómo eliminar un commit. شما که با a git reset --hard HEAD~1، شما اقدام به استفاده از آن می کنید.

گیت ریست

شما خوب هستید تا زمانی که متوجه شوید می خواهید دوباره از برخی کدها استفاده کنید، اما اکنون که از آن استفاده می کنید git log، نمی توانید آن را پیدا کنید. شما فکر می کنید:

او برای همیشه رفته است، حالا من زمان را تلف می کنم …

نکته شماره 5: اگر نمی توانید آن را در آن پیدا کنید git log، وقت آن است که reflog

فقط جادوی این دستور را بررسی کنید:

git reflog
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

Reflog

اکنون هش برای بازگردانی commit خود دارید:

بازیابی کنید

یک پایان خوش دیگر!


تبریک می‌گوییم، شما کتابچه راهنمای بقای Git خود را تأیید کرده‌اید! 🎉 درست مانند کتاب راهنمای بقای مدرسه Ned 📚، اکنون مجموعه خوبی از ابزارها برای پیمایش در راهروهای پیچیده کنترل نسخه دارید. از زمان استفاده git checkout برای رفع این اشکالات تصادفی، صرفه جویی در تغییرات غیرمتعهد مانند یک حرفه ای، cherry-pick زمانی که فشار زیاد است انجام می شود، حتی کار از دست رفته را نجات دهید git reflog، شما آماده هستید تا با اطمینان خاطر هر چالش Git را انجام دهید. بنابراین، این نکات را عملی کنید و پروژه های خود را به خوبی اجرا کنید.


با تشکر ویژه از Midu بدون کتاب Git او، من نمی توانستم این مقاله را انجام دهم. 🙏💻✨


با تشکر برای خواندن!

برادر، نظرات یا پیشنهادات خود را در مورد Git در نظرات زیر به من بگویید 👇

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا