Git удалить только последнюю локальную фиксацию

StackOverflow https://stackoverflow.com//questions/21026467

  •  21-12-2019
  •  | 
  •  

Вопрос

Я внес несколько изменений в свою локальную git-версию проекта Rails, которые не хочу потерять, однако при этом я случайно создал файл поставщик/пакет папка в Git.

Как только я сделал коммит, я понял, что сделал это, выполнил git rm для папки (и добавил папку в gitignore) и снова зафиксировал.Однако теперь я не могу отправить оригинал, потому что комплект слишком велик.

Что мне нужно

  • Как я могу сохранить внесенные мной изменения (и новые файлы).
  • При удалении папки пакета из истории git
  • И не отправлять им этот коммит, поскольку каталог слишком велик.

Я искал здесь различные способы мягкого сброса, но застрял..

Это было полезно?

Решение

Ты мог бы сделать git reset --soft HEAD~x где x — количество рецензий, которые вы хотите сбросить, в вашем случае — 2, а затем добавьте каталог в файл gitignore, а также удалите его из подготовленной области.

Другие советы

Я думаю, что нашел ответ:

Это происходит довольно часто.Кто-то случайно совершает огромный Двоичный файл с бездумным git add., и вы хотите удалить его везде.Возможно, вы случайно совершили файл, который содержал Пароль, и вы хотите сделать свой проект открытым исходным кодом.Фильтр-филиал Является ли инструмент, который вы, вероятно, хотите использовать, чтобы вычистить всю историю.К Удалите файл с именем Passwords.txt от всей истории, вы можете Используйте опцию «Тотрем-фильтр» для фильтрации-ветви:

Источник :P >.

git filter-branch --tree-filter 'rm -f /vendor/bundle' HEAD

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top