منو سایت

نحوه حذف فایل در Git

 تاریخ انتشار :
/
  وبلاگ
نحوه حذف فایل در Git

نحوه حذف فایل در Git فایل را در Git حذف می کند.” class=”ezlazyload wp-image-12233″ data-ez ezimgfmt=”rs rscb1 src ng ngcb1 srcset” data-ezsrc=”https://www.codingem.com/wp-content/uploads/2022/11/git-rm-to-delete-files-in-git. png “/>

برای حذف یک فایل از Git و سیستم فایل محلی خود، اجرا کنید git rm دستور داده و نام فایل را مشخص کنید.

git rm <file-name>

برای حذف یک پوشه، استفاده کنید گزینه ای برای حذف بازگشتی زیر پوشه ها و فایل های دایرکتوری:

git rm -r <folder-name>

همچنین می توانید یک فایل را از Git حذف کنید اما با مشخص کردن آن را به صورت محلی نگه دارید – ذخیره شده گزینه ج git rm فرمان

git rm --cached <file-name>

این یک راهنمای جامع برای حذف یک فایل در Git است. شما یاد خواهید گرفت که چگونه فایل ها را از مخزن Git، کل سیستم فایل یا حتی کل تاریخچه commit حذف کنید. همچنین نمونه هایی از نحوه ردیابی فایل ها را با حذف آنها از Git خواهید دید، اما نه از پروژه. این نظریه با مثال‌های عینی با پروژه‌های Git واقعی برای حمایت از درک پشتیبانی می‌شود.

بیایید به آن بپریم.

با دستور git rm فایل ها را پاک کنید.

برای حذف یک فایل از مخزن Git خود، اجرا کنید git rm دستور به دنبال آن نام فایل شما.

git rm <file-name>

جایی که نیاز به تعویض دارید <име-на-файл> با نام فایل یا مسیر فایلی که می خواهید حذف کنید.

دستور “git rm” فایل را هم از مخزن و هم از سیستم فایل حذف می کند.

این دستور حذف را به قسمت “مرحله ای” پروژه اضافه می کند. برای نهایی کردن حذف فایل، باید به یاد داشته باشید که تغییر را ایجاد کنید.

یک مثال

بیایید به یک مثال عینی با یک مخزن نمونه واقعی نگاه کنیم تا بفهمیم چگونه فایل ها از Git حذف می شوند.

در این مثال من یک مخزن با سه فایل نمونه دارم، file1.txt، file2.txtو file3.txt.

نحوه حذف فایل در Git

 $ ls     
file1.txt  file2.txt  file3.txt  README.md  test.txt

حالا بیایید حذف کنیم file1.txt از مخزن و از سیستم فایل:

$ git rm file1.txt

در مرحله بعد، بیایید وضعیت پروژه را با استفاده از وضعیت git:

نحوه حذف فایل در Git

همانطور که مشاهده می کنید، file1.txt دیگر آنجا نیست توجه داشته باشید که فایل هنوز در فهرست پروژه Git وجود دارد. اگر مطمئن هستید که می خواهید فایل را از Git نیز حذف کنید، اجرا کنید git commit.

$ git commit -m "Remove file1.txt from the project"

پس از اجرای این دستور، فایل دیگر در مخزن Git یا فایل سیستم وجود ندارد.

به هر حال، هنوز راهی برای بازگرداندن فایل حذف شده با بازگشت به commit قبلی وجود دارد. git reset –soft HEAD~1. این دستور آخرین commit را لغو می کند و حذف را به افزایشی برمی گرداند. برای حذف مرحله (یعنی فایل را به عقب برگردانید)، اجرا کنید git recover –staded <файл>.

حذف پوشه های “git rm -r”

گاهی اوقات ممکن است بخواهید نه تنها از شر یک فایل، بلکه کل فهرست فایل ها خلاص شوید. در این مورد، شروع کافی نیست git rm دستور همانطور که هست به این دلیل است که اگر می‌خواهید دایرکتوری را حذف کنید، حذف باید بازگشتی باشد، یعنی. باید فایل ها و زیر پوشه های داخل دایرکتوری را حذف کند.

برای حذف یک پوشه از Git، اجرا کنید git rm فرمان با گزینه (برای حذف بازگشتی):

git rm -r <folder-name>

پس از اجرای این دستور، پوشه از سیستم فایل حذف می شود، اما همچنان در مخزن Git زندگی می کند. برای حذف آن از مخزن، باید تغییر را به همان روشی که قبلا انجام دادید انجام دهید!

یک مثال

مثل همیشه، بیایید به مثالی از حذف یک پوشه از یک مخزن Git نگاه کنیم.

در اینجا یک پروژه نمونه با یک زیرپوشه به نام آمده است نمونه ها.

نحوه حذف فایل در Git

پوشه نمونه دو فایل به نام دارد file4.txt و file5.txt.

بیایید این پوشه را از پروژه Git و سیستم فایل در حال استفاده حذف کنیم git rm با گزینه بازگشتی :

$ git rm -r samples

در اینجا چیزی است که هنگام اجرای این دستور و بررسی وضعیت پروژه به دست می آورید:

نحوه حذف فایل در Git

همانطور که از خروجی می توانید متوجه شوید، دستور با موفقیت فایل ها را حذف می کند file4 و file5 از جانب نمونه ها پوشه (به همراه خود پوشه). این وضعیت git این را تأیید می کند زیرا نشان می دهد که دو فایل وجود دارد که حذف خواهند شد.

علاوه بر این، اگرچه از گزارش ها مشخص نیست، نمونه ها/ خود پوشه نیز حذف می شود.

نحوه حذف فایل در Git

بخاطر داشته باش چون استفاده کردی git rm -r، فایل ها هنوز از پروژه Git حذف نشده اند، اما در عوض از سیستم فایل حذف شده اند. برای حذف پوشه از Git، به یاد داشته باشید که commit کنید!

$ git commit -m "Remove the samples folder"

حالا پوشه و محتویات آن برای همیشه از بین رفته است.

فقط از Git Repo حذف کنید

گاهی اوقات ممکن است بخواهید یک فایل را از پروژه Git حذف کنید، اما نه از سیستم فایل.

در این صورت باید اجرا کنید git rm با – ذخیره شده گزینه.

git rm --cached <file>

مثال: ردیابی فایل را متوقف کنید

بیایید به یک مثال عینی برای حمایت از درک حذف فایل‌ها نگاه کنیم – ذخیره شده گزینه در Git

در اینجا یک پروژه Git وجود دارد که یک فایل به نام دارد data.txt.

نحوه حذف فایل در Git

این فایل قبلا ردیابی شده بود، اما اکنون می خواهید ردیابی آن را متوقف کنید، اما آن را به صورت محلی در سیستم فایل خود ذخیره کنید. برای انجام این کار، بیایید راه اندازی کنیم git rm فرمان با – ذخیره شده گزینه.

$ git rm --cached data.txt

حال بیایید وضعیت پروژه و پوشه پروژه را بررسی کنیم:

نحوه حذف فایل در Git

فایل هنوز در پوشه محلی وجود دارد، اما حذف فایل از Git اکنون مرحله‌ای است. برای حذف فایل از Git (و ذخیره آن به صورت محلی)، همچنان باید تغییرات را انجام دهید.

$ git commit -m "Untrack the data.txt file"

پس از اجرای این دستور، دوباره وضعیت را بررسی می کنیم.

نحوه حذف فایل در Git

هوم… فایل هنوز هست! اما منطقی است. شما فایل را از Git Tracking حذف کردید، اما همانطور که می خواستید، فایل هنوز در پروژه وجود دارد. بنابراین منطقی است که Git آن را در بخش فایل های ردیابی نشده نشان دهد.

برای توقف ردیابی فایل (و جلوگیری از افزودن تصادفی آن با git addبیایید یک نامرئی ایجاد کنیم .gitignore فایل و اضافه کنید data.txt آنجا.

من این کار را با ترمینال انجام می دهم تا کوتاه بماند. شما می توانید هر طور که می خواهید این کار را انجام دهید تا زمانی که یک فایل نامیده می شود .gitignore که فایلی را که می خواهید ردیابی را متوقف کنید فهرست می کند.

$ touch .gitignore
$ echo "data.txt" > .gitignore
$ cat .gitignore

حالا که ” را تنظیم کردیدdata.txt” در فایلی به نام .gitignoreGit می داند که آن را از پروژه ها نادیده می گیرد.

بریم بدویم وضعیت git از نو:

نحوه حذف فایل در Git

در حال حاضر هیچ نشانی از data.txt قبلاً از زمانی که آن را به آن اضافه کردیم .gitignore فایل.

بیایید تغییر را انجام دهیم و دیگر فایل data.txt محلی را در پروژه Git ردیابی نکنیم:

$ git add .
$ git commit -m "Add gitignore and stop tracking data.txt"

در مورد فراموش کردن فایل‌های ردیابی شده قبلی در gitignore. صحبت از فراموش کردن Git، برای یافتن روشی زیباتر، این مقاله را بخوانید.

نحوه حذف فایل ها از Git History

گاهی اوقات ممکن است بخواهید یک فایل را از کل تاریخچه Git حذف کنید تا کسی نتواند ببیند که چنین فایلی وجود داشته است.

با آنچه تاکنون یاد گرفته اید، فقط می توانید فایل ها را حذف کنید تا همچنان در تاریخچه commit در دسترس و قابل مشاهده باشند.

اما برای حذف یک فایل به طوری که کسی نتواند آن را حتی در تاریخچه Git ببیند، باید کمی بیشتر اجرا کنید git filter-branch دستور:

git filter-branch --force --index-filter --prune-empty "git rm --cached --ignore-unmatch <file>" revision

این یک دستور طولانی است، بنابراین اجازه دهید آن را به بخش های کوچکتر تقسیم کنیم:

  • – استحکام – قدرت نیروهای گزینه فیلتر شاخه برای کار حتی زمانی که ممکن است بخواهد (به عنوان مثال به دلیل دایرکتوری های موقت)
  • – فیلتر شاخص شاخص Git را بازنویسی می کند. این فایل را از تاریخچه حذف می کند.
  • -آلو خالی از گذاشتن commit های خالی در مخزن به دلیل فایل های حذف شده اجتناب می کند.
  • git rm –cached –ignore-unmatch <файл>” فرمانی است که بر روی هر شاخه، ویرایش و commit منطبق اجرا می شود. در این صورت حذف می شود فایل از مخزن استفاده می کند و فایل های نامتناسب را نادیده می گیرد.
  • تجدید نظر commitی است که می خواهید از آن دستور را شروع کنید (به عنوان مثال فصل).

یک مثال

بیایید یک مثال عینی از حذف یک فایل از تاریخچه Git را ببینیم.

در پروژه نمونه ام، فایلی به نام حذف کردم file1.txt فایل از مخزن اما با پس دادن commit ها، آن فایل با وجود اینکه از بین رفته است، همچنان در دسترس است.

نحوه حذف فایل در Git

الان حذف میکنم file1.txt از کل تاریخچه کامیت با اجرای:

$ git filter-branch --force --prune-empty --index-filter "git rm -r --cached --ignore-unmatch file1.txt" HEAD

پس از اجرای این دستور، تاریخچه commit دیگر فایل فراخوانی ندارد file1.txt.

نحوه حذف فایل در Git

حذف یک فایل از تاریخچه مانند این می تواند باعث ایجاد مشکل شود تاریخ باطل بازنویسی می کند. همانطور که می بینید، commit ها در حال حاضر دارای هش های متفاوتی هستند، بنابراین این دستور اساسا کل تاریخچه commit پروژه را بازنویسی می کند، اگرچه محتوای commit ها یکسان باقی می ماند. برای جلوگیری از بروز مشکل در این نوع مشکلات، می توانید از جایگزینی مانند ” استفاده کنید.git filter-repo“.

خلاصه

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

اغلب شما نیاز به حذف فایل ها با git rm <файл> دستوری که پس از آن باید حذف را انجام دهید. این فایل را هم در سیستم فایل و هم از پروژه Git حذف می کند. برای حذف یک پوشه، استفاده کنید گزینه بازگشت git rm -r <име-на-папка>.

برای حذف یک فایل از Git اما نه از سیستم فایل رایانه خود، این کار را انجام دهید git rm –cached <файл> فرمان این فایل را از Git حذف می کند، اما آن را به عنوان یک فایل ردیابی نشده در سیستم باقی می گذارد. برای نادیده گرفتن فایل ردیابی نشده، آن را به فایل اضافه کنید .gitignore فایل و تغییر را انجام دهید.

برای حذف یک فایل از کل تاریخچه پروژه Git، از فایل نسبتا طولانی استفاده کنید git filter-branch فرمان توجه داشته باشید که این دستور تاریخچه را بازنویسی می کند و ممکن است تاریخچه را به اشتباه بازنویسی کند.

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

همچنین بخوانید

چگونه یک شاخه Git را حذف کنیم