2016-03-23 23 views
31

Ho fatto una richiesta di pull ma dopo ho fatto alcuni commit al progetto localmente che ha finito di inquinare la mia richiesta di pull, ho provato a rimuoverlo ma senza fortuna.Come rimuovere commit da richiesta pull

Ho trovato alcune domande simili su StackOverflow ma non riesco ad applicare cosa c'è dentro. È la mia prima richiesta di pull su GitHub quindi è un po 'strano per me come tutto questo funzioni.

il commit evidenziato è quello che devo conservare e rimuovere tutte le altre cose. diventa il quarto commit nella cronologia perché eseguo alcune operazioni di unione.

enter image description here

mio git log enter image description here

Qualcuno può spiegare cosa sta succedendo e come risolvere questo problema.

+1

È necessario [rebase] (https://git-scm.com/book/en/v2/Git-Branching-Rebasing) e solo "selezionare" il commit "aggiunto da github" (es. linee per ogni altro commit) –

+0

rebase su quale diramazione su quale ramo è possibile aggiungere ulteriori spiegazioni. – humazed

+0

'quale ramo' = il ramo su cui stai lavorando,' su quale ramo' = il ramo che stai richiedendo in –

risposta

31

Hai diverse tecniche per farlo.

This post - read the part about the revert spiegherà in dettaglio cosa vogliamo fare e come farlo.

Qui è la più semplice soluzione al vostro problema:

# Checkout the desired branch 
git checkout <branch> 

# Undo the desired commit 
git revert <commit> 

# Update the remote with the undo of the code 
git push origin <branch> 

Il comando Ripristina creerà un nuovo commit con il annulla dell'originale commit.

+2

Uomo stupendo !! Mi ha davvero aiutato :) –

+0

Funziona anche quando abbiamo biforcato il progetto da un'altra persona e vuoi rimuovere alcuni commenti nella richiesta pull? –

1

Quindi effettuare le seguenti operazioni,

Diciamo che il vostro nome del ramo è my_branch e questo ha i commit in più.

  1. git checkout my_branch_with_extra_commits -b (Tenendo questo ramo salvato con un altro nome)
  2. gitk (Apri console git)
  3. Cercare il commit che si desidera conservare. Copia lo SHA di quel commit in un blocco note.
  4. git checkout my_branch
  5. gitk (Si aprirà la console git)
  6. Fare clic destro sul commit che si desidera ripristinare (Stato prima le modifiche) e cliccare su "resettare ramo a qui"
  7. Do un git pull origine --rebase branch_name_to _merge_to
  8. Git cherry-pick

Ora cerca nella filiale locale commettere storia e assicurarsi che tutto sembra a posto.

Problemi correlati