Pergunta

Ainda está tendo um tempo duro ficar a minha cabeça enrolada em torno do conceito de encenação como ele se aplica ao Git.

Pode quaisquer analogias ser feita com o SVN?Qual é a principal finalidade de ter um estágio de nível no Git?

Foi útil?

Solução

semelhanças:

Arquivos que devem fazer parte do repositório devem ser adicionados para serem rastreados. Ambas as ferramentas usam o comando add para realizar isso. Adicionando arquivos significa preparar um commit.

Diferenças:

git permite mais um tipo de detalhe ao adicionar arquivos. Você pode decidir adicionar um arquivo inteiro ou linhas distintas de código. Adicionando arquivos ao índice ou permite mais flexibilidade. O SVN confirma automaticamente todas as alterações em um arquivo que já foi adicionado ao repositório. O Git deixa a decisão do que muda para associar a cada operação de confirmação ao usuário. Em outras palavras: o próximo confirmação no Git contém apenas essas alterações (linhas ou arquivos) que foram encenadas, independentemente do status de rastreamento dos arquivos. O SVN inclui automaticamente todas as alterações nos arquivos rastreados.

Informações adicionais:

Tente ler alguns posts descrevendo fluxos de trabalho do Git, como o de Oliver Steele . Mas esteja ciente de que há não um maneira de usar o Git - há muitos. Se você quiser, você pode usar o Git como se estivesse trabalhando com SVN.
Não espere entender a filosofia do Git em um curto período de tempo. Demorei um ano para entrar nisso e ainda aprendo novas maneiras de usá-lo. Eu acho que é ainda mais difícil se você cresceu com a mentalidade do svn. Há toneladas de materiais lá fora: artigos, vídeos, ... - Tome o seu tempo e tente alguns deles. Aqui está uma seleção da lista que colecionei.

Outras dicas

A principal vantagem da área de transição é que você pode facilmente cometer apenas uma parte das alterações em um determinado arquivo.(Usando git add -p por exemplo.) Até onde eu sei, a única maneira de fazer um "parcial" commit no SVN é, por nível de arquivo, ou editando manualmente o backup de um arquivo e, em seguida, temporariamente reverter as mudanças que você não quer cometer.

Isso é ótimo se (como eu) você não é um ser altamente organizada desenvolvedor e deseja ser capaz de classificar as alterações em "puro" compromete-se após o fato.Isto segue do Git, a atitude geral de preferindo dar-lhe a flexibilidade através de cumprimento de exigência.Se você não precisa dele, você sempre pode simplesmente não usar, e usar git commit -a ....

Não existem analogias para ser feito com o SVN, porque SVN não é o Git e não tiver como um conceito.

Aqui estão alguns dos cenários que mostram a utilidade do encenamento:

  • Você trabalha em uma peça específica e fez algumas mudanças em seu projeto. Você não quer cometê-los ainda antes de testar a coisa completa. Mas essas mudanças podem ser independentes o suficiente para fazer várias comissões lógicas do que um único grande. É quando você está fase de peças seletivas e faz várias commits.

  • O estágio tem sido especialmente útil durante a depuração. Você pode polvilhar as instruções de log para rastrear a fonte do bug. Então você faz a correção e teste novamente usando essas instruções de log. Mas então, você deseja confirmar a correção antes de fazer qualquer alteração no código para excluir essas instruções de log.

  • Outro cenário onde provou ser útil é quando você está no meio de fazer alguma coisa, e encontrar algo não relacionado, como um erro de digitação, que você deseja consertar e tirá-lo do caminho rapidamente.

Há vários outros cenários, e provavelmente você não seria capaz de trabalhar com qualquer coisa que não tenha esse conceito, uma vez que você recebe um jeito :).

PS: Eu não usei o SVN, então não posso fazer as comparações entre os dois.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top