SlideShare uma empresa Scribd logo
1 de 47
Introdução ao
Git/GitHub
GILSON OLIVEIRA JR
24/02/2018
Nossa jornada no dia de hoje
Saber se localizar no mundo de controle de versão
Integrando o controle de versão no seu fluxo de trabalho individual
Colaborando em projetos maiores com o Git/Github
Passo 1:
Controle de versão
SE LOCALIZANDO NO CONTROLE DE VERSÃO
Controle de Versão
TIPOS E SOFTWARES RELACIONADOS
.old
_backup
pasta v1, v2, v3
E-mail pra vc mesmo
QUEM NUNCA???
Porque Controlar Versão?
Manutenção de
um histórico
Backup Colaboração Controle de
Atividades
Paralelas
Automação de
Implementação
Métodos de Controle de Versão
Manual Auxiliado por Software
Por que o GIT?
RAZÕES PORQUE ESCOLHEMOS O GIT E
UM POUCO DO SEU HISTÓRICO
Porque o Git?
Porque o Git?
• Velocidade
• Design Simples
• Desenvolvimento não linear
• Totalmente distribuído
• Robusto (capaz de lidar com projetos de grande porte)
Um pouco do Histórico
1991 - 2002
Patches e Diretórios
compartilhados
2002 - 2005 2005 - ...
Passo 2:
Usando o Git no seu fluxo de
trabalho
USANDO O GIT NOS SEUS PROJETOS
Primeiros passos
O QUE PRECISAMOS SABER ANTES DE
TRABALHAR COM O GIT
Conceitos Git
Outros sistemas
guardam alterações
em arquivos, o Git
trabalha com fotos
dos arquivos no
projeto
Integridade
Tudo é verificado
com CHECK-SUM
com SHA-1
Local
Quase todas as
operações no Git
são locais. Logo
você pode
trabalhar offline e
testar seu código
tranquilamente
Somente adição
de dados
Git geralmente
adiciona dados no
seu controle, isso
infere que quase
sempre se pode
reverter qualquer
ação
Configuração da ferramenta 3 níveis
Nível Descrição Prioridade
Sistema Configurações comuns a todos usuários do
sistema (computador) 3
Global Configurações de um usuário específico do
sistema (o que está logado) 2
Local Configurações específicas para o projeto que
você está trabalhando 1
IMPORTANTE: Configurações locais (projeto) tem prioridade sobre
configurações globais e de sistema
Prática 1/1
• Criação de um usuário no GitHub
• Configuração básica do seu ambiente após instalação do Git
localmente
• COMANDOS:
• git config
Pratica 1/2
Comandos que iremos explorar nessa sessão:
• Iniciando um repositório:
• git init
• git clone
Os três estados Básicos
Essa é uma das partes mais importantes de se saber antes de começar a trabalhar com o Git.
No detalhe...
Fonte: https://git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository
Pratica 1/3
• Adicionando arquivos na área de staging
• git add
• Verificando o status do nosso diretório de trabalho:
• git status
• Fazendo commits
• git commit
• git commit -m “mensagem”
• Fazendo uma correção
• git commit --amend
Abrindo a caixa de Ferramentas
Pratica 1/4
• Visualizando as diferenças entre arquivos
• git diff
• Visualizando histórico de alterações
• git log
Limpando a bagunça
Parte Prática 1/5
• git commit –amend
• git reset
• git checkout --
Branching
& Merging
Por que usar branches?
Base do Código Funcionando (Master sugestão)
Base do Código em Produção
Base do Código emTeste
Base do Código em Desenvolvimento
Playground para novas funcionalidades
Estabilidade
Pratica 1/6
• git branch
• git checkout
• git merge
O que é um commit?
Um branch nada mais é que um ponteiro
para um commit.
novoBranch
Criando um novo branch e fazendo um novo
commit...
Uma historinha bem comum...
1
3
2
4
Exemplos de Branches de vida longa
Stashing || Commiting?
Parte pratica 1-7
• git stash save
• git stash list
• git stash pop
Passo 3:
Colaboração
USANDO O GIT NOS SEUS PROJETOS ENVOLVENDO VÁRIOS
DESENVOLVEDORES
Trabalhando em equipe
OU +
Repositório Remoto (DVSC)
Tudo bem trabalhar local...
mas em algum momento
temos que sincronizar as
bases
Serviços Online
...
Por que o GitHub
O que é o GitHub
“A Web-based Git repository hosting
service, which offers all of the distributed revision
control and source code management (SCM)
functionality of Git as well as adding its own features
was launched. GitHub provides a Web-based
graphical interface and desktop as well as
mobile integration. It also provides access
control and several collaboration features such as
bug tracking, feature requests, task
management, and wikis for every
project.”
Servidor de repositório
InterfaceWeb
Controle de acesso
Gestão de Bug
Requisições de
Funcionalidades
Gestão de tarefas
Wiki para os projetos
Mona, o Octocat
Curiosidades
• Foi criado em 2007, pelo mesmo criador do
passarinho doTwitter – Oxley
https://www.idokungfoo.com/
https://dribbble.com/simonox
Parte Prática 2/1
• Criando um repositório
• Configuração de acessos
• Configurando a lista de .gitignore
Como o git trabalha com remotos
Tracking Branches
• Tracking Branches são links entre branches locais e remotos
• Listando:
• git branch -vv
• Removendo relacionamentos:
• Git branch --unset-upstream
• Criando um novo relacionamento:
• git checkout --track origin/<branchname>
• git push –u origin <nomebranch>
Fork e Pull Requests
https://guides.github.com/introduction/flow/
Parte pratica 2/2
• Fork
• Create a pull request
• git remote add
• git remote show
• git branch -vv
• git fetch push pull
• Criando pull requests
• Merge com conflitos
Referências
• https://git-scm.com
• https://help.git.com
• https://guides.github.com/
• Youtube – vários videos
• Google – várias buscas

Mais conteúdo relacionado

Mais procurados

CV - Jessica
CV - JessicaCV - Jessica
CV - Jessicacatipt
 
PMAOE_2021.pptx
PMAOE_2021.pptxPMAOE_2021.pptx
PMAOE_2021.pptx07201928
 
Plataformas Colaborativas e de Aprendizagem
Plataformas Colaborativas e de AprendizagemPlataformas Colaborativas e de Aprendizagem
Plataformas Colaborativas e de AprendizagemCarina Mano
 
Gabriel portifólio estágio supervisionado ii
Gabriel   portifólio estágio supervisionado iiGabriel   portifólio estágio supervisionado ii
Gabriel portifólio estágio supervisionado iifamiliaestagio
 
Design de Interfaces para Dispositivos Móveis
Design de Interfaces para Dispositivos MóveisDesign de Interfaces para Dispositivos Móveis
Design de Interfaces para Dispositivos MóveisInstituto Faber-Ludens
 
Papel do eformador
Papel do eformadorPapel do eformador
Papel do eformadore.ferreira
 
Papel do E-Formador (Curso E-Formadores)
Papel do E-Formador (Curso E-Formadores)Papel do E-Formador (Curso E-Formadores)
Papel do E-Formador (Curso E-Formadores)carlospimentacom
 
Defesa de mestrado Valeria de Oliveira 9.8.13
Defesa de mestrado   Valeria de Oliveira 9.8.13Defesa de mestrado   Valeria de Oliveira 9.8.13
Defesa de mestrado Valeria de Oliveira 9.8.13Valeria de Oliveira
 
Slides módulo 3 (fpif)
Slides módulo 3 (fpif)Slides módulo 3 (fpif)
Slides módulo 3 (fpif)Isabel Grazina
 
Apresentação Tese Doutoramento
Apresentação Tese DoutoramentoApresentação Tese Doutoramento
Apresentação Tese DoutoramentoMónica Aresta
 
Criacao de recursos educativos digitais abertos
Criacao de recursos educativos digitais abertosCriacao de recursos educativos digitais abertos
Criacao de recursos educativos digitais abertosFernando Rui Campos
 

Mais procurados (20)

Portfólios
PortfóliosPortfólios
Portfólios
 
CV - Jessica
CV - JessicaCV - Jessica
CV - Jessica
 
PMAOE_2021.pptx
PMAOE_2021.pptxPMAOE_2021.pptx
PMAOE_2021.pptx
 
MPEMC AULA 1: Introdução
MPEMC AULA 1: IntroduçãoMPEMC AULA 1: Introdução
MPEMC AULA 1: Introdução
 
Plataformas Colaborativas e de Aprendizagem
Plataformas Colaborativas e de AprendizagemPlataformas Colaborativas e de Aprendizagem
Plataformas Colaborativas e de Aprendizagem
 
Dissertação mestrado Ciência da Educação / Neldilene G. Soares
Dissertação  mestrado Ciência da Educação / Neldilene G. SoaresDissertação  mestrado Ciência da Educação / Neldilene G. Soares
Dissertação mestrado Ciência da Educação / Neldilene G. Soares
 
Gabriel portifólio estágio supervisionado ii
Gabriel   portifólio estágio supervisionado iiGabriel   portifólio estágio supervisionado ii
Gabriel portifólio estágio supervisionado ii
 
Aplicativos Móveis
Aplicativos MóveisAplicativos Móveis
Aplicativos Móveis
 
Educação e novas tecnologias slides
Educação e novas tecnologias slidesEducação e novas tecnologias slides
Educação e novas tecnologias slides
 
Portfolyo Nedir ?
Portfolyo Nedir ?Portfolyo Nedir ?
Portfolyo Nedir ?
 
Design de Interfaces para Dispositivos Móveis
Design de Interfaces para Dispositivos MóveisDesign de Interfaces para Dispositivos Móveis
Design de Interfaces para Dispositivos Móveis
 
Papel do eformador
Papel do eformadorPapel do eformador
Papel do eformador
 
Papel do E-Formador (Curso E-Formadores)
Papel do E-Formador (Curso E-Formadores)Papel do E-Formador (Curso E-Formadores)
Papel do E-Formador (Curso E-Formadores)
 
Defesa de mestrado Valeria de Oliveira 9.8.13
Defesa de mestrado   Valeria de Oliveira 9.8.13Defesa de mestrado   Valeria de Oliveira 9.8.13
Defesa de mestrado Valeria de Oliveira 9.8.13
 
Cv alexandra
Cv alexandraCv alexandra
Cv alexandra
 
Slides módulo 3 (fpif)
Slides módulo 3 (fpif)Slides módulo 3 (fpif)
Slides módulo 3 (fpif)
 
Apresentação Tese Doutoramento
Apresentação Tese DoutoramentoApresentação Tese Doutoramento
Apresentação Tese Doutoramento
 
Criacao de recursos educativos digitais abertos
Criacao de recursos educativos digitais abertosCriacao de recursos educativos digitais abertos
Criacao de recursos educativos digitais abertos
 
Canva
CanvaCanva
Canva
 
Metodologias Ativas, Imersivas e Inovadoras
Metodologias Ativas, Imersivas e InovadorasMetodologias Ativas, Imersivas e Inovadoras
Metodologias Ativas, Imersivas e Inovadoras
 

Semelhante a Workshop de Introdução ao Git 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 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
 
Git e boas praticas!
Git e boas praticas!Git e boas praticas!
Git e boas praticas!Vitor Silva
 
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
 
Minicurso GIT 2022 - SENAC
Minicurso GIT 2022 - SENACMinicurso GIT 2022 - SENAC
Minicurso GIT 2022 - SENACDanilo Pinotti
 
Git - Sistema Descentralizado de Controle de Versões
Git - Sistema Descentralizado de Controle de VersõesGit - Sistema Descentralizado de Controle de Versões
Git - Sistema Descentralizado de Controle de VersõesLeandro Cavalcante
 
Interop git hubactions v2
Interop git hubactions v2Interop git hubactions v2
Interop git hubactions v2Vinicius Moura
 
workshopgitparainiciantes1-190901224755.pdf
workshopgitparainiciantes1-190901224755.pdfworkshopgitparainiciantes1-190901224755.pdf
workshopgitparainiciantes1-190901224755.pdfAuriceliaRosa
 
Workshop git para iniciantes
Workshop git para iniciantesWorkshop git para iniciantes
Workshop git para iniciantesPaula Santana
 

Semelhante a Workshop de Introdução ao Git GitHub (20)

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
 
Curso git-0001
Curso git-0001Curso git-0001
Curso git-0001
 
Git e boas praticas!
Git e boas praticas!Git e boas praticas!
Git e boas praticas!
 
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
 
Minicurso GIT 2022 - SENAC
Minicurso GIT 2022 - SENACMinicurso GIT 2022 - SENAC
Minicurso GIT 2022 - SENAC
 
Primeiros passos - GIT
Primeiros passos - GITPrimeiros passos - GIT
Primeiros passos - GIT
 
Git - Sistema Descentralizado de Controle de Versões
Git - Sistema Descentralizado de Controle de VersõesGit - Sistema Descentralizado de Controle de Versões
Git - Sistema Descentralizado de Controle de Versões
 
Git e github
Git e githubGit e github
Git e github
 
Git
GitGit
Git
 
GitHub Actions
GitHub ActionsGitHub Actions
GitHub Actions
 
Interop git hubactions v2
Interop git hubactions v2Interop git hubactions v2
Interop git hubactions v2
 
Git/GitHub
Git/GitHubGit/GitHub
Git/GitHub
 
workshopgitparainiciantes1-190901224755.pdf
workshopgitparainiciantes1-190901224755.pdfworkshopgitparainiciantes1-190901224755.pdf
workshopgitparainiciantes1-190901224755.pdf
 
Git & GitHub for beginners
Git & GitHub for beginnersGit & GitHub for beginners
Git & GitHub for beginners
 
Ferramentas para versionamento Utilizando git
Ferramentas para versionamento Utilizando gitFerramentas para versionamento Utilizando git
Ferramentas para versionamento Utilizando git
 
Git ao GitHub
Git ao GitHubGit ao GitHub
Git ao GitHub
 
Workshop git para iniciantes
Workshop git para iniciantesWorkshop git para iniciantes
Workshop git para iniciantes
 
GIT Básico
GIT BásicoGIT Básico
GIT Básico
 

Workshop de Introdução ao Git GitHub

Notas do Editor

  1. Conceito e Prática
  2. Perguntar para que mais é usado
  3. 1) Falar sobre o maior projeto de colaboração do mundo: Desenvolvimento do Linux 2) Uso da ferramenta proprietária BitKeeper 4) In 2005, the relationship between the community that developed the Linux kernel and the commercial company that developed BitKeeper broke down, and the tool’s free-of-charge status was revoked. This prompted the Linux development community (and in particular Linus Torvalds, the creator of Linux) to develop their own tool based on some of the lessons they learned while using BitKeeper. Some of the goals of the new system were as follows: Speed Simple design Strong support for non-linear development (thousands of parallel branches) Fully distributed Able to handle large projects like the Linux kernel efficiently (speed and data size)
  4. Criar conta no GitHub (chamar alguém que não tenha conta para criar na hora) - alertar sobre o e-mail no-reply Configurar nome de usuário git config --global user.name "nome"   Nota: se não informar o nível, ele entende como configuração local   Configurar e-mail (lembrar de informar o e-mail no reply) git config --global user.email email@email.com Configurar editor git config core-editor
  5. Vamos entrar em uma das partes mais legais do GIT agora. E para isso temos que entrar um pouco mais a fundo e saber o que é um commit.
  6. Geralmente não queremos mexer no código de produção, ou base estável do meu código (se pensarmos em releases alpha, beta, etc).
  7. Um commit é um ponteiro para um snapshot, que por sua vez é uma arvore de arquivos. Esses commits podem ter relação com outros commits.
  8. Ao criar um novo branch, estamos criando um novo ponteiro.