2017-03-11 2 views
2

Je regardais apache-drill commettre 3efc2eca et j'ai réalisé qu'il est plus ancien que son parent 8614bae.Pourquoi certaines validations git sont plus anciennes que leurs parents?

J'ai eu quelques autres observations similaires. Comment puis-je les expliquer?

+2

Notez que lorsque vous validez, vous pouvez définir la date comme vous le souhaitez. (Ou date ** s **, puisqu'il y en a un pour chaque auteur et commit) – Eric

+0

Merci @Eric pour l'info! –

Répondre

4

L'historique de validation dans git est réinscriptible. Il y a plusieurs façons que cela aurait pu se produire. Le moyen le plus probable est que le commit était rebased après sa création.

2

Vous pouvez modifier l'histoire git avec un rebasage interactif, par exemple:

git rebase --interactive|-i HEAD~(number of commits) 

Voici le scénario:

$ git commit -m 'Commit 1' 
$ git commit -m 'Commit 2' 
$ git rebase -i HEAD~2 
    // changing only 'Commit 1' 
    edit bae2ea4 Commit 1 
    pick 0e25612 Commit 2 
$ git add . 
$ git commit --amend 
$ git rebase --continue 

Après ces 'commit 2' sera plus âgé que son parent Engagez-1 '

Vous devez vous rappeler qu'il est déconseillé de réécrire l'historique après la publication de vos modifications (poussées).