Git e Github: qual a
importância dessas
ferramentas para o
desenvolvedor?
Felipe Pedroso
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
Avisos Gerais
Slides disponíveis em:
slideshare.net/felipe_pedroso
A palestra não é um curso detalhado
de git e linha de comando!
O que é o Git?
“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/
“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/
Sistema de Controle de Versão?
Fonte: Geek&Poke
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
“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/
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!”
Mas como começar a usar?
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>”
# 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
Fácil, não?
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
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
Para aprender mais...
Curso Code School Curso Udacity Livro Pro Git
Treinamento de 15 minutos
try.github.io
Mas só tem linha de comando?
● 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
E para compartilhar esse repositório
com outras pessoas?
Primeira pergunta: onde?
Existem alguns serviços online...
… ou você pode configurar seu
próprio servidor!
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
E esse tal de
Github?
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
OK, mas o que dá para fazer além de
compartilhar meus projetos?
Colaborar com outros projetos
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
Aprender a programar
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!
Melhorar suas chances de encontrar
um emprego
Portfólio
Hospedar uma página (projeto ou pessoal)
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)
O Github é um serviço que facilita a
colaboração, o compartilhamento e
interação entre desenvolvedores!
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
Obrigado!
felipeapedroso
felipepedroso

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 ● Engenheiroda 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
  • 3.
  • 4.
  • 5.
    A palestra nãoé um curso detalhado de git e linha de comando!
  • 6.
    O que éo Git?
  • 7.
    “Git is afree 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 afree 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/
  • 9.
  • 10.
  • 11.
    Sistema de Controlede 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 afree 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 decontexto 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!”
  • 14.
  • 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 oprojeto $ 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
  • 17.
  • 18.
    Dificultando um pouquinho... gitadd <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... gitclone “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
  • 20.
    Para aprender mais... CursoCode School Curso Udacity Livro Pro Git
  • 21.
    Treinamento de 15minutos try.github.io
  • 22.
    Mas só temlinha de comando?
  • 23.
    ● O gitoferece 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
  • 24.
    E para compartilharesse repositório com outras pessoas?
  • 25.
  • 26.
  • 27.
    … ou vocêpode configurar seu próprio servidor!
  • 28.
    Enviando código paraum 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
  • 29.
    E esse talde Github?
  • 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 oque dá para fazer além de compartilhar meus projetos?
  • 32.
  • 33.
    Você pode... ● Enviarcorreçõ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
  • 34.
  • 35.
    Como? ● Estudando ocó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!
  • 36.
    Melhorar suas chancesde encontrar um emprego
  • 37.
  • 38.
    Hospedar uma página(projeto ou pessoal)
  • 39.
    Procurar emprego! ● OGithub 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
  • 42.