Os sistemas dVCS / git também gerenciam mudanças incrementais de arquivos

0

... ou eles só gerenciam "commits" completos? (por commits completos, quero dizer apenas os arquivos de trabalho / final para um determinado snapshot.)

Estou precisando aprender algum tipo de VCS quando me aventuro em estruturas de aplicativos (como o Druapl). Desde que eu não sou CS-grad, minha idéia de VC foi alguém me dizendo para atualizar esta página ou corrigir esse bug :) Como meus projetos se tornam mais complicados eu preciso acompanhar as atualizações do programa, bem como minhas próprias personalizações. Como o Druapl usa o GIT, seria ótimo se eu pudesse usar apenas um sistema.

No final do dia, posso ter várias versões diferentes de uma página que preciso testar (vários navegadores ou algum outro bug ou problema), mas apenas uma versão passará para ser adicionada ao instantâneo do projeto em funcionamento.

Existe um comando ou fluxo de trabalho no git para gerenciar essa situação?

    
por xtian 14.08.2011 / 02:26

2 respostas

1

O Git rastreia as alterações de cada arquivo em um commit. Por exemplo, esta é uma pequena diferença para um recente compromisso com o editor Kate . Na verdade, o git geralmente armazena apenas as mudanças em cada arquivo internamente e usa isso para construir arquivos completos em seu diretório de trabalho.

Se você precisar rastrear apenas pequenas alterações incrementais, basta fazer um commit para cada pequena alteração que deseja acompanhar. Como o git não precisa falar com um servidor para commitar, é rápido e fácil. Muitos editores e IDEs vêm com integração com o git, então talvez seja necessário apenas apertar um botão. O índice do Git também permite que você apenas registre os arquivos desejados, para que você possa dividir seus commits por arquivo, se quiser.

A poderosa ramificação do Git cuida da sua outra necessidade. Para criar e mudar para uma nova filial apenas para o seu trabalho, execute git checkout -b work . Você pode ramificar isso ou o % branch master original quantas vezes você precisar. Como o git armazena apenas as mudanças incrementais, as ramificações são baratas e fáceis. Quando você tiver algo pronto, junte-o ao seu ramo de trabalho principal. Você pode até rastrear pequenas mudanças em uma ramificação e mesclá-las em outra como um grande commit, para que você possa acompanhar pequenas mudanças quando precisar, mas não ter uma história ridiculamente longa em sua ramificação de trabalho principal.

Outra funcionalidade do git que pode ser útil para você é o picking de cereja . Isso permite selecionar commits específicos de um branch e mesclá-los em outro branch. Então, se você fez algum trabalho em um ramo que você precisa em outro, mas não precisa de tudo, é fácil trazê-lo.

Eu recomendo strongmente gastar algum tempo aprendendo sobre todos os vários recursos do git, assim você poderá usá-los facilmente quando precisar. Nossos amigos do Stack Overflow compilaram uma lista de recursos excelentes .

    
por 14.08.2011 / 03:57
0

Git, Mercurial e todos os outros sistemas de controle de versão distribuída Estou ciente da faixa no nível de commit. Você não comete arquivos individuais, mas sim o estado de toda a cópia de trabalho em um determinado momento, e escolhe explicitamente quando executar essa confirmação.

Se você estiver rastreando conjuntos de alterações não relacionadas com o Git, um fluxo de trabalho para facilitar isso seria usar uma ramificação por alteração. Você teria as seguintes ramificações:

  • master (extraído da origem)
  • xtian-master (sua ramificação "master")
  • Filiais adicionais por recurso

Conforme o Drupal atualiza sua ramificação master , você executaria as alterações e as mesclaria na ramificação xtian-master . Dessa forma, suas alterações finais seriam aplicadas em versões mais recentes do Drupal.

Como você deseja alterar uma página, crie uma ramificação para essa alteração, faça quantas alterações e confirmações nessa ramificação desejar e, em seguida, funda-se em xtian-master ou exclua a ramificação (se decidir descartar suas alterações). Você pode ter várias ramificações enquanto trabalha no novo recurso e, finalmente, mesclar a ramificação vencedora em xtian-master .

    
por 14.08.2011 / 03:43