Primeiro repositório — Git e Github
Tags: git, github, programming, braziliandevs
Published: 2022-01-06 13:26:03

Um pouco sobre o que é *[Git](https://git-scm.com/doc)* e *[Github](https://github.com/)* e como podemos criar repositórios remotos através de projetos já existentes ou até criar um do zero, após ler o artigo anterior *‘[3 Estados dos arquivos — Git e Github](https://dev.to/eduardoopv/3-estados-dos-arquivos-git-e-github-3ee6)’* que mostra os estados dos arquivos rastreados pelo Git.

> Git é um sistema de controle de versão distribuído gratuito e de código aberto projetado para lidar com tudo, desde projetos pequenos a muito grandes com velocidade e eficiência.

Através deles podemos desenvolver projetos locais e manter eles guardados remotamente, e temos uma segurança na qual diversas pessoas podem contribuir simultaneamente no mesmo projeto, **editando e criando** novos arquivos e permitindo que os mesmos possam existir sem o risco de suas alterações serem sobrescritas.

Junto a ferramenta do **Git** temos a plataforma do **Github**, pense nele como um **Cloud** (nuvem) dos códigos, ele representa um serviço de hospedagem de repositório online. Ou seja, é uma rede planejada para projetos que utilizem o **Git** como controlador de versão.

---

## Git:

Para começarmos a utilizar o **Git**, precisamos fazer o download dele. Link aqui e instale ele normalmente. E agora temos o tão famoso **Git Bash** que seria mais ou menos um ‘Prompt de comando’ do **Git**.

Use no **Git bash** o comando `git --version` para verificar se a instalação foi concluída.

Agora vamos configurar o seu **Git local** com a sua conta do **Github** (Não tem conta no Github? [Crie uma aqui](https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E&source=header))

1. `$ git config --global user.name SeuUsernameDoGitHub`
2. `$ git config --global user.email seuemail@gmail.com`
3. `$ git config --global core.editor SeuEditorDeTexto`
4. `$ git config --list`

Uma explicação de cada comando:

1. Para definir o seu nome (ira aparecer no Github quando fizer um commit, e outras coisas),
2. Para definir o seu email (também ira aparecer nos commits),
3. Configurar o Editor de texto,
4. Visualizar se as alterações foram salvas com sucesso.

---

## Github:

Agora que estamos com o nosso ambiente local com o **Git** instalado e configurado, chegou a hora de irmos para a ferramenta Github, primeiro vamos criar o primeiro repositório (projeto).

Clicar em ‘New’ na Dashboard do Github.

![Clicar para criar novo projeto](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m1nbwvqoyy50b27xssxl.png)

Nessa parte podemos criar algumas configurações do repositório (Elas podem ser alteradas futuramente, não se preocupe).

![Configurações do repositório github](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gvlilj5ty933v8s3ffdj.png)

**Repository name**: O nome do repositório que ira aparecer no seu perfil.

**Description**: A descrição que ira mostrar quando abrirem o repositório (Escrita em *[Markdown](https://www.markdownguide.org/getting-started/)* pelo arquivo *README.md*).

**Public/Private**: Isso ira definir se outras pessoas poderão visualizar o projeto

Clicando em *‘Create repository’* seremos redirecionado para a seguinte página:

![Orientação do github para sincronizar](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/od3utlu0dwty1549qsmo.png)

---

## Sincronizando repositório remoto

Já temos o Git configurado e o repositório no Github criado, e agora o que falta? precisamos criar e enviar arquivos do nosso projeto local onde ele existe apenas no seu computador pessoal, para o novo projeto remoto que existe remotamente no Github, para isso vamos para a pasta do projeto, clique com direito em qualquer lugar e selecione a opção *‘Git Bash’* (No meu caso é uma pasta chamada Git no Desktop).

`$ echo "# Estudo Git e Github" >> README.md`

Criamos o arquivo `README.md` responsável pela documentação do projeto, o Github sempre ira ler ele *(Markdown)* e mostrar na tela inicial do repositório.

`$ git init`

Inicializamos o Git naquela pasta, ou seja a partir de agora ele irá rastrear todos os arquivos novos dessa pasta.

`$ git add README.md`

Diz ao Git adicionar o arquivo `README.md`ao estado de *‘Staged area’* basicamente o arquivo ainda está local porém está pronto para ser Commitado.

`$ git commit -m "First commit"`

É como se o Git tirasse uma foto de todos os arquivos que estão em *‘Staged area’* e guardasse em um bloco, com uma mensagem identificadora *‘First commit’* uma boa prática é conjugar o verbo no **presente do indicativo**, utilizando a **terceira pessoa do singular** (Mais tarde isso irá fazer mais sentido).

`$ git branch -M main`

Criamos e movemos para uma nova branch *‘main’*

`$ git remote add origin https://github.com/EduardooPV/git-e-github.git`

Adicionamos um novo controle remoto

`$ git push -u origin main`

Estamos enviando todos os commits realizados localmente para o repositório remoto, se atualizarmos a página no Github veremos que agora existe um novo arquivo chamado `README.md` que nós criamos com o `echo >>`.

*Extra: sempre use o `$ git status` para verificar o status dos seus comandos.*

![Repositório já no github](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5yswwbmk4jpud4sl93ew.png)

---

Por enquanto é isso, se você adicionar ou modificar arquivos na sua pasta que está sincronizada com o repositório remoto, você só precisara adicionar eles ao *‘Staged area’* usando o 
`$ git add .` (O ponto adiciona todos os arquivos), após adicionar todos os arquivos desejados para formar um commit, use o comando `$ git commit -m "Nome do commit"`, e mande suas alterações para o repositório remoto com `$ git push`.

Essa é a primeira parte de uma série de tutoriais sobre Git e Github, futuramente irei trazer novos conceitos mais avançados e até uma forma de padronizar seus commits e branchs utilizando um conceito bem famoso chamado Gitflow.