Мій початковий комміт містив деякі файли журналів. Я додав *log
до свого .gitignore
, і тепер я хочу видалити файли журналів зі свого сховища.
git rm mylogfile.log
видалить файл зі сховища, але також видалить його з локальної файлової системи.
Як я можу видалити цей файл зі сховища без видалення моєї локальної копії файлу?
З досьє:
Коли задано
--cached
, поетапний вміст повинен збігатися або з кінчиком гілки, або з файлом на диску, що дозволяє видалити файл лише з індексу.
Отже, для одного файлу:
git rm --cached mylogfile.log
і для одного каталогу:
git rm --cached -r mydirectory
Щоб видалити цілу папку з репозиторію (наприклад, файли Resharper), зробіть так:
git rm -r --cached folderName
Я зафіксував деякі файли resharper і не хотів, щоб вони зберігалися для інших користувачів проекту.
Крім того, якщо ви зафіксували конфіденційні дані (наприклад, файл, що містить паролі), вам слід повністю видалити їх з історії сховища. Ось інструкція, яка пояснює, як це зробити: http://help.github.com/remove-sensitive-data/