3 Um branch é uma referência a um commit, que pode ser atualizada através
4 de novos commits quando é o branch corrente, ou através de outros
7 Git permite a fácil e rápida criação de branches. Um branch pode ser
8 criado com o comando branch.
12 ~/project$ git branch devel
18 O novo branch aponta, ao ser criado, para o mesmo commit que o HEAD
19 aponta em sua criação. É possível especificar um commit diferente,
20 através do ID ou outra referência.
22 O branch corrente é indicado pelo asterisco na saída do comando git
23 branch. Para trocar o branch corrente, pode ser utilizado o comando git
26 ~/project$ git checkout devel
27 Switched to branch 'devel'
33 Um novo branch também pode ser criado com a opção -b de git checkout,
34 que recebe o nome do novo branch.
39 ~/project$ git checkout -b novo master~
40 Switched to a new branch 'novo'
47 Comandos como git show, git log, e outros que aceitam um commit ID como
48 parâmetro, aceitam o nome de um branch como parâmetro também.
50 ~/project$ git show novo
51 commit e07b9f077684f5e1528cb3632a8e2175cb4a6981
52 Author: Thadeu Lima de Souza Cascardo <cascardo@cascardo.eti.br>
53 Date: Sun Jun 22 21:34:01 2014 -0300
55 Atualiza README com o real propósito do projeto.
57 diff --git a/README b/README
58 index a10eb63..0c4d1d4 100644
63 +Projeto de demonstração do git.
65 +Um simples hello world em C.
68 O comando git diff permite comparar duas revisões, ou dois pontos
69 indicados por commits, seja utilizando IDs, branches, ou outras formas
70 de especificar um commit ou revisão.
72 ~/project$ git diff HEAD master
73 diff --git a/Makefile b/Makefile
75 index 0000000..8b8f8eb
84 + $(CC) $(CFLAGS) -o $@ -c $<
87 + $(CC) $(CFLAGS) -o hello $(OBJECTS)
88 diff --git a/hello.c b/hello.c
90 index 0000000..5ba7644
96 +int main(int argc, char **argv)
98 + printf("Hello, world!\n");
103 Já git log e outros comandos aceitam uma lista de revisões, que pode ser
104 especificada de diversas maneiras. Uma maneira comum é indicar um commit
105 inicial e outro final, através da notação inicial..final, ou ^inicial
106 final. Esta notação, na verdade, implica em todos os commits alcançáveis
107 por final, excluindo aqueles alcançáveis por inicial.
109 ~/project$ git log novo..master
110 commit 53b6b836f6c83b8df441f63fe3118b109a83e73a
111 Author: Thadeu Lima de Souza Cascardo <cascardo@cascardo.eti.br>
112 Date: Sun Jun 22 21:36:28 2014 -0300
114 Adiciona programa principal e sistema de build.
116 O programa principal que imprime "Hello, world!" e um Makefile para
117 compilá-lo são adicionados.