Удалить файл, который я не должен был делать в Git - PullRequest
4 голосов
/ 01 ноября 2010

Так что я поступил плохо.

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

Что мне нужно сделать, конечно, так это проникнуть в каждый уголок моего дерева (локальный и удаленный) и стереть этот файл. Я попробовал несколько вещей, используя filter-branch и filter-tree, но когда я пытаюсь нажать изменения, они отклоняются.

Какие у меня варианты? Что я делаю не так?

Спасибо.

UPDATE

По запросу Макса, вот сообщение, которое я получаю при попытке нажать:

$ git push origin develop
To git@codaset.com:robwilkerson/cakephp-polyclip-plugin.git
! [rejected]        develop -> develop (non-fast-forward)
error: failed to push some refs to 'git@codaset.com:robwilkerson/cakephp-polyclip-plugin.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes before pushing again.  See the 'Note about fast-forwards' section of 'git push --help' for details.

Ответы [ 3 ]

10 голосов
/ 01 ноября 2010

На GitHub есть замечательное руководство , которое может вам помочь.

2 голосов
/ 01 ноября 2010

Вы добавили -f (force) к git push? Без этого флага вы не сможете перезаписать «старые» коммиты.

-f, --force
       Usually, the command refuses to update a remote ref that is not an
       ancestor of the local ref used to overwrite it. This flag disables
       the check. This can cause the remote repository to lose commits;
       use it with care.

Это может запутаться, если другие уже вытащили из этого хранилища.

0 голосов
/ 01 ноября 2010

Вы можете просто внедрить исправление как «новое исправление», например, удалите файл (ы) сейчас и отправьте исправление в репозиторий.

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

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