# 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 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 + +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 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$