2014-11-18 1 views
0

Я нашел эту замечательную хелп-страницу мерзавца:Удалить файл из git, который еще не нажат, но также не в последней фиксации?

https://help.github.com/articles/working-with-large-files/

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

так что это выглядит так :

enter image description here

  • в выбранной ревизии я случайно добавил большой-глупый файл .mov
  • два коммиты позже я удалил его

и как вы можете видеть, я уже опробовал вещь:

  • я перешел обратно к пересмотру только после того, как я добавил файл «Git кассовые BlaBla»
  • я удалил файл «мерзавец гт /assets/video/landed.mov»
  • Я сделал новый коммит «git commit -m» удален landed.mov «
  • я переключился на мастер -> он предупреждает меня, что я потеряю свое изменение от этой фиксации, почему бы не создать новую ветку? -> поэтому я создал новую ветвь «фиксирующую-фильм»
  • и, наконец, я вновь интегрировал филиал в мастер, надеясь, что это будет исправить «как-то» мой большой вопрос файл

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

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

ответ

1

Вы можете сделать интерактивную переустановку и «исправить» фиксацию, которая удалите нежелательный файл в коммит, в который вы его добавили. Это по сути оставляет исходный фиксатор, как будто файл никогда не добавлялся.

Из командной строки (вы должны совершить/копить любые изменения):

git rebase -i origin/master 

Вам будет представлен с помощью текстового редактора, в котором вы можете манипулировать коммиты, сделанные вами, сверху вниз. Переместите «удалено ...» зафиксируйте, чтобы он появился сразу после коммита «MOJ-1120 ...». Измените pick на fixup, сохраните файл и выйдите.

Если это не делает то, что вы хотите, вы можете использовать git reflog, чтобы вернуться туда, где вы были заранее. Вы можете записать текущую SHA, прежде чем делать это, чтобы сделать ее проще.

+0

omg Я предполагаю, что это сработало сейчас, но я должен был предпринять две попытки, пока он не сделал то, что я хотел ... к счастью, у меня было две попытки совершить то же самое в этой маленькой истории (удаление черта.mov file) - теперь он ушел, и я могу снова нажать. YAY – jebbie

+0

@jebbie, рад слышать, что это сработало для вас. Интерактивная перезагрузка довольно мощная и не очень сложная. –

Смежные вопросы