Guia dos principais comandos do GIT

Guia dos principais comandos do GIT

O que é o GIT?

O GIT é um sistema de versionamento de conteúdo, com ele pode-se guardar as diferentes etapas de cada trabalho. Cada etapa de trabalho que é salva no GIT é chamada de commit. Você pode dividir em ramificações o seu trabalho, isso se chama branches.  Desta forma, você pode colocar em separado o código que está em fase de testes, para não misturar com o código que já está em produção.

Num projeto onde trabalham vários programadores, cada um pode ter um repositório local com uma cópia da aplicação,  e estes programadores devolvem as alterações para um repositório remoto, que centraliza todas as alterações. Para armazenar o repositório remoto, um serviço muito utilizado é o Github, que é um repositório gratuito.

Para instalar o GIT, você precisa fazer o download a partir deste link:

https://git-scm.com

Para hospedar seus repositórios no Github será necessário criar uma conta de usuário neste site para poder baixar ou subir alterações

https://github.com

Se você tiver dificuldade em criar sua conta no GitHub pode consultar este artigo

https://www.treinaweb.com.br/blog/criando-repositorio-no-github

Este artigo vai abordar os comandos básicos do GIT, vai mostrar um exemplo de como enviar informações ao servidor remoto, vai falar sobre branches e mostrar alguns comandos que podem ser úteis no dia a dia. No final, você vai ter links para outros sites onde você pode aprender mais sobre GIT.

Configurando o GIT

Os comandos mostrados neste artigo foram testados no Windows. Uma vez instalado, abra o terminal do Windows e configure o git com os dados de sua conta do Github

Para isso, utilize os comandos git config

A primeira coisa a fazer depois de instalar o Git é definir o seu nome de usuário e endereço de e-mail. Isso é importante porque todos os commits no Git utilizam essas informações

git config --global user.name "Seu nome de usuário" 

git config --global user.email seuemail@seuservidor.com

Para copiar um repositório do GitHub para a sua máquina, utilize o comando

Git clone <Endereço remoto do repositório>

Para transformar a pasta do projeto num repositório do GIT, ou para ativar o repositório existente, dentro da pasta do projeto,  utilize o comando:

Git init

C:ins este>git init

 Initialized empty Git repository in C:/bins/teste/.git/

 

Seus repositórios locais consistem em três "árvores" mantidas pelo git. A primeira delas é sua Working Directory que contém os arquivos vigentes. a segunda Index que funciona como uma área temporária e finalmente a HEAD que aponta para o último commit (confirmação) que você fez.

Uma vez iniciado o GIT, você está pronto para salvar as alterações e enviar para o servidor.

 

Comandos básicos

 

git add nome_do_arquivo

Adiciona o arquivo na área de index. Para adicionar todos os arquivos que sofreram alteração (ou para copiar todos os arquivos caso seja a primeira vez), utilize git add .

C:ins este>git add arquivo_teste.txt

git status

Com este comando você consegue ver quais arquivos estão fora do controle, quais foram modificados e estão esperando por uma descrição de modificação. Ele também mostra em qual branch você se encontra no momento.

C:ins este>git status

On branch master

No commits yet

Changes to be committed:

  (use "git rm --cached ..." to unstage)

        new file:   arquivo_teste.txt

 

O comando

git reset HEAD nome_do_arquivo

Volta ao estágio anterior do adicionamento. Se você infomar git reset sem nenhum parâmetro após fazer o git add ele desfaz a operação

Depois de adicionar os arquivos, chegou a hora de guardar. Para isso, executamos o comando commit.

git commit -m "nome do commit", ou git commit -m "nome do commit" –m “comentário”

Ele adiciona os arquivos na area de HEAD, ou seja, prepara os arquivos para ser enviados ao repositorio remoto.

 

C:ins este>git commit -m "primeiro commit"

[master (root-commit) 20a5a56] primeiro commit

 Committer: Daniel Bins <daniel.bins@dbins.com.br>

Your name and email address were configured automatically based

on your username and hostname. Please check that they are accurate.

You can suppress this message by setting them explicitly. Run the

following command and follow the instructions in your editor to edit

your configuration file:

 

    git config --global --edit

 

After doing this, you may fix the identity used for this commit with:

 

    git commit --amend --reset-author

 

 1 file changed, 1 insertion(+)

 create mode 100644 arquivo_teste.txt

 

 

Para mandar os arquivos para um repositório remoto será necessário cadastrar o endereço. Para isso, executamos o seguinte comando.

git remote add origin Endereço_do_repositório remoto

Ele vai ser executado apenas uma vez e vai cadastrar o repositório remoto que deve ser  atualizado.  Para mandar as alterações para o servidor remoto, executamos o seguinte comando:

git push origin master 

Envia os arquivos para o repositório remoto, ao fazer push vai pedir as credenciais de login e senha do GitHub. 

Atualmente, ao invés de informar a senha que você utiliza para entrar no GitHub,  você deve informar como senha um token pessoal. Veja no link a seguir as instruções passo a passo para criar este token.

https://www.alura.com.br/artigos/nova-exigencia-do-git-de-autenticacao-por-token-o-que-e-o-que-devo-fazer#:~:text=1)%20Faça%20o%20login%20na,opção%20da%20lista%20à%20esquerda.

 A imagem a seguir resume as etapas que vimos até agora

 

 

git log

Mostra todos os commits que você fez

 

C:ins este>git log

commit 20a5a56079de1a86a6d1f94d40ced58f63fc85f3 (HEAD -> master)

Author: Daniel Bins <daniel.bins@dbins.com.br>

Date:   Tue Feb 8 15:25:01 2022 -0300

    primeiro commit

 

Vamos dar uma olhada no processo de commit. Como vimos, antes de commitar é necessário selecionar os arquivos. Além disso, adicionamos um comentário, para nosso melhor controle.

Caso você tenha adicionado arquivos errados, pode desfazer o último commit desta forma:

git revert

E se deseja trocar o comentário, pode fazer desta forma:

git commit --ammend

 

Branches

Branches  são utilizados para desenvolver funcionalidades isoladas umas das outras. O branch master é o branch "padrão" quando você cria um repositório. Use outros branches para desenvolver e mescle-os (merge) ao branch master após a conclusão.  Para listar os branches de um repositório, basta utilizar o comando

Git branch

Exemplos de como trabalhar com branches:

Crie um novo branch chamado "funcionalidade_x" e selecione-o usando

git checkout -b funcionalidade_x

C:ins este>git checkout -b funcionalidade_x

 

Switched to a new branch 'funcionalidade_x'

Uma outra forma de criar esta branch seria

git checktout funcionalidade_x

Retorne para o master usando

git checkout master

C:ins este>git checkout master

 

Switched to branch 'master'

e remova o branch da seguinte forma

git branch -d funcionalidade_x

C:ins este>git branch -d funcionalidade_x

Deleted branch funcionalidade_x (was 20a5a56).

Uma outra forma de retornar para alguma branch seria

git switch nome_do_branch

Um branch não estará disponível para outros usuários enquanto você não enviar este branch para seu repositório remoto. Para fazer isso, utilize o seguinte comando

git push origin nome_do_branch

Exemplo:

git push origin funcionalidade_x

Caso ocorram alterações neste brach feitas por outros usuários, para atualizar seu repositório local com a mais nova versão, execute 

git pull

 

Mesclando alterações

 

Para mesclar alterações de um branch com o branch que estiver ativo, use

git merge nome_do_branch

Após a execução do merge, será criado um novo commit.

Se você quiser mesclar os branches sem criar um novo commit, pode utilizar este comando:

git rebase  nome_do_branch

Observação:  Se o branch ja existir no repositório remoto, o push ter que ser forçado para rescrever

O git tenta fazer o merge das alterações automaticamente. Caso não seja possível, o GIT mostrará os conflitos para você corrigir manualmente. Depois de alterar, você precisa marcá-los como merged utilizando o comando.

git add nome_arquivo

Antes de fazer o merge das alterações, você pode também pré-visualizá-as usando

git diff branch_origem branch_destino

No caso de você ter feito algo errado, você pode sobrescrever as alterações locais usando o comando

git checkout --nome_do_arquivo

Isto substitui as alterações na sua árvore de trabalho com o conteúdo mais recente no HEAD. Alterações já adicionadas ao index, bem como novos arquivos serão mantidos.

Se ao invés disso você deseja remover todas as alterações e commits locais, recupere o histórico mais recente do servidor e aponte para seu branch master local desta forma

git fetch origin

git reset --hard origin/master

 

 

Log

 

Vamos ver algumas opções de como trabalhar com o log de commits do GIT

Você pode obter o id de commit com 

git log

C:ins este>git log

commit 20a5a56079de1a86a6d1f94d40ced58f63fc85f3 (HEAD -> master)

Author: Daniel Bins <daniel.bins@dbins.com.br>

Date:   Tue Feb 8 15:25:01 2022 -0300

    primeiro commit

 

E ver as alterações feitas num determinado commit utilizado o comando

git log id_do_commit

Se deseja saber quais os commits que impactaram um determinado arquivo, basta utilizar o comando:

git log --all nome_do_arquivo

 

Uma outra forma de listar os commits do seu repositório

git log --graph --online –all

 

Podemos aplicar filtros ao log para localizar commits com mais facilidade.

Para filtrar commits pelo nome do autor, podemos fazer desta forma:

git log --autor=nome-autor

Se for necessário filtrar por data, existem duas formas.

git log --after=" YYYY-MM-DD"

git log --before=" YYYY-MM-DD"

O parâmetro –after filtra a partir da data informada,  e o parâmetro before filtra datas anteriores a data informada. A data deve ser informada no formato americano (ano-mês-dia)

C:ins este>git log --before="2022-02-10"

commit 20a5a56079de1a86a6d1f94d40ced58f63fc85f3 (HEAD -> master)

Author: Daniel Bins <daniel.bins@dbins.com.br>

Date:   Tue Feb 8 15:25:01 2022 -0300

    primeiro commit 

 

Outros comandos úteis

 

git push - u origin --all

Este comando copia todos os branches do repositório local e envia para o repositório remote

git remote –v

Este comando exibe qual o endereço do repositório remoto

git rm

Para remover um arquivo do Git, você tem que removê-lo dos arquivos que estão sendo monitorados e então fazer o commit. O comando git rm faz isso e também remove o arquivo do seu diretório para você não ver ele como arquivo não monitorado (untracked file) na próxima vez.

git rm -f nome_do_arquivo

Se você modificou o arquivo e já o adicionou na área de seleção, você deve forçar a remoção com a opção -f.

Um outro exemplo, quando o GIT é utilizado num projeto NodeJS, é comitar a pasta node_modules da raiz da aplicação. Essa pasta não é necessária porque são módulos de terceiros. Para retirar do GIT, basta fazer:

git rm -r --cached node_modules

Observação: Os repositórios do GIT possuem um arquivo chamado .gitignore que lista quais são as pastas ou arquivos que não precisam ser comitados.  Para criar um arquivo .gitignore você pode dar uma olhada neste site:

https://www.toptal.com/developers/gitignore

Caso você não queira mais trabalhar com o GIT e deseje excluir o histórico do seu repositório local, basta excluir a pasta .git que fica no seu repositório. Por padrão esta pasta é oculta.

Alias

O GIT também permite criar apelidos (alias) para comandos, isso permite simplificar a digitação dos comandos.

Vimos neste artigo que para ver quais arquivos foram adicionados na área de staging mas não foram comitados utilizamos o seguinte comando:

git status

Poderiamos simplificar, e criar o seguinte comando

git s

Para isso, vamos utilizar o comando alias.

git config --global alias.s status

O alias é composto primeiro pelo nome do alias que queremos crias e na sequência informamos qual o comando do GIT que será vinculado a ele.

Para listar os alias existentes, podemos utilizar o seguinte comando

git config --global --list

Se você deseja apagar este alias “s” que foi criado pelo comando anterior, podemos utilizar o seguinte comando:

git config --global --unset alias.s

 

Encerramento

 

Para concluir este artigo, eu recomendo um site onde você pode praticar os seus conhecimentos de GIT.

https://learngitbranching.js.org

 

Para saber mais

https://rogerdudler.github.io/git-guide/index.pt_BR.html

https://www.hostinger.com.br/tutoriais/tutorial-do-git-basics-introducao

https://fullcycle.com.br/git-e-github/

 

Se você gosta de livros estes dois podem ser muito úteis:

https://git-scm.com/book/pt-br/v2

https://books.goalkicker.com/GitBook/

 

 

Está começando e deseja saber o que precisa estudar de HTML e JavaScript? Não deixe de conferir os roteiros de estudo de HTML e JavaScript!. São dezenas de conteúdos para você melhorar suas habilidades.

Roteiro de estudos - HTML e CSS

Roteiro de estudos - Javascript

 

Outros conteudos que podem ser de seu interesse

Criando um slider sem plugins
28/11/2019JAVASCRIPT

Criando um slider sem plugins

Veja como criar um efeito de slider apenas com JavaScript

Saiba mais...
Criando gráficos em JavaScript com ChartJS
10/10/2019JAVASCRIPT

Criando gráficos em JavaScript com ChartJS

Um exemplo de como criar gráficos em JavaScript

Saiba mais...

Conteúdo sobre banco de dados sem complicação!