بلاگ هوش‌گراف

استقرار پروژه، DevOps و زیرساخت ابری برای تیم‌های ایرانی

Git 1 دقیقه مطالعه

Git از صفر تا جریان کاری واقعی تیم

آموزش Git برای تیم‌ها: commit، برنچ، PR، gitignore و قراردادهای ساده برای main سبز.

هوش‌گراف 28 تیر 1405

Git ابزار کنترل نسخه است، اما ارزش واقعی‌اش وقتی دیده می‌شود که تیم روی یک قرارداد مشترک کار کند. این راهنما از مفاهیم پایه تا یک جریان کاری ساده و قابل‌اجرا برای تیم‌های کوچک و متوسط پیش می‌رود.

مفاهیم: working tree، staging، commit

git status
git add .
git commit -m 'feat: add healthcheck endpoint'
git log --oneline -5

status وضعیت فایل‌ها را نشان می‌دهد. add تغییرات را برای commit آماده می‌کند. پیام commit بهتر است کوتاه، فعلی و معنادار باشد. از پیام‌های مبهم مثل fix یا update alone خودداری کنید.

برنچ و ادغام

git switch -c feature/login
# ... work ...
git push -u origin feature/login
git switch main
git pull
git merge feature/login

برنچ feature کار را از main جدا نگه می‌دارد. در تیم‌ها معمولاً به‌جای merge مستقیم، Pull Request/Merge Request با یک review کوتاه ترجیح داده می‌شود. main را تا حد ممکن سبز و قابل‌دیپلوی نگه دارید.

.gitignore و secrets

فایل‌های env، کلیدها و وابستگی‌های build نباید commit شوند. یک .gitignore استاندارد برای زبان پروژه از روز اول اضافه کنید. اگر secret اشتباهاً push شد، چرخش credential لازم است؛ حذف از تاریخ به‌تنهایی کافی نیست.

جریان پیشنهادی تیم کوچک

  • main محافظت‌شده؛ فقط از طریق PR
  • برنچ کوتاه‌عمر برای هر کار
  • حداقل یک reviewer یا چک CI
  • rebase/merge روی main با توافق تیم
  • تگ نسخه برای releaseها

pull، fetch و همگام‌سازی

fetch تغییرات را بدون ادغام می‌آورد؛ pull معمولاً fetch+merge است. اگر روی برنچ مشترک کار می‌کنید، قبل از push حتماً وضعیت remote را ببینید تا conflict دیرهنگام کمتر شود.

اگر می‌خواهید بعد از یادگیری این مفاهیم، مسیر استقرار را سریع‌تر جلو ببرید، می‌توانید از پروژه ابری هوشمند هوش‌گراف هم استفاده کنید؛ اما مبانی این مقاله مستقل از هر پلتفرمی برای کار روزمره مفید است.

نکات عملی بیشتر درباره جریان کاری Git

وقتی روی جریان کاری Git کار می‌کنید، مهم‌ترین اصل این است که هر تغییر را قابل‌برگشت نگه دارید. یعنی قبل از اجرای دستور مخرب، خروجی را در فایل لاگ ذخیره کنید، از کانفیگ بکاپ بگیرید و اگر روی سرور production هستید، ابتدا روی staging تمرین کنید. بسیاری از خطاهای پرهزینه فقط به‌خاطر عجله و نبود چک‌لیست ساده رخ می‌دهند.

یک عادت خوب این است که برای هر سناریوی پرتکرار یک runbook کوتاه داشته باشید: علائم مشکل، دستور تشخیص، اقدام اصلاحی، و معیار موفقیت. این runbook لازم نیست رسمی باشد؛ حتی یک فایل Markdown در ریپو هم کافی است تا تیم یکسان عمل کند.

در محیط‌های ایران، محدودیت شبکه، latency رجیستری و قطعی لحظه‌ای DNS هم باید در runbook بیاید. اگر دستوری به اینترنت وابسته است، مسیر جایگزین یا کش محلی را از قبل مشخص کنید.

اشتباهات رایجی که باید از آن‌ها دوری کنید

  • کپی‌کردن دستور از اینترنت بدون فهم پارامترها
  • اجرای دستور مخرب روی production بدون بکاپ
  • نادیده گرفتن لاگ و فقط نگاه به پیام خطای اول
  • تغییر همزمان چند لایه (شبکه + سرویس + فایروال) بدون جداسازی تست
  • ذخیره secret داخل ریپو یا اسکریپت‌های عمومی

چک‌لیست جمع‌بندی

قبل از بستن کار روی جریان کاری Git، این موارد را مرور کنید: آیا تغییر مستند شد؟ آیا rollback مشخص است؟ آیا مانیتورینگ یا حداقل یک healthcheck ساده وضعیت را نشان می‌دهد؟ آیا دسترسی‌ها حداقل لازم هستند؟ اگر پاسخ هر کدام منفی است، کار را تمام‌شده فرض نکنید.

یادگیری عمیق زمانی رخ می‌دهد که بعد از هر حادثه، یک یادداشت کوتاه بنویسید: چه دیدید، چه فرضی اشتباه بود، و دفعه بعد چه می‌کنید. این چرخه از ده‌ها دوره آموزشی سطحی مؤثرتر است.

نکات عملی بیشتر درباره جریان کاری Git

وقتی روی جریان کاری Git کار می‌کنید، مهم‌ترین اصل این است که هر تغییر را قابل‌برگشت نگه دارید. یعنی قبل از اجرای دستور مخرب، خروجی را در فایل لاگ ذخیره کنید، از کانفیگ بکاپ بگیرید و اگر روی سرور production هستید، ابتدا روی staging تمرین کنید. بسیاری از خطاهای پرهزینه فقط به‌خاطر عجله و نبود چک‌لیست ساده رخ می‌دهند.

یک عادت خوب این است که برای هر سناریوی پرتکرار یک runbook کوتاه داشته باشید: علائم مشکل، دستور تشخیص، اقدام اصلاحی، و معیار موفقیت. این runbook لازم نیست رسمی باشد؛ حتی یک فایل Markdown در ریپو هم کافی است تا تیم یکسان عمل کند.

در محیط‌های ایران، محدودیت شبکه، latency رجیستری و قطعی لحظه‌ای DNS هم باید در runbook بیاید. اگر دستوری به اینترنت وابسته است، مسیر جایگزین یا کش محلی را از قبل مشخص کنید.

اشتباهات رایجی که باید از آن‌ها دوری کنید

  • کپی‌کردن دستور از اینترنت بدون فهم پارامترها
  • اجرای دستور مخرب روی production بدون بکاپ
  • نادیده گرفتن لاگ و فقط نگاه به پیام خطای اول
  • تغییر همزمان چند لایه (شبکه + سرویس + فایروال) بدون جداسازی تست
  • ذخیره secret داخل ریپو یا اسکریپت‌های عمومی

چک‌لیست جمع‌بندی

قبل از بستن کار روی جریان کاری Git، این موارد را مرور کنید: آیا تغییر مستند شد؟ آیا rollback مشخص است؟ آیا مانیتورینگ یا حداقل یک healthcheck ساده وضعیت را نشان می‌دهد؟ آیا دسترسی‌ها حداقل لازم هستند؟ اگر پاسخ هر کدام منفی است، کار را تمام‌شده فرض نکنید.

یادگیری عمیق زمانی رخ می‌دهد که بعد از هر حادثه، یک یادداشت کوتاه بنویسید: چه دیدید، چه فرضی اشتباه بود، و دفعه بعد چه می‌کنید. این چرخه از ده‌ها دوره آموزشی سطحی مؤثرتر است.

نکات عملی بیشتر درباره جریان کاری Git

وقتی روی جریان کاری Git کار می‌کنید، مهم‌ترین اصل این است که هر تغییر را قابل‌برگشت نگه دارید. یعنی قبل از اجرای دستور مخرب، خروجی را در فایل لاگ ذخیره کنید، از کانفیگ بکاپ بگیرید و اگر روی سرور production هستید، ابتدا روی staging تمرین کنید. بسیاری از خطاهای پرهزینه فقط به‌خاطر عجله و نبود چک‌لیست ساده رخ می‌دهند.

یک عادت خوب این است که برای هر سناریوی پرتکرار یک runbook کوتاه داشته باشید: علائم مشکل، دستور تشخیص، اقدام اصلاحی، و معیار موفقیت. این runbook لازم نیست رسمی باشد؛ حتی یک فایل Markdown در ریپو هم کافی است تا تیم یکسان عمل کند.

در محیط‌های ایران، محدودیت شبکه، latency رجیستری و قطعی لحظه‌ای DNS هم باید در runbook بیاید. اگر دستوری به اینترنت وابسته است، مسیر جایگزین یا کش محلی را از قبل مشخص کنید.

اشتباهات رایجی که باید از آن‌ها دوری کنید

  • کپی‌کردن دستور از اینترنت بدون فهم پارامترها
  • اجرای دستور مخرب روی production بدون بکاپ
  • نادیده گرفتن لاگ و فقط نگاه به پیام خطای اول
  • تغییر همزمان چند لایه (شبکه + سرویس + فایروال) بدون جداسازی تست
  • ذخیره secret داخل ریپو یا اسکریپت‌های عمومی

چک‌لیست جمع‌بندی

قبل از بستن کار روی جریان کاری Git، این موارد را مرور کنید: آیا تغییر مستند شد؟ آیا rollback مشخص است؟ آیا مانیتورینگ یا حداقل یک healthcheck ساده وضعیت را نشان می‌دهد؟ آیا دسترسی‌ها حداقل لازم هستند؟ اگر پاسخ هر کدام منفی است، کار را تمام‌شده فرض نکنید.

یادگیری عمیق زمانی رخ می‌دهد که بعد از هر حادثه، یک یادداشت کوتاه بنویسید: چه دیدید، چه فرضی اشتباه بود، و دفعه بعد چه می‌کنید. این چرخه از ده‌ها دوره آموزشی سطحی مؤثرتر است.

نکات عملی بیشتر درباره جریان کاری Git

وقتی روی جریان کاری Git کار می‌کنید، مهم‌ترین اصل این است که هر تغییر را قابل‌برگشت نگه دارید. یعنی قبل از اجرای دستور مخرب، خروجی را در فایل لاگ ذخیره کنید، از کانفیگ بکاپ بگیرید و اگر روی سرور production هستید، ابتدا روی staging تمرین کنید. بسیاری از خطاهای پرهزینه فقط به‌خاطر عجله و نبود چک‌لیست ساده رخ می‌دهند.

یک عادت خوب این است که برای هر سناریوی پرتکرار یک runbook کوتاه داشته باشید: علائم مشکل، دستور تشخیص، اقدام اصلاحی، و معیار موفقیت. این runbook لازم نیست رسمی باشد؛ حتی یک فایل Markdown در ریپو هم کافی است تا تیم یکسان عمل کند.

در محیط‌های ایران، محدودیت شبکه، latency رجیستری و قطعی لحظه‌ای DNS هم باید در runbook بیاید. اگر دستوری به اینترنت وابسته است، مسیر جایگزین یا کش محلی را از قبل مشخص کنید.

نظرات

هنوز نظری ثبت نشده. دیدگاه‌تان را بنویسید.

ثبت نظر

ایمیل شما منتشر نمی‌شود. فیلدهای ضروری علامت * دارند.