Como resolver um conflito com git-svn?
Pergunta
O que é a melhor maneira de resolver um conflito ao fazer um git svn rebase
, eo ramo git você está em se torna "(no-branch)"?
Solução
Você pode usar git mergetool
para ver e editar os conflitos na forma usual. Quando tiver a certeza os conflitos são resolvidos Do git rebase --continue
para continuar o rebase, ou se você não quiser incluir essa revisão fazer git rebase --skip
Outras dicas
Ao fazer um git svn rebase
, se você tem conflitos de mesclagem aqui estão algumas coisas para lembrar:
1) Se alguma coisa ruim acontece durante a execução de um rebase você vai acabar em um galho (no-branch)
.
2) Se você executar git status
, você verá um arquivo .dotest
em seu diretório de trabalho. Isto é seguro ignorar.
3) Se você deseja abortar o comando a seguir o uso rebase. 1
git rebase --abort
4) Se você tem um conflito de mesclagem:
- manualmente editar os arquivos para resolver os conflitos
- Fase de quaisquer alterações com
git add [file]
- Continuar o rebase com
git rebase --continue
2- Se git pergunta: "você se esqueceu de chamar
git add
", então as edições transformou o conflito em uma mudança no-op 3 . Continue comgit rebase --skip
- Se git pergunta: "você se esqueceu de chamar
Você pode ter que repetir este processo até que o rebase está completa. A qualquer momento você pode git rebase --abort
para cancelar e abandonar o rebase.
1:. Não há opção --abort
para git svn rebase
2:. Não há opção --continue
para git svn rebase
3: Isto é muito estranho, mas os arquivos estão em um estado onde git acha que eles são o mesmo depois que o patch particular. A solução é "pular" que remendo sobre a alteração de base.