Nesse post vou mostrar pra você alguns comandos do Git que são essenciais no dia a dia dos programadores. Esses comando irão ajudar você a ter um workflow mais dinâmico e fluido.

Instalação

<h2>Configurações</h2>

Configurar informações de nome e email são importantes para que possa haver a identificação dos commits.

$ git config --global user.name "Seu Nome"
$ git config --global user.email seu@email.com

<h2><span class="quote"><span style="font-weight: normal;">Se você utiliza serviços como o GitHub e/ou Bitbucket, é interessante que o email utilizado nesses serviços sejam iguais, assim você mantém uma única configuração, facilitando assim o processo de commit e deploy de aplicações".</span></span></h2> <h2>Comandos</h2>

<strong>Inicializando um projeto versionado</strong>

$ git init
O comando acima deve ser executado dentro do diretório do projeto na qual você deseja versionar. Após executar o comando será retornada a seguinte mensagem:
Initialized empty Git repository in /diretorio/escolhido/.git/

<blockquote><strong>Rastreamento de arquivos</strong>
$ git status
Esse comando vai listar o status dos arquivos, mostrando os que ainda não foram adicionados para o controle de versão.</blockquote>

<strong>Adicionando arquivos para rastreamento</strong>

$ git add .
Adiciona todos os arquivos não rastreados retornados pelo comando $ git status.
$ git add arquivo.ext
Adiciona um arquivo específico para o rastreamento.

<blockquote><strong>Gravando um arquivo no repositório</strong>
$ git commit -m "Mensagem que identificará o commit"
Esse comando vai fazer com que os arquivos adicionados ao rastreamento através de $ git add sejam gravados no repositório. O -m utilizado serve para indicar a mensagem do commit.</blockquote>

Após executar esse comando, uma mensagem similar à mostrada abaixo será exibida:

[master (root-commit) 8666888] Arquivo inicial
 1 file changed, 2 insertions(+)
 create mode 100111 arquivo.ext

<span class="quote">Sempre que fizer alterações em arquivos, você precisará executar um $ git add e depois um $ git commit.</span> <strong>Verificando as alterações (log)</strong>

$ git log
Após executado vai listar todas as alterações realizadas no repositório. O resultado será algo similar a:
commit 7878787000000000000000000000000000000000
Author: Seu Nome 
Date:   Fri Apr 11 21:25:17 2014 -0300
    Inserindo conteudo

commit 8666888000000000000000000000000000000000
Author: Seu Nome 
Date:   Fri Apr 11 21:21:31 2014 -0300
    Arquivo Inicial

<blockquote><strong>Ignorando arquivos</strong> Pode ser que em algum projeto você não precise adicionar todos os arquivos e/ou diretórios para o repositório remoto, para isso você pode usar o arquivo .gitignore. Basta criar um arquivo chamado ".gitignore" na raiz do projeto e depois adicioná-lo ao rastreamento e ao repositório. Nesse arquivo você define, em cada uma das linhas, os arquivos e diretórios que devem ser ignorados. Por exemplo: <strong><em>*.log imagens/.bmp</em></strong> Na primeira linha ignoramos todos os arquivos com a extensão .log, e na segunda todas as imagens com extensão .bmp do subdiretório imagens.</blockquote>

<strong>Remover arquivos do repositório</strong>

$ git rm arquivo.ext
Esse comando remove um arquivo do repositório.

<blockquote><strong>Renomear arquivos do repositório</strong>
$ git mv arquivo.ext meu-arquivo.ext
O comando mv seguido do nome atual em seguida do novo nome fará essa mudança.</blockquote>

<strong>Mover arquivos dentro do repositório</strong>

$ git mv meu-arquivo.ext files/meu-arquivo.ext
O mesmo comando, mas agora o nome do novo arquivo ganhou a identificação de um diretório, e o nome permaneceu o mesmo. >Ao mover um arquivo para um diretório, esse diretório já deve estar criado. <strong> </strong>

<blockquote><strong>Apontando o projeto para o repositório remoto</strong>
$ git remote add origin https://domain.com/repositorio.git
Se você estivesse usando o GitHub, por exemplo, o endereço do repositório remoto seria https://github.com/seunome/repositorio.git</blockquote>

<strong>Enviando as alterações locais para o repositório remoto</strong>

$ git push
Esse comando faz o envio dos commits dados no repositório local, para o repositório remoto. <strong> </strong>

<blockquote><strong>Copiando um repositório remoto para o ambiente local</strong>
$ git clone https://domain.com/repositorio.git
Esse comando cria um clone do repositório remoto no seu amebiente local, já com a origem configurada.</blockquote>

<strong>Listando os repositórios remotos</strong>

$ git remote
Exibe somente o nome do repositório remoto.
$ git remote -v
Exibe o nome e a url. <strong></strong>

<blockquote><strong>Renomeando o repositório remoto</strong>
$ git remote rename nome-repositorio novo-nome
O comando rename renomeia o repositório remoto.</blockquote>

<strong>Alterando a url do repositório remoto</strong>

$ git remote set-url nome-repositorio http://domain.com/novo-repositorio.git
O comando acima faz com que a url do repositório seja alterada, passando o nome do repositorio e a nova url. <strong></strong>

<blockquote><strong>Sincronizando o repositório local com o remoto</strong>
$ git pull
Faz com que o repositório local seja sincronizado com o remoto, de modo a receber o que foi feito de alteração e commitado por outro usuário do repositório remoto.</blockquote>

<strong>Criando um branch</strong>

$ git branch nome-branch
Esse comando cria um branch, que é como se fosse um novo diretório, contendo o mesmo conteúdo do branch master, mas que ao ser modificado, não reflete de forma automática no branch master ou em qualquer outro. <strong></strong>

<blockquote><strong>Listando branches</strong>
$ git branch
Vai listar os branches do repositório local.</blockquote>

<strong>Trocando de branch</strong>

$ git checkout nome-branch
Faz a troca entre os branches, mantendo íntegros os conteúdos de cada um deles. <strong></strong>

<blockquote><strong>Excluindo um branch</strong>
$ git branch -d nome-branch
Exclui o branch e o seu conteúdo.</blockquote>

<strong>Mesclando as alterações entre os branches</strong>

$ git merge nome-branch -m "Mensagem"
Nesse caso o nome-branch será o nome do branch que possui as alterações a serem adicionadas ao branch em que você está.<strong> </strong>

<blockquote><strong>Verificando branches que não foram mescladas</strong>
$ git branch --no-merged
O resultado será o nome do branch que ainda possui alterações não mescladas com o branch em que você está.</blockquote>

<strong>Compartilhando branches</strong>

$ git push origin nome-branch

Fará com que o branch identificado por nome-branch seja criado no repositório remoto.


Seja feliz com esses comandos e bons códigos.