Pergunta

De acordo com a manual git dcommit “criará uma revisão no SVN para cada commit no git.” Mas há uma maneira de evitar múltiplas revisões do Subversion? Ou seja, para ter merge git todas as mudanças antes de realizar o svn commit?

Foi útil?

Solução

Se você trabalha em uma filial no git, você pode git-merge --squash , que faz que dentro de git. Você poderia, então, empurrar aquele esmagado comprometer com SVN.

Claro, lotes de pequenas commits são boas, então por que você iria querer esmagar-los?

Outras dicas

O git rebase -i comando pode fazer isso e muito mais. Este comando é extremamente poderoso, por isso é bom para fazer amigos com ele.

A sintaxe é: git rebase -i <commit ID>. Isso traz seu editor de texto, com opções (e instruções) para modificar todos os commits até (não incluindo) o ID fornecido.

Por exemplo, para modificar os anteriores 5 commits, você pode fazer isso:

git rebase -i HEAD~5

Ou se o seu ramo SVN é chamado "svn / trunk", em seguida, esta sintaxe é muito bom:

git rebase -i svn/trunk

Em seguida, uma janela de editor de texto irá aparecer. Para tudo squash, alterar a primeira palavra de cada linha após a primeira de "pegar" para "abóbora" (Se isso soa confusing- ele vai fazer mais sentido quando você vê-lo). Em seguida, salvar e fechar o editor. Então você vai ter a oportunidade de editar a mensagem de confirmação para o esmagado cometer.

Entre as outras coisas que você pode fazer com git rebase -i, estão reordenando commits, esmagando commits de diferentes maneiras, e remover commits.

Eu uso este comando constantemente; é uma característica do assassino do Git.

Ryan Tomayko escreveu um pouco sobre git rebase -i, que ele disse:

... [é] um pouco como git commit --amend pulou em ácido e segurando uma serra elétrica - completamente insano e bastante perigoso, mas capaz de expor inteiramente novos estados de espírito. Aqui você pode editar, squash, reordenar provocar uma separação, e comete annotate existentes em uma forma que é mais fácil e intuitiva do que deveria ser.

Eu tenho uma tendência a cometer muitas vezes em git, mas não necessariamente quer dcommit todas comprometer com svn, e esmagando todo o meu trabalho faz tão pouco sentido. Estou tentando agora para reordenar e esmagar alguns juntos em mais lógico unidades cometer agora.

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