Olá, tudo bem!
Sumário
- Introdução
- Comandos
- Atualizar fork
- Git por meio de interface gráfica
- Materiais complementares
- Considerações
Introdução
Git é um sistema de controle de versão descentralizado, criado por Linus Torvalds. Ele permite gerenciar versões de código e outros arquivos, sendo a ferramenta mais popular para essa finalidade. Entretanto, por que sempre é frisado que para desenvolver software é fundamental usar uma ferramenta para controle de versão?
Os projetos estão cada vez mais complexos com equipes mais numerosas e entregas cada vez maiores, onde dezenas ou centenas de pessoas estão interagindo com o mesmo repositório de código mandando correções ou novas funcionalidades.
Mesmo em pequenas equipes, seguir uma metodologia de controle de versão evita problemas e torna as entregas mais eficientes.
O GitHub, GitLab e Bitbucket são algumas das principais plataformas para hospedagem de repositórios “Git”, cada uma com suas particularidades.
Será apresentado os principais comandos utilizados, em uma ordem natural dos seus usos. Porém use conforme sua necessidade.
Estou tomando a premissa que todos os comandos serão executados no terminal, no final do post tem uma lista de ferramentas de interface gráfica, porém convido que realize inicialmente pelo terminal para melhor compreensão de cada comando.
git config
Duas principais configurações que devem ser realizadas são, definir seu nome e e-mail, pois serão os identificadores utilizados pelo “Git”.
Caso deseje verificar o que está configurado, basta executar o comando;
|
|
|
|
Para definir globalmente as informações.
|
|
Para definir especificamente em um repositório, acesse a raiz do projeto e execute os seguintes comandos.
|
|
Podemos alterar o editor padrão do “Git”, particularmente gosto de usar o vim. Entretanto, é possível utilizar o que preferir.
Caso deseje aprofundar seus conhecimentos nas configurações, recomente acessar a documentação oficial.
|
|
git init
Para criar um repositório, acesse por meio do terminal o diretório desejado e execute o comando abaixo. Após execução será criado um diretório chamado .git
.
|
|
git clone
Podemos ao invés de iniciar um repositório em nossa máquina clonar um repositório existente, como por exemplo um repositório do GitHub.
|
|
git status
Caso deseje verificar a diferença entre a versão atual do repositório e o último commit
da HEAD
atual.
|
|
git branch
Responsável por gerenciar os “branches” do “repositório”, sendo possível visualizar, criar, editar ou apagar “branches”.
Utilizar este recurso é fundamental para manter uma organização e fluidez no desenvolvimento do projeto, possibilitando que múltiplas funcionalidades possam ser desenvolvidas paralelamente.
|
|
git checkout
Para atualizar todos os arquivos no diretório do projeto ou navegar entre as branches
.
|
|
git add
Para adicionar o(s) arquivo(s) ao repositório, no caso dos arquivos ainda não terem sido adicionados.
|
|
git commit
Este é o comando responsável por guardar todos os arquivos modificados e adicionados com o comando add
, onde será gerado um novo commit
com seu hash
de identificação único. Sendo possível navegar entre os commits
desejados, utilizando o comando checkout
e o hash
desejado
|
|
Caso não seja informado o parâmetro -m
será aberto o editor de texto configurado, para que seja inserido a mensagem desejada.
git diff
Responsável por apresentar as diferenças entre as modificações realizadas versus o último commit
.
|
|
git log
Responsável por exibir todo o log dos commits
do repositório.
|
|
git merge
Responsável por realizar a junção das alterações de um determinado branch
externo com a branch
atual.
|
|
git pull
Responsável por puxar as alterações de um repositório realizando o merge
com o branch
desejado.
|
|
git push
Responsável por enviar os commits
de um branch
local para seu correspondente no repositório remoto.
|
|
git reset
Responsável por desfazer as alterações realizadas nos arquivos. Permitindo que seja desfeitos merges
, pulls
, commits
, adds
e outros. Este comando demanda muita cautela, para que não sejam perdidos os trabalhos realizados.
|
|
git tag
Responsável por gerenciar as tags, que são pontos de identificação de modificações.
Este recurso é normalmente utilizado para definir pontos de mudanças em softwares (versões), como por exemplo a tag v1.0.0 que indica a primeira versão do software.
|
|
git mv
Responsável por modificar o nome ou mover um arquivo.
|
|
git rebase
Responsável por coletar todas as alterações realizadas e volta a aplicá-las em outro branch.
|
|
git grep
Este comando nos permite procurar facilmente informações em um repositório.
Podemos realizar configurações opcionais:
|
|
|
|
Atualizar fork
Como dica bônus, escrevi um post explicando o processo de como atualizar o seu fork do GitHub.
Git por meio de interface gráfica
Todos os comandos listados no post tomou como premissa o uso do terminal para sua execução. Particularmente uso o terminal em meu dia a dia, por questões de costume e praticidade, pois o terminal é uma das principais ferramentas que uso, entretanto há ferramentas de interface gráfica que possibilita fazer as mesmas ações de forma interativa e visual.
Obs.: Caso você seja iniciante e esteja aprendendo, recomendo que use o terminal para compreender melhor o que cada comando faz e seu resultado. Iniciar com uma interface gráfica pode ocultar o funcionamento interno do “Git”, limitando o aprendizado.
Acredito que a decisão de usar “A” ou “B” vai de cada pessoa, usando o que lhe deixa mais confortável e produtivo. Você não será melhor ou pior por causa disso. Use a ferramenta que melhor agrega para sua produtividade.
Interface moderna e intuitiva, com suporte a múltiplos repositórios, histórico visual e integração com plataformas como GitHub e GitLab.
Ferramenta gratuita da Atlassian, excelente para visualizar commits, branches e resolver conflitos de forma gráfica.
Focado na integração com o GitHub, é uma opção simples e prática para quem utiliza essa plataforma.
Caso queira ver mais opções acesse a página de [Git GUI][https://git-scm.com/downloads/guis/].
Materiais complementares
Felizmente é fácil encontrar materiais sobre “Git”, recomento os seguintes:
- Rodrigo Branas
- Git e GitHub para iniciantes – Loiane Groner
- Entendendo GIT (não é um tutorial!) – Fabio Akita
Considerações
Meu foco com post é auxiliar todos as pessoas que estão iniciando suas carreiras em tecnologia, pois independente da área escolhida o Git é fundamental.
Espero que o conteúdo auxilie em sua jornada de aprendizado, caso tenha alguma dúvida convido que deixe nos comentários e com isso podemos fomentar ainda mais conhecimento.
Sucesso em seus projetos!