Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Git e Github: qual a importância dessas ferrame...

Git e Github: qual a importância dessas ferramentas para o desenvolvedor

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.

Felipe Pedroso

February 01, 2018
Tweet

More Decks by Felipe Pedroso

Other Decks in Programming

Transcript

  1. “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/
  2. “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/
  3. 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
  4. “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/
  5. 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!”
  6. 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>”
  7. # 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
  8. 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
  9. 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
  10. • 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
  11. 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
  12. 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
  13. 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
  14. 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!
  15. 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)
  16. O Github é um serviço que facilita a colaboração, o

    compartilhamento e interação entre desenvolvedores!
  17. 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