Очистити локальний кеш git


92

У мене є проект Webstorm, який я збирався зафіксувати, але перед тим, як натиснути кнопку фіксації в графічному інтерфейсі Git Windows, я згадав, що не хочу фіксувати .ideaвміст своєї папки.

Тому я використав веб-сайт, який автоматично створює .gitignoresпевні середовища розробки, і додав його до свого .gitignoreфайлу.

Усі .ideaфайли, які явно ігноруються, все ще відображаються для фіксації, незважаючи на те, що я видалив і повторно додав ці файли.

Я також створив файл gitignore без будь-яких інших файлів і повторно вставив свій вміст, але він все ще не ігнорує файли .idea.

Як сказати Git оновити або очистити кеш?
Я спробував / cd увійшов у відповідний каталог і набрав текст

git clean -n

але файли не відображаються.

Відповіді:


120

Усі файли .idea, які явно ігноруються, все ще відображаються для фіксації

вам доведеться видалити їх із місця постановки

git rm --cached .idea

тепер вам доведеться здійснити ці зміни, і з цього моменту вони будуть ігноруватися.
Після того, як git почне відстежувати зміни, він не зупинить їх відстеження, навіть якщо вони були додані до .gitignoreфайлу пізніше.

Ви повинні явно видалити їх, а потім здійснити видалення вручну, щоб повністю ігнорувати їх.


введіть тут опис зображення

введіть тут опис зображення


3
Однак я ніколи не fatal: pathspec '.idea' did not match any files
— фіксую

Коли ви вводите git status, ви бачите їх? WebStorm міг би їх додати для вас, якщо ви встановили прапорець для автоматичного додавання файлів
— CodeWizard

2
Я не маю уявлення, але, здається, команда, яку ви мені дали, спрацювала, хоча вона повернула фатальну помилку .... Файли більше не відображаються для фіксації.
— jozenbasin

Ви можете розглянути можливість додавання -rдля рекурсивного видалення
— Вішрант

79

Коли ви думаєте, що ваш git зіпсований, ви можете використовувати цю команду, щоб робити все в актуальному стані.

git rm -r --cached .
git add .
git commit -am 'git cache cleared'
git push

Також для повернення останнього коміту використовуйте це:

git reset HEAD^ --hard

6
Не використовуйте git push, якщо ви не хочете надсилати зміни на пульт. Однак якщо ви це зробили, перейдіть на вкладку управління версіями внизу андроїд-студії, клацніть правою кнопкою миші попередній коміт і виберіть "Скинути поточну гілку тут"
— Swapnil

частина скидання в кращому випадку заплутала. але я зробив до "git push", і все було добре.
— Seun S. Lawal

6

якщо ви внесете будь-які зміни у git ignore, вам доведеться також очистити свій кеш git

> git rm -r --cached . 
> git add . 
> git commit -m 'git cache cleared'
> git push

якщо ви хочете видалити будь-яку конкретну папку або файл, тоді

git rm  --cached filepath/foldername


3

після цієї зміни у файлі git-ignore запустіть цю команду, ця команда видалить весь кеш файлів, а не файли або зміни

git rm -r --кешований.

після виконання цієї команди зафіксуйте файли

для видалення одного файлу або папки з кешу використовуйте цю команду

git rm --кешований шлях до файлу / ім'я папки


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.