SlideShare uma empresa Scribd logo
1 de 42
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

Visual basic apresentação
Visual basic   apresentaçãoVisual basic   apresentação
Visual basic apresentaçãoSara Gonçalves
 
Django: desenvolvendo aplicações web de maneira simples e rápida!
Django: desenvolvendo aplicações web de maneira simples e rápida!Django: desenvolvendo aplicações web de maneira simples e rápida!
Django: desenvolvendo aplicações web de maneira simples e rápida!Felipe Queiroz
 
.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?Letticia Nicoli
 
Unit Test JavaScript
Unit Test JavaScriptUnit Test JavaScript
Unit Test JavaScriptDan Vitoriano
 
Evolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicEvolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicRicardo Guerra Freitas
 
.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?akamud
 
Introdução ao Github actions - TDC Connections
Introdução ao Github actions - TDC ConnectionsIntrodução ao Github actions - TDC Connections
Introdução ao Github actions - TDC ConnectionsGuillaume Falourd
 
Usando Git na Unity - Gaming For All 2021
Usando Git na Unity - Gaming For All 2021Usando Git na Unity - Gaming For All 2021
Usando Git na Unity - Gaming For All 2021Erik Cruz
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a TestesGregorio Melo
 
Xamarin em 7 minutos
Xamarin em 7 minutosXamarin em 7 minutos
Xamarin em 7 minutosakamud
 
Desenvolvendo uma App multiplataforma compartilhando 90% do código
Desenvolvendo uma App multiplataforma compartilhando 90% do códigoDesenvolvendo uma App multiplataforma compartilhando 90% do código
Desenvolvendo uma App multiplataforma compartilhando 90% do códigoGuilherme Heynemann Bruzzi
 
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...tdc-globalcode
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panosLaís Lima
 
Engenharia rever sa mentebinaria
Engenharia rever sa   mentebinariaEngenharia rever sa   mentebinaria
Engenharia rever sa mentebinariaPatrese Renan
 
Desenvolvendo mvp com python
Desenvolvendo mvp com pythonDesenvolvendo mvp com python
Desenvolvendo mvp com pythonBruno Rocha
 
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIsDevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIsJúnior Porfirio
 
A importância de DDD e o Domain Model na construção de APIs!
A importância de DDD e o Domain Model na construção de APIs!A importância de DDD e o Domain Model na construção de APIs!
A importância de DDD e o Domain Model na construção de APIs!Isaac de Souza
 

Mais procurados (20)

Visual basic
Visual basicVisual basic
Visual basic
 
Visual basic apresentação
Visual basic   apresentaçãoVisual basic   apresentação
Visual basic apresentação
 
Django: desenvolvendo aplicações web de maneira simples e rápida!
Django: desenvolvendo aplicações web de maneira simples e rápida!Django: desenvolvendo aplicações web de maneira simples e rápida!
Django: desenvolvendo aplicações web de maneira simples e rápida!
 
Escalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLIDEscalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLID
 
.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?
 
Unit Test JavaScript
Unit Test JavaScriptUnit Test JavaScript
Unit Test JavaScript
 
Evolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicEvolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual Basic
 
.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?
 
Introdução ao Github actions - TDC Connections
Introdução ao Github actions - TDC ConnectionsIntrodução ao Github actions - TDC Connections
Introdução ao Github actions - TDC Connections
 
Usando Git na Unity - Gaming For All 2021
Usando Git na Unity - Gaming For All 2021Usando Git na Unity - Gaming For All 2021
Usando Git na Unity - Gaming For All 2021
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a Testes
 
Xamarin em 7 minutos
Xamarin em 7 minutosXamarin em 7 minutos
Xamarin em 7 minutos
 
Desenvolvendo uma App multiplataforma compartilhando 90% do código
Desenvolvendo uma App multiplataforma compartilhando 90% do códigoDesenvolvendo uma App multiplataforma compartilhando 90% do código
Desenvolvendo uma App multiplataforma compartilhando 90% do código
 
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panos
 
Engenharia rever sa mentebinaria
Engenharia rever sa   mentebinariaEngenharia rever sa   mentebinaria
Engenharia rever sa mentebinaria
 
Desenvolvendo mvp com python
Desenvolvendo mvp com pythonDesenvolvendo mvp com python
Desenvolvendo mvp com python
 
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIsDevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs
 
A importância de DDD e o Domain Model na construção de APIs!
A importância de DDD e o Domain Model na construção de APIs!A importância de DDD e o Domain Model na construção de APIs!
A importância de DDD e o Domain Model na construção de APIs!
 
Integração Continua - Jenkins
Integração Continua - JenkinsIntegração Continua - Jenkins
Integração Continua - Jenkins
 

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

Workshop sistema de versionamento de código - git
Workshop  sistema de versionamento de código - gitWorkshop  sistema de versionamento de código - git
Workshop sistema de versionamento de código - gitThiago Filadelfo
 
Controlo de Versões Distribuído com Git
Controlo de Versões Distribuído com GitControlo de Versões Distribuído com Git
Controlo de Versões Distribuído com GitC. Augusto Proiete
 
Controlo de Versões Distribuído com Git - C. Augusto Proiete
Controlo de Versões Distribuído com Git - C. Augusto ProieteControlo de Versões Distribuído com Git - C. Augusto Proiete
Controlo de Versões Distribuído com Git - C. Augusto ProieteComunidade NetPonto
 
Github para colaboradores livres
Github para colaboradores livresGithub para colaboradores livres
Github para colaboradores livresThiago Sciotta
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptxCarlos Gonzaga
 
Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011Luís Cobucci
 
Workshop de Introdução ao Git GitHub
Workshop de Introdução ao Git GitHubWorkshop de Introdução ao Git GitHub
Workshop de Introdução ao Git GitHubGilson Junior
 
Como colaborar com projetos opensource com o GitHub
Como colaborar com projetos opensource com o GitHubComo colaborar com projetos opensource com o GitHub
Como colaborar com projetos opensource com o GitHubJulio Monteiro
 
Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...
Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...
Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...Embarcados
 
Kubernetes New Contributors Workshop - Brasil 2022
Kubernetes New Contributors Workshop - Brasil 2022Kubernetes New Contributors Workshop - Brasil 2022
Kubernetes New Contributors Workshop - Brasil 2022Ricardo Katz
 
Fluxo de desenvolvimento de software utilizando Git
Fluxo de desenvolvimento de software utilizando GitFluxo de desenvolvimento de software utilizando Git
Fluxo de desenvolvimento de software utilizando GitBruno Ricardo Siqueira
 

Semelhante a Git e Github: qual a importância dessas ferramentas para o desenvolvedor (20)

Git para Designers
Git para DesignersGit para Designers
Git para Designers
 
Workshop sistema de versionamento de código - git
Workshop  sistema de versionamento de código - gitWorkshop  sistema de versionamento de código - git
Workshop sistema de versionamento de código - git
 
Introdução ao Git
Introdução ao GitIntrodução ao Git
Introdução ao Git
 
Git & GitHub for beginners
Git & GitHub for beginnersGit & GitHub for beginners
Git & GitHub for beginners
 
Git ao GitHub
Git ao GitHubGit ao GitHub
Git ao GitHub
 
Controlo de Versões Distribuído com Git
Controlo de Versões Distribuído com GitControlo de Versões Distribuído com Git
Controlo de Versões Distribuído com Git
 
Controlo de Versões Distribuído com Git - C. Augusto Proiete
Controlo de Versões Distribuído com Git - C. Augusto ProieteControlo de Versões Distribuído com Git - C. Augusto Proiete
Controlo de Versões Distribuído com Git - C. Augusto Proiete
 
GIT Básico
GIT BásicoGIT Básico
GIT Básico
 
Introducao ao Git
Introducao ao GitIntroducao ao Git
Introducao ao Git
 
Github para colaboradores livres
Github para colaboradores livresGithub para colaboradores livres
Github para colaboradores livres
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
 
Git/GitHub
Git/GitHubGit/GitHub
Git/GitHub
 
Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011
 
Git e redmine
Git e redmineGit e redmine
Git e redmine
 
Workshop de Introdução ao Git GitHub
Workshop de Introdução ao Git GitHubWorkshop de Introdução ao Git GitHub
Workshop de Introdução ao Git GitHub
 
Como colaborar com projetos opensource com o GitHub
Como colaborar com projetos opensource com o GitHubComo colaborar com projetos opensource com o GitHub
Como colaborar com projetos opensource com o GitHub
 
Linear Engineering
Linear EngineeringLinear Engineering
Linear Engineering
 
Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...
Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...
Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...
 
Kubernetes New Contributors Workshop - Brasil 2022
Kubernetes New Contributors Workshop - Brasil 2022Kubernetes New Contributors Workshop - Brasil 2022
Kubernetes New Contributors Workshop - Brasil 2022
 
Fluxo de desenvolvimento de software utilizando Git
Fluxo de desenvolvimento de software utilizando GitFluxo de desenvolvimento de software utilizando Git
Fluxo de desenvolvimento de software utilizando Git
 

Mais de Felipe Pedroso

Improved Knowledge from Data: Building an Immersive Data Analysis Platform
Improved Knowledge from Data: Building an Immersive Data Analysis PlatformImproved Knowledge from Data: Building an Immersive Data Analysis Platform
Improved Knowledge from Data: Building an Immersive Data Analysis PlatformFelipe Pedroso
 
Aprendendo Kotlin na Prática
Aprendendo Kotlin na PráticaAprendendo Kotlin na Prática
Aprendendo Kotlin na PráticaFelipe Pedroso
 
Machine Learning em Apps Android com ML Kit
Machine Learning em Apps Android com ML KitMachine Learning em Apps Android com ML Kit
Machine Learning em Apps Android com ML KitFelipe Pedroso
 
Microsoft Bot Framework
Microsoft Bot FrameworkMicrosoft Bot Framework
Microsoft Bot FrameworkFelipe Pedroso
 
Developer Relations 101
Developer Relations 101Developer Relations 101
Developer Relations 101Felipe Pedroso
 
Simplificando chamadas HTTP com o Retrofit
Simplificando chamadas HTTP com o RetrofitSimplificando chamadas HTTP com o Retrofit
Simplificando chamadas HTTP com o RetrofitFelipe Pedroso
 
Introdução ao Retrofit
Introdução ao Retrofit Introdução ao Retrofit
Introdução ao Retrofit Felipe Pedroso
 
Assistive Context-Aware Toolkit (Portuguese)
Assistive Context-Aware Toolkit (Portuguese)Assistive Context-Aware Toolkit (Portuguese)
Assistive Context-Aware Toolkit (Portuguese)Felipe Pedroso
 
Assistive Context-Aware Toolkit (English)
Assistive Context-Aware Toolkit (English)Assistive Context-Aware Toolkit (English)
Assistive Context-Aware Toolkit (English)Felipe Pedroso
 
Conectando Coisas com IFTTT
Conectando Coisas com IFTTTConectando Coisas com IFTTT
Conectando Coisas com IFTTTFelipe Pedroso
 
Minicurso RealSense SDK
Minicurso RealSense SDKMinicurso RealSense SDK
Minicurso RealSense SDKFelipe Pedroso
 
Minicurso "Jogos Multiplataforma com Javascript"
Minicurso "Jogos Multiplataforma com Javascript"Minicurso "Jogos Multiplataforma com Javascript"
Minicurso "Jogos Multiplataforma com Javascript"Felipe Pedroso
 
Palestra Game Engines para Windows 8
Palestra Game Engines para Windows 8Palestra Game Engines para Windows 8
Palestra Game Engines para Windows 8Felipe Pedroso
 
Palestra "Game Engines para Javascript"
Palestra "Game Engines para Javascript"Palestra "Game Engines para Javascript"
Palestra "Game Engines para Javascript"Felipe Pedroso
 
ADB: Um ator invisível
ADB: Um ator invisívelADB: Um ator invisível
ADB: Um ator invisívelFelipe Pedroso
 

Mais de Felipe Pedroso (20)

Improved Knowledge from Data: Building an Immersive Data Analysis Platform
Improved Knowledge from Data: Building an Immersive Data Analysis PlatformImproved Knowledge from Data: Building an Immersive Data Analysis Platform
Improved Knowledge from Data: Building an Immersive Data Analysis Platform
 
Aprendendo Kotlin na Prática
Aprendendo Kotlin na PráticaAprendendo Kotlin na Prática
Aprendendo Kotlin na Prática
 
Machine Learning em Apps Android com ML Kit
Machine Learning em Apps Android com ML KitMachine Learning em Apps Android com ML Kit
Machine Learning em Apps Android com ML Kit
 
Testes A/B
Testes A/BTestes A/B
Testes A/B
 
Microsoft Bot Framework
Microsoft Bot FrameworkMicrosoft Bot Framework
Microsoft Bot Framework
 
Análise SWOT
Análise SWOTAnálise SWOT
Análise SWOT
 
Developer Relations 101
Developer Relations 101Developer Relations 101
Developer Relations 101
 
Simplificando chamadas HTTP com o Retrofit
Simplificando chamadas HTTP com o RetrofitSimplificando chamadas HTTP com o Retrofit
Simplificando chamadas HTTP com o Retrofit
 
Introdução ao Retrofit
Introdução ao Retrofit Introdução ao Retrofit
Introdução ao Retrofit
 
Assistive Context-Aware Toolkit (Portuguese)
Assistive Context-Aware Toolkit (Portuguese)Assistive Context-Aware Toolkit (Portuguese)
Assistive Context-Aware Toolkit (Portuguese)
 
Assistive Context-Aware Toolkit (English)
Assistive Context-Aware Toolkit (English)Assistive Context-Aware Toolkit (English)
Assistive Context-Aware Toolkit (English)
 
Conectando Coisas com IFTTT
Conectando Coisas com IFTTTConectando Coisas com IFTTT
Conectando Coisas com IFTTT
 
Minicurso RealSense SDK
Minicurso RealSense SDKMinicurso RealSense SDK
Minicurso RealSense SDK
 
RealSense SDK
RealSense SDKRealSense SDK
RealSense SDK
 
Minicurso "Jogos Multiplataforma com Javascript"
Minicurso "Jogos Multiplataforma com Javascript"Minicurso "Jogos Multiplataforma com Javascript"
Minicurso "Jogos Multiplataforma com Javascript"
 
RealSense SDK
RealSense SDKRealSense SDK
RealSense SDK
 
Palestra Game Engines para Windows 8
Palestra Game Engines para Windows 8Palestra Game Engines para Windows 8
Palestra Game Engines para Windows 8
 
Palestra "Game Engines para Javascript"
Palestra "Game Engines para Javascript"Palestra "Game Engines para Javascript"
Palestra "Game Engines para Javascript"
 
Fat binaries
Fat binariesFat binaries
Fat binaries
 
ADB: Um ator invisível
ADB: Um ator invisívelADB: Um ator invisível
ADB: Um ator invisível
 

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
  • 5. A palestra não é um curso detalhado de git e linha de comando!
  • 6. O que é o Git?
  • 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/
  • 9. Sistema de Controle de Versão?
  • 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!”
  • 14. Mas como começar a usar?
  • 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
  • 20. Para aprender mais... Curso Code School Curso Udacity Livro Pro Git
  • 21. Treinamento de 15 minutos try.github.io
  • 22. Mas só tem linha de comando?
  • 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
  • 24. E para compartilhar esse repositório com outras pessoas?
  • 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
  • 29. E esse tal de 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 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!
  • 36. Melhorar suas chances de encontrar um emprego
  • 38. Hospedar uma página (projeto ou pessoal)
  • 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