Не удается удалить файл из git commit


как отбросить все git-коммиты, которые не были нажаты, а затем заставить git ничего не совершать в каталоге data/?

Я пытаюсь заставить перезаписать все изменения в проект, хранящийся на github из моего c9.io проект. Я случайно git добавил некоторые файлы данных mongodb. Я попытался добавить данные / каталог .gitignore. Я вытащил из GitHub, чтобы получить обновление .gitignore, однако, когда я пытаюсь нажать git, эти упрямые файлы в data / все еще находятся на стадии для фиксации. Я тоже пробовала сбросить Гит, Гит перебазирования, мерзавец чистым и этой где я изменил dmpfile.sql to pi / data / node-вход в систему.1.

пожалуйста, помогите я был в этом в течение нескольких часов, и я действительно расстроен

Counting objects: 15, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (13/13), done.
Writing objects: 100% (13/13), 150.22 KiB | 92 KiB/s, done.
Total 13 (delta 6), reused 0 (delta 0)
remote: warning: File pi/data/local.0 is 64.00 MB; this is larger than GitHub's recommended maximum file size of 50 MB
remote: warning: File pi/data/node-login.0 is 64.00 MB; this is larger than GitHub's recommended maximum file size of 50 MB
remote: error: GH001: Large files detected.
remote: error: Trace: e6ade98208c08b634ed28aefea36dfbb
remote: error: See http://git.io/iEPt8g for more information.
remote: error: File pi/data/node-login.1 is 128.00 MB; this exceeds GitHub's file size limit of 100 MB
To git@github.com:bobbyg603/goddard.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@github.com:bobbyg603/goddard.git'

.пример:

lib-cov
*.seed
*.log
*.csv
*.dat
*.out
*.pid
*.gz

data/

pids
logs
results

npm-debug.log
node_modules

.project
.settings

спасибо, Бобби

4 64

4 ответа:

благодаря Крису я смог исправить это, выполнив следующее:

фильтр-отделение -Ф ГИТ индекс-фильтр-ГИТ РМ --кэшированные --игнорировать-разъединить Пи/данные/узла-входа.0'

фильтр-отделение -Ф ГИТ индекс-фильтр-ГИТ РМ --кэшированные --игнорировать-разъединить Пи/данные/узла-входа.1'

фильтр-отделение -Ф ГИТ индекс-фильтр --'ГИТ РМ --кэшированные --игнорировать-разъединить Пи/данные/местные.0'

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

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

это сработало для меня:

git rm --cached name_of_a_giant_file
git rm --cached name_of_another_giant_file
git commit --amend -CHEAD
git push

источник: справка Github: работа с большими файлами

Я использовал BFG Repo Cleanner простой и быстрый, работает как шарм