2016-02-26 25 views
6

Ho accidentalmente unito un ramo e ho fatto clic su "Cambia immediatamente modifiche". Sfortunatamente ho fatto un errore di fusione e ora non voglio fare un reverse commit per rimuoverlo. Tuttavia ogni volta che lo faccio in SourceTree ottengo il seguente errore:Git reverse esegue il commit di un'unione forzata in SourceTree

error: Commit X is a merge but no -m option was given. fatal: revert failed

Esiste un modo per fare questo o devo utilizzare il terminale per questo? Ho letto qualcosa a riguardo ma non sono riuscito a trovare una soluzione a questo caso specifico.

risposta

3

È possibile trovare le risposte su come riportare il ramo (o il master) allo stato precedente alla fusione (ripristino hard). Se va bene riportare tutto a quello stato, va bene. Ma di solito devo ripristinare l'unione di un ramo di funzionalità preservando i commit effettuati dopo l'unione.

Basta fare:

git revert -m 1 [copy-paste-the-id-of-the-merge-commit-here] 

se necessario, modificare i conflitti e impegnarsi.

modifica: e sì, SourceTree deve passare gli argomenti -m 1 se si annulla un commit di unione.

2

Si consiglia di fare clic destro sulle ultime commit e fare clic su:

"Reset ramo corrente a questo commit"

enter image description here

e selezionare la modalità Hard quando richiesto.

enter image description here

Nota importante: Tutte le modifiche alla copia di lavoro verranno scartati dopo aver fatto clic la modalità difficile.

Spero che questo aiuti!

Cheers!