[Guia] básico sobre Git
O que é o Git
O Git é um dos sistemas de controle de versão mais utilizados no mundo de desenvolvimento de software;
Isso significa que qualquer desenvolvedor numa equipe pode gerenciar o código-fonte e seu histórico de mudanças;
É gratuito e com o código fonte aberto;
Porque usar?
O Git pode ser usado em todo e qualquer projeto que tenha arquivos de diferentes tipos, podendo ser código, texto, imagens, vídeos, áudios, entre outros;
Desempenho / Segurança / Flexibilidade;
Compartilhar e organizar o código entre o time de desenvolvimento;
Backup e facilidade em reverter alterações;
Interfaces usadas
São ferramentas para hospedar os respositórios;
Facilitam a visualização do repositório;
Agregam funcionalidades;
Podem ter custos;
- GitHub - Muito usado no "mundo open source"
- GitLab - Tem mais recursos de CI/CD e gerenciamento de tarefas
- GitBucket - Tem mais recursos de CI/CD e gerenciamento de tarefas
Instalando
Linux
sudo apt-get install git-all
Windows
Agora vamos ver as principais funções na prática
Criar um repositório
-
Crie uma conta no GitLab
-
Crie um projeto
-
Observação: É possível usar o Git apenas localmente na máquina, mas o normal é que fique hospedado em algum serviço.
Clonar o repositório
Cria uma cópia de trabalho local do projeto;
- Abra o terminal
- Navegue até a pasta desejada
git clone URL_DO_REPOSITÓRIO
- Informe usuário e senha
Configurar o usuário:
- Nome:
git config --global user.name "NOME"
- Email:
git config --global user.email "EMAIL"
Criar uma branch de trabalho
O que é uma branch
Branch significa “ramo”, ou seja, uma ramificação do seu código;
É usado para fazer modificações no código, sem afetar o código principal;
Representação gráfica:
Comandos
-
Lista as branches existentes:
git branch
-
Criar uma nova branch:
git checkout -b NOME_DA_BRANCH
-
Mudar de branch:
git checkout NOME_DA_BRANCH
Status
- Lista os arquivos que foram modificados:
git status
Add
-
Adiciona os arquivos modificados para serem comitados
-
Todos:
git add .
-
Por arquivo:
git add CAMINHO_DO_ARQUIVO
-
Commit
Registra/salva as modificações que foram incluídas no 'add'
- Fazer o commit:
git commit -m "Mensagem descrevendo o commit"
Push
Envia os commits locais para o servidor
- Fazer o push:
git push
Pull
Busca as atualizações do repositório para o ambiente local
- Fazer o pull:
git pull
Merge
Une a branch atual com outra branch
- Fazer o merge:
git merge NOME_DA_BRANCH
Tag
Cria uma "versão do código" estática
Usado para versionar os projetos
-
Listar as tags:
git tag
-
Criar tag:
git tag -a vNUMERO -m "DESCRICAO"
-
Envia a tag:
git push origin vNUMERO
GitFlow
É uma ideia de como usar e organizar as branches;
É um fluxo de trabalho para o Git;
É um padrão que muitas empresas/projetos adotam, totalmente ou ao menos parciamente;
Imagem que representa o fluxo:
Referência:
Adiciono a informação caso enviei um commit errado e quero voltar ao commit anterior git reset HEAD^ git reset HEAD~ git reset HEAD~1
Caso queira voltar um commit específico podemos usar o seguinte comando git reset --hard commit-id
Ótimo resumo do básico do git, sempre é bom dar uma refrescada na memória 👏
Isso é muito importante, lembro que quando iniciei tinha medo de usar o git por parecer muito complexo.
Muito legal a postagem 🎉
Uma consideração sobre a frase:
O Git pode ser usado em todo e qualquer projeto que tenha arquivos de diferentes tipos, podendo ser código, texto, imagens, vídeos, áudios, entre outros;
Concordo, pode ser usado para diferentes tipos de arquivo. No entanto, o git foi feito para versionar texto, isto é, código. Portanto, ao versionar arquivos "banários"(imagens, videos, audios) o git não é eficiente. Por exemplo, toda vez que você altera um vídeo no git este video é duplicado internamente, o que torna o repositório mais pesado(isto não ocorre com texto).
Para resolver esse problema existe a extensão Git LFS.
Sobre esse comportamento, é explicado no vídeo do fábio akita: Usando Git direito.
Muito bom! Obrigado pelo post. Gostaria de acrescentar um comentário sobre a instalação nos sistemas base linux. Acontece que nem todas as distribuições utilizam o apt para instalar pacotes. Em distros base Ubuntu (consequentemente Debian) faz-se uso do código como escreveu no post:
sudo apt-get install nome_do_pacote
No Fedora, por exemplo, utiliza o dnf:
sudo dnf install nome_do_pacote
No Arch e derivados uriliza-se o pacman:
sudo pacman -Sy nome_do_pacote
É importante consultar o gerenciador de pacotes de cada distribuição. Cuidado ao utilizar o sudo para instalar pacotes que não conhece, pois ele fornece permissões de super usuário ao executar a tarefa de instalar o pacote.