2015-08-25 2 views
2

Я ошибочно использовал git commit -a и добавил больше файлов, чем хотел в фиксации. Был еще один измененный файл, который я хотел добавить в качестве отдельной фиксации, включенной в это коммитирование. Как мне вернуться (не теряя при этом изменений в файлах), а затем передать их все отдельно.Как удалить файл из git commit, который был нажат

Я также подтолкнул это к удаленному происхождению (хотя я знаю, что никто ничего не вытащил с тех пор, как я нажал).

Большое спасибо!

ответ

4

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

# Reset last commit, but keep changes staged 
$ git reset --soft HEAD^1 

# Unstage unwanted file(s) and recommit 
$ git reset HEAD path/to/file 
$ git commit 

# Push the new commit with force to overwrite changes 
$ git push origin -f 
0

Я бы сразу нажал предыдущий фиксатор на пульте дистанционного управления, запустил git reset HEAD~, чтобы помещать ваше рабочее пространство в грязное состояние, в котором вы были, а затем перерабатывать ваши добавления, фиксации и нажатия.

0

Вы можете просто удалить эти файлы локально и нажать новую фиксацию.

Если вы хотите excude этих файлов в будущем вы можете добавить его в файл .gitignore

-1

Если вы толкнул его в отдельную ветвь (не мастер), вы можете удалить всю ветку с пульта дистанционного управления.

После этого, вы можете вернуть фиксации с помощью

git reset --soft HEAD~1 

Затем вы можете начать совершать и снова толкая все.

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