گیت ابزاری برای مدیریت نسخههای کد است که به برنامهنویسها اجازه میدهد تغییرات پروژه را ثبت کنند، به نسخههای قبلی برگردند و بهصورت تیمی روی یک پروژه کار کنند.
۱. شروع کار
git init
git clone <repository-url>
git status
ساخت مخزن، دریافت پروژه و بررسی وضعیت فایلها.
۲. ثبت تغییرات
git add .
git commit -m "Add product model"
git log --oneline
تغییرات را برای ثبت آماده کن، با یک پیام مشخص ذخیره کن و تاریخچه را ببین.
۳. کار با Branch
git branch
git switch -c feature/login
git switch main
برای هر قابلیت جدید یک Branch بساز تا کد اصلی پروژه دستنخورده بماند.
۴. ادغام تغییرات
git merge feature/login
git pull
git push
تغییرات را دریافت، منتشر یا با Branch فعلی ادغام کن.
۵. حل Conflict
اگر Git نتواند تغییرات را خودکار ادغام کند، فایلهای دارای تعارض را باز کن، بخشهای علامتگذاریشده را اصلاح کن و سپس:
git add .
git commit
۶. برگشت به نسخه قبلی
git restore <file>
git revert <commit-id>
اولی تغییرات ثبتنشده فایل را برمیگرداند؛ دومی با یک Commit جدید، اثر Commit قبلی را معکوس میکند.
نکته تیمی
قبل از شروع کار، git pull بزن؛ برای تغییرات جدید Branch جدا بساز و قبل از ادغام، Pull Request ایجاد کن تا کدت بررسی شود.
💻TΔRS | تارس
راهنمای کاربردی Git برای کار تیمی 👨🏻💻
Git ابزاری برای مدیریت نسخههای کد است که به برنامهنویسها اجازه میدهد تغییرات پروژه را ثبت کنند، به نسخههای قبلی برگردند و بهصورت تیمی روی یک پروژه کار کنند.
۱. شروع کار
git init
git clone <repository-url>
git status
ساخت مخزن، دریافت پروژه و بررسی وضعیت فایلها.
۲. ثبت تغییرات
git add .
git commit -m "Add product model"
git log --oneline
تغییرات را برای ثبت آماده کن، با یک پیام مشخص ذخیره کن و تاریخچه را ببین.
۳. کار با Branch
git branch
git switch -c feature/login
git switch main
برای هر قابلیت جدید یک Branch بساز تا کد اصلی پروژه دستنخورده بماند.
۴. ادغام تغییرات
git merge feature/login
git pull
git push
تغییرات را دریافت، منتشر یا با Branch فعلی ادغام کن.
۵. حل Conflict
اگر Git نتواند تغییرات را خودکار ادغام کند، فایلهای دارای تعارض را باز کن، بخشهای علامتگذاریشده را اصلاح کن و سپس:
git add .
git commit
۶. برگشت به نسخه قبلی
git restore <file>
git revert <commit-id>
اولی تغییرات ثبتنشده فایل را برمیگرداند؛ دومی با یک Commit جدید، اثر Commit قبلی را معکوس میکند.
نکته تیمی
قبل از شروع کار،
git pull
بزن؛ برای تغییرات جدید Branch جدا بساز و قبل از ادغام، Pull Request ایجاد کن تا کدت بررسی شود.
قبل از اینکه شروع کنی به تغییر دادن کد و حدس زدن، این ۲۰ مورد رو چک کن.
۱. اول خطا رو کامل بخون
خیلی وقتها جواب توی همون "Traceback"ـه. از آخر خطا شروع کن و ببین دقیقا کدوم خط مشکل داشته.
۲. ببین اصلا چه خطاییه
"TypeError" با "NameError" یا "ValueError" داستان متفاوتی داره. نوع خطا معمولا اولین سرنخ خوبه
.
۳. برو سراغ همون خط
خطی که خطا داده رو جدا بررسی کن. ببین چه متغیرهایی اونجا استفاده شدن و دقیقا چه کاری دارن انجام میدن.
۴. مقدار متغیر رو حدس نزن
فکر نکن یه متغیر حتما همون مقداریه که انتظار داری. با "print()" یا Debugger مقدار واقعیش رو ببین.
۵. Type رو چک کن
گاهی فکر میکنی با عدد طرفی، ولی در واقع ""10"" داری. یه "type()" ساده میتونه کلی وقتت رو نجات بده.
۶. "None" رو جدی بگیر
اگه یه جایی "None" گرفتی، دنبال این باش که چرا مقدار موردانتظارت برنگشته. خود "None" معمولا مشکل اصلی نیست، نتیجه یک مشکل قبلیه.
۷. تایپ اسمها رو دوباره ببین
یک حرف اشتباه، حروف بزرگ و کوچک یا استفاده از اسم اشتباه میتونه کل برنامه رو متوقف کنه.
۸. ببین متغیر کجا تعریف شده
گاهی متغیر وجود داره، ولی نه جایی که داری ازش استفاده میکنی. Scope رو بررسی کن.
۹. شرط رو باور نکن، تستش کن
اگه فکر میکنی شرطت "True" میشه، واقعا بررسیش کن. خیلی از باگها دقیقا از همین فرضهای اشتباه شروع میشن.
۱۰. حلقه رو زیر نظر بگیر
اگه حلقه اجرا نمیشه یا تموم نمیشه، سه چیز رو ببین: از کجا شروع شده، شرطش چیه و متغیرش چطور تغییر میکنه.
۱۱. Index رو چک کن
اگه با "IndexError" مواجه شدی، ببین واقعا اون Index داخل لیست وجود داره یا نه.
۱۲. Keyهای Dictionary رو بررسی کن
وقتی "KeyError" میگیری، اول مطمئن شو Keyای که دنبالش میگردی واقعا داخل Dictionary هست.
۱۳. ورودی رو بررسی کن
اگه اطلاعات از کاربر، فایل یا API میاد، فرض نکن ورودی درسته. اول ببین واقعا چی وارد برنامه شده.
۱۴. Importها رو چک کن
اسم Package درست نوشته شده؟ Package نصب شده؟ داری همون محیطی رو اجرا میکنی که Package داخلشه؟
۱۵. حواست به Virtual Environment باشه
یکی از رایجترین دردسرها اینه که Package رو توی یک محیط نصب میکنی و پروژه رو توی یه محیط دیگه اجرا میکنی.
۱۶. نسخه Packageها رو ببین
اگه یه کد قبلا کار میکرده و بعد از نصب یا آپدیت چیزی خراب شده، نسخه Dependencyها رو بررسی کن.
۱۷. مسیر فایل رو چک کن
وقتی Python میگه فایل پیدا نشد، فقط دنبال وجود فایل نگرد. ببین برنامه از چه مسیری داره اجرا میشه و مسیر نسبی از کجا محاسبه میشه.
۱۸. پروژه رو کوچیک کن
اگه پروژه بزرگه، همهچیز رو همزمان بررسی نکن. بخش مشکلدار رو جدا کن و یه مثال کوچیک بساز. پیدا کردن باگ توی ۲۰ خط خیلی راحتتر از ۲۰۰۰ خطه.
۱۹. آخرین چیزی که تغییر دادی رو یادت بیار
اگه کد دیروز درست کار میکرد و امروز نه، اول ببین از دیروز تا امروز چی تغییر کرده. لازم نیست همیشه دنبال مشکل عجیب و غریب بگردی.
۲۰. هر چیزی رو همزمان تغییر نده
این یکی خیلی مهمه.
اگه پنج خط رو تغییر بدی و کد درست بشه، هنوز نمیدونی مشکل دقیقا کجا بوده.
یک فرضیه داشته باش، یک تغییر انجام بده، دوباره تست کن.
وقتی گیر کردی، این ترتیب رو برو:
خطا ⬅️ خط مشکلدار ⬅️مقدار متغیر ⬅️Type ⬅️ورودی ⬅️ منطق کد ⬅️ محیط اجرا ⬅️ Dependencyها
و مهمتر از همه:
دیباگ کردن یعنی فهمیدن اینکه «چرا» کد خراب شده، نه اینکه فقط somehow درستش کنیم.