Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Git - Version Control System

Básico do Git
by

Ronie Uliana

on 23 March 2015

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Git - Version Control System

Git Sistema de Controle de Versão Para que serve um
Sistema de Controle de Versão? Git Iniciar o controle de versão Marcar arquivos para "commit" >git add . >git add <arquivos> "Commit": criar um "snapshot" no tempo que pode ser recuperado. Efetivar o "commit" >git commit -m "mensagem explicando a alteracao" ou Marcar e efetivar em um comando só >git commit -a -m "mensagem" Comandos básicos Branching Git "Branching": criar uma versão alternativa do código, sem afetar o que estava sendo alterado antes. O que é um "commit" SHA-1 (hash) Cada commit tem um link para o commit anterior Um "branch" é apenas um ponteiro para um commit "master" é o branch padrão Dessa forma, criar um branch uma operação barata e instantânea. >git branch testing Como o git sabe onde você está trabalhando? >git checkout testing >git add .
>git commit -m "mensagem" O HEAD "anda" com novos commits. >git checkout master >git add .
>git commit -m "mensagem" Lembre-se: cada commit aponta para o commit anterior. Git Merging Você começa a desenvolver uma nova funcionalidade, mas precisa parar para corrigir algo na versão atual do sistema. >git branch iss53
>git checkout iss53 >git checkout -b iss53 Ou em um comando só: >vim index.html
>git commit -a -m "correcao do bug [iss53]" >git checkout master
>git checkout -b hotfix
>vim index.html
>git commit -a -m "correcao de emergencia em producao" >git checkout master
>git merge hotfix "Fast forward": basta avançar o ponteiro, não é necessária nenhuma outra operação. >git checkout iss53
>vim index.html
>git commit -a -m "continuacao da correcao do bug [iss53]" É hora de transferir a correção do [iss53] para o master. Por causa da maneira que o git trabalha, ele já sabe quem é o ancestral comum do branches que você deseja fazer merge. Sabendo quem é o ancestral comum, ele consegue dizer o que foi modificado em cada branch usando um "3-way compare". >git checkout master
>git merge iss53 Isso cria um novo commit com o merge. Esse commit é especial pois possui link para dois "commits anteriores". Pode-se apagar o ponteiro da [iss53] depois do merge >git branch -d iss53 Instalação no Windows http://code.google.com/p/msysgit Control Version System O que é um CVS? Ele se lembra de todas as alterações feitas no código. Torna possível voltar ao estado em que o código estava em qualquer data. Torna possível criar uma versões "alternativas" do código e depois consolidá-las em uma única versão. (Importando um projeto já existente) Explorar o histórico >gitk >git init >git clone file:///smonreal/xxx (A partir do zero) Git Comandos básicos COMMIT!!! COMMIT!!! COMMIT!!! COMMIT!!! COMMIT!!! COMMIT!!! COMMIT!!! Git >git status Quais arquivos estão diferentes?
(aqueles que você vai precisar fazer "commit") Comandos básicos >git log >git log -3 ou ou Verificando a diferença entre o que você está fazendo e o último snapshot. # On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# deleted: index3.htm
#
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: ChkCookie.asp
# modified: global.asa
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# novo.asp Arquivos deletados Arquivos alterados Arquivos novos Opções GIT SVN (Subversion) CVS VSS (SourceSafe) Perforce (Visual Studio Team System) VSTS Distribuído Integrado ao VS Pacote de ferramentas Feito para branch e merge Arquivos binários demais
Primeira operação "sem caching" /img /img/cust Nosso problema: Sem o diretório de imagens 31K arquivos 248K arquivos 0,5Gb 4,1Gb 6s ao invés de 1,5s sobre somente arquivos texto 6s ao invés de 1m sobre o repositório completo Usando SUBMÓDULOS Todos os 4,1Gb e 248K arquivos
Dois repositórios ao invés de um
(são controlados separadamente) Como funciona? Tiram-se "fotos" do código o tempo todo É possível voltar o código em qualquer "foto" Pode-se continuar de qualquer "foto" de uma maneira diferente da última vez As "fotos" podem ser unificadas para ficar só
o melhor de cada sequência Facilita o trabalho de várias pessoas simultaneamente na mesma base de código. Facilita o "isolamento" nas correções de bugs. Facilita experimentos no código. Quem modificou o código? Quando? Onde (mais)?
Full transcript