git push не отображается на github и все еще ошибка lfs - PullRequest
0 голосов
/ 16 октября 2019

Недавно я создал новый каталог на своем локальном компьютере и скопировал все свои изменения из другого проекта, используя другой источник управления, в этот новый каталог.

Внутри нового каталога я сделал

git remote add origin git@github.com/user/repo.git //ssh url to my empty Github Repo

После этого я сделал git status, затем git add all и git commit. Наконец я набрал git push и продолжал получать сообщение об ошибке из-за того, что большой файл не может быть отправлен на Github. Для этого я сделал git lfs install и git lfs track "*.[filename]", но, похоже, это не сработало, поэтому я просто удалил его из моего нового каталога. После удаления я снова сделал git status и зафиксировал удаление этих файлов. Однако, когда я нажимаю, я все еще получаю сообщение об ошибке, касающееся больших файлов, и проверяю инструмент lfs. Когда я захожу в мой новый каталог, больших файлов, на которые жалуется git, больше нет.

Ответы [ 2 ]

1 голос
/ 17 октября 2019

После удаления я снова сделал git status и зафиксировал удаление этих файлов. Однако, когда я нажимаю, я все еще получаю сообщение об ошибке, касающееся больших файлов, и проверяю инструмент lfs. Когда я захожу в мой новый каталог, больших файлов, на которые жалуется git, больше нет.

Полагаю, вы имеете в виду, что вы сделали git rm для большого файла. Это удаляет файл из текущего рабочего каталога и после того, как вы git commit добавили коммит, который показывает, что файл был удален. Однако коммит, в который вы добавили большой файл, все еще остается в истории в вашем git-репозитории . Это означает, что когда вы git push, он все равно будет пытаться нажать коммит, который добавил большой файл.

Если вы недавно добавили большой файл, вы можете использовать git reset, чтобы сбросить текущую ветку всовершить, прежде чем вы добавили его. Обратите внимание, что это удалит все изменения после этой фиксации. Если у вас есть другие изменения, которые вы хотите сохранить, вам нужно использовать git filter-branch или сторонний инструмент. Как удалить / удалить большой файл из истории коммитов в репозитории Git? имеет очень хорошее описание того, как это сделать.

1 голос
/ 16 октября 2019

Вы можете попытаться сбросить репо до того, как вы впервые зафиксируете большие файлы:

git reset HEAD~2 --soft

, затем разберетесь, commit и push снова.

Другой способ сделать это был бы с помощью filter-branch, как указано на странице справки git:

Предположим, вы хотите удалить файл (содержащий конфиденциальную информацию или нарушение авторских прав) из всех коммитов:

git filter-branch --tree-filter 'rm filename' HEAD

Причина, по которой это происходит, в том, что, хотя вы сейчас удалили эти файлы, они все еще были частью этого первого коммита. Git хочет сохранить полную историю репозитория (эй, это одна из причин, по которой вы хотите его использовать, верно?), И поэтому он сохраняет эти файлы как часть этой истории коммитов.

...