Подтвердить что ты не робот

Как навсегда удалить файл, хранящийся в GIT?

Я создал резервную копию моей базы данных до GIT, чтобы я мог получить db на моем домашнем компьютере.

Я не хочу, чтобы этот файл был версией, это было всего лишь 1 раз.

Могу ли я удалить его навсегда, чтобы GIT не отслеживал его в будущем или исторически?

4b9b3361

Ответ 1

Я всегда нахожу Guides: Полностью удалите файл из всех файлов версий.

Чтобы удалить файл с именем Rakefile:

git filter-branch --force --index-filter \
  'git rm --cached --ignore-unmatch Rakefile' \
  --prune-empty --tag-name-filter cat -- --all

Эта команда будет запускать всю историю каждой ветки и тега, изменяя любую фиксацию который включал файл Rakefile, и после этого все фиксируются. Фиксации которые потом пусты (потому что они только изменили файл Rakefile), являются полностью удалены.

Ответ 2

Обновление для удаленного репозитория:

git filter-branch -f --index-filter "git rm -rf --cached --ignore-unmatch FOLDERNAME" -- --all

замените FOLDERNAME файлом или папкой, которую вы хотите удалить из данного репозитория git.

rm -rf .git/refs/original/

git reflog expire --expire=now --all

git gc --prune=now

git gc --aggressive --prune=now

Теперь нажмите все изменения в удаленном репозитории

git push --all --force

Это очистит удаленный репозиторий.

Ответ 3

Вы также можете использовать bfg для удобства.

BFG - более простая и быстрая альтернатива git -filter-ветке для очистки плохих данных из истории хранилища Git:

Удаление сумасшедших больших файлов Удаление паролей, учетных данных и других конфиденциальных данных

$ bfg --delete-files YOUR-FILE-WITH-SENSITIVE-DATA

Или просто замените все вхождения некоторого файла:

$ bfg --replace-text passwords.txt

проверить https://rtyley.github.io/bfg-repo-cleaner/ и https://help.github.com/articles/removing-sensitive-data-from-a-repository/