Acho que é um caso realmente específico em que as pessoas não precisam ter acesso aos meus branches do Git apresentados.
Outros desenvolvedores são usados para usar apenas o / trunk no SVN. Eles rastreiam apenas as alterações feitas em / trunk.
Principalmente porque o sistema de Integração Contínua (CI) irá procurar por alterações e compilar / tronco.
Portanto, enquanto eu enviar todas as minhas alterações para o tronco, o resto da equipe ficará feliz.
Decidi usar ‘git svn’ porque gosto do conceito Git de controle de versão e, além disso, acho que é a melhor prática separar qualquer novo recurso em seu próprio branch antes de enviar para master (/ trunk).
Assim, é garantido que meu código nunca quebrará / trunk porque sempre irei trabalhar em um branch separado para qualquer novo recurso.
Quando estou feliz e testei o novo recurso, coloco-o no svn / trunk, onde todos podem ver e, o mais importante, rastrear todas as mudanças que foram feitas.
Funciona para mim. Espero que possa ser útil para alguém por aí também.
Portanto, esse é meu fluxo de trabalho atual para fazer um repositório SVN falar com Git:
1. mkdir [your_repo_folder]
2. cd [your_repo_folder]
3. git svn init [svn_repo_url] + /trunk
Isto irá inicializar a pasta atual para o seu repositório local
Observe que estou apontando a pasta para / trunk
OBS: Estava recebendo o erro “svn: OPTIONS 200 OK” quando tentei usar o [svn repo url] sem as informações do nome de usuário. Depois de incluir meu nome de usuário no endereço, funcionou. Então, no final, o endereço parecia com este http: // [nome de usuário] @ [svn repo url]
4.git svn fetch
Ele puxará as informações de revisão do svn do repositório remoto. Você deve ver muitas linhas com informações sobre as revisões do svn na tela do seu terminal
5.git checkout -b [new-feature-branch-name]
Esse é o novo ramo onde você vai trabalhar. Será bifurcado do mestre
[loop]
– você faz todas as alterações necessárias
– adiciona-as
– confirma-as
[/ loop]
quando estiver satisfeito com suas alterações e estiver pronto para enviar para o svn, faça o seguinte:
6.git checkout master
Voltar para o ramo mestre
7.git merge [new-feature-branch-name] or git merge [new-feature-branch-name] -Xtheirs
Mesclar suas alterações do branch de recurso no master
if error Erro: update-index –refresh: o comando retornou o erro: 1
para corrigi-lo:
git ls-files | tr ‘ n’ ‘ 0’ | xargs -0 git update-index –assume-unchanged
8.git svn rebase
Certifique-se de obter a maioria das alterações de atualização do mestre. Ele rebase os commits do servidor SVN upstream com seu mestre Git local
Obs: Você só deve fazer git svn rebase de seu mestre Git e sempre deve fazer isso antes de qualquer git svn dcommit.
9.git svn dcommit
Envie todas as suas alterações para o svn repo remoto