جلسه شماره 145رایگان

Git Amend | دستور گیت آمند

00:24:14

توضیحات جلسه

🎥 این ویدیو قسمت یازدهم از پلی‌لیست تخصصی آموزش گیت (Git) است. 📚 در این جلسه به سراغ یکی از دستورات بسیار کاربردی و مهم در مدیریت تاریخچه کامیت‌ها یعنی دستور git amend می‌رویم. در این ویدیو به طور کامل بررسی می‌کنیم که دستور git amend چیست، چه کاربردی دارد و در چه شرایطی باید از آن استفاده کنیم. این دستور به شما اجازه می‌دهد آخرین کامیت خود را ویرایش کنید، پیام آن را تغییر دهید، فایل‌های جدید به آن اضافه کنید یا حتی نویسنده کامیت را اصلاح کنید. در طول ویدیو ابتدا با مفاهیم کلی و هدف از استفاده از کامیت‌های اصلاحی آشنا می‌شویم، سپس نحوه آپدیت کردن پیام کامیت، اضافه کردن فایل‌های جدید استیج‌شده (Commit new staged files) و تغییر آتور (Author) را به صورت عملی یاد می‌گیریم. همچنین به نکات بسیار مهمی درباره خطرات استفاده از این دستور و اینکه چه زمانی نباید از آن استفاده کنید (Dont Use Amend!) می‌پردازیم. در این جلسه یاد می‌گیریم: 🎯 بررسی هدف و کاربرد اصلی دستور git amend در گیت ✏️ نحوه ویرایش و آپدیت کردن پیام آخرین کامیت (Update Commit Message) 📦 اضافه کردن فایل‌های جدید به کامیت قبلی (Commit new staged file) 👤 تغییر و اصلاح اطلاعات نویسنده یا آتور کامیت (Update Author) ⚠️ بررسی خطرات و سناریوهایی که نباید از amend استفاده کنید (Dont Use Amend!) 🧠 در پایان نیز یک جمع‌بندی کامل از نکات مهم جلسه خواهیم داشت اگر در حال یادگیری گیت و کنترل نسخه هستید، تسلط بر دستور git amend به شما کمک می‌کند تاریخچه گیت تمیزتر و حرفه‌ای‌تری داشته باشید و اشتباهات کوچک کامیت‌ها را به راحتی اصلاح کنید. 📌 یوتیوب: youtube.com/@farzadafi 📌 آپارت: aparat.com/farzadafi 📌 وب‌سایت: https://farzadafi.ir 📌 گروه پرسش و پاسخ تلگرام: @programmingByFarzadAfi 💬 گروه پرسش و پاسخ بله: @programming_by_farzadafi وب سایت: https://farzadafi.ir هر سوالی داشته باشید می‌توانید در گروه بپرسید تا من یا مربی‌های گروه کمکتان کنیم 💬 🎯 بوت‌کمپ رایگان جاوا – آموزش کاملاً پروژه‌محور برای یادگیری عمیق جاوا و ورود به بازار کار.

جزوه و مستندات

مفاهیم کلیدی

  • git commit --amend

دستوری در گیت که آخرین کامیت ثبت‌شده در شاخه فعلی را اصلاح کرده و آن را با یک کامیت کاملاً جدید که شامل تغییرات استیج‌شده جدید یا پیام به‌روزرسانی‌شده است، جایگزین می‌کند.

  • --no-edit

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

  • --reset-author

گزینه‌ای که متادیتای نویسنده (Author) آخرین کامیت را با اطلاعات پیکربندی‌شده فعلی کاربر در گیت بازنشانی و همگام‌سازی می‌کند.

  • Commit SHA Mutation

تغییر مقدار هش یکتای کامیت به دلیل تغییر در محتوا، پیام یا متادیتا؛ دستور اصلاح کامیت ذاتاً یک کامیت جدید با شناسه متفاوت می‌سازد و کامیت قبلی را بازنویسی می‌کند.

موارد مصاحبه ای

  • عملکرد دقیق دستور git commit --amend زیر ذره‌بین گیت چیست؟

این دستور کامیت قبلی را در جای خود ویرایش نمی‌کند، بلکه یک شیء کامیت کاملاً جدید با تغییرات اضافه یا پیام اصلاح‌شده می‌سازد و اشاره‌گر شاخه فعلی را به سمت کامیت جدید هدایت می‌کند، در نتیجه شناسه هش کامیت تغییر می‌یابد.

  • چرا استفاده از amend روی کامیت‌هایی که به ریموت ارسال شده‌اند خطرناک است؟

به دلیل تغییر هش کامیت پس از اصلاح، تاریخچه محلی با تاریخچه ریموت همگرا نخواهد بود و ارسال آن به مخزن اشتراکی نیازمند دستور اجباری است که تاریخچه همکاران را تخریب کرده و باعث ایجاد تعارض‌های جدی در تیم می‌شود.

  • تفاوت اصلاح پیام کامیت با اصلاح محتوای کامیت از طریق amend چیست؟

اگر تغییری در ناحیه استیج نباشد، دستور فقط پیام کامیت قبلی را ویرایش می‌کند؛ اما اگر پیش از آن فایلی با دستور git add استیج شده باشد، محتوای آن نیز با محتوای کامیت قبلی ترکیب می‌شود.

سناریو کاربردی

  • اصلاح پیام کامیت و اضافه کردن فایل فراموش‌شده به آخرین کامیت

در سناریوی اول فقط پیام آخرین کامیت تغییر داده می‌شود:

git commit --amend -m "refactor(core): update order processing logic"

در سناریوی دوم فایلی فراموش‌شده به آخرین کامیت اضافه می‌شود، بدون تغییر در پیام قبلی:

git add forgotten_file.java
git commit --amend --no-edit

مراحل کار: ۱. اضافه کردن فایل فراموش‌شده به ناحیه استیج با دستور git add. ۲. اجرای دستور git commit --amend --no-edit برای ادغام محتوا با آخرین کامیت بدون باز شدن ادیتور متن. ۳. جایگزینی کامیت پیشین با کامیت جدید شامل هر دو تغییر.

بیشتر بدانید

  • تغییر اطلاعات نویسنده با متغیرهای سیستمی

اگر کامیت اولیه با نام کاربری یا ایمیل اشتباهی ثبت شده باشد، پس از اصلاح متغیرهای پیکربندی گیت می‌توانید با دستور زیر هویت نویسنده کامیت را به تنظیمات جدید به‌روزرسانی کنید:

git commit --amend --reset-author --no-edit
  • بررسی تغییر هش پس از انجام اصلاح

همیشه پس از اجرای دستور اصلاح، با اجرای دستور git log -1 هش جدید کامیت را بررسی کنید تا تفاوت آن با هش قبل از اصلاح تایید شود.