Очистити локальний кеш 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.