SlideShare uma empresa Scribd logo
1 de 61
Baixar para ler offline
@evandroeisinger
@helmedeiros
@rssilva
git that like a boss
ESCREVENDOCÓDIGO
COMPARTILHANDOCONHECIMENTO
QUEM?
@evandroeisinger
QUEM?
@helmedeiros
QUEM?
@rssilva
o que é git ?
instalando o git
comandos no git
repositórios no git
visão abrangente
ambiente configurado
trabalhando localmenteNOSSA AGENDA
HACKATHON
trabalhando em time
git that like a boss
repositórios no github
trabalhando online
Git é um sistema de controle de versão
distribuído livre e de código aberto, projetado
para lidar com tudo, de pequenos a grandes
projetos, com velocidade e eficiência.
http://git-scm.com/
!=
enxuto
branching
O QUE É GIT?
git that like a boss
offLine
distribuido
Git pode ser usado online ou offline, é possível fazer de
tudo, branching, merging, commiting, mesmo que você
não esteja conectado a nenhuma rede.offLine
DISTRIBUIDO
Assim que você retorna a sua rede é possível enviar ou
baixar informações de outros repositórios remotos, seja
ele um repositório centralizado ou de qualquer outra
pessoa.
BRANCHING
O git fundamenta suas operações no sistema de
branches, produzindo um conjunto transparente de
funções e facilidades para a sua criação, mescla,
descarte, entre outros.
.
|-- .git
|-- Rakefile
|-- lib
| |-- pascals_triangle.rb
| |-- pretty_printed_array.rb
|-- pascals_triangle.gemspec
.
|-- .svn
|
|-- all-wcprops
|
|-- entries
|
|-- format
|
|-- prop-base
|
|-- props
|
|-- text-base
|
|
|-- Rakefile.svn-base
|.. Rakefile
|.. lib
|
|-- .svn
|
|
|-- all-wcprops
|
|
|-- entries
|
|
|-- format
ENXUTO
Diferentemente do SVN, o git possuí apenas um diretório
na raiz do projeto, sem necessidade ou possibilidade de
ser afetado negativamente com mudanças de nomes e
pastas.
INSTALANDO O GIT
git that like a boss
download
git config
macosx
windows
Dependendo do sistema operacional utilizado em seu
ambiente de trabalho existirão uma ou mais localidades
ou implementações a serem feitas download para o
funcionamento do git.
DOWNLOAD
DOWNLOAD
Para o windows
Faça o download do instalador a
partir da pagina Google Code a baixo:
http://msysgit.github.io/
1. Acessar http://msysgit.github.io;
2. Selecionar a opção
Downloads;
3. Selecionar a última versão
disponível;
4. Selecionar novamente
a versão previamente
escolhida para começar o
download.
DOWNLOAD
Para o linux
Você pode realizar o download e
instalação por gerenciadores de
pacotes como yum e apt-get, ou
instalar através do código fonte
baixado de:
http://git-scm.com/download
1. Acessar http://git-scm.com/download;
2. Escolha a opção para download Linux;
3. Escolha a opção indicada
para a sua distribuição.
DOWNLOAD
Para o macOSX
Você pode realizar o download e
instalação por gerenciadores de
pacotes como homebrew, fink e
macports; assim como pode baixar o
instalador dmg diretamente de:
http://code.google.com/p/git-osx-
installer
1. Acessar http://code.google.com/p/git-osx-
installer/;
2. Selecione a aba Dowloads no topo da
página;
3. Selecione a versão
mais atual compatível a
sua versão do macosx;
4. Selecionar
novamente a
versão previamente
escolhida para
começar o
download.
Instalando o Git no Windows é muito fácil. O projeto
msysGit tem um dos procedimentos de instalação mais
fácil.
WINDOWS
WINDOWS
Execute o instalador
Clique em avançar (Next) até chegar na
etapa seguinte
WINDOWS
Select Components
Marque a opção Simple context menu.
Feito isso, avance para próxima tela
Habilitando está opção, o Git Bash e o Git
GUI serão incorporados ao menu de
contexto do Windows, possibilitando
executar o comando “Git Bash Here” dentro
um diretório qualquer
WINDOWS
Select Start Menu Folder
deixe o caminho padrão e clique em
avançar (Next)
WINDOWS
Adjust your PATH
deixe marcado a opção Use Git Bash only
e prossiga com a instalação
WINDOWS
Configure the line ending
marque a primeira opção para quebras de
linha independente do sistema operacional
WINDOWS
Completing the git setup
instalação foi concluída com sucesso
Existem algumas maneiras de instalar o git no macosx,
as principais envolvem gerenciadores de pacotes como
HomeBrew, MacPorts ou Fink.
MACOSX
MACOSX
Instalando com Brew
Tendo o brew instalado você só precisa
fazer:
➜ ~ brew install git
Se você ainda não usa homebrew para
gerenciar pacotes no Mac OS, então eu
recomendo instalá-lo.
MACOSX
Onde foi instalado
Depois de instalado você deve conseguir
ver onde o mesmo foi instalado, rodando
o comando:
➜ ~ which git
/usr/bin/git
MACOSX
Qual versão instalada
Após instalado é possível conferir a
qualquer momento a versão do git.
➜ ~ git --version
git version 1.7.12.4 (Apple
Git-37)
Para trabalhar de forma correta com o git o segundo
grande passo é realizar as configurações.
GITCONFIG
GIT CONFIG
Adicionando config
Caso seu usuário e email não estejam
configurados, faça-o com o comando:
Na primeira vez quando não configurado o --
list --global não possuí o .gitconfig na pasta
do usuário.
➜ ~ git config --global
user.name "Nome completo"
➜ ~ git config --global
user.email "Endereço de
Email"
COMaNDOS NO GIT
git that like a boss
novo projeto
log
tag
status
comitando
adicionando
NOVOREPOSITÓRIO
COPIARARQUIVO
README.md
├──
HEAD
├──
branches
├──
config
├──
description
├──
hooks
│   ├──
applypatch-msg.sample
│   ├──
commit-msg.sample
│   ├──
post-update.sample
│   ├──
pre-applypatch.sample
│   ├──
pre-commit.sample
│   ├──
pre-rebase.sample
│   ├──
prepare-commit-msg.sample
│   └──
update.sample
├──
info
│   └──
exclude
├──
objects
│   ├──
info
│   └──
pack
└──
refs
├──
heads
└──
tags
Para criar um repositório de um diretório de arquivos
existente, você pode simplesmente executar git init no
diretório
NOVOREPOSITÓRIO
NOVO REPOSITÓRIO
Os arquivos a versionar
Por exemplo, digamos que temos um
diretório com nosso arquivo nele, como:
➜ ~ mkdir likeaboss
➜ ~ cd likeaboss
➜ ~ touch README.md
➜ likeaboss ls
README.md
NOVO REPOSITÓRIO
Criando o repositório
Para iniciar o controle de versão disso
com Git, podemos simplesmente
executar git init, como:
➜ ~ git init
Initialized empty Git
repository in /Users/
helmed/rbsdev/.git/
NOVO REPOSITÓRIO
Novo diretório
Após a criação o git define um
diretório para armazenamento de
versões
➜ ~ ls -la
. .. .git
README rbsdev.sh
Em muitos momentos os arquivos sobe o versionamento
estarão no seu computador mas em um determinado
estado, qual será ele?
STATUS
Untracked
tracked
STATUS
Conferindo o Estado
dos arquivos
Em muitos momentos os arquivos
sobe o versionamento estarão no
seu computador mas em um
determinado estado. Para descobrir
em que estado podemos usar o
comando status, veja:
➜ gitlikeaboss git status
# On branch master
#
# Initial commit
#
nothing to commit (create/copy files
and use "git add" to track)
➜ gitlikeaboss git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add <file>..." to
include in what will be committed)
#
#	 README.md
nothing added to commit but
untracked files present (use "git
add" to track)
Untracked
README.md
unmodified modified
README.md
staged
adicionado arquivo
alterado arquivo
colocou arquivo no stage
commit
removido arquivo
README.md README.md
NOVO REPOSITÓRIO
Quando estamos trabalhando com arquivos sobe o
versionamento do git, temos que ter sempre em mente o
ciclo de vida dos mesmos passando de não rastreados
para rastreados.
ADICIONANDO
Untracked
tracked
ADICIONANDO
Rastreando
Arquivos
Para iniciar o rastreamento de um
novo arquivo, você deve usar o
comando add. Veja:
➜ gitlikeaboss git add
README.md
➜ gitlikeaboss git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm --cached <file>..."
to unstage)
#
#	 new file: README.md
ADICIONANDO
Várias formas de adição
Para adicionar arquivos em um commit,
é necessário executar um comando que
insira ele no commit:
➜ gitlikeaboss git add .
➜ gitlikeaboss git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm --cached <file>..."
to unstage)
#
#	 new file: README.md
➜ gitlikeaboss touch
a.txt
➜ gitlikeaboss git add
*.txt
➜ gitlikeaboss git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm --cached <file>..."
to unstage)
#
#	 new file: a.txt
#
# Untracked files:
# (use "git add <file>..." to
include in what will be committed)
#
#	 README.md
Para confirmar e armazenar as alterações realizadas
perante o histórico do git é necessário realizar o commit.
COMITANDO
Untracked
tracked
staged
COMITANDO
Descrevendo o commit
Após a adição dos arquivos no commit
é possível executar o commit
➜ likeaboss git commit
-m "Descrição do commit"
[master (root-commit)
edc6bb2] Descrição do commit
0 files changed
create mode 100644 README.md
Depois de vários commits, você provavelmente irá querer
ver o que aconteceu.
LOG
Untracked
tracked
staged
commit
f3d4346e4a7b073d5b03a8020ab1c1061292a
Author:
Helio
Medeiros
<helio.cabralmedeiros@gmail.com>
Date:
Sun
Oct
20
12:28:37
2013
-0200
Feito
LOG
O Histórico de commits
Após um commit mais um registro é
criado no histórico. Por padrão, sem
argumentos, git log lista os commits
feitos naquele repositório em ordem
cronológica reversa.
➜ likeaboss git log
commit
e1cf3d4346e4a7b073d5b03a8020a
b1c1061292a
Author: Helio Medeiros
<helio.cabralmedeiros@gmail.c
om>
Date: Sun Oct 20 12:28:37
2013 -0200
Feito
O Git possui a funcionalidade de salvar pontos
específicos na história de um repositório,
TAG
1.0
2.0
TAG
Criando TAGS
Normalmente se segue o padrão v0.0.0
para a criação de tags, pois facilita a
procura de tags específicas que são
feitas de forma decrescente e alfabética.
➜ likeaboss git tag -a
v1.0 -m "Introducao"
TAG
Listando as TAGS
Para visualizar as tags existentes no
repositório, basta executar o comando
➜ likeaboss git tag
v1.0
TAG
Alternando entre tags
Em muitos casos desejamos alternar
entre versões para entender desde que
oque foi feito até recuperar uma versão
estável para promoção de bugs. Para
isso:
➜ likeaboss git tag
checkout v1.0
BRANCHING NO GIT
git that like a boss
o que são branchs
conflitos
removendo
novo branch
Um branch no Git é simplesmente um ponteiro do projeto,
que contém todos os arquivos. O branch padrão no Git é
o master, a partir deste surgem diversas ramificações,
isto vários branches. É um mundo paralelo.
BRANCH
Master
NOVO BRANCH
Branch Based
Em alguns momentos desejamos
desenvolver novas funcionalidades, sejam
para testar hipóteses ou apenas
memorizar uma possível ideia. Nestas
horas o branch nos ajuda.
➜ likeaboss git
branch nova-
funcionalidade
➜ likeaboss git
branch
* master
nova-funcionalidade
Um novo branch
➜ likeaboss git checkout
nova-funcionalidade
Switched to branch 'nova-
funcionalidade'
Selecionando o branch
Diferença
Master intocado
Perceba que se você fizer checkout
neste momento voltando para o branch
master, não deverá estar presente
nenhum resquício das alterações que
acabamos de executar dentro do branch
nova-funcionalidade:
➜ gitlikeboss ls
.gitignore
1/1a.txt
README
mnb.sh
oba.sh
rbsdev.sh
senha.sh
➜ gitlikeboss git
checkout master
Switched to branch 'master'
➜ gitlikeboss git ls-
files
.gitignore
1/1a.txt
README
oba.sh
rbsdev.sh
senha.sh
Alterando
Fazendo nossas
alterações
Agora é hora de fazermos as alterações
que desejamos.
➜ gitlikeaboss touch
CHANGE.md
➜ gitlikeaboss git add .
➜ gitlikeaboss git commit
-m “Novo arquivo”
visualizando
Visualizando as
diferenças
Perceba que se você fizer novamente
checkout, voltando para o branch master,
havera alterações que acabamos de
executar dentro do branch nova-
funcionalidade:
➜ gitlikeboss ls
README.md
CHANGE.md
➜ gitlikeboss git
checkout master
Switched to branch 'master'
➜ gitlikeboss ls
README.md
CHANGE.md
merge
Mesclando as alterações
Após a conclusão de uma tarefa é
possível integrá-la a linha de
desenvolvimento central. Para fazer isso,
você fará o merge do seu branch. Tudo
que você tem a fazer é executar o
checkout do branch para onde deseja
fazer o merge e então rodar o comando
git merge.
➜ gitlikeboss git
checkout master
Switched to branch 'master'
➜ gitlikeboss git merge
nova-funcionalidade
➜ gitlikeboss ls
README.md
CHANGE.md
removendo
Removendo
Após a conclusão do desenvolvimento de
uma nova funcionalidade e sua integração
ao master é interessante a remoção dos
branches, mantendo o ambiente limpo.
➜ gitlikeboss git branch
master
* nova-funcionalidade
➜ gitlikeboss git branch
--delete nova-
funcionalidade
error: Cannot delete the branch 'nova-
funcionalidade' which you are currently
on.
➜ gitlikeboss git
checkout
master
Switched to branch 'master'
➜ gitlikeboss git branch
--delete nova-
funcionalidade
Deleted branch teste (was 27478a1).
COnflitos
Merge com conflitos
Em alguns momentos o git não
conseguirá apresentar uma solução para
os conflitos gerados entre as várias
versões. Os conflitos podem acontecer
durante os merges e commits. Sempre
que um conflito acontece a ação
executada fica incompleta até que os
mesmos estejam resolvidos.
➜ gitlikeboss git merge
novo-conflito
Auto-merging arquivo.txt
CONFLICT (content): Merge conflict
in README.md
Automatic merge failed; fix
conflicts and then commit the
result.
➜ gitlikeboss git commit
-m “Conflito resolvido”
Obrigado!
Fontes:
Pro Git - Scott Chacon
http://try.github.io
http://nathanj.github.io
http://gitready.com/
Imagens:
http://git-scm.com/
@evandroeisinger
@helmedeiros
@rssilva
Git that like a boss: Grupo RBS

Mais conteúdo relacionado

Mais procurados

Lançando versões em um clique - deploy contínuo
Lançando versões em um clique - deploy contínuoLançando versões em um clique - deploy contínuo
Lançando versões em um clique - deploy contínuo
Hélio Medeiros
 

Mais procurados (20)

Github - Escrevendo código e compartilhando conhecimento
Github - Escrevendo código e compartilhando conhecimentoGithub - Escrevendo código e compartilhando conhecimento
Github - Escrevendo código e compartilhando conhecimento
 
Lançando versões em um clique - deploy contínuo
Lançando versões em um clique - deploy contínuoLançando versões em um clique - deploy contínuo
Lançando versões em um clique - deploy contínuo
 
Controle de Versão com Git e como Otimizar seu Workflow com Git Flow
Controle de Versão com Git e como Otimizar seu Workflow com Git FlowControle de Versão com Git e como Otimizar seu Workflow com Git Flow
Controle de Versão com Git e como Otimizar seu Workflow com Git Flow
 
Git e git hub para iniciantes
Git e git hub para iniciantesGit e git hub para iniciantes
Git e git hub para iniciantes
 
Git e GitHub
Git e GitHubGit e GitHub
Git e GitHub
 
GIT Básico
GIT BásicoGIT Básico
GIT Básico
 
Git+github
Git+githubGit+github
Git+github
 
Git e Github para Iniciantes by Alysson Ajackson
Git e Github para Iniciantes by Alysson AjacksonGit e Github para Iniciantes by Alysson Ajackson
Git e Github para Iniciantes by Alysson Ajackson
 
Git & GitHub for beginners
Git & GitHub for beginnersGit & GitHub for beginners
Git & GitHub for beginners
 
Git e Github
Git e GithubGit e Github
Git e Github
 
Controle de versão com Git e BitBucket
Controle de versão com Git e BitBucketControle de versão com Git e BitBucket
Controle de versão com Git e BitBucket
 
Controle de versão com e git
Controle de versão com e gitControle de versão com e git
Controle de versão com e git
 
Introdução ao GitHub e Git
Introdução ao GitHub  e GitIntrodução ao GitHub  e Git
Introdução ao GitHub e Git
 
Git - GitHub
Git - GitHubGit - GitHub
Git - GitHub
 
Introdução ao Git
Introdução ao GitIntrodução ao Git
Introdução ao Git
 
Aprendendo Git
Aprendendo GitAprendendo Git
Aprendendo Git
 
Introdução ao Git - fs2w - GrupySP
Introdução ao Git - fs2w - GrupySPIntrodução ao Git - fs2w - GrupySP
Introdução ao Git - fs2w - GrupySP
 
Git & Delphi
Git & DelphiGit & Delphi
Git & Delphi
 
Python e Golang - Parte 1
Python e Golang - Parte 1Python e Golang - Parte 1
Python e Golang - Parte 1
 
Git
GitGit
Git
 

Semelhante a Git that like a boss: Grupo RBS

Controle de versionamento com Git
Controle de versionamento com GitControle de versionamento com Git
Controle de versionamento com Git
Raphael Cruzeiro
 
Controle de Versão Distribuído com Git básico
Controle de Versão Distribuído com Git básicoControle de Versão Distribuído com Git básico
Controle de Versão Distribuído com Git básico
Fabricio Nogueira
 

Semelhante a Git that like a boss: Grupo RBS (20)

Git e github
Git e githubGit e github
Git e github
 
Controle de versionamento com Git
Controle de versionamento com GitControle de versionamento com Git
Controle de versionamento com Git
 
Git e Gitlab para Iniciantes
Git e Gitlab para IniciantesGit e Gitlab para Iniciantes
Git e Gitlab para Iniciantes
 
Desmistificando a ferramenta git
Desmistificando a ferramenta gitDesmistificando a ferramenta git
Desmistificando a ferramenta 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 Rápido e Fácil
Git Rápido e FácilGit Rápido e Fácil
Git Rápido e Fácil
 
Conhecendo o git.
Conhecendo o git.Conhecendo o git.
Conhecendo o git.
 
Git
GitGit
Git
 
Controle de versão e colaboração com Git
Controle de versão e colaboração com GitControle de versão e colaboração com Git
Controle de versão e colaboração com Git
 
Git - Rápido, seguro, eficiente
Git - Rápido, seguro, eficienteGit - Rápido, seguro, eficiente
Git - Rápido, seguro, eficiente
 
EIIFRO2014 - Desenvolvimento Colaborativo de Software
EIIFRO2014 - Desenvolvimento Colaborativo de SoftwareEIIFRO2014 - Desenvolvimento Colaborativo de Software
EIIFRO2014 - Desenvolvimento Colaborativo de Software
 
Viajando no Tempo com GIT: Controle de versão para quem quer dormir em paz
Viajando no Tempo com GIT: Controle de versão para quem quer dormir em pazViajando no Tempo com GIT: Controle de versão para quem quer dormir em paz
Viajando no Tempo com GIT: Controle de versão para quem quer dormir em paz
 
Seis passos para colocar um projeto local em um servidor próprio
Seis passos para colocar um projeto local em um servidor próprioSeis passos para colocar um projeto local em um servidor próprio
Seis passos para colocar um projeto local em um servidor próprio
 
Minicurso GIT PET Computação
Minicurso GIT PET ComputaçãoMinicurso GIT PET Computação
Minicurso GIT PET Computação
 
Git e GitHub: Versionamento de Código Fácil
Git e GitHub: Versionamento de Código FácilGit e GitHub: Versionamento de Código Fácil
Git e GitHub: Versionamento de Código Fácil
 
Git na pratica
Git na praticaGit na pratica
Git na pratica
 
Controle de Versão Distribuído com Git básico
Controle de Versão Distribuído com Git básicoControle de Versão Distribuído com Git básico
Controle de Versão Distribuído com Git básico
 
Ferramentas para versionamento Utilizando git
Ferramentas para versionamento Utilizando gitFerramentas para versionamento Utilizando git
Ferramentas para versionamento Utilizando git
 
Git flow no projeto
Git flow no projetoGit flow no projeto
Git flow no projeto
 
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
 

Último

Último (9)

Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 

Git that like a boss: Grupo RBS

  • 1. @evandroeisinger @helmedeiros @rssilva git that like a boss ESCREVENDOCÓDIGO COMPARTILHANDOCONHECIMENTO
  • 5. o que é git ? instalando o git comandos no git repositórios no git visão abrangente ambiente configurado trabalhando localmenteNOSSA AGENDA HACKATHON trabalhando em time git that like a boss repositórios no github trabalhando online
  • 6. Git é um sistema de controle de versão distribuído livre e de código aberto, projetado para lidar com tudo, de pequenos a grandes projetos, com velocidade e eficiência. http://git-scm.com/
  • 7. !=
  • 8. enxuto branching O QUE É GIT? git that like a boss offLine distribuido
  • 9. Git pode ser usado online ou offline, é possível fazer de tudo, branching, merging, commiting, mesmo que você não esteja conectado a nenhuma rede.offLine
  • 10. DISTRIBUIDO Assim que você retorna a sua rede é possível enviar ou baixar informações de outros repositórios remotos, seja ele um repositório centralizado ou de qualquer outra pessoa.
  • 11. BRANCHING O git fundamenta suas operações no sistema de branches, produzindo um conjunto transparente de funções e facilidades para a sua criação, mescla, descarte, entre outros.
  • 12. . |-- .git |-- Rakefile |-- lib | |-- pascals_triangle.rb | |-- pretty_printed_array.rb |-- pascals_triangle.gemspec . |-- .svn | |-- all-wcprops | |-- entries | |-- format | |-- prop-base | |-- props | |-- text-base | | |-- Rakefile.svn-base |.. Rakefile |.. lib | |-- .svn | | |-- all-wcprops | | |-- entries | | |-- format ENXUTO Diferentemente do SVN, o git possuí apenas um diretório na raiz do projeto, sem necessidade ou possibilidade de ser afetado negativamente com mudanças de nomes e pastas.
  • 13. INSTALANDO O GIT git that like a boss download git config macosx windows
  • 14. Dependendo do sistema operacional utilizado em seu ambiente de trabalho existirão uma ou mais localidades ou implementações a serem feitas download para o funcionamento do git. DOWNLOAD
  • 15. DOWNLOAD Para o windows Faça o download do instalador a partir da pagina Google Code a baixo: http://msysgit.github.io/ 1. Acessar http://msysgit.github.io; 2. Selecionar a opção Downloads; 3. Selecionar a última versão disponível; 4. Selecionar novamente a versão previamente escolhida para começar o download.
  • 16. DOWNLOAD Para o linux Você pode realizar o download e instalação por gerenciadores de pacotes como yum e apt-get, ou instalar através do código fonte baixado de: http://git-scm.com/download 1. Acessar http://git-scm.com/download; 2. Escolha a opção para download Linux; 3. Escolha a opção indicada para a sua distribuição.
  • 17. DOWNLOAD Para o macOSX Você pode realizar o download e instalação por gerenciadores de pacotes como homebrew, fink e macports; assim como pode baixar o instalador dmg diretamente de: http://code.google.com/p/git-osx- installer 1. Acessar http://code.google.com/p/git-osx- installer/; 2. Selecione a aba Dowloads no topo da página; 3. Selecione a versão mais atual compatível a sua versão do macosx; 4. Selecionar novamente a versão previamente escolhida para começar o download.
  • 18. Instalando o Git no Windows é muito fácil. O projeto msysGit tem um dos procedimentos de instalação mais fácil. WINDOWS
  • 19. WINDOWS Execute o instalador Clique em avançar (Next) até chegar na etapa seguinte
  • 20. WINDOWS Select Components Marque a opção Simple context menu. Feito isso, avance para próxima tela Habilitando está opção, o Git Bash e o Git GUI serão incorporados ao menu de contexto do Windows, possibilitando executar o comando “Git Bash Here” dentro um diretório qualquer
  • 21. WINDOWS Select Start Menu Folder deixe o caminho padrão e clique em avançar (Next)
  • 22. WINDOWS Adjust your PATH deixe marcado a opção Use Git Bash only e prossiga com a instalação
  • 23. WINDOWS Configure the line ending marque a primeira opção para quebras de linha independente do sistema operacional
  • 24. WINDOWS Completing the git setup instalação foi concluída com sucesso
  • 25. Existem algumas maneiras de instalar o git no macosx, as principais envolvem gerenciadores de pacotes como HomeBrew, MacPorts ou Fink. MACOSX
  • 26. MACOSX Instalando com Brew Tendo o brew instalado você só precisa fazer: ➜ ~ brew install git Se você ainda não usa homebrew para gerenciar pacotes no Mac OS, então eu recomendo instalá-lo.
  • 27. MACOSX Onde foi instalado Depois de instalado você deve conseguir ver onde o mesmo foi instalado, rodando o comando: ➜ ~ which git /usr/bin/git
  • 28. MACOSX Qual versão instalada Após instalado é possível conferir a qualquer momento a versão do git. ➜ ~ git --version git version 1.7.12.4 (Apple Git-37)
  • 29. Para trabalhar de forma correta com o git o segundo grande passo é realizar as configurações. GITCONFIG
  • 30. GIT CONFIG Adicionando config Caso seu usuário e email não estejam configurados, faça-o com o comando: Na primeira vez quando não configurado o -- list --global não possuí o .gitconfig na pasta do usuário. ➜ ~ git config --global user.name "Nome completo" ➜ ~ git config --global user.email "Endereço de Email"
  • 31. COMaNDOS NO GIT git that like a boss novo projeto log tag status comitando adicionando
  • 33. ├── HEAD ├── branches ├── config ├── description ├── hooks │   ├── applypatch-msg.sample │   ├── commit-msg.sample │   ├── post-update.sample │   ├── pre-applypatch.sample │   ├── pre-commit.sample │   ├── pre-rebase.sample │   ├── prepare-commit-msg.sample │   └── update.sample ├── info │   └── exclude ├── objects │   ├── info │   └── pack └── refs ├── heads └── tags Para criar um repositório de um diretório de arquivos existente, você pode simplesmente executar git init no diretório NOVOREPOSITÓRIO
  • 34. NOVO REPOSITÓRIO Os arquivos a versionar Por exemplo, digamos que temos um diretório com nosso arquivo nele, como: ➜ ~ mkdir likeaboss ➜ ~ cd likeaboss ➜ ~ touch README.md ➜ likeaboss ls README.md
  • 35. NOVO REPOSITÓRIO Criando o repositório Para iniciar o controle de versão disso com Git, podemos simplesmente executar git init, como: ➜ ~ git init Initialized empty Git repository in /Users/ helmed/rbsdev/.git/
  • 36. NOVO REPOSITÓRIO Novo diretório Após a criação o git define um diretório para armazenamento de versões ➜ ~ ls -la . .. .git README rbsdev.sh
  • 37. Em muitos momentos os arquivos sobe o versionamento estarão no seu computador mas em um determinado estado, qual será ele? STATUS Untracked tracked
  • 38. STATUS Conferindo o Estado dos arquivos Em muitos momentos os arquivos sobe o versionamento estarão no seu computador mas em um determinado estado. Para descobrir em que estado podemos usar o comando status, veja: ➜ gitlikeaboss git status # On branch master # # Initial commit # nothing to commit (create/copy files and use "git add" to track) ➜ gitlikeaboss git status # On branch master # # Initial commit # # Untracked files: # (use "git add <file>..." to include in what will be committed) # # README.md nothing added to commit but untracked files present (use "git add" to track)
  • 39. Untracked README.md unmodified modified README.md staged adicionado arquivo alterado arquivo colocou arquivo no stage commit removido arquivo README.md README.md NOVO REPOSITÓRIO
  • 40. Quando estamos trabalhando com arquivos sobe o versionamento do git, temos que ter sempre em mente o ciclo de vida dos mesmos passando de não rastreados para rastreados. ADICIONANDO Untracked tracked
  • 41. ADICIONANDO Rastreando Arquivos Para iniciar o rastreamento de um novo arquivo, você deve usar o comando add. Veja: ➜ gitlikeaboss git add README.md ➜ gitlikeaboss git status # On branch master # # Initial commit # # Changes to be committed: # (use "git rm --cached <file>..." to unstage) # # new file: README.md
  • 42. ADICIONANDO Várias formas de adição Para adicionar arquivos em um commit, é necessário executar um comando que insira ele no commit: ➜ gitlikeaboss git add . ➜ gitlikeaboss git status # On branch master # # Initial commit # # Changes to be committed: # (use "git rm --cached <file>..." to unstage) # # new file: README.md ➜ gitlikeaboss touch a.txt ➜ gitlikeaboss git add *.txt ➜ gitlikeaboss git status # On branch master # # Initial commit # # Changes to be committed: # (use "git rm --cached <file>..." to unstage) # # new file: a.txt # # Untracked files: # (use "git add <file>..." to include in what will be committed) # # README.md
  • 43. Para confirmar e armazenar as alterações realizadas perante o histórico do git é necessário realizar o commit. COMITANDO Untracked tracked staged
  • 44. COMITANDO Descrevendo o commit Após a adição dos arquivos no commit é possível executar o commit ➜ likeaboss git commit -m "Descrição do commit" [master (root-commit) edc6bb2] Descrição do commit 0 files changed create mode 100644 README.md
  • 45. Depois de vários commits, você provavelmente irá querer ver o que aconteceu. LOG Untracked tracked staged commit f3d4346e4a7b073d5b03a8020ab1c1061292a Author: Helio Medeiros <helio.cabralmedeiros@gmail.com> Date: Sun Oct 20 12:28:37 2013 -0200 Feito
  • 46. LOG O Histórico de commits Após um commit mais um registro é criado no histórico. Por padrão, sem argumentos, git log lista os commits feitos naquele repositório em ordem cronológica reversa. ➜ likeaboss git log commit e1cf3d4346e4a7b073d5b03a8020a b1c1061292a Author: Helio Medeiros <helio.cabralmedeiros@gmail.c om> Date: Sun Oct 20 12:28:37 2013 -0200 Feito
  • 47. O Git possui a funcionalidade de salvar pontos específicos na história de um repositório, TAG 1.0 2.0
  • 48. TAG Criando TAGS Normalmente se segue o padrão v0.0.0 para a criação de tags, pois facilita a procura de tags específicas que são feitas de forma decrescente e alfabética. ➜ likeaboss git tag -a v1.0 -m "Introducao"
  • 49. TAG Listando as TAGS Para visualizar as tags existentes no repositório, basta executar o comando ➜ likeaboss git tag v1.0
  • 50. TAG Alternando entre tags Em muitos casos desejamos alternar entre versões para entender desde que oque foi feito até recuperar uma versão estável para promoção de bugs. Para isso: ➜ likeaboss git tag checkout v1.0
  • 51. BRANCHING NO GIT git that like a boss o que são branchs conflitos removendo novo branch
  • 52. Um branch no Git é simplesmente um ponteiro do projeto, que contém todos os arquivos. O branch padrão no Git é o master, a partir deste surgem diversas ramificações, isto vários branches. É um mundo paralelo. BRANCH Master
  • 53. NOVO BRANCH Branch Based Em alguns momentos desejamos desenvolver novas funcionalidades, sejam para testar hipóteses ou apenas memorizar uma possível ideia. Nestas horas o branch nos ajuda. ➜ likeaboss git branch nova- funcionalidade ➜ likeaboss git branch * master nova-funcionalidade Um novo branch ➜ likeaboss git checkout nova-funcionalidade Switched to branch 'nova- funcionalidade' Selecionando o branch
  • 54. Diferença Master intocado Perceba que se você fizer checkout neste momento voltando para o branch master, não deverá estar presente nenhum resquício das alterações que acabamos de executar dentro do branch nova-funcionalidade: ➜ gitlikeboss ls .gitignore 1/1a.txt README mnb.sh oba.sh rbsdev.sh senha.sh ➜ gitlikeboss git checkout master Switched to branch 'master' ➜ gitlikeboss git ls- files .gitignore 1/1a.txt README oba.sh rbsdev.sh senha.sh
  • 55. Alterando Fazendo nossas alterações Agora é hora de fazermos as alterações que desejamos. ➜ gitlikeaboss touch CHANGE.md ➜ gitlikeaboss git add . ➜ gitlikeaboss git commit -m “Novo arquivo”
  • 56. visualizando Visualizando as diferenças Perceba que se você fizer novamente checkout, voltando para o branch master, havera alterações que acabamos de executar dentro do branch nova- funcionalidade: ➜ gitlikeboss ls README.md CHANGE.md ➜ gitlikeboss git checkout master Switched to branch 'master' ➜ gitlikeboss ls README.md CHANGE.md
  • 57. merge Mesclando as alterações Após a conclusão de uma tarefa é possível integrá-la a linha de desenvolvimento central. Para fazer isso, você fará o merge do seu branch. Tudo que você tem a fazer é executar o checkout do branch para onde deseja fazer o merge e então rodar o comando git merge. ➜ gitlikeboss git checkout master Switched to branch 'master' ➜ gitlikeboss git merge nova-funcionalidade ➜ gitlikeboss ls README.md CHANGE.md
  • 58. removendo Removendo Após a conclusão do desenvolvimento de uma nova funcionalidade e sua integração ao master é interessante a remoção dos branches, mantendo o ambiente limpo. ➜ gitlikeboss git branch master * nova-funcionalidade ➜ gitlikeboss git branch --delete nova- funcionalidade error: Cannot delete the branch 'nova- funcionalidade' which you are currently on. ➜ gitlikeboss git checkout master Switched to branch 'master' ➜ gitlikeboss git branch --delete nova- funcionalidade Deleted branch teste (was 27478a1).
  • 59. COnflitos Merge com conflitos Em alguns momentos o git não conseguirá apresentar uma solução para os conflitos gerados entre as várias versões. Os conflitos podem acontecer durante os merges e commits. Sempre que um conflito acontece a ação executada fica incompleta até que os mesmos estejam resolvidos. ➜ gitlikeboss git merge novo-conflito Auto-merging arquivo.txt CONFLICT (content): Merge conflict in README.md Automatic merge failed; fix conflicts and then commit the result. ➜ gitlikeboss git commit -m “Conflito resolvido”
  • 60. Obrigado! Fontes: Pro Git - Scott Chacon http://try.github.io http://nathanj.github.io http://gitready.com/ Imagens: http://git-scm.com/ @evandroeisinger @helmedeiros @rssilva