Introdução a reescrevendo a história.
authorThadeu Lima de Souza Cascardo <cascardo@cascardo.eti.br>
Sat, 28 Jun 2014 14:35:50 +0000 (11:35 -0300)
committerThadeu Lima de Souza Cascardo <cascardo@cascardo.eti.br>
Sat, 28 Jun 2014 14:35:50 +0000 (11:35 -0300)
Um pouco sobre o que é o histórico em Git, e quais as implicações em
alterar um commit e a cadeia de commits.

Merge.mdwn

index 033aec8..3c5c709 100644 (file)
@@ -67,6 +67,24 @@ daquele referenciado pelo branch master.
 
 ## Histórico
 
 
 ## Histórico
 
+A sequência de commits que vemos em um branch é também chamada de
+histórico. Como é utilizado um hash criptográfico e um link entre os
+commits utilizando o ID, e esse faz parte do conteúdo criptografado, não
+é possível alterar este histórico.
+
+Quando alteramos um commit, como feito acima, o histórico original é
+mantido enquanto ainda existir alguma referência a ele, através de
+branches, por exemplo. Se algum commit tiver o commit alterado como seu
+genitor, sua referência ainda será ao commit genitor original, não à
+nova versão do commit. Sendo assim, para aproveitar os commits já
+realizados, é necessário reescrevê-los para que apontem, em cadeia, às
+novas versões dos commits reescritos. Isso se chama reescrevendo a
+história, e pode ser feito com o comando git rebase, entre outros
+comandos.
+
+Veremos mais logo quando e como reescrever a história. Agora, veremos
+quando não se deve reescrevê-la.
+
 ## Fast-foward
 
 ## Merge
 ## Fast-foward
 
 ## Merge