Instalando e Configurando git no windows
Autor: Fabricio Colombo | Publicado: 2012-05-19T11:20:00-07:00


Olá pessoal, hoje vou falar um pouco sobre git e github. Git é um sistema de controle de versão distribuído (DVCS) free e open source, para saber mais sobre o mesmo, acesse o site. Github é um serviço de hospedagem de código fonte que utiliza o git como sistema de controle de versão, possuí planos gratuítos e comerciais, e é amplamente utilizado pela comunidade open source. O Github pode se considerado como uma rede social, onde você pode ser seguido e seguir os projetos de outras pessoas, pode facilmente enviar contribuições à projetos open source, e também há empresas, pelo menos lá fora, que tem utilizado o github como forma de avaliar a contratação de programadores. 



Nos sistemas de controle de versão distribuído, quando se faz um fork de um projeto, você obtêm uma cópia de todo o repositório do projeto, com todo o histórico de commits, e o seu projeto ainda vai continuar vinculado ao projeto original, sendo assim, se você implementar novas features ou correção de bugs, você pode enviar um pull request ao dono do projeto original, que pode incorporar sua solicitação de forma bastante simples.


Se você chegou até aqui é porque está interessado em conhecer melhor o git, e a melhor forma de aprender é fazendo, não é mesmo? Então antes de prosseguir com a leitura, accesse o site e baixe a versão do git compatível com seu sistema operacional. Enquanto faz o download aproveita e dá um pulinho no github e faça o seu cadastro.


A instalação do git é bastante simples, só modifiquei o diretório para instalar em "C:\Git"



Na tela de componentes deixei a configuração default. 



Na tela de configuração "Path environment" também mantive a opção default "Use Git Bash only", que não adiciona o git ao path do windows, desse modo, sempre que for necessário acessar o git você pode precisa abrir o "Git Bash". É a opção mais conservadora. Leia as demais opções com atenção e sinta-se a vontade para utilizá-las.



E por último mais não menos importante, a configuração de quebra de linha. Como você deve saber, o ambiente windows utiliza CRLF como quebra de linha, e o ambiente unix utiliza apenas LF. Na opção default para windows, as quebras de linhas são convertidas automaticamente no checkout e commit, então, deixe marcada a opção "Checkout Windows-style, commit Unix-Style line endings".



Agora vamos configurar a chave SSH para conseguir fazer commits no github. Primeiro, abra o Git Bash (pode ser atráves da barra Quick Launch, Iniciar\Programas ou botão direito do mouse no windows explorer) e vá até o seu diretório home (representado pelo caracter til "~"). Vamos verificar a existência da pasta ".ssh".

$ cd ~
$ ls -lha | grep .ssh
  drwxr-xr-x 2 fabricio admin 0 May 18 01:44 .ssh
$ cd .ssh


Caso não exista, como no exemplo abaixo, você pode criar a mesma.

$ cd ~
$ ls -lha | grep .ssh

$ mkdir .ssh
$ ls -lha | grep .ssh
  drwxr-xr-x 2 fabricio admin 0 May 18 01:44 .ssh
$ cd .ssh


Feito isso, vamos gerar um par de chaves pública e privada. Essa chave é utilizada quando fazemos commit(push) no github para garantir a nossa autenticidade. Nesse passo será utilizado o e-mail informado na conta do github. Ao ser solicitado o nome do arquivo para armazenar a chave, basta pressionar Enter e será utilizado o nome default. Também será solicitado uma senha (passphrase) que deverá ser informada toda vez que efetuar commit no github, então, coloque uma que você não vá esquecer :D


$ ssh-keygen -t rsa -C "your_email@domain.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/YourUser/.ssh/id_rsa):&lt;press enter&gt;
Enter passphrase (empty for no passphrase): &lt;informe sua senha&gt;
Enter same passphrase again: &lt;informe a mesma senha novamente&gt;
Your identification has been saved in /c/Users/YourUser/.ssh/id_rsa.
Your public key has been saved in /c/Users/YourUser/.ssh/id_rsa.pub.
The key fingerprint is:
&lt;Uma chave hexadecimal&gt; &lt;seu e-mail&gt;


Agora essa chave precisa ser cadastrada no github. Para isso acesse o github e efetue o login. Acesse a opção "Account Settings" > Clique em "SSH Keys" > Clique em "Add SSH key"



Abra o arquivo id_rsa.pub com um editor de texto descente como Notepad++, UltraEdit, EditPlus, etc, nem pense em usar o Notepad :D , o conteúdo do arquivo é a sua chave pública, copie todo o conteúdo sem adicionar novas quebras de linha ou espaços em branco
 e cole dentro do campo "Key" no github. Dê um título para identificar a máquina que você está registrando e clique em "Add key". Será solicitado a confirmação da sua senha e o processo está concluído.
 



 Agora vamos verificar se tudo está funcionando. Volte ao Git Bash e execute o comando abaixo. Não se preocupe com a mensagem que vai aparecer, é esperado que isso ocorra, apenas digite "yes" e pressione "enter".
 
 $ ssh -T git@github.com
 The authenticity of host 'github.com (207.97.227.239)' can't be established.
 RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
 Are you sure you want to continue connecting (yes/no)? &lt;yes&gt; &lt;enter&gt;
 Warning: Permanently added 'githu.com,207.97.227.239' (RSA) to the list of known hosts.
 Connection closed by 207.97.227.239
 
 
 Repita o commando anterior
 
 $ ssh -T git@github.com
 Enter passphrase for key '/c/Users/YourUser/.ssh/id_rsa': &lt;informe sua senha&gt;
 Hi ! You've successfully authenticated, but GitHub does not provide shell access.
 

 Vamos também configurar o nome de usuário e e-mail que será utilizado para identificar seus commits. 
 
 
 $ git config --global user.name "Nome Completo"
 $ git config --global user.email "your_email@domain.com" 
 
 
 Pronto, agora você já está pronto para utilizar o Git e Gitghub, no próximo post vou mostrar como criar um repositório e interagir com o repositório.

Edit:  Esqueci de mencionar a configuração para quem utiliza proxy.


 $ git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:3128