Primeiros passos com o Git
Tags: git, beginners, tutorial, programming
Published: 2023-06-19 01:40:29


## Table of Contents

-  [O que é Git?](#orgb058b04)
    -  [De onde surgiu o Git?](#org3524200)
-  [Conceitos por trás do Git](#orgc6320b8)
    -  [Repositório](#org5cd400b)
    -  [Commit](#org70b48c7)
    -  [Branch](#org754caf0)
    -  [Pull Request](#org5c827b3)
    -  [Issue (bônus)](#org702b4f4)
-  [Comandos](#org3497fbe)
-  [Extra](#orgecac49b)
    -  [Git x GitHub](#org5b2e314)



<a id="orgb058b04"></a>

## O que é Git?

Git é uma ferramenta/protocolo para controle de versões de um projeto (repositório). A principal finalidade do Git é controlar o fluxo de modificações que um projeto pode receber.

Além disso, o Git auxilia no decorrer do processo de desenvolvimento por conseguir facilitar o registro de modificações que um repositório pode sofrer.


<a id="org3524200"></a>

### De onde surgiu o Git?

Desenvolvido por nada mais nada menos que Linus Torvalds (juntamente de diversos desenvolvedores espalhados no mundo todo - poder do software livre e de código aberto neh), o Git surgiu com o principal propósito de organizar repositórios, buscando ser uma solução livre e de fácil uso.

O principal motivo que realmente fez com que o Git surgisse foi a manutenção do repositório do Kernel Linux. Depois de tentar utilizar diversas ferramentas para o versionamento, mas, nenhuma suprindo consideravelmente bem&#x2026; Com isso, Linus propôs em 2004 o desenvolvimento de uma nova ferramenta, assim, surgiu-se o Git.


<a id="orgc6320b8"></a>

## Conceitos por trás do Git


<a id="org5cd400b"></a>

### Repositório

Local onde temos o nosso projeto. Nele teremos todo o controle de versões e modificações realizadas. No repositório podemos navegar entre os arquivos normalmente e verificar históricos essenciais.

Um repositório pode ser nomeado com um padrão bem interessante em sistemas que utilizam o git (como GitHub e GitLab), sendo *usuário/repositório*.

Os repositórios podem sofrer diversas modificações, por isso, vamos entender melhor como essas modificações são realizadas.


<a id="org70b48c7"></a>

### Commit

Um commit pode ser classificado como uma publicação de modificação no repositório. Se eu altero algo de um repositório, temos o registro salvo com nome de commit, sendo apresentado quais modificações foram realizadas (desde criação de arquivos até modificações únicas de caracteres).

Com o git podemos registrar todos os commits feitos, apresentando também informações como data, mensagem, usuário que enviou o commit entre outros dados realcionados ao commit!


<a id="org754caf0"></a>

### Branch

Podemos definir a branch como uma ramificação do nosso repositório. Nela, temos a base de outra branch (geralmente a main - antiga master) para realizar modificações.

Em projetos reais, é comum que cada modificação de projeto (algo que altere o fluxo de funcionamento) tenha uma branch específica. Cada modificação posteriormente pode resultar em uma mescla dessa branch com a principal (realizando o *merge* das modificações).

![Demonstração de branch](https://www.nobledesktop.com/image/gitresources/git-branches-merge.png)


<a id="org5c827b3"></a>

### Pull Request

Nada mais é do que uma requisição para se realizar o merge (fundir) de uma branch em outra. Geralmente as pull requests são abertas para realizar o merge de uma branch modificada para a branch principal, resultando em um processo de aprovação.

Com a pull request aberta temos acesso às modificações que serão "mergeadas" ao se aprovar o pedido. Tome muito cuidado! As pull requests devem ser utilizadas com cautela e sempre que possível, impossibilitando modificações problemáticas.


<a id="org702b4f4"></a>

### Issue (bônus)

Geralmente sendo uma característica única de sistemas que utilizam o versionamento com git, uma issue pode ser definida como algum problema/sugestão para modificação no repositório. As issues são abertas e recebem comentários, podendo ser fechadas pelo(s) proprietário(s) do repositório.

São extremamente úteis para realizar uma verificação geral de uso, podendo ainda ser uma fonte de *feedback* para o repositório.


<a id="org3497fbe"></a>

## Comandos

Existem diversos comandos para se utilizar com o git, por isso, recomendo acessar a documentação de [apresentação dos comandos](https://git-scm.com/docs) caso queira se aprofundar melhor!

Vamos ver alguns comandos específicos do git:

-   **git config**: utilizado para configurar seu usuário
-   **git init**: inicia um repositório no diretório local
-   **git clone**: clona um repositório existente no caminho atual
-   **git pull**: sincroniza as modificações existentes que não estão atualizadas para o seu repositório
-   **git add**: adiciona arquivos para serem sincronizados e enviados
-   **git commit**: adiciona um commit com os arquivos que foram previamente modificados
-   **git push**: envia as modificações do seu repositório local para o repositório principal
-   **git checkout**: atualizar a branch que você está utilizando no momento
-   **git merge**: utilizado para fundir uma branch com outra, geralmente em paralelo com uma pull request
-   **git log**: mostra os logs de commits realizados
-   **git revert**: reverter commits realizados para uma versão anterior às modificações


<a id="orgecac49b"></a>

## Extra


<a id="org5b2e314"></a>

### Git x GitHub

Git **NÃO** é a mesma coisa que GitHub. Enquanto o Git é tratado como uma ferramenta, o GitHub é utilizado como um site/plataforma que realiza o uso do Git para sistema de versionamento.

O Git pode ser implementado em um servidor como desejar, independente da plataforma a ser utilizada no final. Existem diversas plataformas que utilizam o Git, entre elas o GitLab, por exemplo.

### Aprenda mais sobre Git

Acesse o repositório oficial do [git4noobs](https://github.com/DanielHe4rt/git4noobs) para aprender mais sobre Git!