Seminário em Computação IV
Bernadete, Edmilson e Lucas
Histórico
1991–2002: o projeto do kernel do não utilizava
uma ferramenta para o controle de versão.
2002: o projeto começou a usar a ferramenta
2005: a relação com a companhia do BitKeeper
foi interrompida.
Linus Torvalds e a comunidade Linux
iniciaram o desenvolvimento do
Visão Geral
A maioria dos sistemas de controle de versão pensam na
informação que eles guardam como um conjunto de
arquivos e mudanças realizadas ao longo do tempo.
Visão Geral
No Git, cada diretório de trabalho Git é um repositório com
todos os históricos e habilidade total de controle das
revisões, tornando quase todas as operações locais.
Portabilidade
Darwin
Interfaces, Ferramentas e Plugins
Cygwin mysysgi TortoiseGit NbGit EGit, JGit GitX
t
Git Extensions Git# QGit Giggle Gitorious SmartGit
Pyrite PyjamasGitWeb GitCola DotGit Qt Creator
TortoiseGit
Cliente do Git para Microsoft Windows.
Código aberto, licenciado sob GNU General Public License.
Possui integração com o Windows Shell e Windows
Explorer e independência de ambiente de desenvolvimento
integrado.
Repositórios Remotos
GNU Savannah
GitHub
Serviço de
Hospedagem Web
Compartilhado
para projetos que
usam o Git.
Possui planos
comerciais e
gratuitos (para
projetos de código
aberto).
Projetos que usam Git
Wine
Instalação
Está disponível
online para
download
gratuitamente.
Basta seguir os
passos para a
instalação.
Settings
Permite realizar uma
série de
configurações no
ambiente Git.
Adicionar Repositórios Remotos
Pode-se trabalhar
com mais de um
repositório
remoto.
O primeiro
repositório recebe
o nome de
ORIGIN.
Config
Utilizado para
configurar sua
identidade (o
nome e o e-
mail).
Essas
informações são
utilizadas no
Commit.
Help
Traz informações
sobre o TortoiseGit.
Create repository here
Init: Cria um
novo subdiretório
chamado .git que
contem todos os
arquivos de
repostitório
necessários.
Clone
Pega todas as
versões de todos
os aquivos do
projeto e realiza o
check out da
cópia de trabalho
da última versão.
Realizando Mudanças
O ciclo de vida dos estados dos arquivos pode ser visto no
diagrama abaixo:
Status
Determina em qual
estado está cada arquivo.
Add
Marca o arquivo para
ser incorporado e
adicionado no
próximo commit.
Ignore
.gitignore: lista
os padrões para
os arquivos os
quais você
deseja ignorar e
nem mesmo ver
o estado.
Diff
Compara o que está na cópia
de trabalho com o que está
no repositório local.
Commit
Envia as
modificações
para o
repositório
local.
Delete
Delete: Apaga o
arquivo do
repositório local
e da cópia de
trabalho.
Delete (Keep
Local): Apaga o
arquivo
somente do
repositório
local.
Rename
Renomeia o arquivo.
Log
Lista os commits
realizados no
repositório.
Log
Apresenta o que foi
alterado no commit.
Log
O comando log no Git possui algumas opções que
permitem apresentar apenas um subconjunto de commits:
git -<n>
git --since e git --after
git --until e git --before
git --author
git --commiter
Amend
1. Muda a última
mensagem de
commit caso
nenhuma
1 mudança tenha
sido feita após o
2
último commit.
2. Acrescenta novas
mudanças feitas
na cópia de
trabalho ao
último commit.
Revert
teste.txt modificado Revert...
Desfaz as mudanças
feitas em um arquivo ou
diretório, deixando
exatamente como era
após o último Commit.
Fetch
Abaixa para o
repositório local
todas as mudanças
feitas no repositório
remoto desde o
último PULL.
Você poderá ver as
alterações antes de
atualizar seu diretório
de trabalho clicando
no botão Rebase.
Fetch - Rebase
Mostra as
modificações feitas
no repositório
remoto e dar a opção
de atualizar o seu
repositório local ou
deixá-lo como está.
Pull
Equivale a um FETCH
seguido de um
MERGE.
Atualiza seu diretório
de trabalho com o
repositório remoto.
As atualizações serão
aplicadas
imediatamente, caso
não haja conflitos.
Push
Envia para o repositório
remoto as mudanças
feitas no seu diretório de
trabalho.
Tags
Git possui dois tipos de Tags:
Lightweight tag:
É apenas um ponteiro para um determinado commit.
Nenhuma informação adicional é armazenada.
No TortoiseGit é criada quando nenhuma mensagem é
adicionada na criação tag.
Annotated tag:
É armazenada como um objeto no banco de dados do Git e
guarda o autor, a mensagem, o timestamp.
No TortoiseGit é criada quando se adiciona uma mensagem na
criação da tag.
Inserindo Tags
TortoiseGit Show log
Inserindo Tags
Lightweight tag
Inserindo Tags
Annotated tag
EXEMPLO