ā§.ā§§ āĻāĻŋāĻ āĻā§āϞāϏ – āϰāĻŋāĻāĻŋāĻļāύ āϏāĻŋāϞā§āĻāĻļāύ
āĻāĻāύ āĻĒāϰā§āϝāύā§āϤ, āĻāĻĒāύāĻŋ āĻāĻĒāύāĻžāϰ āϏā§āϰā§āϏ āĻā§āĻĄ āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŖā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻāĻŋāĻ āϰāĻŋāĻĒā§āĻāĻŋāĻāϰāĻŋ āĻĒāϰāĻŋāĻāĻžāϞāύāĻž āĻŦāĻž āϰāĻā§āώāĻŖāĻžāĻŦā§āĻā§āώāĻŖ āĻāϰ āĻāύā§āϝ⧠āĻĒā§āϰā§ā§āĻāύā§ā§ āĻĒā§āϰāϤāĻŋāĻĻāĻŋāύā§āϰ āĻāĻžāĻ āĻāĻžāϞāĻžāύā§āϰ āĻŽāϤ āĻ āϧāĻŋāĻāĻžāĻāĻļ āĻāĻŽāĻžāύā§āĻĄ āĻāĻŦāĻ āĻā§āĻžāϰā§āĻāĻĢā§āϞ⧠āĻļāĻŋāĻā§ āĻĢā§āϞā§āĻā§āύāĨ¤ āĻāĻĒāύāĻŋ āĻĢāĻžāĻāϞāĻā§āϞāĻŋ āĻā§āϰā§āϝāĻžāĻāĻŋāĻ āĻāĻŦāĻ āĻāĻŽāĻŋāĻ āĻāϰāĻžāϰ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ āĻāĻžāĻāĻā§āϞāĻŋ āϏāĻŽā§āĻĒāύā§āύ āĻāϰā§āĻā§āύ, āĻāĻŦāĻ āĻāĻĒāύāĻŋ āϏā§āĻā§āĻāĻŋāĻ āĻāϰāĻŋāϝāĻŧāĻž āĻāĻŦāĻ āϞāĻžāĻāĻāĻāϝāĻŧā§āĻ āĻāĻĒāĻŋāĻ āĻŦā§āϰāĻžāĻā§āĻāĻŋāĻ āĻāĻŦāĻ āĻŽāĻžāϰā§āĻāĻŋāĻ āĻāϰāĻžāϰ āĻā§āώāĻŽāϤāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĻā§āύāĨ¤Â
āĻāĻāύ āĻāĻĒāύāĻŋ āĻāĻŋāĻ āĻāϰāϤ⧠āĻĒāĻžāϰ⧠āĻāĻŽāύ āĻ āύā§āĻāĻā§āϞāĻŋ āĻļāĻā§āϤāĻŋāĻļāĻžāϞ⧠āĻāĻŋāύāĻŋāϏ āĻ āύā§āĻŦā§āώāĻŖ āĻāϰāĻŦā§āύ āϝā§āĻā§āϞ⧠āĻšā§āϤ āĻāĻĒāύāĻŋ āĻĒā§āϰāϤāĻŋāĻĻāĻŋāύ āĻāϰ āĻāύā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āύāĻžāĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ, āϤāĻŦā§ āĻā§āύāĻ āϏāĻŽāϝāĻŧā§ āĻāĻĒāύāĻžāϰ āĻĒā§āϰāϝāĻŧā§āĻāύ āĻšāϤ⧠āĻĒāĻžāϰā§āĨ¤
āϰāĻŋāĻāĻŋāĻļāύ āύāĻŋāϰā§āĻŦāĻžāĻāύ
āĻāĻŋāĻ āĻāĻĒāύāĻžāĻā§ āĻŦāĻŋāĻāĻŋāύā§āύ āĻāĻĒāĻžāϝāĻŧā§ āĻāĻāĻāĻŋ āϏāĻŋāĻā§āĻā§āϞ āĻāĻŽāĻŋāĻ , āĻāĻŽāĻŋāĻā§āϰ āϏā§āĻ āĻŦāĻž āĻāĻŽāĻŋāĻā§āϰ āĻĒāϰāĻŋāϏāϰ āĻāϞā§āϞā§āĻ āĻāϰāϤ⧠āĻĻā§āϝāĻŧāĨ¤ āĻāĻ āĻāĻĒāĻžā§āĻĒāĻā§āϞ⧠āĻ āĻāϤā§āϝāĻž āϏā§āĻĒāώā§āĻ āύāϝāĻŧ āĻāĻŋāύā§āϤ⧠āĻā§āύ⧠āϰāĻžāĻāĻž āϏāĻšāĻžāϝāĻŧāĻāĨ¤
āĻāĻāĻ āϏāĻāĻļā§āϧāύ
āĻāĻĒāύāĻŋ āϏā§āĻĒāώā§āĻāϤāĻ āϏāĻŋāĻā§āĻā§āϞ āĻāĻŽāĻŋāĻ āĻāϰ āĻĒā§āϰā§āĻŖ 40-āĻ āĻā§āώāϰā§āϰ SHA-1 āĻšā§āϝāĻžāĻļ āĻĻā§āĻŦāĻžāϰāĻž, āϏā§āĻ āϏāĻŋāĻā§āĻā§āϞ āĻāĻŽāĻŋāĻ āĻāϞā§āϞā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ, āϤāĻŦā§ āĻāĻŽāĻŋāĻāĻā§āϞāĻŋ āĻāϞā§āϞā§āĻ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāϰāĻ āĻšāĻŋāĻāĻŽā§āϝāĻžāύ āĻĢā§āϰā§āύā§āĻĄāϞāĻŋ āĻāĻĒāĻžāϝāĻŧ āϰāϝāĻŧā§āĻā§āĨ¤Â
āĻāĻ āϏā§āĻāĻļāύ⧠āĻāĻāĻāĻŋ āĻāĻŽāĻŋāĻ āĻŦāĻŋāĻāĻŋāύā§āύ āĻāĻĒāĻžā§ā§ āϰā§āĻĢāĻžāϰ āĻāϰāĻžāϰ āĻŦāĻŋāώā§ā§ āĻāϞā§āĻāĻĒāĻžāϤ āĻāϰāĻž āĻšāĻŦā§āĨ¤Â
āϏāĻāĻā§āώāĻŋāĻĒā§āϤ SHA-1Â
āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ SHA-1 āĻšā§āϝāĻžāĻļā§āϰ āĻĒā§āϰāĻĨāĻŽ āĻāϝāĻŧā§āĻāĻāĻŋ āĻ āĻā§āώāϰ āĻĒā§āϰāĻĻāĻžāύ āĻāϰā§āύ āϤāĻŦā§ āĻāĻĒāύāĻŋ āĻā§āύ āĻāĻŽāĻŋāĻ āĻāϰ āĻāĻĨāĻž āĻāϞā§āϞā§āĻ āĻāϰāĻā§āύ āϤāĻž āύāĻŋāϰā§āϧāĻžāϰāĻŖ āĻāϰāϤ⧠āĻāĻŋāĻ āϝāĻĨā§āώā§āĻ āϏā§āĻŽāĻžāϰā§āĻ, āϝāϤāĻā§āώāĻŖ āύāĻž āϏā§āĻ āĻāĻāĻļāĻŋāĻ āĻšā§āϝāĻžāĻļāĻāĻŋ āĻāĻŽāĻĒāĻā§āώ⧠āĻāĻžāϰāĻāĻŋ āĻ āĻā§āώāϰ āĻĻā§āϰā§āĻ āĻāĻŦāĻ āϏā§āĻĒāώā§āĻ āĻšāϝāĻŧ; āĻ āϰā§āĻĨāĻžā§, āĻ āĻŦāĻā§āĻā§āĻ āĻĄāĻžāĻāĻžāĻŦā§āĻā§āϰ āĻ āύā§āϝ āĻā§āύ⧠āĻ āĻŦāĻā§āĻā§āĻā§ āĻāĻāĻ prefix āĻĻāĻŋāϝāĻŧā§ āĻļā§āϰ⧠āĻšāĻāϝāĻŧāĻž āĻ āύā§āϝ āĻā§āύ āĻšā§āϝāĻžāĻļ āĻĨāĻžāĻāϤ⧠āĻĒāĻžāϰāĻŦā§ āύāĻžāĨ¤
Â
āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻāĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāĻŽāĻŋāĻ āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻžāϰ āĻāύā§āϝ āϝā§āĻāĻžāύ⧠āĻāĻĒāύāĻŋ āĻāĻžāύā§āύ āϝ⧠āĻāĻĒāύāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāĻŋāĻā§ āĻāĻžāĻ āϝā§āĻ āĻāϰā§āĻā§āύ, āĻāĻĒāύāĻŋ āĻĒā§āϰāĻĨāĻŽā§ āϏā§āĻ āĻāĻŽāĻŋāĻ āϏāύāĻžāĻā§āϤ āĻāϰāϤ⧠git log āĻāĻŽāĻžāύā§āĻĄāĻāĻŋ āĻāĻžāϞāĻžāϤ⧠āĻĒāĻžāϰā§āύ:
$ git log
commit 734713bc047d87bf7eac9674765ae793478c50d3
Author: Scott Chacon
Date: Fri Jan 2 18:32:33 2009 -0800
Fix refs handling, add gc auto, update tests
commit d921970aadf03b3cf0e71becdaab3147ba71cdef
Merge: 1c002dd... 35cfb2b...
Author: Scott Chacon
Date: Thu Dec 11 15:08:43 2008 -0800
Merge commit 'phedders/rdocs'
commit 1c002dd4b536e7479fe34593e72e6c6c1819e53b
Author: Scott Chacon
Date: Thu Dec 11 14:58:32 2008 -0800
Add some blame and merge stuff
āĻāĻ āĻā§āώā§āϤā§āϰā§, āĻŽāύ⧠āĻāϰā§āύ āϝ⧠āĻāĻĒāύāĻŋ āĻšā§āϝāĻžāĻļ 1c002dd āĻĻāĻŋāϝāĻŧā§ āĻļā§āϰ⧠āĻšāĻā§āĻž āĻāĻŽāĻŋāĻ-āĻāĻŋ āϏāĻŽā§āĻĒāϰā§āĻā§ āĻāĻžāύāϤ⧠āĻāĻā§āϰāĻšā§āĨ¤ āĻāĻĒāύāĻŋ git show āĻāϰ āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āϝā§āĻā§āύ āĻāĻāĻāĻŋ āĻāĻŽāĻžāύā§āĻĄā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āϏā§āĻ āĻāĻŽāĻŋāĻ-āĻāĻŋ āĻĒāϰāĻŋāĻĻāϰā§āĻļāύ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĻ¨Â ( āϧāϰ⧠āύā§ā§āĻž āĻšā§ , āϏāĻāĻā§āώāĻŋāĻĒā§āϤāϤāϰ āϏāĻāϏā§āĻāϰāĻŖ āĻā§āϞ⧠āϏā§āĻĒāώā§āĻāϤāϰ):
$ git show 1c002dd4b536e7479fe34593e72e6c6c1819e53b
$ git show 1c002dd4b536e7479f
$ git show 1c002d
āĻāĻŋāĻ āĻāĻĒāύāĻžāϰ SHA-1 āĻŽāĻžāύāĻā§āϞāĻŋāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āϏāĻāĻā§āώāĻŋāĻĒā§āϤ, āĻāĻāύāĻŋāĻ āϏāĻžāϰāϏāĻāĻā§āώā§āĻĒ āĻŦā§āϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ –abbrev-commit , git log āĻāĻŽāĻžāύā§āĻĄā§ āĻĒāĻžāϏ āĻāϰā§āύ, āĻāĻāĻāĻĒā§āĻāĻā§āϞāĻŋ āϏāĻāĻā§āώāĻŋāĻĒā§āϤāϤāϰ āĻšāϞā§āĻ āϏā§āĻā§āϞ⧠āĻšāĻŦā§ āĻāĻāύāĻŋāĻ ; āĻāĻāĻŋ āϏāĻžāϧāĻžāϰāĻŖāϤ āϏāĻžāϤāĻāĻŋ āĻ āĻā§āώāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āϤāĻŦā§ SHA-1 āĻā§ āϏā§āĻĒāώā§āĻ āϰāĻžāĻāĻžāϰ āĻāύā§āϝ āĻĒā§āϰāϝāĻŧā§āĻāύ⧠āϏā§āĻā§āϞāĻŋāĻā§ āĻĻā§āϰā§āĻāĻžāϝāĻŧāĻŋāϤ āĻāϰāϤ⧠āĻĒāĻžāϰ⧠:
$ git log --abbrev-commit --pretty=oneline
ca82a6d Change the version number
085bb3b Remove unnecessary test code
a11bef0 Initial commit
 āϏāĻžāϧāĻžāϰāĻŖāϤ, āĻāĻāĻāĻŋ āĻĒā§āϰāĻā§āĻā§āĻ-āĻāϰ āĻŽāϧā§āϝ⧠āĻāĻāύāĻŋāĻ āĻšāĻāϝāĻŧāĻžāϰ āĻāύā§āϝ āĻāĻ āĻĨā§āĻā§ āĻĻāĻļāĻāĻŋ āĻ āĻā§āώāϰāĻ āϝāĻĨā§āώā§āĻāĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻĢā§āĻŦā§āϰā§āϝāĻŧāĻžāϰ⧠2019 āĻĒāϰā§āϝāύā§āϤ, Linux āĻāĻžāϰā§āύā§āĻ˛Â ( āϝāĻž āĻŽā§āĻāĻžāĻŽā§āĻāĻŋ āĻāĻāĻāĻŋ āĻŦāĻĄāĻŧ āĻĒā§āϰāĻā§āĻā§āĻ ) āĻāϰ āĻ āĻŦāĻā§āĻā§āĻ āĻĄāĻžāĻāĻžāĻŦā§āϏ⧠875,000 āĻāϰ āĻŦā§āĻļāĻŋ āĻāĻŽāĻŋāĻ āĻāĻŦāĻ āĻĒā§āϰāĻžāϝāĻŧ 7 āĻŽāĻŋāϞāĻŋāϝāĻŧāύ āĻ āĻŦāĻā§āĻā§āĻ āϰāϝāĻŧā§āĻā§, āϝā§āĻāĻžāύ⧠āĻāĻŽāύ āĻā§āύ āĻĻā§āĻāĻŋ āĻ āĻŦāĻā§āĻā§āĻ āĻĒāĻžāĻā§āĻž āϝāĻžāĻŦā§ āύāĻž āϝāĻžāĻĻā§āϰ SHA-1āĻā§āϞāĻŋ āĻĒā§āϰāĻĨāĻŽ 12āĻāĻŋ āĻ āĻā§āώāϰ⧠āĻ āĻāĻŋāύā§āύāĨ¤
āύā§āĻ
SHA-1 āϏāĻŽā§āĻĒāϰā§āĻā§ āĻāĻāĻāĻŋ āϏāĻāĻā§āώāĻŋāĻĒā§āϤ āύā§āĻ
āϰâā§āϝāĻžāύā§āĻĄāĻŽ āĻāĻāύāĻžāϰ āĻĻā§āĻŦāĻžāϰāĻž, āĻ āύā§āĻ āϞā§āĻ āĻāĻ āĻĒāϰā§āϝāĻžāϝāĻŧā§ āĻāĻĻā§āĻŦāĻŋāĻā§āύ āĻšāϝāĻŧā§ āĻĒāĻĄāĻŧā§ āϝā§, āϝāĻāύ āϤāĻžāĻĻā§āϰ āϰāĻŋāĻĒā§āĻāĻŋāĻāϰāĻŋāϤ⧠āĻĻā§āĻāĻŋ āĻ āĻŦāĻā§āĻā§āĻ āĻĨāĻžāĻāĻŦā§ āϝāĻžāϰāĻž āĻāĻāĻ SHA-1 āĻā§āϝāĻžāϞā§āϤ⧠āĻšā§āϝāĻžāĻļ āĻāϰāĻŦā§āĨ¤ āϤāĻāύ āĻāĻŋ āĻāϰāϤ⧠āĻšāĻŦā§ ?
āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻŽāύ āĻāĻāĻāĻŋ āĻ āĻŦāĻā§āĻā§āĻ āĻ āĻāĻŽāĻŋāĻ āĻāϰ⧠āĻĨāĻžāĻā§āύ āϝāĻž āĻāĻĒāύāĻžāϰ āϰāĻŋāĻĒā§āĻāĻŋāĻāϰāĻŋāϤ⧠āĻāĻā§āϰ āĻāĻŋāύā§āύ āĻ āĻŦāĻā§āĻā§āĻā§āϰ āĻŽāϤ⧠āĻāĻāĻ SHA-1 āĻā§āϝāĻžāϞā§āϤ⧠āĻšā§āϝāĻžāĻļ āĻāϰā§, āĻāĻŋāĻ āĻāĻĒāύāĻžāϰ āĻāĻŋāĻ āĻĄāĻžāĻāĻžāĻŦā§āϏ⧠āĻāϤāĻŋāĻŽāϧā§āϝā§āĻ āĻĒā§āϰā§āĻŦāĻŦāϰā§āϤ⧠āĻ āĻŦāĻā§āĻā§āĻāĻāĻŋ āĻĻā§āĻāϤ⧠āĻĒāĻžāĻŦā§, āϧāϰ⧠āύāĻŋāύ āĻāĻāĻŋ āĻāϤāĻŋāĻŽāϧā§āϝā§āĻ āϞā§āĻāĻž āĻāĻŋāϞ āĻāĻŦāĻ āĻā§āĻŦāϞ āĻāĻāĻŋ āĻĒā§āύāϰāĻžāϝāĻŧ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύāĨ¤ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻā§āύāĻ āϏāĻŽāϝāĻŧā§ āϏā§āĻ āĻ āĻŦāĻā§āĻā§āĻāĻāĻŋ āĻāĻŦāĻžāϰ āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻžāϰ āĻā§āώā§āĻāĻž āĻāϰā§āύ, āϤāĻžāĻšāϞ⧠āĻāĻĒāύāĻŋ āϏāϰā§āĻŦāĻĻāĻž āĻĒā§āϰāĻĨāĻŽ āĻ āĻŦāĻā§āĻā§āĻāĻāĻŋāϰ āĻĄā§āĻāĻž āĻĒāĻžāĻŦā§āύāĨ¤
āϝāĻžāĻāĻšā§āĻ, āĻāĻĒāύāĻžāϰ āϏāĻā§āϤāύ āĻšāĻāϝāĻŧāĻž āĻāĻāĻŋāϤ āϝ⧠āĻāĻ āĻĻā§āĻļā§āϝāĻāĻŋ āĻāϤāĻāĻž āĻšāĻžāϏā§āϝāĻāϰāĻāĻžāĻŦā§ āĻ āϏāĻŽā§āĻāĻžāĻŦā§āϝāĨ¤ SHA-1 āĻĄāĻžāĻāĻā§āϏā§āĻ āĻšāϞ 20 āĻŦāĻžāĻāĻ āĻŦāĻž 160 āĻŦāĻŋāĻāĨ¤ āĻāĻāĻāĻŋ āĻāĻāĻ āϏāĻāĻāϰā§āώā§āĻ°Â ( collision ) 50% āϏāĻŽā§āĻāĻžāĻŦāύāĻž āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰāϤ⧠āĻāϞā§āĻŽā§āϞā§āĻāĻžāĻŦā§ āĻšā§āϝāĻžāĻļ āĻāϰāĻž āĻŦāϏā§āϤā§āϰ āϏāĻāĻā§āϝāĻž āĻĒā§āϰāĻžāϝāĻŧ 280 ( āϏāĻāĻāϰā§āώā§āϰ āϏāĻŽā§āĻāĻžāĻŦāύāĻž āύāĻŋāϰā§āϧāĻžāϰāĻŖā§āϰ āϏā§āϤā§āϰ āĻšāϞ p = ( n ( n-1 )/2 ) * ( 1/2^160 ) )āĨ¤ 280 āĻšāϞ 1.2 x 1024 āĻŦāĻž 1 āĻŽāĻŋāϞāĻŋāϝāĻŧāύ āĻŦāĻŋāϞāĻŋāϝāĻŧāύ āĻŦāĻŋāϞāĻŋāϝāĻŧāύāĨ¤ āĻāĻāĻŋ āĻĒā§āĻĨāĻŋāĻŦā§āϤ⧠āĻĨāĻžāĻāĻž āĻŦāĻžāϞāĻŋāϰ āĻĻāĻžāύāĻžāϰ āϏāĻāĻā§āϝāĻžāϰ 1,200 āĻā§āĻŖāĨ¤
āĻāĻāĻāĻŋ SHA-1 āϏāĻāĻāϰā§āώ āĻĒā§āϤ⧠āĻā§ āϞāĻžāĻāĻŦā§ āϏ⧠āϏāĻŽā§āĻĒāϰā§āĻā§ āĻāĻĒāύāĻžāĻā§ āϧāĻžāϰāĻŖāĻž āĻĻā§āĻāϝāĻŧāĻžāϰ āĻāύā§āϝ āĻāĻāĻžāύ⧠āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāϰāĻŖ āĻĻā§āĻāϝāĻŧāĻž āĻšāϞāĨ¤ āϝāĻĻāĻŋ āĻĒā§āĻĨāĻŋāĻŦā§āϰ āϏāĻŽāϏā§āϤ 6.5 āĻŦāĻŋāϞāĻŋāϝāĻŧāύ āĻŽāĻžāύā§āώ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽāĻŋāĻ āĻāϰāϤ āĻāĻŦāĻ āĻĒā§āϰāϤāĻŋ āϏā§āĻā§āύā§āĻĄā§ āĻĒā§āϰāϤā§āϝā§āĻā§ āĻāĻāĻāĻŋ āĻā§āĻĄ āϤā§āϰāĻŋ āĻāϰāϤ āϝāĻž āĻĒā§āϰ⧠āϞāĻŋāύāĻžāĻā§āϏ āĻāĻžāϰā§āύā§āϞ āĻāϤāĻŋāĻšāĻžāϏā§āĻ°Â ( 6.5 āĻŽāĻŋāϞāĻŋāϝāĻŧāύ āĻāĻŋāĻ āĻ āĻŦāĻā§āĻā§āĻ ) āϏāĻŽāϤā§āϞā§āϝ āĻāĻŦāĻ āĻāĻāĻŋāĻā§ āĻāĻāĻāĻŋ āĻŦāĻŋāĻļāĻžāϞ āĻāĻŋāĻ āϰāĻŋāĻĒā§āĻāĻŋāĻāϰāĻŋāϤ⧠āĻĒā§āĻļ āĻāϰāϤ, āϤāĻŦā§ āĻāĻāĻŋ āĻĒā§āϰāĻžāϝāĻŧ 2 āĻŦāĻāϰ āϏāĻŽāϝāĻŧ āύā§āĻŦā§, āϝāϤāĻā§āώāĻŖ āύāĻž āϏā§āĻ āϰāĻŋāĻĒā§āĻāĻŋāĻāϰāĻŋāϤ⧠āĻāĻāĻāĻŋ āĻāĻāĻ SHA-1 āĻ āĻŦāĻā§āĻā§āĻā§āϰ āϏāĻāĻāϰā§āώā§āϰ 50% āϏāĻŽā§āĻāĻžāĻŦāύāĻž āĻĨāĻžāĻāĻžāϰ āĻāύā§āϝ āĻĒāϰā§āϝāĻžāĻĒā§āϤ āĻ āĻŦāĻā§āĻā§āĻ āϰāϝāĻŧā§āĻā§āĨ¤ āĻāĻāĻāĻžāĻŦā§, āĻāĻĒāύāĻžāϰ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽāĻŋāĻ āĻĻāϞā§āϰ āĻĒā§āϰāϤā§āϝā§āĻ āϏāĻĻāϏā§āϝāĻā§ āĻāĻāĻ āϰāĻžāϤ⧠āĻ āϏāĻŽā§āĻĒāϰā§āĻāĻŋāϤ āĻāĻāύāĻžāϝāĻŧ āύā§āĻāĻĄāĻŧā§āĻĻā§āϰ āĻĻā§āĻŦāĻžāϰāĻž āĻāĻā§āϰāĻžāύā§āϤ āĻ āύāĻŋāĻšāϤ āĻšāĻāϝāĻŧāĻžāϰ āϏāĻŽā§āĻāĻžāĻŦāύāĻžāϰ āĻā§āϝāĻŧā§ āĻāĻāĻāĻŋ āĻāĻāĻ SHA-1 āϏāĻāĻāϰā§āώā§āϰ āϏāĻŽā§āĻāĻžāĻŦāύāĻž āĻāĻŽāĨ¤
āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāϤ⧠āĻāϝāĻŧā§āĻ āĻšāĻžāĻāĻžāϰ āĻĄāϞāĻžāϰ āĻŽā§āϞā§āϝā§āϰ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻŋāĻ āĻļāĻā§āϤāĻŋ āĻā§āϏāϰā§āĻ āĻāϰā§āύ, āϤāĻžāĻšāϞ⧠āĻāĻāĻ āĻšā§āϝāĻžāĻļ āĻĻāĻŋāϝāĻŧā§ āĻĻā§āĻāĻŋ āĻĢāĻžāĻāϞ āϏāĻāĻļā§āϞā§āώāĻŋāϤ āĻāϰāĻž āϏāĻŽā§āĻāĻŦ, āϝā§āĻŽāύāĻāĻŋ 2017 āϏāĻžāϞā§āϰ āĻĢā§āĻŦā§āϰā§āϝāĻŧāĻžāϰāĻŋāϤ⧠https://shattered.io/-āĻ āĻĒā§āϰāĻŽāĻžāĻŖāĻŋāϤ āĻšāϝāĻŧā§āĻā§āĨ¤ āĻāĻŋāĻ SHA256 āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻĄāĻŋāĻĢāϞā§āĻ āĻšā§āϝāĻžāĻļāĻŋāĻ āĻ ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāĻāĻŋā§ā§ āϝāĻžāĻā§āĻā§, āϝāĻž āϏāĻāĻāϰā§āώā§āϰ āĻāĻā§āϰāĻŽāĻŖ āĻĨā§āĻā§ āϰāĻā§āώāĻž āĻĒāĻžāĻā§āĻžāϰ āĻā§āώā§āϤā§āϰ⧠āĻ āύā§āĻ āĻŦā§āĻļāĻŋ āϏā§āĻĨāĻŋāϤāĻŋāϏā§āĻĨāĻžāĻĒāĻ, āĻāĻŦāĻ āĻāĻ āĻāĻā§āϰāĻŽāĻŖ āĻĒā§āϰāĻļāĻŽāĻŋāϤ āĻāϰāϤ⧠āϏāĻšāĻžāϝāĻŧāϤāĻž āĻāϰāĻžāϰ āĻāύā§āϝ āĻā§āĻĄ āϰāϝāĻŧā§āĻā§Â ( āϝāĻĻāĻŋāĻ āĻāĻāĻŋ āϏāĻŽā§āĻĒā§āϰā§āĻŖāϰā§āĻĒā§ āύāĻŋāϰā§āĻŽā§āϞ āĻāϰāϤ⧠āĻĒāĻžāϰ⧠āύāĻž )āĨ¤
āĻŦā§āϰāĻžāĻā§āĻā§āϰ āϰā§āĻĢāĻžāϰā§āύā§āϏ
āĻāĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāĻŽāĻŋāĻ āĻāϞā§āϞā§āĻ āĻāϰāĻžāϰ āĻāĻāĻāĻŋ āϏāĻšāĻ āĻāĻĒāĻžāϝāĻŧ āĻšāϞ āϝāĻĻāĻŋ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻŦā§āϰāĻžāĻā§āĻā§āϰ āĻļā§āϰā§āώ⧠āĻāĻŽāĻŋāĻ āĻšāϝāĻŧ; āϏā§āĻ āĻā§āώā§āϤā§āϰā§, āĻāĻĒāύāĻŋ āϝ⧠āĻā§āύāĻ āĻāĻŋāĻ āĻāĻŽāĻžāύā§āĻĄā§ āĻŦā§āϰāĻžāĻā§āĻā§āϰ āύāĻžāĻŽāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ āϝāĻž āĻāĻāĻāĻŋ āĻāĻŽāĻŋāĻā§āϰ āϰā§āĻĢāĻžāϰā§āύā§āϏ āĻāĻļāĻž āĻāϰā§āĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āϝāĻĻāĻŋ āĻāĻĒāύāĻŋ āĻāĻāĻāĻŋ āĻŦā§āϰāĻžāĻā§āĻā§ āĻļā§āώ āĻāĻŽāĻŋāĻ āĻ
āĻŦāĻā§āĻā§āĻāĻāĻŋ āĻĒāϰā§āĻā§āώāĻž āĻāϰāϤ⧠āĻāĻžāύ āϤāĻŦā§ āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻāĻŽāĻžāύā§āĻĄāĻā§āϞā§āĻ āϏāĻŽāϤā§āϞā§āϝ, āϧāϰ⧠āύā§āĻ āϝ⧠topic1 āĻŦā§āϰāĻžāĻā§āĻāĻāĻŋ ca82a6d… āĻāĻŽāĻŋāĻāĻāĻŋāĻā§ āύāĻŋāϰā§āĻĻā§āĻļ āĻāϰāĻā§āĨ¤
$ git show ca82a6dff817ec66f44342007202690a93763949
$ git show topic1
āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻĻā§āĻāϤ⧠āĻāĻžāύ āϝ⧠āĻā§āύ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ SHA-1 āĻāĻŋ, āĻāĻāĻāĻŋ āĻŦā§āϰāĻžāĻā§āĻ āύāĻŋāϰā§āĻĻā§āĻļ āĻāϰā§, āĻ āĻĨāĻŦāĻž āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻĻā§āĻāϤ⧠āĻāĻžāύ āϝ⧠āĻāĻ āĻāĻĻāĻžāĻšāϰāĻŖāĻā§āϞāĻŋāϰ āĻŽāϧā§āϝ⧠āĻā§āύāĻāĻŋāϤ⧠SHA-1 āĻāϰ āĻĒāϰāĻŋāĻĒā§āϰā§āĻā§āώāĻŋāϤ⧠āĻā§ āĻĢā§āĻā§ āĻāĻ ā§āĻā§, āĻāĻĒāύāĻŋ rev-parse āύāĻžāĻŽāĻ āĻāĻāĻāĻŋ āĻāĻŋāĻ āĻĒā§āϞāĻžāĻŽā§āĻŦāĻŋāĻ āĻā§āϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āĻāĻŋāĻ āĻĒā§āϞāĻžāĻŽā§āĻŦāĻŋāĻ āĻā§āϞ āϏāĻŽā§āĻĒāϰā§āĻā§ āĻāϰāĻ āϤāĻĨā§āϝā§āϰ āĻāύā§āϝ āĻāĻĒāύāĻŋ āĻāĻŋāĻ āĻāύā§āĻāĻžāϰāύāĻžāϞ āĻĻā§āĻāϤ⧠āĻĒāĻžāϰā§āύ; āĻŽā§āϞāϤ, āύāĻŋāĻŽā§āύ-āϏā§āϤāϰā§āϰ āĻā§āϰāĻŋāϝāĻŧāĻžāĻāϞāĻžāĻĒā§āϰ āĻāύā§āϝ rev-parse āĻāĻŽāĻžāύā§āĻĄāĻāĻŋ āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āĻāĻŦāĻ āĻāĻāĻŋ āĻĒā§āϰāϤāĻŋāĻĻāĻŋāύā§āϰ āĻā§āϰāĻŋāϝāĻŧāĻžāĻāϞāĻžāĻĒā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āĻāύā§āϝ āĻĄāĻŋāĻāĻžāĻāύ āĻāϰāĻž āĻšāϝāĻŧāύāĻŋāĨ¤ āϝāĻžāĻāĻšā§āĻ, āĻāĻāύāĻ āĻāĻāύāĻ āĻāĻāĻŋ āϏāĻšāĻžāϝāĻŧāĻ āĻšāϤ⧠āĻĒāĻžāϰ⧠āϝāĻāύ āĻāĻĒāύāĻŋ āϏāϤā§āϝāĻŋāĻ āĻā§ āĻāĻāĻā§ āϤāĻž āĻĻā§āĻāϤ⧠āĻāĻžāĻāĻŦā§āύāĨ¤ āĻāĻāĻžāύ⧠āĻāĻĒāύāĻŋ āĻāĻĒāύāĻžāϰ āĻŦā§āϰāĻžāĻā§āĻā§Â rev-parse āĻāĻžāϞāĻžāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
RefLog āϏāĻāĻā§āώāĻŋāĻĒā§āϤ āύāĻžāĻŽ
āĻāĻĒāύāĻŋ āĻāĻžāĻ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻŦā§āϝāĻžāĻāĻā§āϰāĻžāĻāύā§āĻĄā§ āĻāĻŋāĻ āϝ⧠āĻāĻžāĻāĻā§āϞāĻŋ āĻāϰ⧠āϤāĻžāϰ āĻŽāϧā§āϝ⧠āĻāĻāĻāĻŋ āĻšāϞ âreflogâ āϰāĻžāĻāĻžââ āĻāĻāĻŋ āĻāĻĒāύāĻžāϰ HEAD āĻāĻŦāĻ āĻŦā§āϰāĻžāĻā§āĻā§āϰ āϰā§āĻĢāĻžāϰā§āύā§āϏāĻā§āϞ⧠āĻāϤ āĻāϝāĻŧā§āĻ āĻŽāĻžāϏ āϧāϰ⧠āĻā§āĻĨāĻžāϝāĻŧ āĻāĻŋāϞ āϤāĻžāϰ āĻāĻāĻāĻŋ āϞāĻâāĨ¤
āĻāĻĒāύāĻŋ git reflog āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻĒāύāĻžāϰ reflog āĻĻā§āĻāϤ⧠āĻĒāĻžāϰā§āύ:
$ git reflog
734713b HEAD@{0}: commit: Fix refs handling, add gc auto, update tests
d921970 HEAD@{1}: merge phedders/rdocs: Merge made by the 'recursive' strategy.
1c002dd HEAD@{2}: commit: Add some blame and merge stuff
1c36188 HEAD@{3}: rebase -i (squash): updating HEAD
95df984 HEAD@{4}: commit: # This is a combination of two commits.
1c36188 HEAD@{5}: rebase -i (squash): updating HEAD
7e05da5 HEAD@{6}: rebase -i (pick): updating HEAD
$ git show HEAD@{5}
āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāĻŋāĻā§ āϏāĻŽāϝāĻŧ āĻĒā§āϰā§āĻŦā§ āĻāĻāĻāĻŋ āĻŦā§āϰāĻžāĻā§āĻ āĻā§āĻĨāĻžāϝāĻŧ āĻāĻŋāϞ āϤāĻž āĻĻā§āĻāϤ⧠āĻāĻĒāύāĻŋ āĻāĻ āϏāĻŋāύāĻā§āϝāĻžāĻā§āϏāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻāϤāĻāĻžāϞ āĻāĻĒāύāĻžāϰ master āĻŦā§āϰāĻžāĻā§āĻ āĻā§āĻĨāĻžāϝāĻŧ āĻāĻŋāϞ āϤāĻž āĻĻā§āĻāϤā§, āĻāĻĒāύāĻŋ āĻāĻžāĻāĻĒ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ:
$ git show master@{yesterday}
āĻāĻāĻŋ āĻāĻĒāύāĻžāĻā§ āĻĻā§āĻāĻžāĻŦā§ āϝ⧠āĻāϤāĻāĻžāϞ āĻāĻĒāύāĻžāϰ master āĻŦā§āϰāĻžāĻā§āĻā§āϰ āĻāĻŋāĻĒ āĻā§āĻĨāĻžāϝāĻŧ āĻāĻŋāϞāĨ¤ āĻāĻ āĻā§āĻļāϞāĻāĻŋ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āϏā§āĻ āĻĄā§āĻāĻžāϰ āĻāύā§āϝ āĻāĻžāĻ āĻāϰ⧠āϝāĻž āĻāĻāύāĻ āĻāĻĒāύāĻžāϰ reflog-āĻ āĻāĻā§, āϤāĻžāĻ āĻāĻĒāύāĻŋ āĻāϝāĻŧā§āĻ āĻŽāĻžāϏā§āϰ āĻŦā§āĻļāĻŋ āĻĒā§āϰāĻžāύ⧠āĻāĻŽāĻŋāĻ āĻĻā§āĻāϤ⧠āĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŦā§āύ āύāĻžāĨ¤
Â
git log āĻāĻāĻāĻĒā§āĻā§āϰ āĻŽāϤ⧠āĻĢāϰā§āĻŽā§āϝāĻžāĻ āĻāϰāĻž reflog āϤāĻĨā§āϝ āĻĻā§āĻāϤā§, āĻāĻĒāύāĻŋ git reflog -g āĻāĻžāϞāĻžāϤ⧠āĻĒāĻžāϰā§āύ:
$ git log -g master
commit 734713bc047d87bf7eac9674765ae793478c50d3
Reflog: master@{0} (Scott Chacon )
Reflog message: commit: Fix refs handling, add gc auto, update tests
Author: Scott Chacon
Date: Fri Jan 2 18:32:33 2009 -0800
Fix refs handling, add gc auto, update tests
commit d921970aadf03b3cf0e71becdaab3147ba71cdef
Reflog: master@{1} (Scott Chacon )
Reflog message: merge phedders/rdocs: Merge made by recursive.
Author: Scott Chacon
Date: Thu Dec 11 15:08:43 2008 -0800
Merge commit 'phedders/rdocs'
āĻāĻāĻž āĻŽāύ⧠āϰāĻžāĻāĻž āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ āϝ⧠reflog āϤāĻĨā§āĻ¯Â āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āϞā§āĻāĻžāϞ — āĻāĻāĻŋ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻāĻĒāύāĻŋ āĻāĻĒāύāĻžāϰ āϰāĻŋāĻĒā§āĻāĻŋāĻāϰāĻŋāϤ⧠āϝāĻž āĻāϰā§āĻā§āύ āϤāĻžāϰ āĻāĻāĻāĻŋ āϞāĻāĨ¤ āϰā§āĻĢāĻžāϰā§āύā§āϏāĻā§āϞāĻŋ āĻ āύā§āϝ āĻāĻžāϰā§āϰ āϰāĻŋāĻĒā§āĻāĻŋāĻāϰāĻŋāϰ āĻ āύā§āϞāĻŋāĻĒāĻŋāϤ⧠āĻāĻāĻ āϰāĻāĻŽ āĻšāĻŦā§ āύāĻž; āĻāĻāĻžāĻĄāĻŧāĻžāĻ, āĻāĻĒāύāĻŋ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻāĻāĻžāĻŦā§ āĻāĻāĻāĻŋ āϰāĻŋāĻĒā§āĻāĻŋāĻāϰāĻŋ āĻā§āϞā§āύ āĻāϰāĻžāϰ āĻ āĻŋāĻ āĻĒāϰā§, āĻāĻĒāύāĻžāϰ āĻāĻžāĻā§ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻāĻž reflog āĻĨāĻžāĻāĻŦā§, āĻāĻžāϰāĻŖ āĻāĻĒāύāĻžāϰ āϰāĻŋāĻĒā§āĻāĻŋāĻāϰāĻŋāϤ⧠āĻāĻāύāĻ āĻā§āύ⧠āĻāĻžāϰā§āϝāĻāϞāĻžāĻĒ āĻāĻā§āύāĻŋāĨ¤ git show HEAD@{2.months.ago} āĻāĻŽāĻžāύā§āĻĄāĻāĻŋ āĻāĻžāϞāĻžāϞ⧠āĻāĻāĻŋ āĻāĻĒāύāĻžāĻā§ āĻŽā§āϝāĻžāĻāĻŋāĻ āĻāĻŽāĻŋāĻ āĻĻā§āĻāĻžāĻŦā§ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āϝāĻĻāĻŋ āĻāĻĒāύāĻŋ āĻāĻŽāĻĒāĻā§āώ⧠āĻĻā§āĻ āĻŽāĻžāϏ āĻāĻā§ āĻĒā§āϰāĻā§āĻā§āĻāĻāĻŋ āĻā§āϞā§āύ āĻāϰā§āύâââāϝāĻĻāĻŋ āĻāĻĒāύāĻŋ āĻāϰ āĻā§āϝāĻŧā§ āϏāĻŽā§āĻĒā§āϰāϤāĻŋ āĻāĻāĻŋ āĻā§āϞā§āύ āĻāϰā§āύ āϤāĻŦā§ āĻāĻĒāύāĻŋ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻāĻĒāύāĻžāϰ āĻĒā§āϰāĻĨāĻŽ āϞā§āĻāĻžāϞ āĻāĻŽāĻŋāĻ āĻĻā§āĻāϤ⧠āĻĒāĻžāĻŦā§āύāĨ¤
āĻāĻŋāĻĒ
reflogāĻā§ āĻļā§āϞ āĻāϤāĻŋāĻšāĻžāϏā§āϰ āĻāĻŋāĻā§āϰ āϏāĻāϏā§āĻāϰāĻŖ āĻšāĻŋāϏāĻžāĻŦā§ āĻāĻžāĻŦā§āύ
Â
āĻāĻĒāύāĻžāϰ āϝāĻĻāĻŋ āĻāĻāύāĻŋāĻā§āϏ āĻŦāĻž āϞāĻŋāύāĻžāĻā§āϏ āĻŦā§āϝāĻžāĻāĻā§āϰāĻžāĻāύā§āĻĄ āĻĨāĻžāĻā§, āϤāĻžāĻšāϞ⧠āĻāĻĒāύāĻŋ āϰāĻŋāĻĢā§āϞāĻāĻā§ āĻļā§āϞ āĻāϤāĻŋāĻšāĻžāϏā§āϰ āĻāĻŋāĻ-āĻāϰ āϏāĻāϏā§āĻāϰāĻŖ āĻšāĻŋāϏāĻžāĻŦā§ āĻāĻžāĻŦāϤ⧠āĻĒāĻžāϰā§āύ, āĻāĻāĻŋ āĻā§āϰ āĻĻā§ā§ āϝā§, āϝāĻž āĻāĻā§ āϤāĻž āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻāĻĒāύāĻžāϰ āĻāĻŦāĻ āĻāĻĒāύāĻžāϰ “āϏā§āĻļāύ” āĻāϰ āĻāύā§āϝ āϏā§āĻĒāώā§āĻāĻāĻžāĻŦā§ āĻĒā§āϰāĻžāϏāĻā§āĻāĻŋāĻ, āĻāĻŦāĻ āĻāĻāĻ āĻŽā§āĻļāĻŋāύ⧠āĻāĻžāĻ āĻāϰāϤ⧠āĻĒāĻžāϰ⧠āĻāĻŽāύ āĻ āύā§āϝ āĻāĻžāϰ⧠āϏāĻžāĻĨā§ āĻāϰ āĻā§āύ⧠āϏāĻŽā§āĻĒāϰā§āĻ āύā§āĻāĨ¤
āύā§āĻ
PowerShell āĻ āĻŦā§āϰā§āϝāĻžāĻā§āĻ āĻā§āĻŋā§ā§ āĻāϞā§āĻ¨Â PowerShell āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ, { āĻāĻŦāĻ } āĻŦāύā§āϧāύā§āĻā§āϞāĻŋ āĻŦāĻŋāĻļā§āώ āĻ āĻā§āώāϰā§āϰ āĻŽāϤ⧠āĻāĻŦāĻ āĻ āĻŦāĻļā§āϝāĻ āĻāĻĻā§āϰ āĻā§āĻŋā§ā§ āĻāϞāĻž āĻāĻāĻŋāϤ⧎ āĻāĻĒāύāĻŋ āĻāĻāĻāĻŋ āĻŦā§āϝāĻžāĻāĻāĻŋāĻ ` āĻĻāĻŋāϝāĻŧā§ āϤāĻžāĻĻā§āϰ āĻāĻĄāĻŧāĻŋāϝāĻŧā§ āϝā§āϤ⧠āĻĒāĻžāϰā§āύ āĻŦāĻž āĻĻā§āĻāĻŋ āĻāĻĻā§āϧā§āϤāĻŋ āĻāĻŋāĻšā§āύ “” āĻāϰ āĻŽāϧā§āϝ⧠āĻāĻŽāĻŋāĻ āϰā§āĻĢāĻžāϰā§āύā§āϏ āϰāĻžāĻāϤ⧠āĻĒāĻžāϰā§āύ: $ git show HEAD@{0}   # āĻāĻāĻŋ āĻāĻžāĻ āĻāϰāĻŦā§ āύāĻžÂ $ git show HEAD@`{0`}  # āĻ āĻŋāĻāĻžāĻā§Â $ git show “HEAD@{0}”  # āĻ āĻŋāĻāĻžāĻā§Â |
āĻĒā§āϰā§āĻŦāĻĒā§āϰā§āώā§āĻ°Â ( Ancestry ) āϰā§āĻĢāĻžāϰā§āύā§āϏ
āĻāĻāĻāĻŋ āĻāĻŽāĻŋāĻ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰāĻžāϰ āĻ āύā§āϝ āĻĒā§āϰāϧāĻžāύ āĻāĻĒāĻžāϝāĻŧ āĻšāϞ āϤāĻžāϰ āĻĒā§āϰā§āĻŦāĻĒā§āϰā§āώā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§āĨ¤ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻāĻāĻŋ āϰā§āĻĢāĻžāϰā§āύā§āϏā§āϰ āĻļā§āώ⧠āĻāĻāĻāĻŋ ^ ( āĻā§āϝāĻžāϰā§āĻ ) āϰāĻžāĻā§āύ, āĻāĻŋāĻ āĻāĻāĻŋāĻā§ āϏā§āĻ āĻāĻŽāĻŋāĻā§āϰ āĻĒā§āϝāĻžāϰā§āύā§āĻ āĻšāĻŋāϏā§āĻŦā§ āĻŦā§āĻā§ āύā§ā§āĨ¤ āϧāϰā§āύ āĻāĻĒāύāĻŋ āĻāĻĒāύāĻžāϰ āĻĒā§āϰāĻā§āĻā§āĻā§āϰ āĻāϤāĻŋāĻšāĻžāϏ āĻĻā§āĻāϤ⧠āĻāĻžāύ:
$ git log --pretty=format:'%h %s' --graph
* 734713b Fix refs handling, add gc auto, update tests
* d921970 Merge commit 'phedders/rdocs'
|\
| * 35cfb2b Some rdoc changes
* | 1c002dd Add some blame and merge stuff
|/
* 1c36188 Ignore *.gem
* 9b29157 Add open3_detach to gemspec file list
āϤāĻžāϰāĻĒāϰ, āĻāĻĒāύāĻŋ HEAD^ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰ⧠āĻĒā§āϰā§āĻŦāĻŦāϰā§āϤ⧠āĻāĻŽāĻŋāĻ āĻĻā§āĻāϤ⧠āĻĒāĻžāϰā§āύ, āϝāĻžāϰ āĻ āϰā§āĻĨ “HEAD āĻāϰ āĻĒā§āϝāĻžāϰā§āύā§āĻ”āĨ¤
$ git show HEAD^
commit d921970aadf03b3cf0e71becdaab3147ba71cdef
Merge: 1c002dd... 35cfb2b...
Author: Scott Chacon
Date: Thu Dec 11 15:08:43 2008 -0800
Merge commit 'phedders/rdocs'
āύā§āĻ
āĻāĻāύā§āĻĄā§āĻ āĻ āĻĒāĻžāϰā§āĻāĻŋāĻ āϏāĻŋāϏā§āĻā§āĻŽ āĻ āĻā§āϝāĻžāϰā§āĻ ( ^ ) āĻāĻŋāĻšā§āύ āĻā§āĻŋā§ā§ āĻāϞāĻžÂ
Â
āĻāĻāύā§āĻĄā§āĻ-āĻ cmd.exe, ^ āĻāĻāĻāĻŋ āĻŦāĻŋāĻļā§āώ āĻ āĻā§āώāϰ āĻāĻŦāĻ āĻāĻāĻŋāĻā§ āĻāĻŋāύā§āύāĻāĻžāĻŦā§ āĻŦāĻŋāĻŦā§āĻāύāĻž āĻāϰāĻž āĻšā§āĨ¤ āĻāĻĒāύāĻŋ āĻšāϝāĻŧ āĻāĻāĻŋ āĻĻā§āĻŦāĻŋāĻā§āĻŖ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ āĻŦāĻž āĻĻā§āĻāĻŋ āĻāĻĻā§āϧā§āϤāĻŋ āĻāĻŋāĻšā§āύā§āϰ āĻŽāϧā§āϝ⧠āĻāĻŽāĻŋāĻ āϰā§āĻĢāĻžāϰā§āύā§āϏ āϰāĻžāĻāϤ⧠āĻĒāĻžāϰā§āύ:Â
$ git show HEAD^  # āĻāĻāύā§āĻĄā§āĻā§ āĻāĻžāĻ āĻāϰāĻŦā§ āύāĻžÂ
$ git show HEAD^^  # āĻ āĻŋāĻ āĻāĻā§Â
$ git show “HEAD^” # āĻ āĻŋāĻ āĻāĻā§
Â
$ git show d921970^
commit 1c002dd4b536e7479fe34593e72e6c6c1819e53b
Author: Scott Chacon
Date: Thu Dec 11 14:58:32 2008 -0800
Add some blame and merge stuff
$ git show d921970^2
commit 35cfb2b795a55793d7cc56a6cc2060b4bb732548
Author: Paul Hedderly
Date: Wed Dec 10 22:22:03 2008 +0000
Some rdoc changes
āĻ āύā§āϝāĻžāύā§āϝ āĻĒā§āϰāϧāĻžāύ āĻĒā§āϰā§āĻŦāĻĒā§āϰā§āώ āϏā§āĻĒā§āϏāĻŋāĻĢāĻŋāĻā§āĻļāύ āĻšāϞ ~ ( āĻāĻŋāϞā§āĻĄ /tilde )āĨ¤ āĻāĻāĻŋ āĻĒā§āϰāĻĨāĻŽ āĻĒā§āϝāĻžāϰā§āύā§āĻāĻā§āĻ āĻŦā§āĻāĻžāϝāĻŧ, āϤāĻžāĻ HEAD~ āĻāĻŦāĻ HEAD^ āϏāĻŽāϤā§āϞā§āϝ⧎ āĻāĻĒāύāĻŋ āϝāĻāύ āĻāĻāĻāĻŋ āϏāĻāĻā§āϝāĻž āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰā§āύ āϤāĻāύ āĻĒāĻžāϰā§āĻĨāĻā§āϝāĻāĻŋ āϏā§āĻĒāώā§āĻ āĻšāϝāĻŧā§ āĻāĻ ā§āĨ¤ HEAD~2 āĻŽāĻžāύ⧠“āĻĒā§āϰāĻĨāĻŽ āĻĒā§āϝāĻžāϰā§āύā§āĻā§āϰ āĻĒā§āϰāĻĨāĻŽ āĻĒā§āϝāĻžāϰā§āύā§āĻ” āĻŦāĻž “āĻā§āϰā§āϝāĻžāύā§āĻĄāĻĒā§āϝāĻžāϰā§āύā§āĻ”ââāϝāϤāĻŦāĻžāϰ āĻāĻĒāύāĻŋ āĻāĻāĻāĻŋ āϏāĻāĻā§āϝāĻž āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰ⧠āĻĻā§āύ āϤāϤāĻŦāĻžāϰ āĻāĻāĻŋ āĻĒā§āϰāĻĨāĻŽ āĻĒā§āϝāĻžāϰā§āύā§āĻāĻā§ āĻ āϤāĻŋāĻā§āϰāĻŽ āĻāϰā§āĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻĒā§āϰā§āĻŦā§ āϤāĻžāϞāĻŋāĻāĻžāĻā§āĻā§āϤ āĻāϤāĻŋāĻšāĻžāϏā§, HEAD~3 āĻšāĻŦā§:
$ git show HEAD~3
commit 1c3618887afb5fbcbea25b7c013f4e2114448b8d
Author: Tom Preston-Werner
Date: Fri Nov 7 13:47:59 2008 -0500
Ignore *.gem
āĻāĻāĻŋāĻā§ HEAD~~~ āĻ āϞā§āĻāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§, āϝāĻž āĻāĻŦāĻžāϰ āĻĒā§āϰāĻĨāĻŽ āĻĒā§āϝāĻžāϰā§āύā§āĻā§āϰ āĻĒā§āϰāĻĨāĻŽ āĻĒā§āϝāĻžāϰā§āύā§āĻā§āϰ āĻĒā§āϰāĻĨāĻŽ āĻĒā§āϝāĻžāϰā§āύā§āĻ:
$ git show HEAD~~~
commit 1c3618887afb5fbcbea25b7c013f4e2114448b8d
Author: Tom Preston-Werner
Date: Fri Nov 7 13:47:59 2008 -0500
Ignore *.gem
 āĻāĻĒāύāĻŋ āĻāĻ āϏāĻŋāύāĻā§āϝāĻžāĻā§āϏāĻā§āϞāĻŋāĻā§āĻ āĻāĻāϏāĻžāĻĨā§ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύâââāĻāĻĒāύāĻŋ HEAD~3^2 āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻĒā§āϰā§āĻŦāĻŦāϰā§āϤ⧠āϰā§āĻĢāĻžāϰā§āύā§āϏā§āϰ āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧ āĻĒā§āϝāĻžāϰā§āύā§āĻ āĻĒā§āϤ⧠āĻĒāĻžāϰā§āĻ¨Â ( āĻ āύā§āĻŽāĻžāύ āĻāϰ⧠āύā§āĻ āϝ⧠,āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻŽāĻžāϰā§āĻ āĻāĻŽāĻŋāĻ āĻāĻŋāϞ)āĨ¤
āĻāĻŽāĻŋāĻ āϰā§āĻā§āĻÂ
āĻāĻāύ āϝā§āĻšā§āϤ⧠āĻāĻĒāύāĻŋ āϏā§āĻŦāϤāύā§āϤā§āϰ āĻāĻŽāĻŋāĻ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ, āĻāϏā§āύ āĻĻā§āĻāĻŋ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻŽāĻŋāĻā§āϰ āϰā§āĻā§āĻ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰāϤ⧠āĻšāϝāĻŧāĨ¤ āĻāĻāĻŋ āĻāĻĒāύāĻžāϰ āĻŦā§āϰāĻžāĻā§āĻ āĻĒāϰāĻŋāĻāĻžāϞāύāĻžāϰ āĻāύā§āϝ āĻŦāĻŋāĻļā§āώāĻāĻžāĻŦā§ āĻāĻĒāϝā§āĻā§âââāϝāĻĻāĻŋ āĻāĻĒāύāĻžāϰ āĻ āύā§āĻāĻā§āϞāĻŋ āĻŦā§āϰāĻžāĻā§āĻ āĻĨāĻžāĻā§, āϤāĻžāĻšāϞ⧠āĻāĻĒāύāĻŋ āĻĒā§āϰāĻļā§āύāĻā§āϞāĻŋāϰ āĻāϤā§āϤāϰ āĻĻāĻŋāϤ⧠āϰā§āĻā§āĻ āϏā§āĻĒā§āϏāĻŋāĻĢāĻŋāĻā§āĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ āϝā§āĻŽāύ, “āĻāĻ āĻļāĻžāĻāĻžāϝāĻŧ āĻā§ āĻāĻžāĻ āĻāĻā§ āϝā§āĻāĻž āĻāĻŽāĻŋ āĻāĻāύāĻ āĻāĻŽāĻžāϰ āĻĒā§āϰāϧāĻžāύ āĻļāĻžāĻāĻžāϝāĻŧ āĻŽāĻžāϰā§āĻ āĻāϰāĻŋāύāĻŋ?”
āĻĄāĻžāĻŦāϞ āĻĄāĻÂ
āϏāĻŦāĻā§āϝāĻŧā§ āϏāĻžāϧāĻžāϰāĻŖ āϰā§āĻā§āĻ āϏā§āĻĒā§āϏāĻŋāĻĢāĻŋāĻā§āĻļāύ āĻšāϞ āĻĄāĻžāĻŦāϞ-āĻĄāĻ āϏāĻŋāύāĻā§āϝāĻžāĻā§āϏāĨ¤ āĻāĻāĻŋ āĻŽā§āϞāϤ āĻāĻŋāĻāĻā§ āĻāĻŽāύ āĻāĻāĻāĻŋ āĻāĻŽāĻŋāĻā§āϰ āĻĒāϰāĻŋāϏāϰ āϏāĻŽāĻžāϧāĻžāύ āĻāϰāϤ⧠āĻŦāϞ⧠āϝāĻžāϤ⧠āĻāĻāĻāĻŋ āĻāĻŽāĻŋāĻ āĻĨā§āĻā§ āĻĒā§āĻāĻāĻžāύ⧠āϝāĻžāϝāĻŧ āĻāĻŋāύā§āϤ⧠āĻ āύā§āϝ āĻāĻŽāĻŋāĻ āĻĨā§āĻā§ āĻĒā§āĻāĻāĻžāύ⧠āϝāĻžāϝāĻŧ āύāĻžāĨ¤ āĻŽāύ⧠āĻāϰā§āύ āϝā§, āĻāĻĒāύāĻžāϰ āĻāĻžāĻā§ āĻāĻāĻāĻŋ āĻāĻŽāĻŋāĻ āĻāϤāĻŋāĻšāĻžāϏ āϰāϝāĻŧā§āĻā§ āϝāĻž āĻĒāϰāĻŋāϏā§āĻŽāĻž āύāĻŋāϰā§āĻŦāĻžāĻāύā§āϰ āĻāύā§āϝ āĻāĻĻāĻžāĻšāϰāĻŖ āĻāϤāĻŋāĻšāĻžāϏā§āĻ°Â ( example history ) āĻŽāϤ⧠āĻĻā§āĻāĻžāĻā§āĻā§āĨ¤

āĻŽāύ⧠āĻāϰā§āύ āϝā§, āĻāĻĒāύāĻŋ āĻĻā§āĻāϤ⧠āĻāĻžāύ āĻāĻĒāύāĻžāϰ experiment āĻŦā§āϰāĻžāĻā§āĻā§ āĻā§ āĻāĻā§ āϝāĻž āĻāĻāύāĻ āĻāĻĒāύāĻžāϰ master āĻŦā§āϰāĻžāĻā§āĻā§ āĻŽāĻžāϰā§āĻ āĻāϰāĻž āĻšāϝāĻŧāύāĻŋāĨ¤ master..experiment – āĻāĻ āĻāĻŽāĻžāύā§āĻĄ āĻāϰ āϏāĻžāĻšāĻžāϝā§āϝ⧠, āĻāĻĒāύāĻŋ āĻāĻŋāĻāĻā§ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āϏā§āĻ āĻāĻŽāĻŋāĻāĻā§āϞāĻŋāϰ āĻāĻāĻāĻŋ āϞāĻ āĻĻā§āĻāĻžāύā§āϰ āĻāύā§āϝ āĻŦāϞāϤ⧠āĻĒāĻžāϰā§āύ – āϝāĻžāϰ āĻŽāĻžāύ⧠” experiment āĻļāĻžāĻāĻž āĻĨā§āĻā§ āĻĒā§āĻāĻāĻžāύ⧠āϝāĻžāϝāĻŧ āĻāĻŽāύ āϏāĻŽāϏā§āϤ āĻāĻŽāĻŋāĻ āϝāĻž master āĻļāĻžāĻāĻž āĻĨā§āĻā§ āĻĒā§āĻāĻāĻžāύ⧠āϝāĻžāϝāĻŧ āύāĻžāĨ¤” āĻāĻ āĻāĻĻāĻžāĻšāϰāĻŖāĻā§āϞāĻŋāϰ āϏāĻāĻā§āώāĻŋāĻĒā§āϤāϤāĻž āĻāĻŦāĻ āϏā§āĻŦāĻā§āĻāϤāĻžāϰ āĻāύā§āϝ, āĻĄāĻžāϝāĻŧāĻžāĻā§āϰāĻžāĻŽ āĻĨā§āĻā§ āĻāĻŽāĻŋāĻ āĻ āĻŦāĻā§āĻā§āĻā§āϰ āĻ āĻā§āώāϰāĻā§āϞāĻŋ āĻĒā§āϰāĻā§āϤ āϞāĻ āĻāĻāĻāĻĒā§āĻā§āϰ āĻāĻžāϝāĻŧāĻāĻžāϝāĻŧ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧ āϝāĻžāϤ⧠āϤāĻžāϰāĻž āĻĒā§āϰāĻĻāϰā§āĻļāύ āĻāϰāĻŦā§:
$ git log master..experiment
D
C
āĻ āύā§āϝāĻĻāĻŋāĻā§, āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāϞā§āĻā§āĻāĻž āĻĻā§āĻāϤ⧠āĻāĻžāύ — āϏāĻāϞ āĻāĻŽāĻŋāĻ āϝāĻž master āĻāϰ āĻŽāϧā§āϝ⧠āĻāĻā§ āĻāĻŋāύā§āϤ⧠experiment āĻŦā§āϰāĻžāĻā§āĻā§ āύā§āĻ â āϏā§āĻā§āώā§āϤā§āϰ⧠āĻāĻŽāĻžāύā§āĻĄā§ , āĻāĻĒāύāĻŋ āĻŦā§āϰāĻžāĻā§āĻā§āϰ āύāĻžāĻŽāĻā§āϞāĻŋ āĻāϞā§āĻāĻžāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ experiment..master āĻāĻĒāύāĻžāĻā§ master āĻŦā§āϰāĻžāĻā§āĻā§āϰ āϏāĻŦāĻāĻŋāĻā§ āĻĻā§āĻāĻžāϝāĻŧ āϝāĻž experiment āĻĨā§āĻā§ āĻĒā§āĻāĻāĻžāύ⧠āϝāĻžāϝāĻŧ āύāĻž:
$ git log experiment..master
F
E
āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ experiment āĻŦā§āϰāĻžāĻā§āĻāĻāĻŋāĻā§ āĻāĻĒ āĻā§ āĻĄā§āĻ āϰāĻžāĻāϤ⧠āĻāĻžāύ āĻāĻŦāĻ āĻāĻĒāύāĻŋ āϝāĻž āĻŽāĻžāϰā§āĻ āĻāϰāϤ⧠āĻāϞā§āĻā§āύ āϤāĻžāϰ āĻĒā§āϰā§āĻŦāϰā§āĻĒ āĻĻā§āĻāϤ⧠āĻāĻžāĻāϞ⧠āĻāĻāĻŋ āĻāĻžāϰā§āϝāĻāϰāĨ¤ āĻāĻ āϏāĻŋāύāĻā§āϝāĻžāĻā§āϏā§āϰ āĻāϰā§āĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻšāϞ āĻāĻĒāύāĻŋ āϰāĻŋāĻŽā§āĻ āĻŦā§āϰāĻžāĻā§āĻā§ āĻā§ āĻĒā§āĻļ āĻĻāĻŋāϤ⧠āĻāϞā§āĻā§āύ āϤāĻž āĻĻā§āĻāĻž:
$ git log origin/master..HEAD
āĻāĻ āĻāĻŽāĻžāύā§āĻĄāĻāĻŋ āĻāĻĒāύāĻžāĻā§ āĻāĻĒāύāĻžāϰ āĻŦāϰā§āϤāĻŽāĻžāύ āĻŦā§āϰāĻžāĻā§āĻā§āϰ āĻāĻŽāύ āĻā§āύ⧠āĻāĻŽāĻŋāĻ āĻĻā§āĻāĻžāϝāĻŧ āϝāĻž āĻāĻĒāύāĻžāϰ origin āϰāĻŋāĻŽā§āĻā§āϰ master āĻŦā§āϰāĻžāĻā§āĻā§ āύā§āĻāĨ¤ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻāĻāĻŋ git push āĻāĻŽāĻžāύā§āĻĄ āĻāĻžāϞāĻžāύ āĻāĻŦāĻ āĻāĻĒāύāĻžāϰ āĻŦāϰā§āϤāĻŽāĻžāύ āĻŦā§āϰāĻžāĻā§āĻ āϝāĻĻāĻŋ origin/master āĻā§ āĻā§āϰā§āϝāĻžāĻ āĻāϰā§, git log origin/master..HEAD āĻāĻŽāĻžāύā§āĻĄ āĻĻā§āĻŦāĻžāϰāĻž āϤāĻžāϞāĻŋāĻāĻžāĻā§āĻā§āϤ āĻāĻŽāĻŋāĻāĻā§āϞāĻŋ āϏāĻžāϰā§āĻāĻžāϰ⧠āϏā§āĻĨāĻžāύāĻžāύā§āϤāϰāĻŋāϤ āĻšāĻŦā§ā§ˇ āĻāĻŋāĻāĻā§ HEAD āϧāϰ⧠āύāĻŋāϤ⧠, āĻāĻĒāύāĻŋ āϏāĻŋāύāĻā§āϝāĻžāĻā§āϏā§āϰ āĻāĻāĻĒāĻžāĻļ āĻā§āĻĄāĻŧā§āĻ āϝā§āϤ⧠āĻĒāĻžāϰā§āύ āĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻāĻĒāύāĻŋ git log origin/master..â āĻāĻžāĻāĻĒ āĻāϰ⧠āĻāĻā§āϰ āĻāĻĻāĻžāĻšāϰāĻŖā§āϰ āĻŽāϤ⧠āĻāĻāĻ āĻĢāϞāĻžāĻĢāϞ āĻĒā§āϤ⧠āĻĒāĻžāϰā§āύ āĨ¤ āϝāĻĻāĻŋ āĻāĻāĻāĻŋ āĻĻāĻŋāĻ āĻ āύā§āĻĒāϏā§āĻĨāĻŋāϤ āĻĨāĻžāĻā§ āϤāĻžāĻšāϞā§âāĻāĻŋāĻ HEAD āĻā§ āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāύ āĻāϰ⧠āĻĻā§ā§ āĨ¤
Â
āĻāĻāĻžāϧāĻŋāĻ āĻĒāϝāĻŧā§āύā§āĻÂ
Â
āĻĄāĻŦāϞ-āĻĄāĻ āϏāĻŋāύāĻā§āϝāĻžāĻā§āϏ āĻāĻāĻāĻŋ āĻļāϰā§āĻāĻšā§āϝāĻžāύā§āĻĄ āĻšāĻŋāϏāĻžāĻŦā§ āĻāĻĒāϝā§āĻā§, āĻāĻŋāύā§āϤ⧠āϏāĻŽā§āĻāĻŦāϤ āĻāĻĒāύāĻŋ āĻāĻĒāύāĻžāϰ āϰāĻŋāĻāĻŋāĻļāύ āύāĻŋāϰā§āĻĻā§āĻļ āĻāϰāϤ⧠āĻĻā§āĻāĻŋāϰ āĻŦā§āĻļāĻŋ āĻŦā§āϰāĻžāĻā§āĻ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰāϤ⧠āĻāĻžāύ, āϝā§āĻŽāύ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻĻā§āĻāϤ⧠āĻāĻžāύ : āĻŦāϰā§āϤāĻŽāĻžāύ⧠āϝ⧠āĻŦā§āϰāĻžāĻā§āĻā§ āĻāĻā§āύ āϏā§āĻ āĻŦā§āϰāĻžāĻā§āĻā§ āύā§āĻ āĻāĻŽāύ āĻāϝāĻŧā§āĻāĻāĻŋ āĻŦā§āϰāĻžāĻā§āĻā§āϰ āĻŽāϧā§āϝ⧠āĻā§āύ āĻāĻŽāĻŋāĻāĻāĻŋ āϰāϝāĻŧā§āĻā§āĨ¤ āĻāĻŋāĻ āĻāĻĒāύāĻžāĻā§ ^ āĻŦāĻž –not āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻāĻŋ āĻāϰāĻžāϰ āĻ āύā§āĻŽāϤāĻŋ āĻĻā§āϝāĻŧāĨ¤Â ^ āĻŦāĻž –not āĻāĻŽāύ āĻā§āύ⧠āϰā§āĻĢāĻžāϰā§āύā§āϏā§āϰ āĻāĻā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻšāĻŦā§ āϝāĻž āĻĨā§āĻā§ āĻāĻĒāύāĻŋ āĻĒā§āĻāĻāĻžāύā§āϝā§āĻā§āϝ āĻāĻŽāĻŋāĻ āĻĻā§āĻāϤ⧠āĻāĻžāύ āύāĻžāĨ¤Â āϏā§āϤāϰāĻžāĻ, āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āϤāĻŋāύāĻāĻŋ āĻāĻŽāĻžāύā§āĻĄ āϏāĻŽāϤā§āϞā§āϝ:
$ git log refA..refB
$ git log ^refA refB
$ git log refB --not refA
āĻāĻāĻŋ āĻāĻŽā§āĻāĻžāϰ āĻāĻžāϰāĻŖ āĻāĻ āϏāĻŋāύāĻā§āϝāĻžāĻā§āϏā§āϰ āϏāĻžāĻšāĻžāϝā§āϝ⧠āĻāĻĒāύāĻŋ āĻāĻĒāύāĻžāϰ āĻāĻŽāĻžāύā§āĻĄā§ āĻĻā§āĻāĻŋāϰ āĻŦā§āĻļāĻŋ āϰā§āĻĢāĻžāϰā§āύā§āϏ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ, āϝāĻž āĻāĻĒāύāĻŋ āĻĄāĻžāĻŦāϞ-āĻĄāĻ āϏāĻŋāύāĻā§āϝāĻžāĻā§āϏā§āϰ āϏāĻžāĻĨā§ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŦā§āύ āύāĻžāĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ refA āĻŦāĻž refB āĻĨā§āĻā§ āĻĒā§āĻāĻāĻžāύ⧠āϝāĻžāϝāĻŧ āϤāĻŦā§ refC āĻĨā§āĻā§ āύāϝāĻŧ āĻāĻŽāύ āϏāĻŽāϏā§āϤ āĻāĻŽāĻŋāĻ āĻĻā§āĻāϤ⧠āĻāĻžāύ, āĻāĻĒāύāĻŋ āύāĻŋāĻā§āϰ āĻāĻŽāĻžāύā§āĻĄāĻā§āϞā§āϰ āϝā§āĻā§āύ āĻāĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ:
$ git log refA refB ^refC
$ git log refA refB --not refC
āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻā§āĻŦ āĻļāĻā§āϤāĻŋāĻļāĻžāϞ⧠āϰāĻŋāĻāĻŋāĻļāύ āĻā§āϝā§āϝāĻŧāĻžāϰ⧠āϏāĻŋāϏā§āĻā§āĻŽ āϤā§āϰāĻŋ āĻāϰ⧠āϝāĻž āĻāĻĒāύāĻžāĻā§ āĻāĻĒāύāĻžāϰ āĻŦā§āϰāĻžāĻā§āĻā§ āĻā§ āĻāĻā§ āϤāĻž āĻŦā§āϰ āĻāϰāϤ⧠āϏāĻžāĻšāĻžāϝā§āϝ āĻāϰāĻŦā§āĨ¤
Â
āĻā§āϰāĻŋāĻĒāϞ āĻĄāĻÂ
āĻļā§āώ āĻŦāĻĄāĻŧ āϰā§āĻā§āĻ-āϏāĻŋāϞā§āĻāĻļāĻžāύ āϏāĻŋāύāĻā§āϝāĻžāĻā§āϏ āĻšāϞ āĻā§āϰāĻŋāĻĒāϞ-āĻĄāĻ āϏāĻŋāύāĻā§āϝāĻžāĻā§āϏ, āϝāĻž āϏāĻŽāϏā§āϤ āĻāĻŽāĻŋāĻ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰ⧠āϝāĻž āĻĻā§āĻāĻŋ āϰā§āĻĢāĻžāϰā§āύā§āϏā§āϰ āϝ⧠āĻā§āύ⧠āĻāĻāĻāĻŋāϰ āĻĻā§āĻŦāĻžāϰāĻž āĻĒā§āĻāĻāĻžāύ⧠āϝāĻžāϝāĻŧ āĻāĻŋāύā§āϤ⧠āĻāĻāϝāĻŧā§āϰ āĻĻā§āĻŦāĻžāϰāĻž āύāϝāĻŧāĨ¤ āĻĒāϰāĻŋāϏāϰ āύāĻŋāϰā§āĻŦāĻžāĻāύā§āϰ āĻāύā§āϝ āĻāĻĻāĻžāĻšāϰāĻŖ āĻāϤāĻŋāĻšāĻžāϏ⧠“āĻāĻĻāĻžāĻšāϰāĻŖ āĻāĻŽāĻŋāĻ āĻāϤāĻŋāĻšāĻžāϏ” āĻāϰ āĻĻāĻŋāĻā§ āĻĢāĻŋāϰ⧠āϤāĻžāĻāĻžāύāĨ¤ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ master āĻŦāĻž experiment āĻŦā§āϰāĻžāĻā§āĻā§ āĻā§ āĻāĻā§ āϤāĻž āĻĻā§āĻāϤ⧠āĻāĻžāύ āϤāĻŦā§ āĻā§āύ⧠āĻāĻŽāύ āϰā§āĻĢāĻžāϰā§āύā§āϏ āύāϝāĻŧ, āĻāĻĒāύāĻŋ āύāĻŋāĻā§āϰ āĻāĻŽāĻžāύā§āĻĄ āĻāĻžāϞāĻžāϤ⧠āĻĒāĻžāϰā§āύ:
$ git log master...experiment
F
E
D
C
āĻāĻŦāĻžāϰ, āĻāĻāĻŋ āĻāĻĒāύāĻžāĻā§ āϏāĻžāϧāĻžāϰāύ log āĻāĻāĻāĻĒā§āĻ āĻĻā§āϝāĻŧ āĻāĻŋāύā§āϤ⧠āĻāĻĒāύāĻžāĻā§ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āϏā§āĻ āĻāĻžāϰāĻāĻŋ āĻāĻŽāĻŋāĻā§āϰ āĻāύā§āϝ āĻāĻŽāĻŋāĻ āϤāĻĨā§āϝ āĻĻā§āĻāĻžāϝāĻŧ, āϝāĻž āĻĒā§āϰāĻĨāĻžāĻāϤ āĻāĻŽāĻŋāĻ āĻĄā§āĻ āĻ āϰā§āĻĄāĻžāϰ⧠āĻāĻĒāϏā§āĻĨāĻŋāϤ āĻšāϝāĻŧāĨ¤Â
āĻāĻ āĻā§āώā§āϤā§āϰ⧠log āĻāĻŽāĻžāύā§āĻĄā§āϰ āϏāĻžāĻĨā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āϏā§āĻāĻ āĻšāϞ –left-right, āϝāĻž āĻāĻĒāύāĻžāĻā§ āĻĻā§āĻāĻžāϝāĻŧ āϝ⧠āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻāĻŽāĻŋāĻ āϰā§āĻā§āĻā§āϰ āĻā§āύ āĻĻāĻŋāĻā§ āϰāϝāĻŧā§āĻā§ā§ˇ āĻāĻāĻŋ āĻāĻāĻāĻĒā§āĻāĻāĻŋāĻā§ āĻāϰāĻ āĻāĻĒāϝā§āĻā§ āĻāϰ⧠āϤā§āϞāϤ⧠āϏāĻžāĻšāĻžāϝā§āϝ āĻāϰā§:
$ git log --left-right master...experiment
< F
< E
> D
> C
āĻāĻ āĻā§āϞāĻā§āϞāĻŋāϰ āϏāĻžāĻšāĻžāϝā§āϝā§, āĻāĻĒāύāĻŋ āĻāϰāĻ āϏāĻšāĻā§ āĻāĻŋāĻāĻā§ āĻāĻžāύāĻžāϤ⧠āĻĒāĻžāϰā§āύ āϝ⧠āĻāĻĒāύāĻŋ āĻā§ āĻā§ āĻāĻŽāĻŋāĻ āĻĒāϰāĻŋāĻĻāϰā§āĻļāύ āĻāϰāϤ⧠āĻāĻžāύāĨ¤