Pergunta

Eu sei que há muitas perguntas sobre ISSO, mas eu não consigo encontrar a resposta que eu estou procurando em tudo.

Eu só mescladas a minha tarefa ramo em meu mestre, e eu estou pronto para levar minha mudança para o remote branch master.No entanto, eles são exibidos como dois compromete-se:

    commit 878c07412aab6a6b06b7fc8dd84c2418cc4f31d8
Merge: 9ffa590 c9f5552
Author: ***
Date:   Mon May 21 16:02:36 2012 +0100

    Merge branch 'modelUpdate4'

    Conflicts:
        ***.xcodeproj/project.pbxproj

commit c9f5552862872673317701c3dffd7fb6b6daa02c
Author: ***
Date:   Mon May 21 15:03:21 2012 +0100

    Modified model according to requests.  Repopulated seeded database.

Esta é a saída do git log e os dois se compromete eu gostaria de squash como um.No entanto, quando eu faço:

git rebase -i HEAD~2

Ele, na verdade, apenas exibe 4 anteriormente cometido (e empurrou a) compromete-se.Eu sou mal-entendido como meus ramos são mescladas de volta?Se eu tentar e git rebase -i Isso só mostra o primeiro commit no git log lista.

Obrigado!

Foi útil?

Solução

Desde que você disse quatro compromete-se já estavam empurrou, eu estou supondo que o gráfico (git log --oneline --decorate --graph) semelhante a este, onde você tem ramificação compromete-se entre master e modelUpdate4 já empurrou para o repo remoto:

* (master, modelUpdate4, HEAD) Merge branch 'modelUpdate4'
| \
|  * (origin/modelUpdate4) Modified model according to requests. [HEAD^2]
|  |
|  * Another commit on modelUpdate4
|  |
|  * Yet another commit on modelUpdate4!
|  |
*  | (origin/master) Something that conflics with a commit in modelUpdate4 [HEAD~1]
| /
* Previous commit on master [HEAD~2]

HEAD~2 é o primeiro pai do primeiro pai, e desde o seu HEAD é uma série de modelUpdate4 em master, refere-se a duas compromete-se para baixo da master linha. HEAD^2 é HEAD's segundo progenitor, de modo a confirmar antes de HEAD para baixo a modelUpdate4 linha.(Veja também: http://paulboxley.com/blog/2011/06/git-caret-and-tilde)

Se HEAD~2 é a sua nova base, você irá obter todos os compromete-se entre HEAD~2 e master em uma linha reta.Você também terá de lidar com o ramo de conflito na modelUpdate4 cometer onde ele acontece.

* (master, HEAD) Merge branch 'modelUpdate4'
|
* Modified model according to requests.  Repopulated seeded database.
|
* Another commit on modelUpdate4
|
* Yet another commit on modelUpdate4!
|
* Something on master that conflics with modelUpdate4
|
* Previous commit on master

Se alguém está usando os balcões situados em locais remotos, ou você quer manter seu ramificação da história, não rebase.Ele vai reescrever a história que já está no repo remoto, que só vai ser uma dor de cabeça para o resto do mundo.Empurre a série confirmar e você vai ser ouro.

Como alternativa, você pode alterar a base diretamente no origin/master. origin/modelUpdate4 iria acabar no git boonies, mas já que é uma tarefa ramo eu estou apostando que você estava indo para excluí-lo de qualquer maneira.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top