Sistema de Controle de Versões (VCS)
Sistema utilizado para gerenciar
diferentes versões de um arquivo
qualquer.
2Git
Backup automático de todos os
arquivos.
Controle de histórico das alterações,
permitindo identificar quem alterou,
quando foi alterado, o que foi alterado e
por que foi alterado.
Marcação e resgate de versões estáveis
(Tags).
Ramificação (Branches).
3Git
Centralizado
Distribuído
4Git
Repositório fica armazenado em um
único local.
Desenvolvedores ao fazerem
“checkout”, obtêm uma cópia apenas
dos arquivos do repositório.
Ações como commit e visualização do
histórico dependem de acesso à rede.
5Git
Cada cópia é um repositório completo.
Desenvolvedores ao fazerem
“checkout”, obtêm um clone do
repositório remoto, contendo inclusive o
histórico e os branches.
Ações como commit e visualização do
histórico independem de acesso à rede,
ou seja, podem ser feitos “offline”.
6Git
Sistema de controle de versões
distribuído Open Source.
Inicialmente desenvolvido por Linus
Torvalds com o intuito de controlar o
Kernel do Linux.
Foco em rapidez, eficiência e uso em
grandes projetos.
7Git
Android
Eclipse
Linux Kernel
PostgreSQL
Samba
Ruby on Rails
... e muito mais
8Git
Branch
Checkout
Commit
Merge
Pull
Push
Show log
Tag
9Git
Ramo de desenvolvimento paralelo à
uma linha principal (work).
Git 10
O nome de um branch depende do tipo
da solicitação, que pode ser ticket ou
projeto.
Ticket (1 solicitação): ticket[Id da
solicitação]. Ex.: ticket1.
Projeto (conjunto de solicitações): prj[Id
do projeto]marco[Id do marco]. Ex.:
prj1marco1.
Git 11
Sempre que o desenvolvimento de um
branch ultrapassar um prazo de 3 dias,
o desenvolvedor deve solicitar a
atualização do mesmo com as últimas
alterações realizadas na work. Este
procedimento visa facilitar a integração,
mantendo os branches sempre
atualizados.
Git 12
Diferentemente de um VCS
Centralizado, como o SVN por exemplo,
o checkout não serve para baixar a
cópia de um repositório.
No Git, a função do checkout é
posicionar em um determinado branch.
Ou seja, alternar entre diferentes
branches (ramos) de um mesmo
repositório.
Git 13
Diferentemente de um VCS
Centralizado, como o SVN por exemplo,
o commit não envia os arquivos
modificados diretamente para o
servidor.
No Git, o commit é o ato de vincular ao
branch os arquivos que foram
modificados. Ou seja, é uma marcação
de quais arquivos serão enviados ao
repositório remoto quando as alterações
forem empurradas.Git 14
Pode ser feito offline, ou seja, não
necessita da rede.
Deve ser utilizado, obrigatoriamente,
antes de tentar empurrar as alterações
para o repositório remoto.
Git 15
Processo de integração das alterações
realizadas em um branch com a linha
principal (work), ou atualização de um
branch com as últimas mudanças
disponíveis na linha principal.
Git 16
Consiste em puxar para o repositório
local as últimas alterações
disponibilizadas no repositório remoto.
Git 17
Consiste em empurrar os commits
realizados no repositório local para o
repositório remoto.
Git 18
Consiste em visualizar os commits
realizados, ou seja, visualizar o histórico
das alterações.
Git 19
Marcação realizada no repositório para
permitir identificar o estado de um
arquivo em determinado momento.
Git 20
É o console onde são utilizados os
comandos do git.
Git 21
Configurar um repositório?
Clonar um repositório?
Criar um branch local rastreando um
branch remoto?
Posicionar em um branch local?
Criar um branch local?
Puxar as alterações do repositório
remoto?
Criar um brach remoto?
Git 22
Visualizar as alterações?
Realizar um commit?
Visualizar os commits?
Empurrar os commits para o repositório
remoto?
Apagar um branch local?
Apagar um branch remoto?
Pesquisar quais branches existem?
Git 23
No git bash, digite:
mkdir ~/.ssh
echo "User = seu_nome.assinatura" >
~/.ssh/config
git config --global user.name
seu_nome.assinatura
git config --global user.email
git config --global color.ui auto
Git 24
git config --global i18n.commitencoding
ISO-8859-1
git config --global diff.renamelimit 0
git config --global merge.renamelimit 0
git config --global
branch.autosetuprebase always
git config --global core.excludesfile
gitignore
seu_nome.assinatura
Git 25
Crie uma nova pasta
Acesse a nova pasta através do git bash
git clone ssh://10.0.0.3/nome_repositorio
nome_repositoro
Git 26
Nome que aparece entre parênteses no
Git Bash.
Git 27
git checkout -- track -b nome_branch
origin/nome_branch
nome_branch
Git 28
git checkout nome_branch
nome_branch
Git 29
git checkout –b nome_branch
nome_branch
Observação: Para realizar o
desenvolvimento não devem ser criados
branches locais, os mesmos devem ser
criados remotamente. Portanto, esta
opção deve ser utilizada somente para
realização de testes ou para posicionar
em uma tag.
Git 30
git pull --rebase
Git 31
Posicionar no branch work
Puxar as alterações do repositório
remoto
git push origin
work:refs/heads/nome_branch
nome_branch
Observação: Os branches remotos
sempre devem ser criados a partir do
branch work.
Git 32
nome_branch
Observação: Utilizando este script, não
é necessário posicionar na work e puxar
manualmente antes de criar o branch
remoto. Além disso, já é criado um
branch local rastreando o branch
remoto. Ou seja, com um único
comando são executados vários
procedimentos automaticamente.
Git 33
git status (visualiza os arquivos
modificados)
gitk (visualiza as alterações que foram
realizadas)
TortoiseGit > Check for modifications
Git 34
TortoiseGit > Commit
Visualize as alterações, descartando as
que não são necessárias
Marque os arquivos que serão enviados
No campo “message” informe o nome
do branch, seguido de uma descrição
da(s) alteração(ões) que foi(ram)
realizada(s). Em se tratando de projeto,
informe também à qual solicitação o
commit se refere.Git 35
gitk
TortoiseGit > Show log
Git 36
git push origin nome_branch
nome_branch
Git 37
Através do gitk ou TortoiseGit > Show
log, verifique se o branch local, e seu
respectivo branch remoto, estão no
mesmo nível (linha).
Git 38
git branch -D nome_branch
nome_branch
Git 39
Observação: A exclusão de um branch
remoto somente será realizada
mediante a uma solicitação realizada ao
analista de configuração, pois este
procedimento é realizado diretamente
no repositório remoto.
Git 40
git branch (exibe os branches locais)
git branch -a (exibe os branches locais e
remotos)
nome_branch (localiza um
branch específico)
Git 41
git remote prune origin
Git 42
Git 43
Alex Ferreira de Almeida
@alexfdealmeida
skype: alexferreiradealmeida
Git 44