Mecanismos de versionamento como o GIT são fundamentais para a programação colaborativa. Por conta disso, serviços como o Github ( github.com ) se tornaram extremamente populares pois além da hospedagem dos repositórios, eles oferecem painéis de controle, wiki, fórums para problemas, webhooks e diversos outros benefícios, além de permitir que pessoas anonimas possam acessar conteúdo de código aberto, fazer uma cópia, uma derivação e contribuir com o autor original.
As empresas podem se beneficiar destes serviços criando contas corporativas e utilizando os repositórios em modo privado entre colaboradores previamente cadastrados.
É neste ponto que as diferenças começam a aparecer entre os vários serviços existentes. O Github utiliza uma licença que cobra por repositório privado, mas permite cadastrar um número infinito de colaboradores. Seu concorrente, o Bitbucket, possui outro raciocínio comercial, muito interessante para pequenas empresas: seu plano gratuito comporta 5 usuários e infinitos repositórios privados.
Se você já tem repositórios no GITHUB e achou interessante o modelo de negócios do Bitbucket, saiba que é possível puxar automaticamente o conteúdo de um repositório através de um recurso no próprio painel de controle do Bitbucket. Trata-se da opção de “importar repositório”.
Ao importar um repositório do GITHUB, você deve informar alguns dados como a url, usuário e senha. O Bitbucket fará uma cópia completa de seu repositório e a partir daí você pode deixar seu Github de lado.
Vem outra pergunta: e eu vou ter que clonar um novo repositório na minha máquina local? E se for um repositório muito grande? A resposta é: não! você pode alterar a configuração do seu repositório local, apontando-o para a nova URL da bitbucket.
O arquivo chama-se “config”, e fica num diretório escondido chamado “.git” dentro da pasta onde seu repositório foi clonado. Abra o arquivo e localize a url, substituindo-a pela do bitbucket. Ex:
Antes:
[core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [remote "origin"] url = <b>https://github.com/suaempresa/hello-world.git </b>fetch = +refs/heads/*:refs/remotes/origin/* [branch "master"] remote = origin merge = refs/heads/master
Depois:
[core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [remote "origin"] url = <b>https://bitbucket.org/suaempresa/hello-world.git </b>fetch = +refs/heads/*:refs/remotes/origin/* [branch "master"] remote = origin merge = refs/heads/master
Faça um teste de “pull” e veja que o repositório deverá estar sincronizado rapidamente, pois você já tem a cópia local dos dados e metadados.
A partir desta mudança seus pulls, commits e pushes serão feitos diretamente.
Happy coding with Bitbucket!