Em primeiro lugar, entenda alguns conceitos importantes:
O Git é um sistema de controle de versão distribuído amplamente usado na área de desenvolvimento de software. Ele permite que você rastreie e gerencie alterações em arquivos, crie ramificações para desenvolver recursos independentes e mescle essas mudanças de forma eficiente. É uma ferramenta fundamental para o desenvolvimento colaborativo, ajudando a manter o código organizado e permitindo o trabalho em equipe de maneira eficaz.
Gitflow é um modelo de fluxo de trabalho que busca simplificar e organizar o versionamento de ramificações de um projeto de desenvolvimento no Git.
Main: é a ramificação principal que contém o código-fonte em produção. Não é permitido realizar alterações (commit) diretamente nessa ramificação. A Master ainda é utilizada para enviar os commits dos releases para a produção;
Develop: criada a partir da ramificação Main, ela reúne os códigos de todos os ramos e se comunica com a Main. Ela contém o código-fonte mais atual e todas as novas features estáveis que serão mescladas posteriormente;
Feature: criada a partir da ramificação Develop, é uma branch temporária que carrega uma nova funcionalidade para o projeto, ela sempre acabará sendo mesclada à própria Develop através de merge. E segue um padrão de nomenclatura “feature/new-feature”.
Release: é uma ramificação temporária que fará com que os novos recursos armazenados na Develop sejam mesclados na branch Master, recebendo uma tag que indica a nova versão do projeto.
Hotfix: é uma ramificação utilizada para mesclar correções na ramificação principal decorrente de bugs identificados no processo de desenvolvimento. Após a correção do bug, o código irá tanto para a branch main como para a Develop. Essa branch também recebe uma tag indicando a nova versão na Main.
Instalação Git (MacOs e Linux) -> https://youtu.be/MoXJ4ypR_ZE?si=rwTABq8eckUXjtdq
Configuração Git (Windows, MacOS e Linux) -> https://youtu.be/aQjqmC5EfH0?si=oTkoBOUdzmWgO98b
1. Em primeiro lugar, você deve entrar no site do Git (https://git-scm.com) e** você encontrará uma tela assim:**
Site da ferramenta Git
- Clique na opção Downloads e escolha seu sistema operacional (Nesse caso, será Windows):
Aba de Downloads do Site Git
Escolhendo o tipo de Sistema (32-bits ou 64-bits)
- Após executar o arquivo de instalação, clique em install e apenas prossiga as abas com a opção next, pois o Git será instalado nos caminhos padrão da ferramenta.
Instalador da Ferramenta Git
Pronto! Você conseguiu instalar a ferramenta Git com sucesso na sua máquina com sistema operacional Windows! 😀
- Abra o aplicativo Git Bash e digite o seguinte código (sem o $):
$ git config --global user.name "Nome_usuário"
Nesse código estamos configurando o nome de usuário da máquina, ou seja, coloque de preferência o seu nome ou o nickname da sua conta do GitHub (ela será criada em breve, mas já pense no nome).
Obs: Se não retornar nada, ou seja, uma linha vazia, será um sinal que está tudo correto!
Configurando o nome de usuário
- Agora, digite o código abaixo para configurar o email (sem o $):
$ git config --global user.email "email"
Configurando o email
- Prontinho! Agora, para verificar se a configuração está correta, basta digitar o código abaixo (sem o $):
$ git config --list
A opção user.name está com meu nome e a user.email está com meu email! Assim, você concluiu a configuração inicial da ferramenta Git no sistema Windows! 😝
O GitHub é uma plataforma de hospedagem de código-fonte baseada na web, que utiliza o sistema de controle de versão Git. Ele permite que desenvolvedores colaborem em projetos, acompanhem mudanças feitas no código, gerenciem versões e trabalhem em equipe de forma eficiente. Ele é amplamente utilizado pela comunidade para gerenciar projetos, colaborar em código, e compartilhar conhecimento, tornando-se uma parte essencial do ecossistema moderno de desenvolvimento de software.
- Acesse o site do GitHub (https://github.com) e clique em sign up:
Site do GitHub
- Coloque suas informações pessoais (nome, email, senha, nickname) para criar a conta:
Exemplo de criação de conta
- Após essa etapa, o GitHub pedirá uma autenticação que é, geralmente, enviada ao email escolhido.
Uma parte importante do trabalho é manter sua conta segura, então o GitHub fornece métodos de segurança para protegê-la:
O método de "usuário e senha" consiste em, quando o colaborador do projeto for realizar alguma modificação ou entrar em sua conta, o sistema pedirá só o usuário e a senha. Esse é a maneira menos segura para verificar a autenticidade.
Tokens são senhas geradas pelo próprio GitHub, elas são métodos mais seguras que as senhas normais, pois são geradas aleatoriamente e com grande número de de caracteres. Além disso, você pode configurar os acessos dessa senha e o tempo de existência, semelhante à um cartão de acesso.
Criando um Token pessoal:
- Vá em configurações, clicando na foto do seu perfil no canto superior direito da tela:
- Agora vá em Developer settings:
- Vá em Personal access tokens / Token (classic):
- Selecione generate new token (classic):
- Configure seu token e pronto!
São chaves especiais que permitem acessos a lugares específicos no GitHub (cofre digital). Além disso, você não precisará utilizar usuário, senha ou token para fazer login com esse método. Por exemplo, não é muito seguro deixar uma pessoa que é responsável pelo design (CSS) de uma página web na colaboração de um Beck End. Observação: As chaves de implementação permitem somente LEITURA do código, isso ocorre para garantir maior segurança ao projeto.
Após fazer login, você será direcionado para a página inicial do GitHub. No canto superior esquerdo da página inicial, clique no botão "New" e preencha os dados do seu repositório.
Nome do repositório: Certifique-se de escolher um nome descritivo e único, pois o GitHub não permite nomes duplicados.
Descrição (opcional): Adicione uma descrição breve para o seu repositório.
Visibilidade: Escolha entre "Público" (acessível a todos) ou "Privado" (acessível apenas a pessoas autorizadas).
Inclua um arquivo README.md
Clique no botão "Criar repositório" quando estiver satisfeito com as configurações.
O comando git clone é usado para criar uma cópia local de um repositório Git existente.
Encontrar o Repositório: Primeiro, você precisa identificar o URL do repositório Git que deseja clonar.
Executar o Comando Clone: O comando git clone é usado para criar uma cópia local do repositório remoto. A sintaxe básica é a seguinte:
# Iniciar um novo repositório
git init
# OU
# Clonar um repositório existente
git clone https://github.com/seu-usuario/seu-repositorio.git
Por exemplo, para clonar um repositório chamado "meu-projeto" do GitHub, você usaria:
git clone https://github.com/seu-usuario/meu-projeto.git
Adicione os arquivos que você deseja enviar para o repositório:
# Adicionar todos os arquivos no diretório
git add .
# OU
# Adicionar um arquivo específico
git add nome-do-arquivo
Comite as mudanças adicionadas, fornecendo uma mensagem descritiva:
# A mensagem do commit deve ser clara e concisa, explicando o que foi alterado.
git commit -m "Mensagem do commit aqui"
Se ainda não vinculou seu repositório local a um repositório remoto no GitHub, faça isso:
git remote add origin https://github.com/seu-usuario/seu-repositorio.git
Agora, envie as alterações para o GitHub:
git push -u origin branch-name
Substitua branch-name
pelo nome da sua branch atual (geralmente é main
ou master
).
Além de contribuir para o desenvolvimento, você também pode usar a cópia local do repositório para realizar testes em um ambiente controlado. Isso é útil para verificar como suas mudanças afetam o projeto antes de compartilhá-las.
Representa uma unidade de alterações feitas em um conjunto de arquivos em um repositório de código-fonte. Quando você faz um commit, está registrando uma captura instantânea (snapshot) do estado atual dos arquivos que deseja acompanhar no repositório. Os Commits são usados para rastrear e documentar o histórico de um projeto de software. Eles permitem que você acompanhe quem fez quais alterações, quando essas alterações foram feitas e qual foi o propósito por trás delas. Além disso, os commits são a base para a criação de "branches" (ramificações) e "merges" (fusões) no Git, permitindo o desenvolvimento colaborativo e o gerenciamento de versões de código de forma eficiente.
Branches, de modo geral, são ramificações. Adentrando ao assunto, o controle de versionamento do Git é similar a uma árvore cujo o tronco é uma linha principal, que chamaremos de main, e os galhos são as branches, ou seja, as ramificações as quais o colaborador do projeto trabalhará paralelamente e de forma independente à main.
Em primeiro lugar,para entendermos melhor como as branches funcionam, precisamos antes compreender como o Git armazena seus dados.O Git não armazena com base nas mudanças ou diferenças, mas sim através de snapshots (como se fosse um “print” de algum momento).Assim, quando você faz um commit, o Git armazena um objeto de commit que contém um ponteiro para o snapshot do conteúdo que você testou.Esse objeto contém as identificações do usuário (autor, email), mensagem e ponteiros que apontam para o commit realizado ou para os commits anteriores (seus pais).
Ok, parece difícil, mas entendendo como funciona um commit normal, ficará mais fácil a compreensão. Um commit funciona assim:
- O quadrado branco é um commit, ele armazena a “árvore”, o autor do commit e uma mensagem.
- O quadrado azul armazena o nome dos arquivos que foram commitados e aponta para o conteúdo desses arquivos.
- Os amarelos são os meus arquivos.
Uma forma mais detalhada de entender a situação:
\
- Agora, mas e se eu tiver mais de 1 commit?
3 commits
- O commit (caixa branca) apontará para o commit anterior e será salvo em snapshots (como se fosse um rolo de câmera).
- O exemplo acima mostra a 3 commits linkados à master.
- O “HEAD” aponta para a branch na qual você está localizado.
Então, podemos concluir que uma branch é um ponteiro móvel o qual aponta para os commits.Mais um exemplo:
- Criaremos uma nova branch chamada “testing” com o comando:
$ git branch testing
Usaremos o comando: $ git checkout testing
para nos deslocar à branch testing (a “HEAD” estará apontando para a branch selecionada).
Perfeito! Agora que estamos na branch “testing”, vamos fazer um commit usando o comando:
$ git commit -a -m 'made a change'
- Percebeu que a branch testing “pulou pra direita” da master? Antes elas estavam apontando para o mesmo commit “f30ab”, mas agora a branch testing está apontando para o commit “87ab2” que acabamos de fazer. Portanto, podemos visualizar que os branches podem trabalhar de forma “independente”
OBS: É importante lembrar que quando mudamos de branch com o comando “checkout”, ele retrocede o trabalho que você fez em seu branch para que você possa ir em uma direção diferente. Basicamente ele muda os arquivos locais para o momento o qual você tinha feito “checkout”.Para consertar isso, você deve alinhar o conteúdo dos arquivos locais com o conteúdo da branch.
Em um momento final, você pode verificar o histórico de diferenças e corrigi-las para depois mesclar as branches:
O uso de Git Branches apresenta várias vantagens, das quais queremos destacar duas em particular:
Permite o desenvolvimento de novos recursos para nossa aplicação sem interromper o progresso no branch principal. Com Git Branches, é possível criar diferentes ramificações de desenvolvimento que podem posteriormente ser incorporadas ao mesmo repositório, como um branch estável, um de teste e um instável, por exemplo.
O objetivo principal do merge é unir o trabalho feito em diferentes ramos, permitindo que as alterações feitas em um ramo sejam incorporadas ao histórico de outro.
Inicializa um repositório Git dentro de um diretório do sistema.
git init
Cria uma cópia de um repositório remoto em um diretório da máquina.
git clone (https://github.com/(userGitHub)/(repositoryName).git)
Verifica o status do git atualmente. Esse comando mostra se o projeto local está sincronizado com o master, quais arquivos estão sendo monitorados pelo Git e em qual branch você está.
git status
Adiciona arquivos ao pacote de alterações para serem feitas. É possível adicionar um arquivo ou múltiplos arquivos por vez.
git add <-arquivo1->
Observação: Adiciona somente o arquivo 1 para o pacote.
git add .
Observação: Adiciona todos os arquivos modificados ao pacote.
Etapa crucial para registrar uma nova versão do projeto, composta por um conjunto de alterações. Ele pega as modificações que foram adicionadas usando o comando git add, agrupa essas mudanças em um conjunto e as identifica com um código único chamado Hashcode. Além disso, em cada commit, é necessário incluir uma mensagem descritiva que esclareça quais foram as alterações feitas nessa atualização. Isso torna mais fácil entender o propósito e o conteúdo de cada commit no histórico do projeto.
git commit -m "Adicionando cards"
Cria novas branches de desenvolvimento, bem como visualiza quais são os ramos existentes.
git branch
git branch feature/cards
git checkout: navegar entre as branchs do projeto.
git checkout feature/cards
Altera para uma branch específica.
git checkout nome-da-branch
Git remote add origin "https://github.com/seu-usuario/meu-projeto.git"
É usado para adicionar um repositório remoto ao seu repositório local no Git. Você fornece um nome para o repositório remoto (geralmente "origin" por convenção) e a URL do repositório remoto. Isso permite que você envie e receba alterações entre seu repositório local e o repositório remoto.
git remote add origin (url do repositorio github)
É usado para baixar as atualizações de um repositório remoto para o seu repositório local no Git.
git fetch nome-do-repositorio
Enviar as alterações do seu repositório local para um repositório remoto no Git. Isso atualiza o repositório remoto com as mudanças que você fez localmente, permitindo que outros colaboradores acessem essas alterações e as incorporem ao projeto. Geralmente, você especifica a branch local que deseja enviar e a branch correspondente no repositório remoto.
git push origin nome-da-sua-branch-local
Usado para atualizar o seu repositório local com as alterações do repositório remoto no Git. Ele combina automaticamente as alterações da branch remota para a branch local em que você está trabalhando, trazendo as últimas atualizações do projeto para o seu ambiente de desenvolvimento. Geralmente, é usado após um "git fetch" para trazer essas mudanças para o seu repositório local.
git pull origin main
É usado para combinar as alterações de uma branch para outra no Git. Geralmente, você usa "git merge" para integrar as alterações de uma branch secundária (por exemplo, uma funcionalidade ou correção de bug) na branch principal (geralmente a "master" ou "main"). Isso cria um novo commit que representa a fusão das alterações, unindo as duas linhas de desenvolvimento.
git checkout main git merge feature/nova-funcionalidade
Observação: Mesclar uma branch secundária em uma branch principal
REFERÊNCIAS:
Documentação oficial Git - https://git-scm.com/docs
\