Tabela de Conteúdos

Página desactualizada Esta página contém uma versão anterior deste guia que pode estar desatualizada. Para a consultar a versão mais recente clique aqui.

3.8.2 Git

Git é um sistema de controle de versões distribuído e um sistema de gestão de código fonte, com ênfase na velocidade. O Git foi inicialmente projetado e desenvolvido por Linus Torvalds para o desenvolvimento do kernel Linux, mas foi adotado por muitos outros projetos.

Instalação

root@server:~# aptitude install git git-doc

Configuração

A configuração do git pode ser definida a vários níveis: para todo o sistema (system), por utilizador (global) ou por repositório (local).

Regra geral, as configurações mais localizadas sobrepõem-se às mais genéricas. Por exemplo, se definir as preferências de cor da interface a nível global, estas serão adotadas, mesmo que existam outras definidas a nível do sistema.

Sistema

A configuração do git ao nível do sistema é a mais abrangente. O ficheiro de configuração do sistema está guardado em /etc/gitconfig.

Neste exemplo, é definida para todo o sistema a preferências de usar cores na interface do git:

root@server:~# git config --system color.ui true

Global

A configuração global é efetuada ao nível do utilizador e refere-se às preferências de todos os repositórios de cada utilizador.

O ficheiro de configuração global é guardado na home de cada utilizador, com o nome .gitconfig.

Cada utilizador deverá definir o seu nome de utilizador e endereço de email que o git utilizado para registar o autor de cada revisão:

fribeiro@server:~$ git config --global user.name "Fernando Ribeiro"
fribeiro@server:~$ git config --global user.email "pinguim.ribeiro@gmail.com"

Repositórios

Criação de repositórios

A criação de um repositório de testes é bastante simples:

Em primeiro ligar deverá ser criada uma diretoria para albergar o nosso repositório:

fribeiro@server:~$ mkdir test_project.git
fribeiro@server:~$ cd test_project.git
fribeiro@server:~/test_project.git$

Em seguida a diretoria deverá ser inicializada como um repositório git:

fribeiro@server:~/test_project.git$ git init
Initialized empty Git repository in /home/fribeiro/test_project.git/.git/

Verificar se a inicialização foi bem sucedida:

fribeiro@server:~/test_project.git$ git status
# On branch master
#
# Initial commit
#
nothing to commit (create/copy files and use "git add" to track)

Verificação

Acesso local

Para verificar o correto funcionamento do git, adicionamos um ficheiro à nossa cópia de trabalho:

fribeiro@server:~/test_project.git$ echo "Projeto de testes" > LEIAME
fribeiro@server:~/test_project.git$ git add .
fribeiro@server:~/test_project.git$ git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#       new file:   LEIAME
#

O novo ficheiro está pronto para ser cometido para o repositório:

fribeiro@server:~/test_project.git$ git commit -m "adicionado o ficheiro LEIAME do projeto"
[master (root-commit) fbcf213] adicionado o ficheiro LEIAME do projeto
 1 file changed, 1 insertion(+)
 create mode 100644 LEIAME
fribeiro@server:~/test_project.git$ git status
# On branch master
nothing to commit (working directory clean)

O ficheiro foi enviado para o repositório e não há diferenças entre este e a nossa cópia de trabalho.

Acesso remoto vis SSH

Os repositório git podem ser acedidos remotamente através de uma ligação segura SSH, caso tenha configurado o 2.3.2 Servidor Ssh:

fribeiro@laptop:~$ git clone fribeiro@server.home.lan:~/test_project.git
Cloning into 'test_project'...
fribeiro@server.home.lan's password:
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (3/3), done.

A nossa instalação está terminada e pronta a receber os mais exigente projetos!

Sugestão

O pacote git é um poderoso gestor de versões cuja utilização está fora do âmbito deste guia. Para mais informações consulte a documentação do git ou o livro Git Pro, disponível em português .

Referências