Modo corretto per annullare gli ultimi commit git tra cui un'unione? [chiuso]

0

Il mio team sta lavorando con git per la prima volta e ha davvero incasinato il nostro git remote a causa della nostra inesperienza. Sto cercando di aiutarli a educarli a risolvere il problema a lungo termine, ma nel frattempo, i commit che sono stati fatti sono totalmente sbagliati. Non abbiamo fatto molti progressi e non vedo il valore nel mantenere questi commit quando potrebbero causare confusione / ulteriori problemi lungo la linea.

Il commit più recente era un'unione tra il ramo master e un secondo ramo che uno dei membri del team creava involontariamente. Se provo a ripristinare, git afferma che devo usare il flag -m, ma non sono sicuro se dovrei tornare o tentare di rebase in questo caso, o come lo farei vista la struttura della coppia passata di commit.

Qual è il modo migliore per risolvere questo problema e come devo procedere per farlo?

    
posta Jsess 04.04.2014 - 22:10
fonte

2 risposte

6

Per annullare l'unione, puoi fare

git checkout master
git revert -m 1 [SHA of the merge commit]
git push

Questo creerà e spingerà un nuovo commit che ripristina tutte le modifiche che sono state unite.

È anche possibile modificare la cronologia del master in modo che appaia come se l'unione non fosse mai avvenuta, ma non la consiglierei. I tuoi compagni di squadra avrebbero problemi quando tentano di estrarre padrone e la storia è diversa. Inoltre, è facile annullare un commit di ripristino se hai ripristinato le modifiche sbagliate, ma se modifichi la cronologia di mater, è più difficile annullarla.

    
risposta data 04.04.2014 - 22:42
fonte
1

Credo che tu stia cercando il comando git reset. Se si esegue git log, verrà mostrata una cronologia di commit per il repository. Quindi esegui git reset --hard HEAD: numero di commit che vorresti tornare indietro.

Documentazione qui: link

    
risposta data 04.04.2014 - 22:30
fonte

Leggi altre domande sui tag