2015-02-24 15 views
6

Ho estratto da un ramo diverso dal telecomando. I 2 rami sono diversi ma l'unione si è verificata silenziosamente sul mio attuale ramo. Attualmente sto lavorando sul ramo "master" localmente, ed è stato aggiornato con le modifiche del ramo remoto - "FE_Changes".annullare git pull di ramo errato sul master

Come rimuovere gli effetti del ramo "FE_Changes" dal mio ramo principale?

+0

Stai usando git dentro e IDE? Terminale? o qualcosa di simile? – acostela

+0

Sì In realtà sto usando Git Extensions. Questo è accaduto quando ho inserito il ramo "FE_Changes" mentre ero nel ramo "master". Quello che avrei dovuto usare è la finestra di checkout. – OverTheEdge

+0

Puoi mostrare l'output (per quanto rilevante) del seguente comando: log git --all --graph --oneline --decorate assumendo che non ci siano informazioni sensibili nei log di commit, ovviamente ... dovrebbe aiutare a chiarire cosa è successo esattamente – mephisto

risposta

7

git reset --hard HEAD~1

Ciò bombardare la più recente commit sul ramo locale. Supponendo che la tua strategia di pull sia unificata, allora dovrebbe esserci un solo commit canaglia sul tuo master branch locale. Hai detto che "la fusione è avvenuta silenziosamente", quindi questo dovrebbe funzionare nel tuo caso. Una volta risolto il ramo principale, puoi tirare di nuovo, questa volta assicurandoti di estrarre il ramo remoto corretto.

+0

wow questo l'ho fatto. Devo dire che ho fatto alcune cose pazzesche sulla GUI di Git Extensions come il check-out da origine/master, git res et (to HEAD not HEAD ~ 1) ma ancora questo ha sovrascritto quello e riportato i cambiamenti. E cosa c'è di più, ora posso tirare e ottenere nuovamente gli aggiornamenti recenti da "master" da remoto. Nessuna delle modifiche apportate sul ramo "FE_Changes" è ora visibile nel mio ramo "master" locale. Grazie mille, Tim. – OverTheEdge

4

Oltre alla risposta di Tim: Se vuoi essere ripristinato ad una specifica commit:

git reflog 

vi mostrerà gli ID di tutti i commit recenti

Quindi è possibile eseguire:

git reset --hard <specific id> 

per ripristinare lo specifico commit.

+0

grazie ricorderanno "git reflog" in futuro. – OverTheEdge

Problemi correlati