Tópicos Especiais em Estatística Comp.
Git e GitHub
Prof. Jodavid Ferreira
UFPE
Git
O Git é um DVCS (SCVD - Sistema de Controle de Versão Distribuído).
- O Git é um projeto de código aberto e com manutenção ativa.
- Ele permite que várias pessoas trabalhem em um projeto simultaneamente, controlando as mudanças feitas no código-fonte ao longo do tempo.
Git
- Cada desenvolvedor pode ter uma cópia completa do repositório em seu próprio computador e trabalhar offline.
- Além do fato de ser distribuído, o Git foi projetado pensando em desempenho, segurança e flexibilidade.
- Possui como principais características do Git incluem ramificação eficiente, mesclagem simples e histórico de alterações completo.
Git
VCS Tradicional
![]()
GIT
Git
Por que utilizar o Git:
- Controle de Versão: Permite rastrear as alterações no código ao longo do tempo.
- Colaboração: Facilita o trabalho colaborativo, permitindo que vários desenvolvedores contribuam para um projeto simultaneamente.
- Ramificação e Mesclagem: Facilita o desenvolvimento paralelo e a integração de novas funcionalidades sem interferir no código principal.
- Histórico Completo: Mantém um histórico completo de todas as alterações, facilitando a identificação de problemas e a reversão para versões anteriores se necessário.
Git
Principais Conceitos:
- Repositório: É um diretório que contém todos os arquivos e histórico de um projeto.
- Commit: É uma alteração no código-fonte que é salva no repositório.
- Branch: É uma ramificação do código-fonte que permite trabalhar em novas funcionalidades sem interferir no código principal.
- Merge: É a operação de combinar duas ramificações em uma única ramificação.
- Pull Request: É uma solicitação para mesclar as alterações de uma ramificação em outra.
Git
Por que usar o git?
- Uma das maiores vantagens do Git são seus recursos de branch.
- Os branches de recursos oferecem um ambiente isolado para cada alteração na base de código.
- Quando um desenvolvedor quer começar a trabalhar em algo, não importa a complexidade, ele cria uma nova branch.
- Assim, é garantido que o branch principal sempre contenha código de qualidade de produção.
Git
Por que usar o git?
- O uso de branches de recursos não é apenas mais confiável do que a edição direta do código de produção; ele também traz benefícios organizacionais.
- Eles permitem que você represente o trabalho de desenvolvimento com a mesma divisão que foi definida no inicio do projeto.
- Isso significa que você pode rastrear o progresso de cada recurso individualmente, e não apenas como parte de um todo.
Git
1 
Git
O que é um commit?
- Um commit é um snapshot dos seus arquivos gravados no seu repositório local. Uma versão completa dos arquivos e a diferença entre os arquivos que mudaram é gravado. Para os arquivos que não mudaram de um commit para outro, o git salva apenas um link da cópia anterior idêntica.
Por que commits são importantes?
- Acelera revisões de código
- Ajuda a entender as mudanças
- Facilita a identificação de bugs
- Explica o “por que” que não pode ser escrito apenas com código
- Ajuda a futuros colaboradores descobrir por que e como as mudanças foram feitas
Git
1 
Git - Boas práticas
- Use a forma imperativa
Good: “Use InventoryBackendPool para recuperar o inventário do back-end”
Bad: “Usou InventoryBackendPool para recuperar o inventário do back-end”
Por quê?
A mensagem de commit diz o que ela faz, e não o que foi feito. Uma boa forma de começar a escrever o commit é usando:
Example:
If applied, this commit will: Use InventoryBackendPool to retrieve inventory backend
Git - Boas práticas
- Primeira letra em maiúsculo
Good: Adicionar método use ao modelo Credit
Um commit é uma frase, e toda frase começa com letra maiúscula, portanto é importante fazer o uso dessa regra.
- Comunique o que o commit faz sem que seja necessário olhar o conteúdo do commit
Good: Aumentar a margem esquerda entre a caixa de texto e a estrutura de layout
Git - Boas práticas
- Mantenha a consistência de Idioma
Good:
- Add use method to Credit model.
- Use InventoryBackendPool to retrieve inventory backend.
- Fix method name of InventoryBackend child classes
Bad:
- Usa o InventoryBackendPool para recuperar o backend de estoque
- Add use method to Credit model
- Agora vai
Git - Boas práticas
Semântica de Mensagens commit
Veja como uma pequena mudança no estilo da mensagem do seu commit pode torná-lo um programador melhor.
Formato: <type>(<scope>): <subject>
<scope>
é opicional
Exemplo
feat: add hat wobble
^--^ ^------------^
| |
| +-> Resumo no tempo presente.
|
+-------> Type: chore, docs, feat, fix, refactor, style, or test.
add hat wobble: adicionar vibração ao chapéu (Se possível procure usar sempre inglês, pois é a língua mais utilizada no mundo da programação).
Git - Boas práticas
Como utilizar os tipos:
Tipos:
feat
: (nova funcionalidade para o usuário, não uma nova funcionalidade para o script de construção)
fix
: (correção de bug para o usuário, não uma correção para um script de construção)
docs
: (alterações na documentação)
style
: (formatação, ponto e vírgula ausente, etc.; nenhuma mudança no código de produção)
refactor
: (refatoração do código de produção, por exemplo, renomear uma variável)
test
: (adicionar testes ausentes, refatorar testes; nenhuma mudança no código de produção)
chore
: (atualizar tarefas do grunt, etc.; nenhuma mudança no código de produção)
Git
Principais Comandos:
- git init: Inicializa um repositório Git em um diretório.
- git clone: Clona um repositório Git existente para o seu computador.
- git add: Adiciona arquivos ao índice (staging area) para serem incluídos no próximo commit.
- git commit: Salva as alterações no repositório.
- git push: Envia as alterações locais para um repositório remoto.
- git pull: Atualiza o repositório local com as alterações do repositório remoto.
Git
Principais Comandos:
- git status: Exibe o status dos arquivos no repositório.
- git log: Exibe o histórico de commits.
- git branch: Exibe a lista de branches e permite criar, renomear e excluir branches.
- git checkout: Muda para um branch específico ou restaura arquivos do repositório.
- git merge: Combina duas ramificações em uma única ramificação.
Git
- git pull request: Cria uma solicitação para mesclar as alterações de uma ramificação em outra.
- git diff: Exibe as diferenças entre arquivos no repositório.
- git reset: Desfaz as alterações no repositório.
- git fetch: Busca as alterações do repositório remoto, mas não as mescla com o repositório local.
Git
1 
Git
É possível fazer o download do Git no link abaixo:
Existe a versão para windows, Mac e Linux.
Alguns Softwares para utilizar IDE para GIT em Windows e Linux:
Github
GitHub é uma plataforma de hospedagem de código-fonte e colaboração para desenvolvedores. Ela foi lançada em 2008 e foi adquirida pela Microsoft em 2018.
GitHub não é GIT, mas sim uma plataforma que utiliza o Git para controle de versão, ou seja, é uma ferramenta que utiliza o Git para armazenar e compartilhar código.
O GitHub é uma plataforma baseada na web que permite que os desenvolvedores armazenem, compartilhem e colaborem em projetos de software.
Ele fornece recursos como controle de versão, rastreamento de problemas, wikis e integração contínua de forma gratuita para projetos de código aberto.
O GitHub é utilizado por milhões de desenvolvedores em todo o mundo para hospedar e colaborar em projetos de código aberto e privados.
Github
Por que é interessante e importante usar o Git em uma plataforma como GitHub?
Primeiramente porque manter os dados de projetos em um repositório remoto é uma prática recomendada para garantir a segurança dos dados.
Também pode atrair atenção da comunidade para o seu projeto, permitindo que outros desenvolvedores contribuam com o código.
A interação entre desenvolvedores é facilitada, pois o GitHub fornece recursos que tornam a jornada do desenvolvimento menos complexa.
Github
Principais Recursos do GitHub:
- Repositórios: São os diretórios onde os arquivos do projeto são armazenados.
- Issues: São problemas ou tarefas que precisam ser resolvidos no projeto.
- Pull Requests: São solicitações para mesclar as alterações de uma ramificação em outra.
- Wiki: É uma coleção de páginas que podem ser editadas por qualquer pessoa com acesso ao repositório.
- Gists: São pequenos trechos de código que podem ser compartilhados com outras pessoas.
Github
- Ter um ambiente seguro, gratuito e colaborativo, fez do GitHub uma das maiores plataformas de armazenamento e compartilhamento de código do mundo baseado em git.
Github
![]()
Github
Principais comandos para usar o GitHub:
- git remote: Adiciona um repositório remoto.
- git push: Envia as alterações locais para um repositório remoto.
- git pull: Atualiza o repositório local com as alterações do repositório remoto.
- git clone: Clona um repositório Git existente para o seu computador.
- git fork: Cria uma cópia de um repositório remoto no seu próprio perfil do GitHub.
Github
Criando um passo a passo para utilizar o Git + GitHub:
- Criar um repositório no GitHub:
- Acesse o GitHub e clique em “New Repository”.
- Dê um nome ao repositório e clique em “Create Repository”.
- Clonar o repositório no seu computador:
- Copie o link do repositório.
- Abra o terminal e digite
git clone <link do repositório>
.
- Adicionar arquivos ao repositório:
- Adicione os arquivos ao repositório com o comando
git add
.
- Salve as alterações com o comando
git commit
.
- Enviar as alterações para o repositório remoto:
- Envie as alterações para o repositório remoto com o comando
git push
.
Github
Alguns comandos Extras:
- Criar uma Pull Request:
- Crie uma Pull Request para mesclar as alterações de uma ramificação em outra.
- Atualizar o repositório local:
- Atualize o repositório local com as alterações do repositório remoto com o comando
git pull
.
- Atualizar o repositório remoto:
- Atualize o repositório remoto com as alterações do repositório local com o comando
git push
.
- Fazer um Fork de um repositório:
- Faça um Fork de um repositório remoto no seu próprio perfil do GitHub com o comando
git fork
.
Referências para serem utilizadas
Extras:
- https://www.conventionalcommits.org/
- https://seesparkbox.com/foundry/semantic_commit_messages
- http://karma-runner.github.io/1.0/dev/git-commit-msg.html