A menos que você seja uma loja virtual de uma pessoa sem nenhuma equipe para colaborar, você experimentou a frustração que acompanha o compartilhamento de arquivos. Não importa o quanto você tente, quando várias pessoas estão trabalhando em um único projeto sem um sistema de controle de versão, as coisas ficam caóticas .

Se você trabalha com desenvolvedores no desenvolvimento e na implementação de sites, a mesclagem entre os modelos front-end e a funcionalidade de back-end pode ser um buraco negro assustador.

Questões como sobrescrever, arquivos perdidos e o fenômeno comum de "trabalhar com uma versão anterior" aparecem constantemente . E uma vez que a funcionalidade de back-end foi colocada em seus modelos, você fica aterrorizado ao tocá-los por medo de quebrar algo que um desenvolvedor gastou muito tempo para trabalhar.

Além disso, mesmo se você tiver um repositório comum que todos estejam tirando vantagem, pelo menos um membro de sua equipe esqueceu de pegar os arquivos mais recentes e está prestes a explodir coisas com as últimas adições.

Neste artigo, vou dar uma rápida revisão do Git, um excelente sistema de controle de versão .

Controle de Versão - Uma Explicação Rápida e Suja

Controle de versão (também conhecido como controle de revisão ou gerenciamento de controle de origem ) é uma ótima maneira de resolver o problema de compartilhamento de arquivos.

O conceito básico é o seguinte: existe um repositório principal para todos os arquivos do projeto . Os membros da equipe verificam os arquivos, fazem alterações e os registram novamente (ou os confirmam ). O Sistema de Controle de Versão (VCS - Version Control System) observa automaticamente quem alterou os arquivos, quando eles foram alterados e o que aconteceu com eles foi novo ou diferente.

Ele também pede que você escreva uma pequena nota sobre a mudança para que todos no projeto saibam de relance o que você fez e por quê. Cada arquivo terá então um histórico de revisão para que você possa facilmente voltar a uma versão anterior de qualquer arquivo se algo der errado.

Um bom VCS também permite que você mescle as alterações no mesmo arquivo . Se você e outra pessoa trabalharem localmente no mesmo arquivo ao mesmo tempo, quando você enviar esses arquivos de volta ao repositório principal, o sistema mesclará os dois conjuntos de alterações para criar um arquivo novo e totalmente atualizado. Se surgir algum conflito durante a mesclagem, ele será destacado para você.

Você provavelmente está usando um VCS muito grosseiro agora para manter seus arquivos diretos. Se você é um designer, é algo parecido com isto:

dpcwqxg_312gvhkh4s6_b

Controle de versão do designer - FAIL

Isso funciona bem o suficiente para PSDs e outros arquivos binários grandes, que realmente não se prestam a VCS. Mas há uma maneira muito melhor de fazer isso quando você está gerenciando o código-fonte de um site.

Benefícios para usar um sistema de controle de versão incluem:

  • Arquivos não podem ser sobrescritos
  • Existe um repositório comum que contém todos os arquivos mais recentes
  • As pessoas podem trabalhar nos mesmos arquivos simultaneamente sem conflito
  • Permite reverter para uma versão mais antiga do arquivo / projeto, se necessário
  • Fazendo seus desenvolvedores muito felizes

Mesmo que você não trabalhe com uma equipe, o controle de versão pode ser um salva-vidas . Fazer o backup de arquivos é uma das coisas mais fáceis que você pode fazer para evitar a perda de trabalho ou a reinicialização.

A ideia de um VCS parece assustadora no começo, especialmente porque a maior parte da documentação é escrita por e para desenvolvedores . Mas uma vez que você faça a mudança para incorporá-la ao seu fluxo de trabalho, descobrirá que não é tão difícil quanto parece.

dpcwqxg_322grqgzjcz_b

Conheça o Git

OK, agora você pode ver porque um sistema de controle de versão é um must-have para sua equipe web. Se você fizer uma pequena pesquisa no Google, verá que existem algumas opções, incluindo SVN, Mercurial, CVS, Bazaar e Git. Qualquer um deles pode ser uma boa solução para as suas necessidades, e eu encorajo você a fazer alguma pesquisa antes de selecionar um VCS. Neste artigo vou me concentrar no Git , o que uso diariamente. É uma “estrela em ascensão” que ganhou popularidade graças a uma forte base de fãs do Linux, GitHub e a Trilhos comunidade.

O Git é um Sistema de Controle de Versão de código aberto gratuito originalmente criado por Linus Torvalds para desenvolvimento kernal do Linux. Linus é um cara muito inteligente; quando ele resolve resolver um problema, ele não brinca. Um dos grandes diferenciais do Git é que, ao contrário do SVN e do CVS, é um sistema de controle de versão distribuída . Isso significa que todo usuário tem uma cópia completa dos dados do repositório armazenados localmente em sua máquina. O que há de tão legal nisso? Algumas coisas:

    • Tudo é local , então você pode trabalhar off-line
    • Não há um único ponto de falha . Ele não depende de um servidor central que possa travar e queimar, levando consigo o único repositório para o seu projeto.
    • Como não precisa se comunicar constantemente com um servidor central, os processos são executados muito mais rapidamente

      O Git tem uma curva de aprendizado um pouco mais difícil do que o SVN , mas a desvantagem vale a pena. Pense em como seus amigos desenvolvedores ficarão impressionados quando você disser que está usando o novo entusiasmo que é o Git! Com toda a seriedade, não acho que a curva de aprendizado seja tão íngreme. SVN foi igualmente confuso para mim no início, e eu corri para mais problemas do dia-a-dia ao usá-lo.

      Instalar o Git não é divertido nem jogos. Tive a sorte de ter um desenvolvedor experiente disposto a ajudar, mas há muitos recursos on-line para ajudá-lo. Ele será executado em uma caixa de PC, Mac ou Linux, embora a instalação para Linux e OSX seja consideravelmente mais fácil do que para o Windows.

      Você pode baixar a última versão do Git Aqui Depois de ter os arquivos, tente isso guia rápido para você começar com o processo de instalação. Para usuários do Windows, este passo a passo guia visual deve ser útil. Usuários de Mac, experimente este guia encontrado em GitHub

      Começando

      Uma vez que você tenha o Git instalado, você pode criar seu repositório . Para transformar uma pasta existente em um repositório Git, use os seguintes comandos na janela Terminal ou Prompt de Comando:

      cd path/to/projectgit initgit add .git commit

      O que você está dizendo para o Git fazer é:

      • Inicialize este diretório
      • Adicione tudo nele - todos os arquivos e subdiretórios
      • Confirmar ou armazenar , todas as alterações atuais no repositório

      Se você odeia a linha de comando, você também pode fazer isso usando a GUI do Git . Não é a coisa mais bonita que você já viu, mas está lá se você precisar.

      Uma captura de tela da GUI do Git

      Um fluxo de trabalho de amostra do Git

      Atualmente, estou usando o Git em um Mac para trabalhar em um aplicativo da Web com vários desenvolvedores da web. Temos uma versão "mestre" do código para o qual enviamos nossos arquivos, e cada um executa uma cópia completa localmente. Em qualquer dia, o meu fluxo de trabalho é mais ou menos assim:

      dpcwqxg_323gnhgbwg3_b

      1. Acione o Terminal . Inicie o meu banco de dados mysql local (para que o aplicativo que estamos construindo possa ser executado localmente em minha máquina).
      2. Use o Terminal para verificar as últimas alterações usando o comando “git pull” . Isso me faz todas as alterações feitas por outros membros da equipe e entra no nosso repositório principal.
      3. Abra o projeto no TextMate e faça minhas alterações.
      4. Confirme as alterações e adicione minhas anotações . Isso só os compromete localmente. Eu me comprometo com frequência, provavelmente dez ou mais vezes por dia. Isso ajuda a me manter no caminho certo.
      5. Empurre minhas alterações para o repositório principal usando "git push" . Agora, outros membros da equipe podem conferir e ver minhas alterações. Você deve fazer isso pelo menos uma vez por dia ou após qualquer adição importante.

      Todas essas ações podem ser feitas facilmente através da janela do Terminal , mas eu sou uma garota visual. Por esse motivo, eu uso GitX , um git gui para o OSX , para fazer meus commits. Eu ainda empurro e puxo através do Terminal, mas o GitX torna mais fácil para mim organizar meus commits e envolver minha mente em torno do que estou fazendo.

      Screenshot do GitX
      No topo, destaca a mudança feita nos arquivos. No canto inferior esquerdo está sua lista de Mudanças não organizadas . Para confirmá-los, você arrasta um ou mais arquivos para a área “Staged Changes” à direita, digita sua mensagem de commit e clica no botão Commit.

      Se eu virar para a visualização em árvore, posso ver o que foi enviado para o repositório. Se meus arquivos não estivessem atualizados com os arquivos mestres, as tags verde e azul na parte superior ficariam fora de sincronia. GitNub oferece uma interface similar ao estilo Mac.

      Screenshot do GitX
      Há também um ótimo Pacote TextMate acessível. Com ele, você pode enviar, puxar, confirmar e muito mais sem sair do TextMate. É extremamente eficiente.

      TextMate com o pacote Git instalado

      Saber mais

      Git Cheat Sheet

      Git Cheat Sheet por Zack Rusin

      Acima: Cheat Sheet de Zack Rusin

      Eu ainda sou um novato para mim mesmo, então eu apenas arranhei a superfície do que você pode fazer com isso, mas eu definitivamente vi a luz quando se trata de controle de versão, e estou feliz por finalmente ter conseguido bandwagon.

      Para aprender mais sobre como usar o Git, confira estes ótimos recursos:

      Intros para Git

      Conhecendo Git
      Entrada da Wikipedia no Git
      Por que o Git é melhor que o X
      TED fala de Linus Torvald no Git
      Uma turnê do Git: The Basics
      Git Ready

      Cheat Sheets / Dicas

      37 Sinais Git Recursos
      Git para o preguiçoso
      O Manual do Usuário do Git
      Um bando de dicas Git
      Cheat Sheet do GitHub
      Git Magic

      Intros para controle de versão

      Controle de versão para designers
      Um guia visual para controle de versão
      Entrada da Wikipedia no Controle de Revisão
      Escolhendo um sistema de controle de versão distribuído
      Eu quero saber o que este botão faz (uma lista à parte)


      Escrito exclusivamente para WDD por Mindy Wagner. Ela é uma web designer na Viget Labs e trabalha com impressão e web design há mais de 8 anos. Ela é formada em Arte e Comunicação em Mídia Eletrônica pelo Rensselaer Polytechnic Institute.

      Você usa o Git ou outro software para controle de versão? Por favor compartilhe sua experiência conosco!