Essa palestra introduz o conceito de git como sistema de controle de versão e discute como o Github é importante para os desenvolvedores como ferramenta e plataforma social.
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
1. Git e Github: qual a
importância dessas
ferramentas para o
desenvolvedor?
Felipe Pedroso
2. Felipe Pedroso
● Engenheiro da Computação (FACENS), com Pós em
Produção e Desenvolvimento de Jogos (SENAC) e
atualmente Mestrando na Unicamp
● Trabalhou para Intel, LG, Instituto Eldorado, CI&T e FIT.
Atualmente possui uma empresa de consultoria,
desenvolvimento de software e treinamento
● Áreas de interesse: plataformas móveis, arquitetura de
software, developer experience e internet das coisas.
felipeapedroso
felipepedroso
7. “Git is a free and open source
distributed version control system
designed to handle everything from
small to very large projects with speed
and efficiency.”
Fonte: https://git-scm.com/
8. “Git is a free and open source
distributed version control system
designed to handle everything from
small to very large projects with speed
and efficiency.”
Fonte: https://git-scm.com/
11. Sistema de Controle de Versão
● Sistema que registra as alterações em um arquivo ou conjunto de
arquivos ao longo do tempo, permitindo que versões mais antigas sejam
recuperadas caso seja necessário.
● Outros exemplos de Sistemas de Controle de Versão:
○ Concurrent Version System (CVS)
○ Subversion (SVN)
○ Mercurial
○ Bazaar
○ BitKeeper
12. “Git is a free and open source
distributed version control system
designed to handle everything from
small to very large projects with
speed and efficiency.”
Fonte: https://git-scm.com/
13. Um pouco de contexto e motivação
● O git foi criado em 2005 pelo Linus Torvalds para poder gerenciar o
código fonte do kernel do Linux
● Os principais objetivos na criação do git foram:
○ Velocidade
○ Design Simples
○ Suportar um desenvolvimento “não linear”
○ Ser um controle de versão distribuído
● Palestra “Git: Source code control the way it was mean to be!”
15. Instalação e Configuração
● O processo de instalação é bem simples, bastando seguir as instruções
do site do git de acordo com a sua plataforma:
○ Linux
○ Mac
○ Windows
● A única configuração recomendada é seu nome e email para identificar
sua atividade nos repositórios. Para isso basta executar:
git config --global user.name “<Seu Nome>”
git config --global user.email “<Seu Email>”
16. # Inicializando o projeto
$ cd <Diretório do Projeto>
$ git init
# Adicionando todos arquivos da pasta
$ git add .
# “Salvando” as modificações feitas nos arquivos
$ git commit -m “<Mensagem do commit>”
Utilização mais básica
18. Dificultando um pouquinho...
git add <Caminho do arquivo> Adiciona um arquivo específico
git status
Exibe arquivos modificados desde o
último commit
git diff
Exibe as mudanças desde o último
commit
git checkout <Caminho do arquivo> Desfaz as mudanças em um arquivo
git log Exibe o log de commits do repositório
git help
Exibe os comandos disponíveis e suas
funções
19. Um pouquinho mais...
git clone “Clona” um repositório remoto
git fetch “Baixa” objetos e referências de outros projetos
git push “Envia” o código local para repositórios remotos
git pull
Sincroniza o código com outro repositório remoto ou
branch
git branch Lista, cria ou deleta “branches”
git blame Mostra a revisão e qual autor de cada linha de código
23. ● O git oferece ferramentas gráficas
(git-gui e gitk) para auxiliar na sua
utilização
● Além dessas ferramentas existem
diversas implementações de
ferramentas gráficas para o git:
git-scm.com/downloads/guis
● O Github disponibiliza também o Github
Desktop
Ferramentas Gráficas
27. … ou você pode configurar seu
próprio servidor!
28. Enviando código para um repositório remoto
● Crie o repositório no serviço que preferir (Ex.: Github)
● Após executar os passos do slide "Utilização mais básica", execute os
seguintes comandos:
# Adicionando um repositório remoto
# Dica: a URL é aquela terminada por “.git”
$ git remote add origin <URL do Repositório>
# Envie o código para o
$ git push -u origin master
30. O que é o Github?
● É um serviço de hospedagem de
repositórios git, permitindo a criação de
repositórios públicos gratuitos e
repositórios privados pagos
● Além de hospedar repositórios oferece
diversos serviços para ajudar em
projetos de software e colaboração
● Fundada em 2008 por Tom
Preston-Werner, Chris Wanstrath e PJ
Hyett
● Tem como mascote o Octocat
31. OK, mas o que dá para fazer além de
compartilhar meus projetos?
33. Você pode...
● Enviar correções de código para os projetos através de pull-requests
● Reportar problemas ou bugs
● Melhorar a documentação
● Conhecer e ter contato com os criadores dos projetos
● Criar sua própria versão de um projeto para resolver um problema
específico usando forks
35. Como?
● Estudando o código fonte de projetos famosos (Ex.: Android, Node.js,
React, etc)
● Explorando exemplos de código da sua linguagem de programação ou
assunto favorito (Ex.: Kubernetes, Java, C#, Machine Learning, etc)
● Lendo a documentação ou guias de utilização dos projetos
● Criando seus exemplos e publicando para que outros possam avaliar seu
código ou aprender também!
39. Procurar emprego!
● O Github fornece um “mural” de vagas: jobs.github.com
● Você pode encontrar repositórios de vagas: FrontendBr, AndroidDevBr,
PhpDevBr, CocoaHeadsBrasil, etc
● Você pode acompanhar os trabalhos de algumas empresas (ex.: Stone
Payments, iFood, Square, Google, Microsoft, etc)
40. O Github é um serviço que facilita a
colaboração, o compartilhamento e
interação entre desenvolvedores!
41. Referências
● Pro Git (Livro Gratuito)
● Learn Git (Curso Gratuito)
● How to use Git and Github (Curso Gratuito)
● Git Crash Course (Em Inglês)
● Github Guides