وقتی روی پروژه ای با Git کار میکنید، ممکن است به اشتباه فایلی را به کامیت اضافه کنید که نباید در آنجا باشد. خوشبختانه Git ابزارهایی دارد که به شما امکان میدهد فایلهای ناخواسته را از کامیتها حذف کنید، چه کامیتها هنوز به مخزن ریموت ارسال نشده باشند و چه ارسال شده باشند. در این پست از زوم تک، روشهای مختلف حذف یک فایل از کامیت را به صورت گام به گام و با توضیحات واضح بررسی خواهیم کرد تا بتوانید به راحتی اشتباهات خود را اصلاح کنید و تاریخچه پروژهتان را تمیز نگه دارید.
چگونه یک فایل را از کامیت Git حذف کنیم
چندین روش برای حذف یک فایل از کامیت Git وجود دارد، بسته به این که آیا کامیت فقط روی لوکال است یا قبلاً به مخزن ریموت ارسال شده است. سادهترین روش حذف کل کامیت در Git است، اما اگر میخواهید بیشتر فایلها را نگه دارید، میتوانید از دستور “git reset” استفاده کنید تا یک فایل را از مخزن محلی حذف کنید:
1. با دستور `git log` کامیتی که شامل فایل مورد نظر است را پیدا کنید.

2. دستور `git reset –soft HEAD^` را اجرا کنید تا آخرین کامیت لغو شود ولی تغییرات در استیجینگ باقی بمانند.

3. فایل مورد نظر را با دستور `git reset HEAD <filename>` از استیجینگ خارج کنید.
4. دوباره باقی فایلها را با دستور `git commit -m ‘پیغام کامیت شما’` کامیت کنید.

از نسخه Git 2.23.0 به بعد میتوانید از دستور “git restore” نیز استفاده کنید:
1. دستور git restore –staged <filepath> را وارد کنید (فایل مورد نظر را جایگزین کنید).2. سپس دستور `git commit -c ORIG_HEAD` را برای کامیت زدن تغییرات اجرا کنید.

راه دیگر حذف کامل فایل این است که:
1. با دستور `git rm <filename>` فایل را حذف کنید.

2. سپس با دستور `git commit –amend` کامیت را اصلاح کنید.
دستور `rm` فایل را از هر دو بخش کار و ایندکس حذف میکند، یعنی فایل به طور کامل از مخزن لوکال و ریموت پاک خواهد شد. این دستور زمانی مفید است که فایل دنبال میشده ولی دیگر نیاز به دنبال شدن ندارد و میخواهید آن را از کل پروژه حذف کنید.
چرا فایل را از یک کامیت Git حذف کنیم؟
چند دلیل وجود دارد که ممکن است بخواهید فایلی را از کامیت حذف کنید. در ادامه چند مورد را بررسی میکنیم:
سادگی تاریخچه کامیتها:
در پروژههای بزرگ و پیچیده، تاریخچه کامیتها ممکن است پر از تغییرات اضافی، اصلاحات و بهروزرسانیها شود که بعضی از آنها ضروری نیستند. مثلاً ممکن است فایلی کامیت شده باشد که به پیشرفت یا وضوح پروژه کمکی نمیکند، مثل یک قابلیت آزمایشی که موفق نبود یا یک فایل موقت که باید حذف شود.
حذف چنین فایلهایی از کامیتها به پاکسازی تاریخچه کمک میکند و درک زمانبندی توسعه را برای اعضای تیم آسانتر میکند.
اصلاح اشتباهات:
اصلاح اشتباهات رایجترین دلیل برای حذف فایل از کامیت است. مثلاً ممکن است در عجله یک فایل لاگ یا فایل نسخه قدیمی را به کامیت اضافه کرده باشید. حذف آن فایل باعث حفظ یکپارچگی تاریخچه کامیت و پاک نگه داشتن آن از فایلهای اضافی یا مضر میشود.
حذف دادههای حساس یا محرمانه:
به راحتی ممکن است دادههای حساس مثل کلیدهای API یا اطلاعات ورود به پایگاه داده را اشتباهی کامیت کنید. این موضوع میتواند مشکلات امنیتی جدی ایجاد کند. در چنین مواردی، حذف فایل از کامیت فراتر از اصلاح خطا است و ضروری است، مخصوصاً اگر در یک تیم یا شرکت کار میکنید.
نکات مهم
تداخل مخزن:
حذف فایل از کامیتهایی که عمومی یا به اشتراک گذاشته شدهاند کار سادهای نیست و ممکن است باعث سردرگمی یا تداخل بین مخزن محلی و ریموت دیگر اعضا شود. قبل از حذف فایل، با تیم خود صحبت کنید و دلیل کار خود را توضیح دهید.
از دست دادن دادهها:
قبل از حذف فایل، مطمئن شوید که آن فایل حاوی کد یا داده مهمی نیست که ممکن است بعداً به آن نیاز داشته باشید.
بازگرداندن (revert) بهتر است برای مخازن عمومی:
برای مخازن عمومی بهتر است از دستور `git revert` استفاده کنید که غیر مخرب است و تغییرات را به صورت شفاف و قابل ردیابی بازمیگرداند. این روش برای همکاریهای تیمی و پروژههای متن باز بهتر است چون تاریخچه را حفظ میکند.
جمعبندی
به راحتی ممکن است فایلی که نباید در کامیت باشد به اشتباه اضافه شود، ولی خوشبختانه راههای مختلفی برای اصلاح آن وجود دارد. فقط یادتان باشد اگر عضو تیم هستید، هماهنگی لازم با تیم را انجام دهید و مخازن محلی و ریموت را همخوان نگه دارید.آیا تا به حال فایل اشتباهی را در کامیت Git خود وارد کردهاید؟ راه حل شما چه بوده؟ نظر خود را در کامنتها بنویسید. ما مشتاق خواندن آنها هستیم.





نظرات در مورد : چگونه یک فایل را از کامیت Git حذف کنیم؟