Repositório e Commit - Parte 2
Tags: git, beginners
Published: 2021-06-16 13:03:10

Essa segunda parte vai guiar você à como iniciar um repositório no Git e fazer seu primerio commit, além de te mostrar como verificar o status dos arquivos, adicionar e remover arquivos do Staging,  conforme conversamos na parte 1.

## Instalando Git
Antes de mais nada acesse a página do Git [aqui]( https://git-scm.com/book/pt-br/v2/Come%C3%A7ando-Instalando-o-Git) e instale o Git conforme seu sistema operacional.

Se você estiver usando o Windows recomendo utilizar o Git Bash para fazer os comandos, pois irei usar comandos que funcionam apenas no terminal Linux e o Git Bash nos dá essa facilidade.

Feito isso basta digitar o comando abaixo:
```
git --help
```
E o retorno deve ser algo parecido com isso:
![git_help](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4c9pv2x3xg8hssgsblvy.png)


## Criando nosso primeiro Repositório
 
Com o Git instalado agora vamos criar nosso repositório. Crie uma pasta como nome que você preferir(no meu caso será **primeiro-repo**), acesse ela e digite o comando abaixo:
```
ls -la
```
O nosso retorno deve ser dois diretórios, `.` e `..` que no Linux arremetem à respectivamente o diretório atual e ao diretório anterior(apenas para fins de curiosidade).
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w0vlip57b8mpxi9fr9w0.png) 

Resumindo, não há nada em nossa pasta recém criada. Agora vamos criar nosso repositório.
```
git init
```
No meu caso, como estou usando o Git Bash eu tive o seguinte retorno:
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t4qy67ijdtk15agi68sz.png)

Repare no **master** que aparece em azul no fim da linha, ele quer dizer básicamente que nosso repositório foi iniciado e que estamos na *branch* master. Falaremos sobre branches mais adiante, mas é nosso ramo principal de desenvolvimento no momento.

Outro ponto à se observar é que ao executar o comando `ls -la` novamente agora tenho uma pasta `.git`(no Linux, pastas que começam com `.` são pastas ocultas), nessa pasta é onde ficarão as informações do nosso repositório e por sua vez a pasta que criamos (**primeiro-repo**) é o nosso *Working-Directory*.
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j3fh2yy6emnt5v56rkm2.png)

Agora com o comando abaixo consigo visualizar as alterações que ocorreram no meu repositório.
```
git status
```
Como não temos nada obtemos um retorno de que não há nenhum commit nem nada à commitar.

Agora vamos criar um arquivo sem nada dentro
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jyd5zq0onusbvlv8a5f3.png)
 
e por fim vamos verificar o que o nosso `git status` tem à dizer
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ur8ldlenahrx40y6wb0b.png)

Aqui o git já nos informa que temos um arquivo não rastreado, que nada mais é que um arquivo que não esta na nossa àrea de Staging (caso não se lembre, olhe [aqui](https://dev.to/rodrigoscferraz/basico-pra-comecar-com-o-git-primeira-parte-ea7)), e aqui já temos uma dica de qual comando usar para adicioná-lo
````
git add teste.txt
```

Feito isso, eu já rodei um `git status` novamente para ver a situação atual do nosso repositório e seus arquivos
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6ljq0x62ghwgkqtv2b0h.png)

Já podemos ver que o arquivo está na *Staging area* e será incluido no próximo commit, e caso queira removê-lo basta usar `git rm --cached teste.txt`

Antes de criarmos nosso commit temos um ultimo passo que é configurar o git com as informações de usuário, caso contrário, num cenário onde várias pessoas estão alterando o mesmo arquivo de código, nós nunca saberiamos *quem* fez determinada alteração. Para isso é bem simples basta usar os dois comandos à seguir:
```
 git config --global user.email "seu@email.com"
 git config --global user.name "Seu Nome"
```
Como o comando esta com o parâmetro `--global` informado, essas configurações definirão usuário e email para **TODOS** os repositórios que você criar daqui pra frente, assim você não precisa ficar inserindo isso a cada novo repositório criado, mas caso você queira fazer isso para cada um, basta omitir o `--global`.

Agora finalmente vamos criar nosso primeiro commit, o parâmetro `-m` abaixo serve para informarmos uma mensagem de commit, isso nos ajuda a entender porque aquele commit foi feito:
```
git commit -m "Primeiro commit"
```
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6qkj2rbftdr1edwamlxf.png)

Sucesso! Aqui vemos as informações de em qual branch foi feito o commit(master), se foi o primeiro commit do repositório vemos `(root-commit)` e o identificador resumido do commit `ea0434b`. Por fim para ver mais detalhes do seu commit(como autor, hora, etc) use o comando abaixo. Já deixo algumas outras maneiras de visualizar informações de log dos commits como bonus também, e um [site](https://devhints.io/git-log) com diversas outras formas.
```
git log
```

![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0kjqkioe7uy7so7dgv6q.png)

Resumidamente o que fizemos aqui galera, foi inicializar um repositório(Working Directory), criar um novo arquivo e adicioná-lo ao próximo commit(Staging) e de fato salvar nossas alterações, ou como falamos "*commitar*" as alterações no nosso repositório.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i47r9nhhttt83cb7g0i2.gif)
 
Por hora é isso, espero que tenham gostado!