Git:Tour Prático
Tags: git, github, beginners, braziliandevs
Published: 2023-09-11 03:46:29

## Nesse guia, faremos um tour bem prático sobre como usar o Git para versionar nossos projetos.

---

## 1. Configurações Básicas

É importante nos identificarmos para o Git, informando nosso nome e e-mail. Em um terminal, execute os comandos a seguir:

```bash
git config --global user.name "User_Name"
git config --global user.email "User_email"
```

## 2. Criando um arquivo texto para versionarmos
Crie um diretório chamado **lista**:

```bash
$ mkdir lista
```
Crie um arquivo **txt** chamado **objetos** dentro do diretório. Dentro do arquivo, escreva os seguintes conteúdos:

```
Cadeira
Lapis
Caderno
```

## 3. Versionando seu código com Git

Abra um terminal e vá até o diretório **lista**

```bash
$ cd caminho_ate_diretorio/lista
```

Para transformar o diretório atual em um repositório do Git, basta executar o comando:

```bash
$ git init
```
Pronto, o projeto já é um repositório Git vazio.
Observe que foi criada uma pasta oculta com o nome **.git**.

## 4. Rastreando o arquivo

Mas e o arquivo **objetos.txt** ? Será que já está versionado?
Podemos ver a situação dos arquivos no repositório Git com o comando:

```bash
$ git status
```
A saída deverá ser algo como:

```
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add <file>..." to include in what will be
committed)
#
# objetos.txt
nothing added to commit but untracked files present (use
"git add" to track)
```
Observe a mensagem anterior: ela indica que o arquivo **objetos.txt** ainda não foi rastreado pelo Git.
Para que o arquivo seja rastreado, devemos executar o seguinte comando:

```bash
$ git add objetos.txt
```
Agora, se executarmos _git status_ novamente, teremos a seguinte saída:

```
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
# new file: objetos.txt
#
```

## 5. Gravando o arquivo no repositório
O resultado anterior mostra que o conteúdo do arquivo **objetos.txt** já está sendo rastreado pelo Git, mas ainda não foi gravado no repositório.
Para gravarmos as mudanças no repositório, devemos executar o comando:

```bash
$ git commit -m "Arquivo objetos.txt adicionado a lista"
```
Observe que foi invocado o comando _git commit_ , com a opção **-m** para informar a mensagem do commit.

Se executarmos _git status_ novamente, teremos:

```
# On branch master
nothing to commit, working directory clean
```

## 6. Alterando o arquivo

Insira mais uma linha no arquivo **objetos.txt** , com o conteúdo:

```
Borracha
Caneta
```

Depois disso, se executarmos _git status_ novamente, podemos observar que há uma nova mudança para ser rastreada:

```
# On branch master
# Changes not staged for commit:
#  (use "git add <file>..." to update what will be committed)
#  (use "git checkout -- <file>..." to discard changes in
working directory)
#
# modified: objetos.txt
#
no changes added to commit (use "git add" and/or
"git commit -a")
```

## 7. Rastreando e gravando as alterações no repositório

Para rastrearmos a modificação, devemos executar o comando _git add_ novamente:

```bash
$ git add objetos.txt
```

Com a modificação rastreada, podemos gravá-la no repositório, com o comando _git commit_:

```bash
$ git commit -m "Inserindo dois novos objetos a lista"
```

## 8. Verificando alterações realizadas

Para verificar o histórico das alterações gravadas no repositório, podemos executar o comando _git log_: 

```bash
$ git log
```

A saída será parecida com:

```
commit hash do commit
Author: user.name <user.email>
Date: Data de gravação do commit

Inserindo dois novos objetos a lista

commit hash do commit
Author: user.name <user.email>
Date: Data de gravação do commit

Arquivo objetos.txt adicionado a lista
```

Atenção que a leitura é feita do commit mais novo para o mais velho.
Pronto! Temos um repositório criado com as alterações no arquivo **objetos.txt** devidamente gravadas. Mas e agora?

## 9. Compartilhando seu código através do GitHub

**Atenção nesse guia usaremos o método de transferência pela chave SSH**, [aqui você encontra um tutorial sobre](https://dev.to/xxzeroxx/adicionando-uma-chave-ssh-ao-github-2mp9).

O primeiro passo é criar uma conta no GitHub. Para projetos de código aberto, não há custo nenhum! Com um navegador, acesse: https://github.com

Preencha seu nome, e-mail e escolha uma senha.

**Criando um repositório no GitHub**

Agora podemos criar um repositório remoto para isso, clique no botão _New Repository_.

No Repository name, devemos preencher o nome do repositório remoto.
No nosso caso, vamos preencher com “lista”. Deixe o repositório como Public, para que qualquer pessoa consiga ver o seu código. As demais opções podem ficar com os valores padrão. Finalmente, devemos clicar em Create _repository_.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iqjjza9olwavveipez35.png)

## 10. Apontando seu projeto para o GitHub

Devemos agora apontar o repositório da nossa máquina para o repositório do GitHub.

Execute o comando _git remote_ , conforme o que segue:

```bash
$ git remote add origin git@github.com:user_github/lista.git
```
Não deixe de alterar **user_github** para o seu usuário do **GitHub**.
Com o comando anterior, apontamos o nome _origin_ para o repositório do GitHub.

## 11. Enviando as alterações para o GitHub

Com o repositório remoto configurado, podemos enviar nossas mudanças para o GitHub. Para isso, basta executar o comando _git push_ , da seguinte forma:

```bash
$ git push origin main
```

Com o comando anterior, enviamos as alterações para o repositório remoto configurado com o nome origin.

Forneça sua senha da chave **SSH** quando solicitado.

## 12. Obtendo projeto do GitHub


Com o projeto no GitHub, qualquer um pode acessar o seu projeto público. Se a pessoa tiver cadastrada no GitHub,
será possível baixar o mesmo.

Vamos fazer isso então, crie outro diretório chamado projetos_git e acesse pelo terminal:

```bash
$ cd caminho_ate_diretorio/projetos_git
```
Para obter o código do projeto lá do GitHub, execute o comando _git clone_ conforme o seguinte:

```
$ git clone git@github.com:user_github/lista.git
```

Não esqueça de alterar **user_github** para o seu usuário do **GitHub**.

Observe no diretório projetos_git que foi criado um subdiretório chamado **lista** . Dentro desse subdiretório há o arquivo **objetos.txt** , exatamente com o mesmo conteúdo do GitHub.
Também há um diretório oculto chamado **.git** , revelando possuimos uma cópia do repositório original.