Git define um processo de controle de versão de como os projetos devem ser compartilhados. Existem muitos sites que permitem hospedar seus projetos Git. GitHub é a opção mais popular, Bitbucket é outra alternativa popular, ambos permitem contas gratuitas que podem criar repositórios públicos ou privados ilimitados. O GitLab oferece uma alternativa auto-hospedada que permite o desenvolvimento privado sem depender de hospedagem de terceiros.
O processo de primeiro baixar um repositório Git é chamado de clonagem. A clonagem inclui todas as informações sobre o repositório no momento, no entanto, para mantê-lo atualizado ao longo do tempo, você precisa obter novas versões. Para isso, basta abrir uma janela de terminal no diretório com a versão local do repositório e digitar o comando “git pull”.
A operação desse comando é particularmente simples se você deseja apenas baixar uma versão atualizada do repositório; a versão local será atualizada para corresponder à versão remota. Você pode, no entanto, ver que pode haver problemas se você fizer modificações em sua versão local.
O comando “git pull” na verdade executa dois comandos separados “git fetch” e “git merge FETCH HEAD”. O subcomando “git fetch” puxa especificamente a versão mais recente do repositório online e a armazena temporariamente. O subcomando “git merge FETCH HEAD” então mescla suas mudanças locais com a versão baixada, com commits mais recentes sendo preferidos.
Dica: Um “git commit” é o envio de uma mudança, é possível ter vários commits locais e remotos que fazem coisas iguais ou diferentes. Os commits locais não são visíveis para a versão remota até que as alterações sejam enviadas. Cada confirmação detalha exatamente quais mudanças foram feitas e incluem um carimbo de data / hora.
Conflitos entre versões locais e remotas
Idealmente, em um cenário de mesclagem, não haverá conflitos e o processo de mesclagem será concluído automaticamente. As mesclagens podem ser particularmente fáceis se poucas alterações foram feitas ou se as alterações locais não interferem nas alterações remotas. Se, no entanto, houver mudanças complexas conflitantes na mesma parte do código, o Git lançará um erro de mesclagem.
Neste ponto, você pode abortar a fusão com o comando “git merge –abort” ou tentar resolver manualmente os conflitos. Os comandos “git mergetool” e “git diff” fornecem um exemplo gráfico das diferenças que devem ajudar a tornar o mais fácil possível ver quais mudanças precisam ser aplicadas manualmente para permitir que a fusão seja concluída. Depois de resolver todos os conflitos, digite o comando “git merge –continue” para concluir a fusão.
O comando “git mergetool” abrirá uma ferramenta gráfica como esta para ajudá-lo a resolver conflitos manualmente.