---
# System prepended metadata

title: GIT

---

# GIT

O git é uma ferramenta que foi criada para versionar seu trabalho, ajudando a ter um controle da sua aplicação. O git em sí funciona muito bem para criar te dar um controle das versões da sua aplicação, porem, tudo que ele faz fica salvo no seu computador.

O git conta com diversas plataformas online chamadas de repositiorios como por exemplo o GitHub. Os repositorios salvam seu projeto em nuvem, facilitando o compartilhamento e a contribuição de outros desenvolvedores, fora isso, garante que seu projeto fique salvo na nuvem, evitando percas de arquivos ou ate mesmo do projeto inteiro.

## Em pratica

Para começar a usar o git, antes de tudo você precisa ter ele baixado,
para baixar basta usar o google e pesquisar GIT. Terminando ter instalado o mesmo, para verificar se está tudo OK, basta abrir o cmd e digitar `git --version`


> ![](https://i.imgur.com/ENetwk4.png)
> aparecendo a versão seguinifica que ta tudo belesinha :D

## Baixando o repositorio

antes de tudo, entre na pagina que você quer clonar o projeto usando o cmd.
para nevegar entre as pastas no CMD basta digitar o comando `cd "pasta"`

> LIKE THIS
> ![](https://i.imgur.com/vWavphG.png)

> caso tenha duvida se a pasta exite, use o comando `dir` para listar as pastas 

> caso tenha interrese em aprender a mexer no cmd https://www.thomas-krenn.com/en/wiki/Cmd_commands_under_Windows lista de bastante comandos : D
> não tenha medo de usar eles :>
> se der ruim é so formatar o pc que ta suave

Estando na pasta que você quer e tendo o git baixado basta usar o comando
`git clone "LINK DO REPOSITORIO"`

feito isso o agora é so codar : D

como faço para mandar minhas alterações pro git??

`git status` Esse comando mostras suas alterações.

`git add .` Esse comando adiciona tudo oque você fez para ser comitado.

`git commit -am "MENSAGEM DO QUE VOCÊ FEZ"` Esse comando salva tudo que você modificou, o `-am` indica para o git pegar tudo que você adicionou usando o `.`

como faço para atualizar meu repositorio?

`git pull` para atualizar seu projeto antes de você subir ele.

`git push` para mandar seu projeto pro repositorio

> lista dos comandos com suas descrições 
> https://confluence.atlassian.com/bitbucketserver/basic-git-commands-776639767.html

## Boas praticas

NUNCA... **NUNCA** faça algo direto na branch master caso você esteja em um projeto com outras pessoa.

Sempre crie uma branch `git checkout -b "nome da branch"`.

#### oque é uma branch??

vamos se dizer que ela é uma copia perfeita do seu projeto, nela você pode fazer oque você quiser sem se preocupar em influenciar o funcionamento da versão original ><

#### NOOSSA EU FIZ UMA ALTERAÇÃO NA MINHA BRANCH COMO EU FAÇO PARA MANDAR PRA VERSÃO ORIGINAL?

basta comitar suas alterações usando o

`git add .`
`git commit -am "opa opa opa"`
`git push --set-upstream origin "nome da sua branch"`

`--set-upstream` serve para criar a branch no repositorio online caso ela não exista.

e depois é muito simples basta usar o comando `git checkout "branch principal"` o checkout muda sua branch, 
> o -b que você viu acima serve na situação onde sua branch não exista e você queira fazer uma.

`git merge "criando poutrona automatica"`

feito isso é so dar um `git pull` e depois um `git push`

> geralmente as branchs principais são "develop" "master" "main"

#### GIT FLOW

não irei entrar muito em detalhes mas é o seguinte...
sempre que for fazer uma criação de alguma pagina/componente/cafe, 
crie ela em uma branch usando as seguintes nomeclaturas
`feat/craindo-pagina-sei-oque`

quando for fazer alguma correção use a 
`fix/colocando mais açucar no cafe`

terminando seu trabalho basta commitar 

`git add .`
`git commit -am "mais açcar no cafe"`
`git push --set-upstream origin "fix/colocando mais açucar no cafe"`
`git checkout "master"`
`git merge "fix/colocando mais açucar no cafe"`
`git pull`
`git push`

#### :O mas porque isso?

isso serve para ter uma organização e vizualização do seu trabalho ><

e tambem se vecê não gostou de como ficou a alteração basta você desalocar a sua branch : D
eu não sei como faz isso por linha de comando então deixo vocês descobrirem por conta propria.

> caso queria ver o gitflow mais afundo https://www.atlassian.com/br/git/tutorials/comparing-workflows/gitflow-workflow
> tem uma quantidade absurda de texto, mas vale apena ler, é algo que a maioria das empresas exigem tal conhecimento.

meu git https://github.com/andreixhz : D