Git, GitHub e Windows

Eu já tive muito problema para configurar o Git com o GitHub aqui no Windows, na verdade, para fazer a autenticação SSH funcionar, então resolvi compartilhar o que eu fiz com vocês, caso mais alguém teve problemas também. Aproveitando, vou mostrar como criar um repositório no GitHub e falar sobre outros sites do tipo que usam Git.

Fazendo funcionar

Primeiro de tudo, instale o Git com o msys, que é um “emulador” de Bash para Windows, aqui. Na instalação, só tenha certeza que a opção “Use OpenSSH” está ativa.

Pronto, agora nós precisamos criar uma chave SSH, para isso, abra o Git Bash, e digite:

$ cd ~/.ssh/

Caso a pasta .ssh não exista, então crie:

$ mkdir .ssh

Agora então entre nela. Vamos definir os seus dados no Git:

$ git config --global user.name "Bruno Croci"
$ git config --global user.email email@seila.com

Agora criamos a chave SSH:

$ ssh-keygen -t rsa -C "email@seila.com"

É interessante que você use o mesmo email que usou para cadastrar no GitHub. Ele vai fazer uma série de perguntas, como onde você quer salvar, apenas dê enter, vai perguntar também se você quer colocar uma senha de acesso, é bom colocar, mas não necessário.

Agora você vai na sua conta no GitHub, e em account. Na parte de SSH Public Keys, você vai clicar em add another public key, então você vai agora lá na pasta .ssh que você criou na home – se você tiver no Windows XP é C:\Documents and Seetings\Usuario\.ssh\, caso esteja no Windows Vista ou superior, é C:\Users\Usuario\.ssh\ – e vai abrir o arquivo id_rsa.pub, vai copiar o seu conteúdo exatamente igual, sem nenhuma quebra de linha a mais nem a menos e vai colar no campo Key da página, o título você pode colocar qualquer coisa. Então adicione essa chave.

Lembrando que essa chave é criada de acordo com o computador, então em cada computador que você quiser acessar sua conta, vai ter que criar uma chave nova e então adicioná-la à sua conta no site.

Agora volte para o console aberto e teste com:

$ ssh git@github.com

(esse passo provavelmente não vai funcionar no codaset, caso esteja configurando ele, pule este teste)

Caso você tenha setado uma senha na criação da chave, ele irá perguntar, coloque-a e veja o que ele diz. Se você fez tudo exatamente como mostrado, ele vai mostrar uma mensagem dizendo que conseguiu conectar.

E agora?

Se o SSH conseguiu conectar, agora tudo já funcioina perfeitamente, mas e agora? Que tal criarmos um repositório? Primeiro de tudo, vá na pasta do seu projeto e crie o repositório assim:

$ git init

Lembre-se de ter um arquivo README nessa pasta com a descrição do repositório. Agora adicione todos os arquivos dando um:

$ git add .

Comite tudo isso:

$ git commit -m "Primeiro Commit. =D"

Agora vá no GitHub, crie um repositório novo. Precisamos avisar este repositório local, que ele deve sincronizar com o do site, então faça assim:

$ git remote add origin git@github:SeuLogin/NomeDoRepositorio.git

Agora vamos sincronizar este repositório com o remoto:

$ git push origin master

Pronto, você já sincronizou todo o projeto.

Além do GitHub?

Você pode usar outros serviços do tipo, além do GitHub, como por exemplo o Gitorious, ou o Codaset. O Codaset é um serviço que está em Beta ainda, mas achei bem legal. Apesar de não ter muitas coisas diferente dos outros.

Todos os passos que eu dei aqui são iguais para qualquer serviço, basta que você cadastre sua chave ssh no serviço que você for usar.

Se você quiser conferir alguns projetos meus, você pode acessar minhas contas no Codaset e no GitHub.

Não sei NADA de Git…

Sem problemas, eu também só sei comitar, e sincronizar os repositórios. Por isso você pode dar uma lida no livro Magia Git, que é muito bom.

Só para constar, esse pequeno tutorial foi baseado no tutorial do GitHub sobre geração de chaves SSH.

Google Buzz
Compartilhar: Share this post with the world.
  • Twitter
  • Posterous
  • Facebook
  • del.icio.us
  • Digg
  • Friendfeed
  • Google
  • LinkedIn
  • Reddit
  • StumbleUpon
  • Technorati

Posts semelhantes:

  1. Viva, é OpenSource

13 Comments

  • L3O
    22/09/2009 - 13:08 | Permalink

    Fala Croci !!

    po…muito legal seu post !!! finalmente consegui fazer funcionar aqui também !!!
    Parabéns !!!

    Abraço

  • 22/09/2009 - 13:29 | Permalink

    Æ!!

    Parabens cara! Que bom que conseguiu fazer funcionar no Windows! :)
    Agora podemos participar de mais projetos juntos! hehehe

    Há braços

  • 07/10/2009 - 18:55 | Permalink

    A dica mais geral para qualquer desenvolvedor que usa windows é a de instalar o Cygwin (http://www.cygwin.com/) e aí ter acesso a todas as ferramentas do unix. O cygwin não é um emulador, mas apenas uma implementação das "partes" do POSIX que faltam ao windows. Com a base instalada, você pode compilar quase todo código que foi feito pra Unix/Linux. Além disso, o Cygwin tem um instalador que vc pode instalar uma série de pacotes que já foram compiladas (inclusive o git) e pode até mesmo rodar servidor X.

    Quanto ao Git, eu comecei a fazer tradução do livro "Pro Git" e pretendo deixar ele disponível online. Maiores detalhes em: http://log4dev.com/2009/10/05/pro-git/

  • Pingback: Viva, é OpenSource | CrociDBlog

  • Miya
    25/10/2009 - 12:28 | Permalink

    Todo esse trabalho é pra aprender a usar linux e virar macho de verdade, rsrs.

  • Pingback: GameDev Resources #2 | CrociDBlog

  • Pingback: Desenvolvimento de Jogos Colaborativos | CrociDBlog

  • 25/05/2011 - 11:25 | Permalink

    Finalmente consegui fazer funcionar! vlw!

  • Croata
    05/02/2012 - 19:50 | Permalink

    Cara que incrivel , a tempos que estava procurando por isso !!! é um bom inicio , mais gostaria de um artigo , explicando algumas duvidas , que muitos devem ter !!!

    criei um arquivo e tal , por exemplo index.php ???

    ai la tem

    <code> <?php
    //mostrar no navegador
    echo "Olá Mundo !";
    ?>
    </code>

    Na verdade o que não entendo é o seguinte , com o git bash eu consigo criar o arquivo ( com o comando touch ??? certo ) , mais e para adicionar essas linhas nele , escrever o codigo ???

    Tem que ser na mão mesmo , ou seja em um editor !!!

    ai depois de criar o arquivo e seu codigo , eu envio ele para o github !!!

    mais ai eu vou la e modifico o arquivo !!!

    <code>
    <?php
    //imprimir modificado
    echo "Ola Mundo do git";
    ?>
    </code>

    o commit funciona como aqui ??? entende , como são os comando para modificar o arquivo localmente e tambem no github

    desculpa as perguntas , mais acredito que assim e mais facil de entender a minha duvida !!!

    • 06/02/2012 - 18:14 | Permalink

      Croata,

      Quando você altera o arquivo diretamente pelo github, você está comitando também. Logo, você deve fazer um pull no cliente para pegar os novos commits.

      Não entendi exatamente qual a sua pergunta, mas o "git bash" é uma versão do msys (que é uma emulação das ferramentas unix para windows), então você tem a maioria das ferramentas do bash no linux, por exemplo. Você pode inclusive usar o Vim, ou o Emacs.

      Caso você não se sinta à vontade com a linha de comando, você pode usar o TortoiseGIT: http://code.google.com/p/tortoisegit/

    • 06/02/2012 - 18:14 | Permalink

      Croata,

      Quando você altera o arquivo diretamente pelo github, você está comitando também. Logo, você deve fazer um pull no cliente para pegar os novos commits.

      Não entendi exatamente qual a sua pergunta, mas o "git bash" é uma versão do msys (que é uma emulação das ferramentas unix para windows), então você tem a maioria das ferramentas do bash no linux, por exemplo. Você pode inclusive usar o Vim, ou o Emacs.

      Caso você não se sinta à vontade com a linha de comando, você pode usar o TortoiseGIT: http://code.google.com/p/tortoisegit/

    • 06/02/2012 - 18:14 | Permalink

      Croata,

      Quando você altera o arquivo diretamente pelo github, você está comitando também. Logo, você deve fazer um pull no cliente para pegar os novos commits.

      Não entendi exatamente qual a sua pergunta, mas o "git bash" é uma versão do msys (que é uma emulação das ferramentas unix para windows), então você tem a maioria das ferramentas do bash no linux, por exemplo. Você pode inclusive usar o Vim, ou o Emacs.

      Caso você não se sinta à vontade com a linha de comando, você pode usar o TortoiseGIT: http://code.google.com/p/tortoisegit/

    • 06/02/2012 - 18:14 | Permalink

      Croata,

      Quando você altera o arquivo diretamente pelo github, você está comitando também. Logo, você deve fazer um pull no cliente para pegar os novos commits.

      Não entendi exatamente qual a sua pergunta, mas o "git bash" é uma versão do msys (que é uma emulação das ferramentas unix para windows), então você tem a maioria das ferramentas do bash no linux, por exemplo. Você pode inclusive usar o Vim, ou o Emacs.

      Caso você não se sinta à vontade com a linha de comando, você pode usar o TortoiseGIT: http://code.google.com/p/tortoisegit/

  • Leave a Reply

    Your email address will not be published. Required fields are marked *

    *

    You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>