Instalando e Configurando

https://git-scm.com/download/win

Clients Free Sugeridos

https://www.sourcetreeapp.com/

https://tortoisegit.org/


 


 

Instrodução

   A primeira coisa que você deve fazer quando instalar o Git é definir o seu nome de usuário e endereço de e-mail. Isso é importante porque todos os commits no Git utilizam essas informações, e está imutavelmente anexado nos commits que você realiza:

 
  $ git config --global user.name "Nome Sobrenome"
$ git config --global user.email nome@tecnospeed.com.br   

Relembrando, você só precisará fazer isso uma vez caso passe a opção --global, pois o Git sempre usará essa informação para qualquer coisa que você faça nesse sistema. Caso você queira sobrepor estas com um nome ou endereço de e-mail diferentes para projetos específicos, você pode executar o comando sem a opção --global quando estiver no próprio projeto.


 

Trocando o Editor padrão

 
  ​$ git config --global core.editor notepad.exe   



 

Criando um Repositório

Caso você esteja iniciando o monitoramento de um projeto existente com Git, você precisa ir para o diretório do projeto e digitar

 
  ​$ git init   


 

Obtenha um repositório

 

           crie uma cópia de trabalho em um repositório local executando o comando

  •  
      git clone /caminho/para/o/repositório   

     

ou

  •  
      git clone /caminho/para/o/repositório  destino   

     

            quando usar um servidor remoto, seu comando será

  •  
      git clone usuário@servidor:/caminho/para/o/repositório   

     

ou

  •  
      git clone usuário@servidor:/caminho/para/o/repositório destino   

     



 

Ramificando - Branchs / Checkouts

 

Branches ("ramos") são utilizados para desenvolver funcionalidades isoladas umas das outras. O branch master é o branch "padrão" quando você cria um repositório. Use outros branches para desenvolver e mescle-os ( merge ) ao branch master após a conclusão.

crie um novo branch chamado "funcionalidade_x" e selecione-o usando

  •  
      git checkout -b funcionalidade_x   

     

retorne para o master usando

  •  
      git checkout master   

     

 

e remova o branch da seguinte forma

  •  
      git branch -d funcionalidade_x   

     

Um branch não está disponível a outros a menos que você envie o branch para seu repositório remoto

  •  
      git push origin <funcionalidade_x>   

     


 

Adicionar & remover

Você pode propor mudanças (adicioná-las ao Index ) usando

 
  git add <arquivo>
git add *   

Ou remove-las este é o primeiro passo no fluxo de trabalho básico do git.

 
  git rm --cached <para manter o arquivo>   

ou

 
  -f para forçar a remoção do arquivo   

Para realmente confirmar estas mudanças deve ser fazer um commit;


 

Commit

 

 
  $ git commit -m "Description of my change"

$ git commit -a    (todos)

$ git commit <arquivo>   


 

Reveter Commit

 
  $ git revert HEAD~1   

 

 

Enviando alterações

Suas alterações agora estão no HEAD da sua cópia de trabalho local. Para enviar estas alterações ao seu repositório remoto, execute


 

 
  $ git push origin master

$  git push --set-upstream origin <branch>   


 

Atualizar & mesclar

para atualizar seu repositório local com a mais nova versão, execute


 

 
  $ git pull   


 

Na sua pasta de trabalho para obter e fazer merge (mesclar) alterações remotas.

para fazer merge de um outro branch ao seu branch ativo (ex. master), use:
 

 
  $ git merge <branch>   


Em ambos os casos o git tenta fazer o merge das alterações automaticamente. Infelizmente, isto nem sempre é possível e resulta em conflitos . Você é responsável por resolver estes conflitos manualmente editando os arquivos exibidos pelo git. Depois de alterar, você precisa marcá-los como merged com

 

 
  $ git add <arquivo>   


 

Antes de fazer o merge das alterações, você pode também pré-visualizá-as usando

 

 
  $ git diff <branch origem> <branch destino>   


 

Show Log


 

 
  $ git log   


 

Blame

 

 
  $ git blame <arquivo>   

 

DIFF

Neste ponto ele vai comparar as alterações do arquivo ao último commit

 
  $ git diff <arquivo>   

 

Rotulando/Tag

É recomendado criar rótulos para releases de software. Este é um conhecido conceito, que também existe no SVN. Você pode criar um novo rótulo chamado 1.0.0 executando o comando
 

 
  $ git tag 1.0.0 1b2e1d63ff   

O 1b2e1d63ff representa os 10 primeiros caracteres do id de commit que você quer referenciar com seu rótulo. Você pode obter o id de commit com

 

 
  $ git log   


 

Você pode também usar menos caracteres do id de commit, ele somente precisa ser único.


 

Descartar

Este comando, descarta todas as alterações executadas e seu branch, e a restaura para o original

 
  
$ git checkout-index -a -f   
 
  $ git reset --hard   





 

Diferença entre Pull Merge x Pull Rebase


 

Suponha que originalmente havia 3 Commits, A , B , C :

 

Então o desenvolvedor Dan criou o commit D , e o desenvolvedor Ed criou commit E :

Obviamente, esse conflito deve ser resolvido de alguma forma. Para isso, existem duas maneiras:

 

MERGE : git pull origin master

 

Ambos confirmam que D e E ainda estão aqui, mas criamos comprometer M que herda mudanças de D e E No entanto, isso cria forma de diamante , que muitas pessoas acham muito confuso.

REBASE : git pull --rebase origin master

 

Criamos commit R , cujo conteúdo de arquivo real é idêntico ao de MGE commit M acima. Mas, nos livramos do compromisso E , como nunca existiu (denotado por pontos - linha desaparecendo). Devido a essa obliteração, E deve ser local para desenvolvedor Ed e nunca deve ter sido pressionado para qualquer outro repositório. A vantagem de rebase é que a forma de diamante é evitada, e a história permanece linda em linha reta - a maioria dos desenvolvedores adora isso!



 

Gerando Sua Chave Pública SSH

Vários servidores Git autenticam usando chaves públicas SSH. Para fornecer uma chave pública, cada usuário no seu sistema deve gerar uma se eles ainda não a possuem. Este processo é similar entre os vários sistemas operacionais. Primeiro, você deve checar para ter certeza que você ainda não possui uma chave. Por padrão, as chaves SSH de um usuário são armazenadas no diretório ~/.ssh.

Para criar digite ssh-keygen dentro do Git Bash, defina sua senha, a chave será gerada em /c/Users/”Usuario”/.ssh/ normalmente chamada de id_rsa.pub


 

Configurando no Servidor

Ok, você tem sua SSH key bonitinha, lá na pasta '~/.ssh/' mas agora você precisa configura-la no seu servidor.

Como é muito variável os passos de configuração em cada servidor, vou explicar de uma forma mais genérica:

  • Vá nas configurações do seu usuário, no GitHub, BitBucket ou GitLab e procure por 'SSH Keys' ou similar. Você precisa adicionar uma nova Key;

  • Copie todo o conteúdo do arquivo id_rsa.pub (naquela pasta " ~/.ssh/ ", lembra?) e cole na area Key, da pagina que você abriu;

  • Existe um campo Title que você usa para identificar qual key é qual (geralmente eu coloco um identificador para cada PC.)

  • Clique em submit ou Add Key.

Pronto, sua chave SSH foi inserida com sucesso.

Utilizando

Agora, você pode pegar um repositório e dar um git clone com o link em SSH. Magicamente, o Git já vai realizar a operação sem precisar de nenhuma outra interação.

 

 

Trabalhando com GitIGnore

 

O .gitignore serve para ignorar apenas arquivos não rastreados, ou seja, a partir do momento em que um git add é utilizado para rastrear as mudanças do arquivo, o .gitignore não poderá ignorar esses arquivos.

 

A criação do arquivo .gitignore é bem simples. Basta criar um arquivo chamado.. .gitignore . Sim, o ponto no inicio do nome pois o arquivo .gitignore é naturalmente oculto (ao menos para sistemas Linux), e é ele que o Git procura em cad a pasta do repositório git, aplicando as regras presentes neste arquivo para todos os arquivos, pastas e sub-pastas localizados na pasta no qual o .gitignore está (que normalmente é a raiz do próprio repositório).

https://www.gitignore.io/ → site que cria exemplo de gitignores