Background:Git: duplicato commette dopo rebase locale, poi tirare
ho una caratteristica ramo Un cioè un commit prima del mio ramo di sviluppo:
3 (develop, origin/develop)
| 2 (A, origin/A) some feature branch commit
|/
1 some commit
Poi ho REBASE A su sviluppare (git checkout A
, git rebase develop
), in modo da ottenere:
2' (A) some feature branch commit
|
3 (develop, origin/develop)
| 2 (origin/A) some feature branch commit
|/
1 some commit
Ora non può più spingere A
-origin
come G rifiuterà un commit in avanti non veloce. Mi dice di estrarre prima le modifiche remote.
Quando lo faccio e poi spingere, io alla fine con la seguente storia:
4 (A, origin/A) merged origin/A into A
|\
2'| some feature branch commit
| |
3 | (develop, origin/develop)
| 2 (origin/A) some feature branch commit
|/
1 some commit
io alla fine con una storia che contiene il 2
commettere due volte - tecnicamente diversi commit, anche se fanno la stessa cosa.
Domande
- Come posso evitare che ciò accada? Come posso eseguire il mirroring della mia operazione di rebase locale sul repository remoto?
- Come posso risolvere questa situazione? Quale sarebbe il modo più elegante per ripulire la cronologia e mostrare solo un commit?
Non è possibile rebase sviluppare su A? – Mat
Puoi invece fare una fusione di git? –
possibile duplicato di [I commit Git sono duplicati nello stesso ramo dopo aver eseguito un rebase] (http://stackoverflow.com/questions/9264314/git-commits-are-duplicated-in-the-same-branch-after-doing -a -base) – Whymarrh