Imagine que você está desenvolvendo um trabalho de faculdade ou então até mesmo um sistema dentro da empresa que você trabalha, esses cenários são propícios para os seguintes problemas:
- Juntar as partes e modificações que cada pessoa fez
- Voltar uma parte do projeto que foi retirada anteriormente
- Ter que utilizar arquivos zip para cada versão do projeto e/ou sistema e também um método eficiente de backup
Bom, a história começa em 2005 quando o kernel do Linux utilizava, até então, o BitKeeper para o controle de versão, porém a ferramenta entrou em alguns conflitos com a comunidade Open Source e deixou de ser gratuita. Com esse problema em vista, o Linus Torvalds criou o Git para a manutenção do núcleo do Linux, porém a solução foi crescendo e sendo adotada em diversos projetos.
Levando isso em consideração, o Git nada mais é do que um sistema de controle de versão distribuído de código aberto e gratuito, projetado para lidar com tudo, desde projetos pequenos até grandes, garantindo a velocidade e eficiência do desenvolvimento
Agora, o que é o GitHub?
GitHub, que hoje pertence a Microsoft, é um serviço online de hospedagem de repositórios Git, nome dado aos projetos que utilizam o git para o seu versionamento, nele é possível deixar seu codigo-fonte hospedado de maneira pública ou então privada, claro que a versão free tem as suas limitações, mas esse não é o foco do post. Em resumo, o GitHub é um serviço para quem deseja utilizar o Git, também existem concorrentes como o BitBucket e GitLab.
.
Como instalar?
Em caso de problemas, a documentação é bem completa e auxilia em tudo que for necessário, mas fique tranquilo que irá ter um passo a passo no melhor blog de tecnologia.
Conceitos do Git
Tendo em mente do que é essa ferramenta, agora é necessário saber os conceitos e como utilizar ela, os quais são:
- Clone
- Branch
- Commit
Irei focar apenas nesses,que são essenciais para começar a usar o Git em seus projetos tanto pessoais quanto profissionais.
Clone
Link para clonar um repositório |
Então, você irá literalmente fazer um clone para o seu computador, para fazer isso é bem simples, basta digitar no seu console o comando: "git clone <repositorio>"
exemplo de comando |
Clone bem sucedido |
Branch
Exemplo de Workflow |
Dentro do Git, uma maneira de deixar as coisas organizadas é a de separar ajustes de bugs, correções, criação de features, testes, entre outras coisas em branchs, que em uma tradução literal seria "ramificações", sendo a branch principal a "master", então muito cuidado ao fazer alguma alteração na master, pois é possível quebrar uma aplicação inteira.
Em uma branch, é possível fazer alterações e testar elas antes de enviar para a ramificação central, tornando o desenvolvimento mais ágil e eficiente. Para criar uma branch basta digitar "git checkout -b <nome da branch>", o "-b" é um comando utilizado apenas na criação da branch e toda vez que você desejar mudar de uma branch para outra basta usar o "git checkout <nome da branch>".
Exemplo de criação de uma branch |
Commit
Quando você faz alguma alteração no projeto, para enviar isso até o servidor remoto é necessário fazer um commit, como é possível ver na imagem acima.
O commit nada mais é do que um ponto na história do desenvolvimento daquele projeto, contendo uma mensagem explicando o que foi feito naquele momento, um commit pode englobar vários arquivos, se reparar bem na imagem de exemplo, eu utilizei o comando "git add . ", que é basicamente adicionar todos os arquivos modificados naquele commit.
Também é possível adicionar apenas arquivos específicos em um commit, usando o "git add <nome_do_arquivo.extensao>".
Ao final desse workflow, para enviar o seu commit basta digitar "git push origin <nome da branch>"
Só de push na master se tiver certeza do que está fazendo |
Agora que você já sabe os conceitos básicos de git, já é possível deixar de utilizar os arquivos .zip e .rar para versionar o seu código e ter um ganho de produtividade, mais para frente irei produzir mais materiais sobre git, estejam antenados no melhor blog do ocidente.
Links úteis e refêrencias:
- https://git-scm.com/book/pt-br/v2/Começando-Uma-Breve-História-do-Git
- https://github.com
- https://github.com/torvalds/linux
- https://archive.is/20120523214930/kerneltrap.org/node/4966