2013-05-20 2 views
2

Я немного в затруднительном положении. Я случайно объединил код между двумя репозиториями Git. По каким-то причинам имена репо были такими же, и один из URL-адреса репо изменился, прежде чем я узнал об этом. Поэтому я закончил слияние кода с двумя разными проектами. Вот иллюстрация из репозитория.Как удалить слияние Git?

Merged repo

я не назвали никаких филиалы (работают на голове все вместе). Как удалить один из коммитов (в частности, оранжевый)?

ответ

2

Вы можете сделать:

git reset --hard 628612ac 

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

Другой вариант заключается в использовании git-revert:

git revert -m 1 e90aeed8 

Это будет держать свою историю. Он создает новую фиксацию, которая возвращает все, что сделал e90ae ....

Вот хорошо читать об этой теме: https://www.kernel.org/pub/software/scm/git/docs/howto/revert-a-faulty-merge.txt

А также здесь: http://git-scm.com/2010/03/02/undoing-merges.html

+0

Спасибо !! git revert сделал трюк локально и git reset - hard работал на удаленном репо. Ссылки очень полезны! –