Como criar branches e especificar revisões.
authorThadeu Lima de Souza Cascardo <cascardo@cascardo.eti.br>
Mon, 23 Jun 2014 02:21:08 +0000 (23:21 -0300)
committerThadeu Lima de Souza Cascardo <cascardo@cascardo.eti.br>
Mon, 23 Jun 2014 02:21:08 +0000 (23:21 -0300)
Branches.mdwn [new file with mode: 0644]

diff --git a/Branches.mdwn b/Branches.mdwn
new file mode 100644 (file)
index 0000000..8611263
--- /dev/null
@@ -0,0 +1,118 @@
+# Branches
+
+Um branch é uma referência a um commit, que pode ser atualizada através
+de novos commits quando é o branch corrente, ou através de outros
+comandos.
+
+Git permite a fácil e rápida criação de branches. Um branch pode ser
+criado com o comando branch.
+
+       ~/project$ git branch
+       * master
+       ~/project$ git branch devel
+       ~/project$ git branch
+         devel
+       * master
+       ~/project$ 
+
+O novo branch aponta, ao ser criado, para o mesmo commit que o HEAD
+aponta em sua criação. É possível especificar um commit diferente,
+através do ID ou outra referência.
+
+O branch corrente é indicado pelo asterisco na saída do comando git
+branch. Para trocar o branch corrente, pode ser utilizado o comando git
+checkout.
+
+       ~/project$ git checkout devel
+       Switched to branch 'devel'
+       ~/project$ git branch
+       * devel
+         master
+       ~/project$ 
+
+Um novo branch também pode ser criado com a opção -b de git checkout,
+que recebe o nome do novo branch.
+
+       ~/project$ git branch
+       * devel
+         master
+       ~/project$ git checkout -b novo master~
+       Switched to a new branch 'novo'
+       ~/project$ git branch
+         devel
+         master
+       * novo
+       ~/project$ 
+
+Comandos como git show, git log, e outros que aceitam um commit ID como
+parâmetro, aceitam o nome de um branch como parâmetro também.
+
+       ~/project$ git show novo
+       commit e07b9f077684f5e1528cb3632a8e2175cb4a6981
+       Author: Thadeu Lima de Souza Cascardo <cascardo@cascardo.eti.br>
+       Date:   Sun Jun 22 21:34:01 2014 -0300
+
+           Atualiza README com o real propósito do projeto.
+
+       diff --git a/README b/README
+       index a10eb63..0c4d1d4 100644
+       --- a/README
+       +++ b/README
+       @@ -1 +1,3 @@
+       -Novo projeto
+       +Projeto de demonstração do git.
+       +
+       +Um simples hello world em C.
+       ~/project$ 
+
+O comando git diff permite comparar duas revisões, ou dois pontos
+indicados por commits, seja utilizando IDs, branches, ou outras formas
+de especificar um commit ou revisão.
+
+       ~/project$ git diff HEAD master
+       diff --git a/Makefile b/Makefile
+       new file mode 100644
+       index 0000000..8b8f8eb
+       --- /dev/null
+       +++ b/Makefile
+       @@ -0,0 +1,9 @@
+       +CC = gcc
+       +CFLAGS = -Wall
+       +OBJECTS = hello.o
+       +
+       +%.o: %.c
+       +       $(CC) $(CFLAGS) -o $@ -c $<
+       +
+       +hello: $(OBJECTS)
+       +       $(CC) $(CFLAGS) -o hello $(OBJECTS)
+       diff --git a/hello.c b/hello.c
+       new file mode 100644
+       index 0000000..5ba7644
+       --- /dev/null
+       +++ b/hello.c
+       @@ -0,0 +1,7 @@
+       +#include <stdio.h>
+       +
+       +int main(int argc, char **argv)
+       +{
+       +       printf("Hello, world!\n");
+       +       return 0;
+       +}
+       ~/project$ 
+
+Já git log e outros comandos aceitam uma lista de revisões, que pode ser
+especificada de diversas maneiras. Uma maneira comum é indicar um commit
+inicial e outro final, através da notação inicial..final, ou ^inicial
+final. Esta notação, na verdade, implica em todos os commits alcançáveis
+por final, excluindo aqueles alcançáveis por inicial.
+
+       ~/project$ git log novo..master
+       commit 53b6b836f6c83b8df441f63fe3118b109a83e73a
+       Author: Thadeu Lima de Souza Cascardo <cascardo@cascardo.eti.br>
+       Date:   Sun Jun 22 21:36:28 2014 -0300
+
+           Adiciona programa principal e sistema de build.
+
+           O programa principal que imprime "Hello, world!" e um Makefile para
+           compilá-lo são adicionados.
+       ~/project$