Git - controle de versão
“O Git é um sistema de controle de versão distribuído gratuito e open source desenhado para tratar de projetos pequenos à grandes com velocidade e eficiência.” http://git-scm.com
init
Para criar um novo repositório do Git utilize o comando git init
:
$ git init
Initialized empty Git repository in /Users/sakurai/Documents/Git/.git/
Após executar o comando git init
será criado um subdiretório oculto chamado .git
. Agora é possível registrar as alterações realizadas no diretório.
status
Para verificar o status do repositório, utilize o comando git status
.
$ git status
# On branch master
#
# Initial commit
#
nothing to commit (create/copy files and use "git add" to track)
Após adicionar, modificar ou remover um arquivo no diretório utilize o comando git status
para verificar a situação repositório.
$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# index.html
nothing added to commit but untracked files present (use "git add" to track)
add
Para adicionar um arquivo utilize o comando git add
:
$ git add index.html
Nesse primeiro momento o arquivo ainda não foi adicionado no repositório, ele foi incluído no Staging Area.
Para adicionar vários itens no índice utilize o comando:
$ git add .
Após adicionar um arquivo no repositório utilize o comando git status
para verificar a situação repositório.
$ git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm --cached <file>..." to unstage)
#
# new file: index.html
Modifique um arquivo e verifique a situação repositório.
$ git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm --cached <file>..." to unstage)
#
# new file: index.html
#
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: index.html
diff
Para verificar as alterações realizadas no arquivo podemos utilizar o comando git diff
.
$ git diff
diff --git a/index.html b/index.html
index 814da57..35f1ee9 100644
--- a/index.html
+++ b/index.html
@@ -2,5 +2,10 @@
<head><title>Olá mundo com Git</title></head>
<body>
<h1>Olá mundo com o Git!</h1>
+ <ul>
+ <li>Inicializar repositório</li>
+ <li>Adicionar arquivos na Staging Area</li>
+ <li>Comparar arquivos</li>
+ <ul>
</body>
</html>
\ No newline at end of file
commit
Para armazenar as mudanças no repositório precisamos executar o comando git commit
:
$ git commit -m "Página inicial do site"
[master (root-commit) 75a6d88] Página inicial do site
1 file changed, 1 insertion(+)
create mode 100644 index.html
log
Para visualizar o histórico dos commits podemos utilizar o comando git log
:
$ git log
commit 75a6d8835fab8094110c0036c38c58e7e605d53d
Author: Rafael Sakurai <rafael@sakurai.com.br>
Date: Mon Feb 10 17:37:22 2014 -0200
Página inicial do site
Uma outra forma de visualizar os commits utilize git log --graph
:
$git log --graph
* commit 2fbb41427e4b09e966b1351cb6fbc6a3f299c6fd
| Author: Rafael Sakurai <rafasakurai@gmail.com>
| Date: Mon Feb 10 19:04:55 2014 -0200
|
| teste
|
* commit 75a6d8835fab8094110c0036c38c58e7e605d53d
Author: Rafael Sakurai <rafasakurai@gmail.com>
Date: Mon Feb 10 17:37:22 2014 -0200
Página inicial do site
reset
Adicionou algum arquivo errado com o git add
, para desfazer utilize o git reset
:
$ git reset index.html
Unstaged changes after reset:
M index.html
checkout
Para desfazer as alterações feitas localmente utilize o comando git checkout -- <file>
:
$ git checkout -- index.html
Removendo um commit
Removendo o último commit (mantêm os arquivos alterados localmente):
git reset HEAD~1
Voltando para um commit em específico (mantêm os arquivos alterados localmente):
git reset --soft commit-id
Voltando para um commit em específico (remove arquivos dos commits):
git reset --hard commit-id
stash
Stash é usado como uma área temporária, para colocar os arquivos do índice no stash
utilize o comando:
$ git stash
Para verificar o stash utilize o comando:
$ git stash list
Para voltar os arquivos do stash para o índice utilize o comando:
$ git stash apply
Para limpar o stash utilize o comando:
$ git stash clear
Para voltar os arquivos do último stash para o índice e ainda remover o stash da lista utilize o comando:
$ git stash pop
branch
Para criar uma nova branch utilize o comando git branch <nome>
:
$ git branch dev
Para ver quais as branches existentes utilize o comando git branch
:
$ git branch
dev
* master
Para trocar entre branches utilize o comando git checkout <nome>
:
$ git checkout dev
M index.html
Switched to branch 'dev'
Para remover uma branch, utilize o comando:
$ git branch -D dev
Deleted branch dev (was 04b1187).
merge
Para realizar merge entre as branches utilize o comando:
$ git merge dev
Updating 2fbb414..5bd4928
Fast-forward
index.html | 1 +
novo.txt | 1 +
2 files changed, 2 insertions(+)
create mode 100644 novo.txt