Ho controllato un paio di commit a master
che avrebbe dovuto essere controllato in develop
. Quali comandi git ho usato per rimuovere quei commit dal ramo master e includere nel ramo di sviluppo?Come spostare la git commessa dal master a un altro ramo esistente
risposta
È possibile cherry-pick
tuoi commit verso il develop
e poi in modo interattivo rebase
tua master
filiale:
git checkout develop
git cherry-pick aabbcc
git cherry-pick ddeeff
- ....
git checkout master
git rebase 123456 -i
dove 123456
è un commit prima di aver fatto un errore. Questo aprirà un editor che mostra ogni commit che sarà interessato dal rebase. Elimina le righe corrispondenti ai commit che vuoi scartare e uscire dall'editor.
per far fronte in un altro ramo è possibile utilizzare cherry picking:
git cherry-pick <commit>
eliminazione non è così facile. È possibile utilizzare rebase e squash o modificare il commit:
git rebase -i <commit>~1
ma non sono sicuro di quando scegliendo di modifica durante rebase se è possibile modificare i file anche piuttosto che il messaggio di commit solo.
'edit' durante un rebase interattivo consente di modificare messaggi di commit e file,' reword' consente solo di modificare il messaggio di commit. –
Di solito ci sono diversi modi per fare la stessa cosa in git un modo possibile:
git checkout develop
git cherry-pick XXX // XXX being the sha1 of the commit you want to grab
git checkout master
git rebase --interactive HEAD~IDX // IDX being the position of the last "good" commit compared to HEAD
L'ultimo comando visualizzerà tutti recensione da capo a l'ultima buona commit e tutto quello che dovete fare è soppressa la linea della impegnarsi a mosso a ramificarsi sviluppare
Se non sbaglio, hai avuto due rami sincronizzati, master
e dev
, e semplicemente dimenticato di accendere il ramo, davanti ai vostri commit.
Se questo è il caso, si ha:
----------------
git log in dev
xxx
yyy
...
----------------
e:
----------------
git log in master
ccc
bbb
aaa
<---- here you forgot to switch branch
xxx
yyy
...
----------------
La soluzione è:
In primo luogo, assicurarsi che:
git status -s
restituisce risultati vuoti.
Avanti, ottenere tutti i nuovi commit da master
-dev
con:
git checkout dev
git merge master
Ora tornare a voi master
:
git checkout master
Rimuovere commit inutili:
git reset --hard HEAD~3
Il numero ~3
è il numero di te che ti impegni voglio rimuovere.
Ricordare: git status -s
restituire risultati vuoti. Altrimenti, git reset --hard
può causare la perdita di dati.
- 1. Git crea il ramo dal master estratto?
- 2. Clona da un ramo diverso dal master
- 3. git checkout un altro ramo
- 4. Come resettare un ramo su un altro ramo con git?
- 5. sovrascrive tutto in master con un altro ramo in git
- 6. Git marca il punto master remoto su un altro ramo
- 7. Git Copia una cartella dal ramo principale a un altro ramo
- 8. Subversion - come spostare alcuni changeset dal trunk a un ramo?
- 9. Come duplicare un ramo in un altro ramo esistente in git
- 10. Da master, commit in un altro ramo
- 11. Come unire un ramo ad un altro ramo in GIT?
- 12. Git crea un ramo vuoto dal repository esistente
- 13. git checkout -b, ramo già esistente
- 14. Come proteggere un ramo GIT (come il master)
- 15. git request-pull dal ramo locale al master remoto
- 16. Aggiornamento del master locale al master remoto da un altro ramo
- 17. git pull dal master nel ramo di sviluppo
- 18. Come unire il ramo gerrit ad un altro ramo gerrit
- 19. Git rebase un ramo sul master fallito, come risolvere?
- 20. git - sposta il "tag" del ramo su un altro commit?
- 21. (git): come portare un commit specifico dal ramo upstream?
- 22. git: Come spostare l'ultimo N commit fatto per diventare master, nel proprio ramo?
- 23. Spostare impegna da maestro su un ramo utilizzando git
- 24. Git - Come unire un ramo remoto nel master remoto
- 25. fatale: il master ramo corrente non ha ramo a monte
- 26. git: come spostare alcuni commit al nuovo ramo
- 27. Git: ottenere modifiche da un altro ramo
- 28. Spostare un repository Git in una sottocartella di un altro con diramazioni
- 29. Git: sposta il commit specifico su un altro ramo
- 30. Come si spinge un solo ramo Git (e nessun altro ramo)?
Hai guardato questa risposta? - http://stackoverflow.com/questions/1773731/in-git-how-do-i-remove-a-commit-from-one-branch-and-apply-it-to-a-different-bra?rq = 1 –
sguardo a questo: [move-recente-commit-a-un-nuovo-ramo] [1] [1]: http://stackoverflow.com/questions/1628563/move-recent -commit-to-a-a-new-branch –
dato che c'è una "questa domanda potrebbe già avere una risposta qui" blocco in alto, voglio solo sottolineare che la mia domanda non riguarda il passaggio a un ramo _new_, si tratta di passare a un diverso ramo_esistente_ – gitq