2015-02-19 2 views
0

Я случайно добавил, зафиксировал и перебросил все мои необработанные файлы в удаленное репо, где они будут раздражать моих соавторов.Отменить git добавить, зафиксировать и нажать БЕЗ проигрывания ненужных файлов

С тех пор я также сделал еще две коммиты, одна из которых сливалась с пультом через git pull.

Я хочу отменить эту последовательность действий и восстановить мою директорию в ее предыдущее состояние (ВКЛЮЧАЯ необработанные файлы).

Со всеми командами, которые я пробовал (checkout, revert, reset, rebase), мои незатребованные файлы теряются в результате отмены транзакций.

Что мне делать?

ответ

4
1. git log 
2. copy hash of the commit that you accidentally pushed 
3. git revert HEAD 
4. git push 
5. git cherry-pick HASHFROMSTEPTWO 

Это вернет ваши изменения и отодвинет их к вашему хозяину, чтобы другие люди больше не могли видеть ваши файлы. Шаг 5 затем вернет все файлы и изменения, сделанные вами в исходном коммите, и добавьте его в ontop of revert.

+0

Единственное, что я добавил бы: 'git cherry-pick -n commitid' Потому что я думаю, что он не хочет повторять одно и то же совершение – Jan

+0

У меня есть несколько коммитов, включая слияние, которое я хочу отменить. Я думаю, git revert HEAD вернет только последний коммит. Что мне делать в моем случае? – David

+0

@David - вы можете заменить HEAD хэшем последней фиксации, которую хотите сохранить. так: '' 'git revert HASH''' – aashnisshah

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