Удалить неотталкивающий коммит, не удаляя локальные изменения - PullRequest
1 голос
/ 18 апреля 2019

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

Я новичок в git, поэтому я решил просто удалить сгенерированный файл данных из папки, но только понял, что фиксация уже занесла в файл слишком большой размер данных. Я посмотрел вокруг и нашел варианты, такие как команда git revert. Но похоже, что когда я вернусь, весь код, который я обновил, вернется к предыдущему коммиту. Я просто хочу повторить без большого файла данных, чтобы я мог сделать успешный толчок. Кто-нибудь может мне помочь с этим?

Ответы [ 3 ]

2 голосов
/ 18 апреля 2019

Вы можете просто сказать git удалить файл из индекса и затем изменить ваш последний коммит.

git rm --cached path/to/your/file
git commit --amend

С помощью git rm --cached вы просто удаляете файл из индекса, но сохраняете его в своей файловой системе, а с помощью git commit --amend вы изменяете свой последний коммит, включая эти изменения. Каждое внесенное вами изменение будет включено. Вы даже можете изменить сообщение коммита.

1 голос
/ 18 апреля 2019
git reset --soft HEAD~1
git reset path/to/file
git commit

Объяснение

git reset -soft HEAD~1 сбросит ваш последний коммит (HEAD~1 - это ссылка на последний коммит), но сохранит изменения поэтапно, оттуда мы можем удалить файл с помощью git reset path/to/file.

1 голос
/ 18 апреля 2019

Попробуйте выполнить:

$ git reset HEAD^

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

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