Como desfazer uma mesclagem incorreta usando o TortoiseGit

4

Eu tenho um repositório do TortoiseGit localmente, que também é enviado para um controle remoto. Existem 2 branches - master (a versão de produção) e CodeFirst (um branch de desenvolvimento).

Hoje eu consertei um pequeno bug na filial da CodeFirst. Eu queria mesclar essa mudança (apenas uma única alteração em um único arquivo) no master. Troquei o repositório local para master, selecionei merge e selecionei o single commit. Uma vez que eu pressionei OK, o mestre agora parece conter todas as mudanças no ramo do CodeFirst, não apenas o que eu queria.

Como faço para

a) Reverta a mesclagem incorreta e confirme

b) Reaplicar apenas aquela única alteração do CodeFirst ao master

    [This revision is tagged CodeFirst and master in the TortoiseGit log. It is the commit I wanted to merge]
    Revision: 7d4c3d30aec8fb8e531331866c091dee8fa94f25
    Author: Nikki Locke <[email protected]>
    Date: 07/04/2015 18:03:37
    Message:
    Allow changing both accounts on new transfers.
    ----
    Modified: bin/banking/transfer.html

    [This revision is tagged origin/CodeFirst and master in the TortoiseGit log. I did not want to merge it to master!]
    Revision: ce94383e46285fb4f2af4dc21f850952ca65f250
    Author: Nikki Locke <[email protected]>
    Date: 02/04/2015 19:54:23
    Message:
    Fixed syntax errors in CASE statements
    ----
    Modified: Reports.cs

    [Many more revisions made in the CodeFirst branch omitted]

    [This revision is tagged origin/master in the TortoiseGit log]
    Revision: 68e1dff312b5927df01a9ab7e483f9163324b864
    Author: Nikki Locke <[email protected]>
    Date: 31/03/2015 19:04:01
    Message:
    Make Qty input box smaller.

    Put some css into invoice print to make it align correctly.
    ----
    Modified: bin/customer/print.html
    Modified: bin/default.js
    
por Nikki Locke 07.04.2015 / 19:23

1 resposta

5

Para "reverter" a mesclagem, abra a caixa de diálogo de log e redefina seu branch / current HEAD para o commit antes da mesclagem (você deseja manter).

Na verdade, você não quer mesclar outro ramo, mas sim escolher um commit. No log, clique no commit que você quer escolher e selecione "cherry-pick".

    
por 20.09.2015 / 13:57