# 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`