Git básico e sem rodeios

13jun11

Direto ao assunto: Git

Quer começar com o Git mas está sem tempo para estudar? Você está acostumado com Subversion e quer aprender Git também? Recentemente mergulhei de cabeça nesta onda e decidi compartilhar algumas informações importantes para dar os primeiros passos. Ao invés de discutir conceitos, vou direto ao assunto básico sem rodeios.

Não interessa se você gosta ou não do Git, mas uma coisa é fato: todo mundo está usando! Se você é mais um que já tentou começar, não achou nenhum material prático e desistiu, este post foi escrito para você. A primeira coisa que você precisa saber: esqueça o Subversion, CVS e afins, o lance aqui é outro.

Tá bom! Eu já sei que você vai fazer comparações no processo de aprendizado, então vou facilitar sua vida. Imagine que você quer baixar um projeto armazenado num servidor Subversion. O que você faz? Isso mesmo, um checkout:


svn checkout <url-do-repositório-remoto>

Traduzindo este comando para diagrama, o comando checkout criará uma pasta de trabalho contendo os arquivos baixados do servidor remoto.

svn checkout

No Git o comando equivalente é outro:


git clone <url-do-repositório-remoto>

O resultado também é um pouco diferente. No Git existe um novo elemento na jogada, o repositório local:

git clone

Assim como no Subversion, no Git você trabalha no workspace. O repositório local é um espaço intermediário entre a área de trabalho e o repositório remoto.

Para submeter mudanças para o Subversion, você executa o commit. Para baixar as atualizações, você usa o update:


svn commit -m 'Meu primeiro commit'
svn update

Em forma de diagrama a coisa é mais ou menos assim:

svn commit & update

Com o Git existem mais passos a fazer. Primeiro você submete as mudanças para o repositório local, depois para o remoto. No sentido oposto vale a mesma regra.

git commit -m 'Meu primeiro commit'
git push -u origin master
git fetch
git pull

Olha como fica o diagrama:

git commit & push & fetch & pull

Daí você se pergunta: “Pra que diabos existe este repositório local?”. O Git implementa o conceito de Controle de Versão Distribuído, mas não tenho a mínima intenção de entrar neste assunto, muito menos te convencer que isso é melhor ou não. Por enquanto basta entender que o repositório local é um clone fiel do remoto. Mesmo assim o Git é muito mais rápido que o Subversion!

Depois desta explicação bem objetiva você deve estar matutando: “Se a estrutura parece ser mais complexa (+repositório local) e ainda tenho que escrever mais comandos para fazer as operações básicas, para que zorra vou migrar para o Git?”. Você vai achar diversos argumentos na Internet, mas a minha opinião você só saberá no post Facilitando a colaboração com GitHub.

Anúncios


13 Responses to “Git básico e sem rodeios”

  1. Git, assim como o Mercurial, é um SCM *distribuído*.
    CVS e Subversion, por outro lado, são exemplos de um SCM *centralizado*.

    Com o Git, o termo “fazer um fork” deixa de ser pejorativo e ou repudiado e passa a ser recomendado e incrivelmente produtivo!

    Não é à toa que projetos como Linux Kernel, Ruby on Rails, Python, PostgreSQL, entre outros passaram a usar esse SCM…

    • Aliás, excelente post, Zyc!

      Parabéns pela originalidade. Não lembro de ter visto nenhum material que explica o Git fazendo analogia com o SVN de maneira tão clara.

  2. Mandou bem Zig!!! De uma forma simples explicou o que demorei um pouco para entender e aceitar no Git, Parabéns!!!

  3. ficou massa o artigo,… mas infelizmente o que convence uma pessoa a usar uma ferramenta de controle de versão é a ferramenta cliente gráfica,…

    Foi postado no buzz, mas Zyc tá carente de comentários,… ho ho ho

  4. 6 Adelar

    Excelente artigo. 😀 Estou atualmente estudando como passar nosso controle de versão de CVS para Git. No Eclipse o Egit resolveu, mas no Netbeans o plugin deixou a desejar.
    Manter estrutura centralizada de controle de versão causa muito desperdício de recurso, principalmente quando é necessário manter várias versões do mesmo sistema.

  5. Sugiro a versão 2 deste post falando sobre a criação de branchs e como o git trabalha com o processo de merge.

  6. Parabéns pelo post, ajudou mais um cara confuso a desconfundir =)

  7. 10 Lucas

    Você não estava mesmo brincando quando escreveu “sem rodeios” no título do post! Gostei! Parabéns!


  1. 1 Facilitando a colaboração com o GitHub « Cleverson Sacramento
  2. 2 Dicas ao instalar o Git no Windows « pablovinicius
  3. 3 Proposta do Demoiselle no GitHub « Cleverson Sacramento

E aí, o que você achou? Comenta aí...

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s