Olá, tudo bem!
O que é GIT? É uma ferramente para controle de versão descentralizada criada por Linus Torvalds, que possibilita a gestão do versionamento de códigos, alias, não necessariamente apenas códigos, sendo a ferramente mais utilizada para a finalidade a que se propõem.
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 para pequenas equipes, ter uma metodologia definida para controle de código irá poupar muitas dores de cabeça, fazendo com que as entregas sejam realizadas com eficiência e o mínimo de dor de cabeça.
O GitHub é uma das principais plataformas para armazenar repositórios git, porém temos o GitLab e Bitbucket.
Será apresentando 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 realizar o clone (cópia) de 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 o 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.
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.
Uma excelente ferramente multi plataforma, com uma interface elegante e fácil de se usar. É uma ferramenta paga, porém com uma opção gratuita.
Ferramente proprietária, fornecida pela Atlassian compatível com Windows e Mac. Sinceramente meu uso dessa ferramente foi breve e a muito tempo, porém com boas recordações.
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
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!