Criação de um repositório local
Adição de arquivos e primeiro commit
Vamos começar da maneira mais simples possível. Para isso, crie um projeto qualquer. Vamos exemplificar criando um projeto usando Ruby on Rails e transformando-o em um repositório Git. Para isso, é necessário Ruby on Rails 3 devidamente configurado. Então, abra um terminal e faça:
$ rails new git_na_pratica
create
create README
create Rakefile
create config.ru
create .gitignore
create Gemfile
create app
create app/controllers/application_controller.rb
(...)
create tmp/pids
create vendor/plugins
create vendor/plugins/.gitkeep
Entre no diretório do projeto e inicie o repositório com o comando 'git init':
$ cd git_na_pratica/
$ git init
Initialized empty Git repository in /home/desenvolvimento/git_na_pratica/.git/
Você pode encontrar um diretório .git agora dentro de seu diretório. É nesse diretório que o Git guarda todas as informações, diferente do SVN e do CVS, que criam uma pasta para cada pasta de seu projeto.
$ ls -la
total 80
drwxr-xr-x 13 usuario grupo 4096 2010-11-09 22:12 .
drwxr-xr-x 6 usuario grupo 4096 2010-11-09 22:12 ..
drwxr-xr-x 7 usuario grupo 4096 2010-11-09 22:12 app
drwxr-xr-x 5 usuario grupo 4096 2010-11-09 22:12 config
-rw-r--r-- 1 usuario grupo 155 2010-11-09 22:12 config.ru
drwxr-xr-x 2 usuario grupo 4096 2010-11-09 22:12 db
drwxr-xr-x 2 usuario grupo 4096 2010-11-09 22:12 doc
-rw-r--r-- 1 usuario grupo 665 2010-11-09 22:12 Gemfile
-rw-r--r-- 1 usuario grupo 40 2010-11-09 22:12 .gitignore
drwxr-xr-x 3 usuario grupo 4096 2010-11-09 22:12 lib
drwxr-xr-x 2 usuario grupo 4096 2010-11-09 22:12 log
drwxr-xr-x 5 usuario grupo 4096 2010-11-09 22:12 public
-rw-r--r-- 1 usuario grupo 265 2010-11-09 22:12 Rakefile
-rw-r--r-- 1 usuario grupo 9130 2010-11-09 22:12 README
drwxr-xr-x 2 usuario grupo 4096 2010-11-09 22:12 script
drwxr-xr-x 7 usuario grupo 4096 2010-11-09 22:12 test
drwxr-xr-x 6 usuario grupo 4096 2010-11-09 22:12 tmp
drwxr-xr-x 3 usuario grupo 4096 2010-11-09 22:12 vendor
Note que o Rails 3 já cria um arquivo '.gitignore' para nós, mas isso veremos mais adiante.
A partir deste momento o nosso projeto esta sendo monitorado pelo Git. Se executarmos o comando 'git status' teremos a seguinte informação:
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .gitignore
# Gemfile
# README
# Rakefile
# app/
# config.ru
# config/
# db/
# doc/
# lib/
# public/
# script/
# test/
# vendor/
nothing added to commit but untracked files present (use "git add" to track)
O Git é extremamento intuitivo e explicativo. Ele nos informa que estamos no branch master e que possuimos arquivos e diretórios não monitorados (Untracked files). Vamos falar sobre branchs mais a frente, não se preocupe com isso agora.
Mesmo o Git monitorando o diretório raiz de seu projeto ainda não informamos quais arquivos e diretório queremos monitorar. Para começarmos a monitorar devemos usar o comando "git add". Existem duas formas:
* "git add <file>" - Adiciona apenas o arquivo ou diretório, recursivamente, mencionado.
* "git add ." - Adiciona todos os arquivos e diretórios não monitorados da pasta onde estamos, recursivamente.
Vamos agora realizar o primeiro commit de nosso projeto. Para começar vamos adicionar todos os arquivos da pasta com o comando git add . (ou git add --all). [Esse comando informa ao git que desejamos adicionar ao controle de versão todos os arquivos e diretórios da pasta onde estamos, recursivamente.]
$ git add .
Depois vamos realizar o primeiro commit utilizando o comando git commit -a -m "Primeiro Commit". A opção -a (ou --all)indica que o commit será para todos os arquivos modificados, renomeados ou apagados. Para arquivos novos você deve obrigatóriamente usar o git add antes do git commit. Já a opção -m informa a mensagem de commit.
Ao invés de git commit -a -m "Primeiro Commit" também é possível usar git commit -am "Primeiro Commit".
$ git commit -am "Primeiro Commit"
[master (root-commit) 6316e12] Primeiro Commit
42 files changed, 8461 insertions(+), 0 deletions(-)
create mode 100644 README
create mode 100644 Rakefile
create mode 100644 app/controllers/application_controller.rb
create mode 100644 app/helpers/application_helper.rb
create mode 100644 config/boot.rb
create mode 100644 config/database.yml
[......]
create mode 100644 test/performance/browsing_test.rb
create mode 100644 test/test_helper.rb
Para ver o seu commit use git log. Você verá uma listagem com a mensagem de commit, o autor e outros dados.
$ git log
commit 6316e121fa36b01bb17e437b5a596bf53d1fbe3c
Author: Marcelo Castellani <castellani@castellani-desktop.(none)>
Date: Tue Jul 27 10:11:16 2010 -0300
Primeiro Commit
Se executarmos novamente o 'git status' veremos que continuamos no branch master e que não temos nenhum arquivo modificado ou não monitorado.[Outro comando muito útil é o git status, que mostra quais arquivos foram modificados e em qual branch estamos trabalhando. Vamos falar sobre branchs mais a frente, não se preocupe com isso agora.]
$ git status
# On branch master
nothing to commit (working directory clean)