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

Semelhante a Workshop de Introdução ao Git GitHub

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
 
Desmistificando a ferramenta git
Desmistificando a ferramenta gitDesmistificando a ferramenta git
Desmistificando a ferramenta gitDiogo Souza Machado
 
Minicurso GIT PET Computação
Minicurso GIT PET ComputaçãoMinicurso GIT PET Computação
Minicurso GIT PET ComputaçãoBruno Orlandi
 

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

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
 
Desmistificando a ferramenta git
Desmistificando a ferramenta gitDesmistificando a ferramenta git
Desmistificando a ferramenta git
 
Minicurso GIT PET Computação
Minicurso GIT PET ComputaçãoMinicurso GIT PET Computação
Minicurso GIT PET Computação
 
Git e GitHub
Git e GitHubGit e GitHub
Git e GitHub
 

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.