Edite este post Histórico de edição
5 mins

Git

O que é Git

É um Sistema de Controle de Versão Distribuido (DVCS). Ele registra mudanças feitas em um ou mais arquivos ao longo do tempo de forma que você possa recuperar versões específicas. Na prática, é um programa - normalmente utilizado pelo terminal - que registra modificações nos arquivos. Cada “estado” do arquivo é salvo através de commits, cujo possuem hashes (identificadores únicos) que permitem retroceder.

Configurando ambiente

Siga as instruções oficiais do git. Caso utilize Windows, use o programa git bash instalado para os comandos desse post.

Estados de arquivos

Um arquivo no git podem estar em 1 dos 4 estágios:

Uso básico

Vou falar neste topico sobre os comandos do git via terminal. Para usar no Windows basta ir até pasta do seu projeto, apertar botão direito do mouse e escolher “git bash”. Comandos são compostos de git mais a especificação dele. Por exemplo, para transformar um arquivo de not staged para staged, basta usar git add <arquivo>. Muitos comandos terão parâmetros, como por exemplo o nome de um arquivo. Nessas situações será usada a notação <valor>. Em caso de duvida, digite o comando completo com help no final como git add --help. Antes de começar a testar os comandos do git é obrigatório um mínimo de configurações que são feitas através da linha de comando.

  1. git config --global user.name "Seu Nome Aqui"
  2. git config --global user.email "seuemail@mail.com"
  3. git config --global color.ui true
  4. git config --global core.editor "seu editor de texto favorito"

Individual

É mais simples versionar o código quando está trabalhando sozinho em um projeto, portanto essa seção abordará o escopo de comandos mínimos necessários para essa situação. Abaixo uma figura no fluxo de trabalho explicado na seção: fluxo

Init

Todas mudanças realizadas versionadas com o git ficam na pasta .git na raiz do projeto. Para ter esse diretório - e consequentemente utilizar o git - das duas uma, ou clona um objeto (baixa um existente) com git clone <endereco> ou inicializa o git na pasta com git init.

Status

Para verificar a situação dos arquivos do projeto deve-se utilizar git status. Arquivos commited não são exibidos.

Add

Somente arquivos staged podem ser commitados, e para isso é precisso escolher untrackeds ou not stageds. Com git add <file> ele troca de estado para staged e com git reset <file> para untracked ou not staged. Dicas:

Commit

O commit é o responsável por gravar as alterações dos arquivos stageados no projeto. É pelo histórico de commits que é possível retroceder até determinada versão do projeto. Os principais características que todo commit possui é seu hash (identificador), data, autor e mensagem.

Commits são feitos com o comando git commit ou git commit -m "<mensagem>", sendo que o primeiro vai abrir o editor padrão do git configurado e o segundo aceita a mensagem rápida.

Dicas para uma mensagem de commit:

Vale ressaltar que podem existir convenções para mensagens de commits. Uma famosa é do site conventionalcommits.org, cujo foi adaptada para o framework angular.

Remote

O Github hospeda projetos git online. Quando um projeto possui seu código salvo como no github, ele possui um remote. Ao criar um projeto o git não sabe identificar aonde ele será “guardado”, portanto é necessário informar seu link como git remote add <nome> <link>. Um projeto pode ter inúmeros remotes e comumente o seu principal é chamado de origin.

Push

Para enviar o código juntamente com seu histórico para o Github, deve-se utilizar o comando git push <nome-do-remote> <nome-da-branch>. Caso ainda não esteja trabalhando com branches, utilize master no nome da branch. Mais a frente o conceito será abordado.

Tag

Log

Rebase

Checkout

Reset

Bisect

Em time

Branch

Fetch

Pull

Caso tenha feito git clone ou git push em algum momento, você está apto para atualizar seu código de acordo com o seu remote.

Conflitos

Fluxos de trabalho

Comum

Pessoal para estudos

Resumo dos comandos(cheatsheet)

Exemplos de cenários específicos

Exemplo1

Exemplo2

Exemplo3

Configurações

Usuário

Gitconfig

SSH

ssh-keygen

Projeto

Gitignore

Para fazer o git ignorar arquivo (normalmente de configuração de IDE, logs e etc) é criado na raiz do projeto o arquivo .gitignore.

Templates

Licenças

Ferramentas

Extensões de Editores/IDEs

Vim

Criado em July 31, 2019