Controle de Versões

git: Codificação Social

LPOO 1 - Java


Prof. Rodrigo Noll @ IFRS Canoas



Versão para impressão

Sistema de Controle de Versões

VCS – Version Control System

Sistema de Controle de Versões

  • É um sistema que permite gerenciar múltiplas revisões de uma unidade de informação
  • Permite que diferentes atores cooperem e compartilhem arquivos como, por exemplo, documentos, código fonte, modelos, etc.

Sistema de Controle de Versões

Por que um VCS é útil?

Questão

    Quais desses VCS já usaram ou ouviram falar?
  • CVS
  • Subversion
  • git
  • Outros: _______________________

Como funciona um CVS?

Adicionar um arquivo ao repositório, para que todos tenham acesso ao mesmo.
Modificar um arquivo que já está em um repositório e depois "commitando” essa mudança no repositório central para que seja visível a todos os demais usuários.
Obter as mudanças que outras pessoas fizeram no repositório, atualizando os arquivos locais.

Como funciona um VCS?

O que não fazer quando se usa um VCS:

  • Nunca adicione arquivos grandes, binários nem arquivos executáveis, derivados de código fonte (como classes, exes, etc.)
    • Em geral, podem ter exceções, mas tenha atenção com estes arquivos

  • Não fique trabalhando com cópias locais dos arquivos do repositório fora do repositório
    • Nunca façam cópia local, nunca façam redundância, confiem no VCS!!!

Tipos de VCS

Dois tipos de VCS

git: Uma Introdução

git: Uma Introdução

  • Um bom exemplo de VCS descentralizado
    • Criado por Linus Torvalds

  • Principais características:
    • Distribuído
    • Rápido
    • Projeto simples
    • Forte suporte para Branches paralelos
    • Eficiente para grandes projetos

git: Conceitos

  • Distribuído e descentralizado (mas pode ser centralizado)
    • A maioria das operações são locais, só se fala com o remoto no push
  • Não se consideram arquivos específicos, mas versões
  • O repositório contém arquivos, histórico e configuração gerenciados pelo Git
  • Commit representa:
    • Mudanças salvas no repositório
    • Impacto na história
    • Gera um hash SHA1 como identificador único

git: Conceitos

  • BRANCHES:
    • Linha de tempo dos commits
    • Master é o branch principal/padrão

  • HEAD:
    • Ponteiro para o último commit no branch

  • REMOTE:
    • Repositório relacionado, mas não local
    • GitHub, Gitlab, Bitbucket e outros

Instalando git

Repositório Remoto: GitHub

Nosso servidor Git será o GitHub, entre e faça uma conta.

Workflow do git

Demonstração

Demonstração do roteiro usando git:

  • Trabalhando com o Repositório Local
  • Trabalhando com Branches
  • Trabalhando com o Repositório Remoto

Questões

Questões

    Qual é a configuração mínima necessária para começar a usar o git?
  1. Nome, conta do banco, número do cartão de crédito e carteira de motorista
  2. nenhuma
  3. Primeiro e último nome
  4. Nome e email
  5. Uma dúzia de informações não apresentadas aqui

Questões

    Qual o branch padrão em um repositório git?
  1. master
  2. default
  3. main
  4. trunk
  5. Não tem branch default no git


GitHub é um único repositório remoto que existe?

Questões

    Como você pode iniciar um projeto usando git
  1. Comando 'git init'em uma pasta vazia
  2. Comando ‘git init' em uma pasta contendo os arquivos do projeto
  3. Clonar um projeto a partir de um repositório remoto como GitHub
  4. Todas acima

Questões

Arquivos devem passar pela area de staging antes de serem persistidos?


A area de staging também é chamada de index?

Questões

    Qual é a sintaxe correta para arquivos modificados recentemente para a área de staging?
  1. git add file_name
  2. git add .
  3. git commit –a
  4. git add –a
  5. todas acima

Questões

Você pode usar o atalho 'git commit -a’ em arquivos novos?


É impossível mover ou modificar arquivos do git fora de seu controle?

Questões

    Como você vê o histórico de commits no repositório do git?
  1. commit
  2. add
  3. log
  4. history
  5. show-commits

eGit

eGit

http://eclipse.github.io

eGit

1. Vá em Window > Show View > Others

eGit

3. Na aba “Git Repositories”, clique em ”Clone a Git repository"

eGit

Na aba ‘Git Repositories’, clique com o botão direito "exemplo-git" > Import Project > Selecione ”Import as general project” e finalize
Abra o arquivo README.md e modifique, verá que ao lado dele aparece o símbolo “>” dizendo que foi modificado

eGit

No menu de Team, tem as várias operações possíveis para dos arquivos

Principais Comandos

Repositórios Locais

CRIAR


mkdir projeto-teste >> criar um diretório
cd projeto-teste >> ir para o diretório
git init >>  inicializar o diretório como um repositório git
                        

MODIFICAR


git add arquivo.txt (ou git add.) >>adicionar arquivo ou diretório
git commit >> gravar as mudanças no repositório local
git mv >> mover arquivos
git rm >> remover arquivos
                        

INSPECIONAR


git log >> verificar o log do repositório
git status >> a situação dos arquivos no repositório
git diff >> verificar a diferença, por exemplo, entre um arquivo local e remoto.
git show (último commit) >> mostrar informações do último commit
                        

Repositórios Remotos

COPIAR REPOSITÓRIO


git clone <repositório>
                        
repositorio = URL (arquivo, http, ssh, …) cria localmente uma cópia completa do repositório e relaciona essa cópia com o repositório remoto (origin). Você também pode linkar depois com o repositório

RECEBER MUDANÇAS


git pull
                        

MANDAR MUDANÇAS


git push
                        

Possível Workflow

  • Fazer alguma edição
  • Git status: para ver os arquivos que você mudou
  • Git diff [arquivos]: para ver as mudanças
  • Git commit –a [-m “mensagem”]

Controle de Versões

Roteiro Git

LPOO 1 - Java