# Github x Gitlab x Bitbucket
## Sistemas de Controle de Versão

Um sistema de controle de versão tem a finalidade de gerenciar diferentes versões de um código-fonte, documento e etc. Com isso ele te oferece uma maneira muito mais inteligente e eficaz de organizar seu projeto, pois é possível acompanhar um histórico de desenvolvimento, desenvolver paralelamente e ainda te oferecer outras vantagens, como exemplo, customizar uma versão, incluir outros requisitos, finalidades especificas e afins sem mexer no projeto principal ou resgatar o sistema em um ponto que estava estável, isso tudo sem mexer na versão principal.

## GitHub
### História

Lançado em 2008 e é usado desde então para que desenvolvedores possam hospedar seus projetos usando o sistema de controle de versão Git. O GitHub vem sendo o preferido entre os desenvolvedores por oferecer também alguns recursos de redes sociais, já que é possível seguir projetos de outros desenvolvedores e ainda comentar sobre eles. É escrito em Ruby on Rails pelos desenvolvedores da Logical Awesome, o que é um fato bastante interessante visto que a linguagem era muito nova na época com apenas quatro anos e já sendo utilizada em um projeto de grande porte e importância como o GitHub. Atualmente o GitHub hospeda projetos de grande importância para a comunidade de desenvolvedores. Entre eles podemos destacar o Kernel do Linux, Rails, Bootstrap e Django.

### Características

Em abril de 2016 o GitHub reportou ter mais de 20 milhões de usuários, fazendo dele o maior host de código-fonte do mundo. O GitHub é usado principalmente para projetos de desenvolvimento, mas em adição a isso a plataforma consegue dar suportes aos seguintes formatos e recursos:
* Documentação, incluindo arquivos README em vários formatos possíveis para edição.
* Rastreamento de issues.
* Wikis.
* Pull requests.
* Histórico de commits.
* Gráficos: Pulse, contribuidores, frequência de codificação e etc.
* Possibilidade de integrar com outras ferramentas.
* Log de edições.
* Notificações por email.
* Opção de seguir um determinado usuário ou repositório e acompanhar evolução.
* Emojis
* Github Pages: Pequenos websites podem ser hospedados a partir de repositórios públicos. O formato da url é http://username.github.io.

### Planos

O GitHub possui planos gratuitos e pagos. Optando pelo plano gratuito, o desenvolvedor não poderá ter direito a certas regalias que a plataforma oferece. Uma prova disso são os repositórios privados, onde para poder usufruir desse recurso, o desenvolvedor terá ao menos que ter adquirido o plano pago mais básico ou ter um plano de estudante.

### Ferramentas de Integração

Um dos pontos fortes do GitHub é a vasta quantidade de ferramentas de integração disponíveis para a plataforma. Dando a possibilidade ao desenvolvedor a oportunidade de poder integrar seus projetos a essas ferramentas.

## GitLab
### História

A história do GitLab começa em 2011 onde dois desenvolvedores ucranianos, Dmitriy Zaporozhets e Valery Sizov, insatisfeitos com as opções de repositórios git no mercado, decidiram criar o GitLab como uma solução para isso. Originalmente o produto foi totalmente gratuito e open source distribuído sobre a licença MIT. Em julho de 2013, o produto foi dividido em: GitLab CE (Community Edition) e GitLab EE (Enterprise Edition). Em Fevereiro de 2014, o Gitlab anunciou a adoção de um modelo de negócio open core que consiste basicamente em oferecer uma parte ou versão do produto de forma gratuita e open source enquanto oferece também parte ou versão "comercial" como software proprietário. Assim como o GitHub, o GitLab também hospeda repositórios de organizações importantes no mercado mundial, como: Nasa, IBM, Sony, SAnDisk e Uber.

### Características

Atualmente o GitLab possui quatro linhas de produtos:
* GitLab Community Edition: Gratuito, aplicação auto-hospedada, Suporte da comunidade
* GitLab Enterprise Edition: Paga, aplicação auto-hospedada, inclui diferentes funcionalidades e suporte.
* GitLab.com: SaaS gratuito para repositórios públicos e privados e suporte pode ser comprado a parte.
* GitHost.io: Da mesma forma que o GiHub, o GitLab oferece serviços de hospedagem de websites.

### Planos

O GitLab oferece cinco planos para a comunidade de desenvolvedores. Um dos destaques para aqueles que não desejam adquirir um plano pago, é o fato de poder ter repositórios privados no plano gratuito, sendo um diferencial se comparado ao GitHub.

### Ferramentas de Integração

Diferentemente do GitHub, o GitLab não possui uma vasta lista de ferramentas de integração. A seguinte lista mostra todas as ferramentas que o GitLab oferece suporte de integração:
* Rastreamento de issues - JIRA, Redmine, Bugzilla
* LDAP
* Jenkins
* OmniAuth
* SAML
* CAS
* Kerberos
* OAuth2 provider
* OpenID Connect
* Gmail actions buttons
* reCAPTCHA
* Akismet
* Koding
* PlantUML

## Bitbucket
### História

O Bitbucket anteriormente foi uma startup independente, fundada por Jesper Nohr. Em 29 de Setembro de 2010, o Bitbucket foi adquirido pela Atlassian. Inicialmente, o Bitbucket somente oferecia suporte para projetos cujo controle de versionamento fosse o Mercurial. Somente em outubro de 2011 que o Bitbucket oficialmente passou a oferecer suporte a git. Também hospeda repositórios de grandes portes como o GitHub e o GitLab. Dentre eles, podemos citar: Ford, PayPal, Starbucks e Pandora.

### Características

O Bitbucket hoje possui mais de 5 milhões de desenvolvedores espalhados em mais de 900 mil equipes no mundo. Suas principais características podem ser acompanhadas pela seguinte lista:
* Políticas de Pull request
* Bitbucket pipelines - Build, test e deploy a partir do Bitbucket
* Verificação de conta em 2 passos
* Merge checks - Build dependent, revisão de código e controle de tasks
* Code search
* Git large File Storage (LFS) - Versionamento de arquivos grandes
* Documentação, incluindo arquivos README em vários formatos possíveis para edição.
* Rastreamento de issues.
* Wikis
* Bitbucket Pages - Websites com o domínio bitbucket.io

### Planos

Existem diferentes planos que o Bitbucket oferece aos desenvolvedores. Basicamente os preços são definidos de acordo com a quantidade de usuários participantes do repositório. Para planos onde o usuário deseja que a hospedagem do repositório seja na nuvem, temos os seguintes planos:
Para planos empresariais e com grandes equipes e com hospedagem do servidor por conta própria, é possível adquirir os seguintes planos:

### Ferramentas de Integração

O Bitbucket possui um bom acervo de ferramentas de integração. Não chega a ser tão completa como o GitHub, mas as principais ferramentas do mercado são suportadas pela plataforma. As principais podemos destacar:
* JIRA
* HiChat
* Bamboo
* Azure
* AWS
* Docker
* npm
* Sonar
* SVN Mirror
* Slack