Exemplo

Como um exemplo de projeto que use Git, vamos desenvolver uma calculadora RPN e usaremos Git para versionar o projeto. O projeto desenvolvido pode ser encontrado no endereço https://github.com/petcomputacaoufrgs/rpn-calc.

NOTA: neste exemplo, não usaremos --set-upstream, e escreveremos sempre o nome das branches em pushes e pulls por questões de clareza.

Uma calculadora RPN usa notação polonesa reversa, uma notação pósfixa. Por exemplo, 3 + 2 em RPN é escrito 3 2 +, enquanto (5 + 4/3 - 1) * 2 é escrito 5 4 3 / + 1 - 2 *. Parentesis normalmente não são usados, mas a expressão anterior pode ser lida como ((5 (4 3 /) +) 1 -) 2 *. RPN funciona através de uma pilha de operandos. Passo a passo da execução da expressão acima:

  1. Estado Inicial
Expressão: 5 4 3 / + 1 - 2 *
Pilha: topo = fundo
  1. Trazer 5 para a pilha
Expressão: 4 3 / + 1 - 2 *
Pilha: fundo = 5 = topo
  1. Trazer 4 para a pilha
Expressão: 3 / + 1 - 2 *
Pilha: fundo = 5, 4 = topo
  1. Trazer 3 para a pilha
Expressão: / + 1 - 2 *
Pilha: fundo = 5, 4, 3 = topo
  1. Executar a operação / nos dois elementos mais ao topo da pilha.
Expressão: + 1 - 2 *
Pilha: fundo = 5, 1.3333... = topo
  1. Executar a operação + nos dois elementos mais ao topo da pilha.
Expressão: 1 - 2 *
Pilha: fundo = 6.3333... = topo
  1. Trazer 1 para a pilha
Expressão: - 2 *
Pilha: fundo = 6.3333..., 1 = topo
  1. Executar a operação - nos dois elementos mais ao topo da pilha.
Expressão: 2 *
Pilha: fundo = 5.3333... = topo
  1. Trazer 2 para a pilha
Expressão: *
Pilha: fundo = 5.3333..., 2 = topo
  1. Executar a operação * nos dois elementos mais ao topo da pilha.
Expressão: vazia
Pilha: fundo = 10.6666... = topo

Resultado: 10.6666....

NOTA: Boa parte dos commits aqui não têm o melhor exemplode mensagem, mas são o suficiente para terem significado, e são só exemplos de mensagens.