Случайно передал большой файл в локальный git. Теперь я должен удалить его на ПУ sh для удаленного - PullRequest
0 голосов
/ 22 февраля 2020

Я случайно отправил большой файл в мой локальный git. Файл слишком велик, чтобы добавить его в удаленный репозиторий, что делает невозможным на данный момент мой код. Проблема в том, что я давно не замечал, насколько большим становится файл, поэтому я с радостью добавил несколько коммитов поверх него. Теперь, 4-5 коммитов позже, мне нужно избавиться от этого файла в предыдущих коммитах, чтобы я мог отправить sh мой код в удаленный репозиторий.

Естественно, я очень боюсь удалить половину моего кода: -D

Есть ли какой-нибудь безрисковый способ добиться этого?

Ответы [ 3 ]

2 голосов
/ 22 февраля 2020

Что бы я сделал, это

git rebase -i HEAD~N // where N is the number of commit you have since including
// the one where the big file added
// then deleting the first "pick" and write an "e" to edit and saving it
// then deleting the huge file
git add -A
git commit -amend // save and exit
git rebase --continue

Также, если вы боитесь все испортить, я бы сделал (не обязательно лучшая практика) сначала создав ветку сохранения с помощью git checkout -b saving, так что если бы вы ввернули плохо, вы можете восстановить его из этого.

1 голос
/ 22 февраля 2020

Если вы зафиксировали только этот файл, как в

# nothing is staged
git add bigfile
git commit -m 'big file committed'
# other work and commits

Я думаю, вы можете просто

git rebase -i HEAD~x

, где x - это количество коммитов от , которое выполнить коммит до последнего, затем изменить pick на drop для инкриминируемого коммита (который должен быть самым верхним в списке), сохранить и выйти.

Если , то Коммит изменил другие файлы, вы можете изменить pick на edit, а git позволит вам изменить коммит. После этого вы сможете правильно расположить / удалить файлы перед их фиксацией.

0 голосов
/ 23 февраля 2020

Я могу предложить вам отменить ваш последний случайный коммит этим

git reset HEAD~1

И вы можете коммитить без большого файла

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...