Se você é um dos milhões na comunidade de desenvolvedores, é mais provável que você já tenha ouvido falar sobre o conceito de controle de versão. É uma ferramenta ou sistema poderoso que ajuda você a cuidar do seu trabalho, permitindo que você mova rapidamente seus arquivos, documentos e outras coleções de informações relacionadas ao seu projeto. E existem inúmeras ferramentas para esse tipo de trabalho no mercado, tanto de propriedade quanto de código aberto. O Git é um dos sistemas de controle de versão mais populares e amplamente usados no mundo atualmente e um número impressionante de projetos depende do Git para controle de versão. O Git é um sistema de controle de versão distribuído de código aberto e gratuito, projetado para rastrear alterações no código fonte durante o desenvolvimento do software.
Um projeto Git é representado por uma estrutura de dados chamada repositório, onde todas as informações relacionadas ao projeto são armazenadas, incluindo o histórico completo do projeto desde seu início. Ele rastreia todas as alterações feitas nos arquivos ao longo do tempo, criando uma linha do tempo à medida que você prossegue com o projeto. Um repositório, por sua vez, consiste em um conjunto de capturas instantâneas individuais do conteúdo do projeto - coleção de arquivos e repositórios - chamadas confirmações. Quando você deseja compartilhar o desenvolvimento do seu projeto com o mundo, precisa enviá-lo para um controle remoto ao qual tenha acesso de gravação. Suas filiais locais não são sincronizadas automaticamente com os repositórios remotos - você precisa enviar explicitamente as filiais que deseja compartilhar.
O Git considera seus dados mais como um conjunto de snapshots, como um mini sistema de arquivos ou versões de um projeto chamado commit. Toda vez que você confirma ou salva o estado do seu projeto a qualquer momento, o Git basicamente captura um instantâneo da aparência de seus arquivos no momento e armazena uma referência a esse instantâneo. Um objeto de confirmação contém metadados para cada alteração feita no repositório, incluindo o autor, o commit, a data de confirmação e a mensagem de log. Cada confirmação aponta para um objeto de árvore que captura o estado do repositório no momento em que a confirmação foi realizada, tudo em uma captura instantânea completa. À medida que você altera o código ao longo do caminho, você cria um punhado de confirmações - uma confirmação separada para cada alteração feita. O Git atribui a cada commit um ID exclusivo que rastreia o quê, quando e quem das alterações que você fez.
Cada desenvolvedor tem seu próprio repositório particular para rastrear suas alterações. Você faz as alterações localmente e quando estiver pronto para compartilhá-las com outros desenvolvedores, você as envia de volta ao repositório que todos compartilham. A confirmação salva as alterações feitas apenas no repositório local, mas não no repositório remoto. Suas confirmações não são sincronizadas automaticamente com o repositório remoto - você precisa enviar explicitamente as confirmações que deseja compartilhar. Ao usar o comando push, você aplica suas alterações no repositório upstream. Cada projeto de código aberto tem sua própria maneira de aceitar alterações. Alguns projetos usam um sistema de controle de versão totalmente distribuído, no qual apenas uma pessoa pode enviar alterações no repositório principal, enquanto existe um modelo de repositório compartilhado no qual todos os desenvolvedores podem enviar para um repositório compartilhado..
- Empurrar vem depois de confirmar. O Git commit registra e rastreia as alterações no repositório, cada uma delas aponta para um objeto em árvore que captura o estado do repositório no momento em que a confirmação foi realizada, tudo em um instantâneo completo. Mas o commit salva as alterações apenas no repositório local, mas não no repositório remoto. O Git push atualiza suas alterações confirmadas e permite que você as envie para o repositório remoto, onde todos os desenvolvedores podem acessá-las. Quando você usa o comando push, ele simplesmente atualiza suas alterações no repositório upstream.
- As confirmações Git são locais, o que significa que elas são registradas apenas na máquina em que as confirmações realmente ocorrem. O comando "git commit" é usado para dizer ao Git para salvar suas alterações no repositório local e você precisa informar especificamente ao Git quais alterações deseja incluir em um commit antes de usar o comando "git commit". Você pode usar o comando "git push" para enviar as confirmações no repositório local para um repositório remoto. O comando "push" atualiza novas confirmações locais em um servidor remoto. O push recebe dois argumentos: o nome remoto (origem) e o nome do ramo (mestre).
Em poucas palavras, o commit é a unidade fundamental de mudança no Git. Diferentemente de outros modelos centralizados de controle de versão, o Git considera seus dados mais como um conjunto de instantâneos chamados de confirmações. Eles são como uma captura instantânea de todo o conteúdo do repositório, juntamente com todas as informações relacionadas ao projeto e o relacionamento desse estado do repositório com outros estados registrados à medida que o conteúdo evolui ao longo do tempo. Um objeto de confirmação contém metadados para cada alteração feita no repositório, incluindo o autor, o commit, a data de confirmação e a mensagem de log. Mas o commit salva as alterações apenas no repositório local, mas não no repositório remoto. O Git push atualiza suas alterações confirmadas e permite que você as envie para o repositório remoto, onde todos os desenvolvedores podem acessá-las.