---
# System prepended metadata

title: Git Doc - Draft
tags: [git]

---

# Git Doc - Draft

O Git é o sistema opensource de controle de versão mais popular da internet.

Ele pode ser usado principalmente no desenvolvimento de software, mas pode ser usado para registrar o histórico de edições de qualquer tipo de arquivo.

Cada diretório de trabalho do Git é um repositório com um histórico completo e habilidade total de acompanhamento das revisões, não dependente de acesso a uma rede ou a um servidor central.

### Inicializando um repositorio
`$ git init`
> Cria um Repositorio Git vazio
>[Mais sobre o `git init`](https://git-scm.com/docs/git-init)

### Clonando um repositorio
`$ git clone`
> Clona um repositorio ja existente em um diretorio.
>[Mais sobre o `git clone`](https://git-scm.com/docs/git-clone)

### Branches
`$ git branch` ou `$ git branch --list`
> Este comando eh usado para Listar, criar ou deletar as branches

#### Criando uma branch
`$ git branch <nome-da-branch>`
> Este comando cria uma branch localmente, para enviar esta nova branch para o repositorio remoto, eh necessario usar o seguinte comando:

`$ git push -u <remote> <nome-da-branch>`

#### Deletando uma branch
`$ git branch -d <nome-da--branch>`
> Este comando deleta a branch escolhina localmente.


### Alternando entre as Branches (Git Checkout)
> Usado para alterar de uma branch para outra:

`$ git checkout <nome-da-branch>`

> Podemos usar também para criar e trocar para uma nova branch ao mesmo tempo:

`$ git checkout -b <nome-da-branch>`


### Verificando status da branch (Git Status)
`$ git status`

> Fornece informações sobre a branch atual.
> Como: arquivos modificados, novos, deletados, etc..

### Adicionando arquivos ao commit (Git Add)
> Ao criarmos, alterarmos ou excluirmos um arquivo, as alterações serão feitas em nosso ambiente local e não é incluinda no proximo commit.
> Para incluiar as alterações no proximo commit usamos:

`$ git add <arquivo>`
> Para adicionar todos os arquivos de uma só vez:

`$ git add .` ou `$ git add -A`
> O comando git add não altera o repositorio e as alterações não são salvas até usarmos o comando git commit.


### Commitando as alteracoes no Codigo
`$ git commit -m "<mensagem explicando a mudanca no codigo>"`
> Registra alteracoes para o repositorio.
[Mais sobre o `git commit`](https://git-scm.com/docs/git-commit)

### Enviando os commits para o servidor remoto
`$ git push <remote> <nome-da-branch>`
> Este comando envia todos os commits para o servidor remoto.

### Obtendo as atualizacoes do repositorio remoto
`$ git pull <remote>`
> Nota: o git pull é uma combinacao do `git fetch` e do `git merge`, quando usamos o `git pull` ele recebe as atualizacoes do repositorio remoto (fetch) e aplica as alteracoes no seu repositorio local (merge)

### Desfazendo alteracoes
`$ git revert 'numero do hash'`
>Este comando desfaz as alteracoes local ou remotamente utilizando o numero da hash.
>Esta hash eh um identificador do commit, para pegar a hash correspondente ao commit que deseja desfazer utiliza o comando:


`$ git log --oneline`

### Git Rebase
> Este comando serve para pegar as alterações feitas em outras branchs que vamos mergear a nossa para não ter conflito de codigo.
> Primeiramente pegamos as alterações com:

`$ git fetch`
> Então fazemos o rabase na branch desejada:

`$ git rebase <nome-da-branch>`

> Após localizar um conflito que o git não conseguiu resolver precisamos editar os arquivos manualmente, escolhendo o código correto e após aplicar as alterações utilizando o comando `git add .` só após esta operação podemos continuar com o rebase.

`$ git rebase --continue`

> Podemos pular alguns conflitos com o comando skip:

`$ git rebase --skip`

> Ao finalizar o processo de rebase damos o comando:

`$ git push -f`


### Mesclando as Branches
Quando você conclui o desenvolvimento em sua branch e tudo funciona bem, a etapa final é mesclar as branches, isso é feito com o comando git merge.
`$ git merge <nome-da-branch>`


---
##### biografia
> [10 Comandos que todo Desenvolvedor deveria saber](https://blog.geekhunter.com.br/comandos-git-mais-utilizados/)
---
###### tags: `git`