Acho difícil entender o git, pois não consegui encontrar o significado das palavras usadas para as ações. Eu verifiquei no dicionário o significado de 'estágio' e nenhum dos significados estava relacionado aos conceitos de controle de origem.
O que significa 'estágio' no contexto do git?
git
version-control
000
fonte
fonte
git add file.ext
para um arquivo específico ougit add .
afetar todos os arquivos modificados e não rastreados. Os arquivos que foram adicionados dessa maneira são considerados "organizados" e serão incluídos no próximo "commit". O commit é um instantâneo do seu trabalho criado, por exemplo, withgit commit -m "I wrote something"
.Respostas:
Para encenar um arquivo é simplesmente para prepará-lo finamente para um commit. O Git, com seu índice, permite que você confirme apenas certas partes das alterações que você fez desde o último commit. Digamos que você esteja trabalhando em dois recursos - um está concluído e o outro ainda precisa de algum trabalho. Você gostaria de fazer um commit e voltar para casa (5 horas, finalmente!), Mas não gostaria de confirmar as partes do segundo recurso, o que ainda não foi feito. Você prepara as partes que você conhece pertencem ao primeiro recurso e confirma. Agora seu commit é seu projeto com o primeiro recurso concluído, enquanto o segundo ainda está em andamento no diretório de trabalho.
fonte
Como todos até agora responderam da maneira "formal", deixe-me fazer isso com alternativas para aprimorar o aprendizado com o poder das metáforas.
Portanto, a área de preparação é como:
É mágico !
fonte
A preparação é uma etapa antes do processo de confirmação no git. Ou seja, uma consolidação no git é realizada em duas etapas: preparo e consolidação real.
Enquanto um conjunto de alterações estiver na área de armazenamento temporário, o git permite que você o edite como desejar (substitua os arquivos temporários por outras versões dos arquivos temporários, remova as alterações do armazenamento temporário, etc.).
Tempo quebrado da metáfora:
Considere um cenário em que você liga para os agentes de mudança para obter suas coisas do seu apartamento antigo para o seu novo apartamento. Antes de fazer isso, você examinará suas coisas, decidirá o que você leva com você e o que você joga fora, empacota-as em sacos e deixa-as no corredor principal. Os transportadores simplesmente vêm, pegam as malas (já embaladas) do corredor e as transportam. Neste exemplo, tudo até que os movedores obtenham suas coisas é organizado: você decide o que vai para onde, como empacotá-lo e assim por diante (por exemplo, você pode decidir que metade das suas coisas será jogada fora antes mesmo que os movedores cheguem lá - isso é parte de preparação).
Do ponto de vista técnico, a preparação também suporta confirmações transacionais, dividindo todas as operações naquilo que pode falhar (preparação) e o que não pode falhar (confirmação):
O commit no git é implementado transacionalmente, após o teste ser bem-sucedido. Várias etapas na preparação podem falhar (por exemplo, você precisa confirmar, mas o seu HDD está 99,9999% cheio e o git não tem espaço para executar uma confirmação). Isso falhará no armazenamento temporário (seu repositório não será corrompido por uma confirmação parcial) e o processo de armazenamento temporário não afeta o histórico de confirmação (não corrompe seu repositório em caso de erro).
fonte
Preparar um arquivo é prepará-lo para uma confirmação. Como o git expõe essa ação ao controle dos usuários, ele permite criar confirmações parciais ou modificar um arquivo, prepará-lo, modificá-lo novamente e modificá-lo novamente e apenas confirmar ou reverter para a modificação original.
A preparação permite um controle mais preciso sobre exatamente como você deseja abordar o controle de versão.
fonte
Para adicionar às outras excelentes respostas, é aqui que o nome de "estágio" vem:
Em inglês, "encenar" pode significar
(em http://oxforddictionaries.com/definition/stage )
O nome "teste" para o recurso git deriva deste significado: Ao preparar, você está preparando e organizando um commit. É claro que um commit não é exatamente o mesmo que um desempenho, mas é um evento importante em um VCS :-).
fonte
Na maioria dos outros sistemas de controle de versão, existem 2 locais para armazenar dados: sua cópia de trabalho (as pastas / arquivos que você está usando no momento) e o armazenamento de dados (onde o controle de versão decide como compactar e armazenar suas alterações). No Git, há uma terceira opção: a área de teste (ou índice). É basicamente uma doca de carregamento onde você determina quais alterações são enviadas.
fonte: http://gitready.com/beginner/2009/01/18/the-staging-area.html
fonte
O "estágio" é uma etapa intermediária tecnicamente necessária no processo de check-in de um arquivo, ou seja, coletando as alterações a serem adicionadas ao repositório. Os autores do Git optaram por tornar essa etapa visível e persistente, enquanto outros VCS a tornam uma parte transitória do processo de confirmação. Portanto, é apenas uma opção que o git oferece, porque pode, por que não?
Do meu ponto de vista, a principal coisa que o "estágio" do git dá a você que outros VCS não oferecem é que você pode usá-lo para verificar um arquivo. É efetivamente um commit local não nomeado e não comentado que fornece uma etapa intermediária entre concluir todo o seu trabalho e enviá-lo permanentemente ao repositório e não ter nada salvo no repositório local.
Por exemplo, digamos que você tenha um recurso parcialmente finalizado. Está em um estado estável, passa em todos os testes e pode entrar em produção, mas você tem mais trabalho a fazer. Você pode preparar todas as suas alterações e continuar trabalhando no recurso.
Posteriormente, você terá a opção de confirmar apenas o que você preparou (e enviar por push para o repositório remoto) ou adicionar novas alterações à sua área de preparação e, em seguida, confirmar isso de uma só vez ou desfazer apenas as novas alterações e alterações. reverta seu diretório de trabalho para o estado em que estava quando você efetuou as alterações.
É completamente possível praticamente pular a área de preparação completamente e apenas usar a
-a
opção paragit commit
se você não achar a área de preparação um conceito útil. Muitas pessoas ignoram o teste e as ferramentas da GUI geralmente também permitem isso.fonte
Pelo que entendi, suponha que eu esteja desenvolvendo o recurso de login e precisei de 5 etapas consecutivas para concluir. Portanto, a preparação aqui ajudará você a trabalhar em etapas como as
feitas na etapa 1.
feito na etapa 2, agora as etapas 1 e 2 estão corretas.
estrague a etapa 3 sem problemas, finalize a última etapa faseada que é a etapa 2 da
mesma maneira, uma vez que você executou todas as 5 etapas, o que significa que o recurso está completo agora execute a confirmação.
fonte