ā§Ž.ā§§ āĻāĻžāϏā§āĻāĻŽāĻžāĻāĻāĻŋāĻ āĻāĻŋāĻ – āĻāĻŋāĻ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύÂ
āĻāĻāύ āĻĒāϰā§āϝāύā§āϤ, āĻāĻŽāϰāĻž āĻāĻŋāĻ āĻā§āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰ⧠āĻāĻŦāĻ āĻā§āĻāĻžāĻŦā§ āĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻšāϝāĻŧ āϤāĻžāϰ āĻŽā§āϞ āĻŦāĻŋāώāϝāĻŧāĻā§āϞāĻŋ āĻāĻāĻžāϰ āĻāϰā§āĻāĻŋ āĻāĻŦāĻ āĻāĻŽāϰāĻž āϏāĻšāĻā§ āĻāĻŦāĻ āĻĻāĻā§āώāϤāĻžāϰ āϏāĻžāĻĨā§ āĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻāĻĒāύāĻžāĻā§ āϏāĻžāĻšāĻžāϝā§āϝ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻŋāĻ āĻĒā§āϰāĻĻāĻžāύ āĻāϰ⧠āĻāĻŽāύ āĻ āύā§āĻāĻā§āϞāĻŋ āĻā§āϞāϏ āĻāϰ āϏāĻžāĻĨā§ āĻĒāϰāĻŋāĻā§ āĻāϰā§āĻāĻŋāĨ¤ āĻāĻ āĻ āϧā§āϝāĻžāϝāĻŧā§, āĻāĻŽāϰāĻž āĻĻā§āĻāĻŦ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻĒāύāĻŋ āĻāĻŋāĻāĻā§ āĻāϰāĻ āĻāĻžāϏā§āĻāĻŽāĻžāĻāĻāĻĄ āĻĢā§āϝāĻžāĻļāύ⧠āĻ āĻĒāĻžāϰā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ, āĻŦā§āĻļ āĻāĻŋāĻā§ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āϏā§āĻāĻŋāĻāϏ āĻāĻŦāĻ āĻšā§āĻ āϏāĻŋāϏā§āĻā§āĻŽ āĻāĻāĻ āĻāϰā§āĨ¤ āĻāĻ āĻā§āϞāĻā§āϞāĻŋāϰ āϏāĻžāĻšāĻžāϝā§āϝā§, āĻāĻĒāύāĻžāϰ āĻā§āĻŽā§āĻĒāĻžāύāĻŋ āĻŦāĻž āĻāĻĒāύāĻžāϰ āĻā§āϰā§āĻĒ āϝā§āĻāĻžāĻŦā§ āĻĒā§āϰāϝāĻŧā§āĻāύ āĻ āĻŋāĻ āϏā§āĻāĻžāĻŦā§ āĻāĻŋāĻāĻā§ āĻāĻžāĻ āĻāϰāĻžāύ⧠āϏāĻšāĻāĨ¤
āĻāĻŋāĻ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ
āĻāĻĒāύāĻŋ āϏāĻāĻā§āώā§āĻĒā§ āĻā§āϰā§āĻāĻŋāĻ āϏā§āĻāĻžāϰā§āĻā§āĻĄ āĻĒā§ā§āĻā§āύ, āĻāĻĒāύāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰ⧠āĻĻāĻŋāϤ⧠āĻĒāĻžāϰā§āύ āĻāĻŋāĻ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āϏā§āĻāĻŋāĻāϏ⧠`git config` āĻāĻŽāĻžāύā§āĻĄ āĻĻāĻŋā§ā§āĨ¤ āĻĒā§āϰāĻĨāĻŽ āĻāĻŋāύāĻŋāϏāĻā§āϞāĻŋāϰ āĻŽāϧā§āϝ⧠āĻāĻāĻāĻŋ āĻšāϞ āĻāĻĒāύāĻžāϰ āύāĻžāĻŽ āĻāĻŦāĻ āĻāĻŽā§āϞ āĻ āĻŋāĻāĻžāύāĻž āϏā§āĻ āĻāĻĒ āĻāϰāĻžā§ˇ
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
āĻāĻāύ āĻāĻĒāύāĻŋ āĻāϰāĻ āĻāĻŋāĻā§ āĻāĻāϰā§āώāĻŖā§āϝāĻŧ āĻŦāĻŋāĻāϞā§āĻĒ āĻļāĻŋāĻāĻŦā§āύ āϝāĻžāϰ āĻŽāϧā§āϝ⧠āĻāĻĒāύāĻŋ āĻāĻĒāύāĻžāϰ āĻāĻŋāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāĻžāϏā§āĻāĻŽāĻžāĻāĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
āĻĒā§āϰāĻĨāĻŽāϤ, āĻāĻāĻāĻŋ āĻĻā§āϰā§āϤ āĻĒāϰā§āϝāĻžāϞā§āĻāύāĻžāĻ āĻāĻŋāĻ āĻāĻāĻāĻŋ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āĻĢāĻžāĻāϞā§āϰ āϏāĻŋāϰāĻŋāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻĒāύāĻžāϰ āĻĒā§āϰāϤā§āϝāĻžāĻļāĻŋāϤ āύāύ-āĻĄāĻŋāĻĢāϞā§āĻ āĻāĻāϰāĻŖ āύāĻŋāϰā§āϧāĻžāϰāĻŖ āĻāϰā§āĨ¤ āĻĒā§āϰāĻĨāĻŽā§ āĻāĻŋāĻ āĻāĻ āĻŽāĻžāύāĻā§āϞāĻŋāϰ āĻāύā§āϝ āĻĒā§āϰāĻĨāĻŽā§ āϝ⧠āϏā§āĻĨāĻžāύāĻāĻŋ āϏāύā§āϧāĻžāύ āĻāϰ⧠āϤāĻž āĻšāϞ āϏāĻŋāϏā§āĻā§āĻŽā§āϰ āϏāϰā§āĻŦāϤā§āϰ [path]/etc/gitconfig āĻĢāĻžāĻāϞā§, āϝā§āĻāĻŋāϤ⧠āϏā§āĻāĻŋāĻāϏ āϰāϝāĻŧā§āĻā§ āϝāĻž āϏāĻŋāϏā§āĻā§āĻŽā§āϰ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻāĻŦāĻ āϤāĻžāĻĻā§āϰ āϏāĻŽāϏā§āϤ āϰāĻŋāĻĒā§āϏāĻŋāĻā§āϰāĻŋāϤ⧠āĻĒā§āϰā§ā§āĻ āĻšā§āĨ¤Â āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻ –system āĻ āĻĒāĻļāύāĻāĻŋ git config āĻ āĻĒāĻžāϏ āĻāϰā§āύ, āϤāĻŦā§ āĻāĻāĻŋ āĻāĻ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻĢāĻžāĻāϞ āĻĨā§āĻā§ āĻĒāĻĄāĻŧā§ āĻāĻŦāĻ āϞāĻŋāĻāϤ⧠āĻĒāĻžāϰā§āĨ¤
āĻāĻŋāĻ āĻāϰ āĻĒāϰā§āϰ āϝā§Â āĻāĻžāϝāĻŧāĻāĻžāĻāĻŋāϤ⧠āĻ āύā§āϏāύā§āϧāĻžāύ āĻāϰ⧠āϤāĻžāĻšāϞ⧠~/.gitconfig (āĻ āĻĨāĻŦāĻž ~/.config/git/config) āĻĢāĻžāĻāϞā§, āϝāĻž āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻāύā§āϝ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻāĨ¤ āĻāĻĒāύāĻŋ –global āĻ āĻĒāĻļāύāĻāĻŋ āĻĒāĻžāϏ āĻāϰ⧠āĻāĻŋāĻāĻā§ āĻĻāĻŋā§ā§ āĻāĻ āĻĢāĻžāĻāϞāĻāĻŋ āĻĒāĻĄāĻŧāϤ⧠āĻāĻŦāĻ āϞāĻŋāĻāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
āĻ āĻŦāĻļā§āώā§, āĻāĻĒāύāĻŋ āĻŦāϰā§āϤāĻŽāĻžāύ⧠āϝā§āĻā§āύ⧠āϰāĻŋāĻĒā§āĻāĻŋāĻāϰāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻā§āύ āύāĻž āĻā§āύā§, āĻāĻŋāĻ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āĻŽāĻžāύāĻā§āϞāĻŋ āϏāύā§āϧāĻžāύ āĻāϰ⧠āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āĻĢāĻžāĻāϞ⧠āϤāĻžāϰ āĻāĻŋāĻ āĻĄāĻŋāϰā§āĻā§āĻāϰāĻŋāϤ⧠(.git/config) āĨ¤ āĻāĻ āĻŽāĻžāύāĻā§āϞāĻŋ āϏā§āĻ āĻāĻāĻ āϰāĻŋāĻĒā§āϏāĻŋāĻā§āϰāĻŋāϰ āĻāύā§āϝ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāĻŦāĻ āĻŦāϰā§āĻŖāύāĻž āĻāϰ⧠āϝāĻĻāĻŋ –local āĻ āĻĒāĻļāύāĻāĻŋāĻā§ git config-āĻ āĻĒāĻžāϏ āĻāϰāĻž āĻšā§āĨ¤ āĻāĻĒāύāĻŋ āĻā§āύ āϞā§āĻā§āϞā§āϰ āϏāĻžāĻĨā§ āĻāĻžāĻ āĻāϰāĻŦā§āύ āϤāĻž āϝāĻĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āύāĻž āĻāϰā§āύ, āϤāĻžāĻšāϞ⧠āĻāĻāĻžāĻ āĻĄāĻŋāĻĢāϞā§āĻ āĻāĻžāĻŦā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻšāĻŦā§āĨ¤
āĻāĻ “āϞā§āĻā§āϞā§`” (āϏāĻŋāϏā§āĻā§āĻŽ, āĻā§āϞā§āĻŦāĻžāϞ, āϞā§āĻāĻžāϞ) āĻāϰ āĻĒā§āϰāϤā§āϝā§āĻāĻāĻŋ āĻĒā§āϰā§āĻŦāĻŦāϰā§āϤ⧠āϏā§āϤāϰā§āϰ āĻŽāĻžāύāĻā§āϞāĻŋāĻā§ āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāύ āĻāϰā§, āϤāĻžāĻ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ āĻāĻžāĻŦā§ .git/config-āĻāϰ āĻŽāĻžāύāĻā§āϞāĻŋ [path]/etc/gitconfig-āĻ āĻĨāĻžāĻāĻž āĻŽāĻžāύāĻā§āϞāĻŋāĻā§ āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāύ āĻāϰā§āĨ¤
āύā§āĻ
āĻāĻŋāĻā§āϰ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āĻĢāĻžāĻāϞāĻā§āϞāĻŋ āĻĒā§āϞā§āĻāύ-āĻā§āĻā§āϏāĻ, āϤāĻžāĻ āĻāĻĒāύāĻŋ āĻĢāĻžāĻāϞā§āϰ āĻāĻ āĻŽāĻžāύāĻā§āϞāĻŋ āϏā§āĻ āĻāϰ⧠āĻĢāĻžāĻāϞāĻāĻŋ āύāĻŋāĻā§ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ āĻāĻŦāĻ āϏāĻ āĻŋāĻ āϏāĻŋāύāĻā§āϝāĻžāĻā§āϏ āĻĻāĻŋāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āĻāĻāĻŋ āϏāĻžāϧāĻžāϰāĻŖāϤ git config āĻāĻŽāĻžāύā§āĻĄ āĻĻāĻŋā§ā§ āĻāĻžāϞāĻžāύ⧠āϏāĻšāĻāϤāϰāĨ¤Â |
āĻŦā§āϏāĻŋāĻ āĻā§āϞāĻžā§ā§āύā§āĻ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύÂ
āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āĻ āĻĒāĻļāύāĻā§āϞā§Â āĻāĻŋāĻ āĻĻā§āĻāĻŋ āĻŦāĻŋāĻāĻžāĻā§ āϏā§āĻŦā§āĻā§āϤāĻŋ āĻĻāĻŋā§ā§ āĻĨāĻžāĻā§: āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ-āϏāĻžāĻāĻĄ āĻāĻŦāĻ āϏāĻžāϰā§āĻāĻžāϰ-āϏāĻžāĻāĻĄāĨ¤Â āĻŦā§āĻļāĻŋāϰāĻāĻžāĻ āĻ āĻĒāĻļāύāĻā§āϞ⧠āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ-āϏāĻžāĻāĻĄā§Â â āϝāĻž āĻāĻĒāύāĻžāϰ āĻŦā§āϝāĻā§āϤāĻŋāĻāϤ āĻāĻžāĻ āĻ āύā§āϝāĻžā§ā§ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰ⧠āύāĻŋāϤ⧠āĻĒāĻžāϰāĻŦā§āύāĨ¤Â āĻāϰāĻ āĻ āύā§āĻ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āϰā§ā§āĻā§ āĻāĻŋāύā§āϤ⧠āĻāϰ āĻŽāϧā§āϝ⧠āĻā§āĻŦ āĻ āϞā§āĻĒ āϏāĻāĻā§āϝāĻāĻ āĻĻā§āύāύā§āĻĻāĻŋāύ āĻāĻžāĻā§āϰ āĻā§āώā§āϤā§āϰ⧠āĻŦā§āϝāĻŦāĻšā§āĻ¤Â āĻšā§āĨ¤ āĻāĻŽāϰāĻž āĻāĻāĻžāύ⧠āĻŦā§āĻļāĻŋ āĻŦā§āϝāĻŦāĻšā§āϤ āĻāĻŦāĻ āĻĒā§āϰā§ā§āĻāύā§ā§ āĻ āĻĒāĻļāύāĻā§āϞ⧠āύāĻŋā§ā§ āĻāϞā§āĻāύāĻž āĻāϰāĻŦāĨ¤ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻĒāύāĻžāϰ āĻŦā§āϝāĻŦāĻšā§āϤ āĻāĻŋāĻā§ āĻāĻžāϰā§āϏāύ āĻ āύā§āϝāĻžā§ā§ āϏāĻŦ āĻ āĻĒāĻļāύ āĻā§āϞā§āϰ āϞāĻŋāϏā§āĻ āĻĻā§āĻāϤ⧠āĻāĻžāύ, āϤāĻžāĻšāϞ⧠āĻāĻ āĻāĻŽāĻžāύā§āĻĄāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύāĻ
$ man git-config
āĻāĻ āĻāĻŽāĻžāύā§āĻĄāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϞ⧠āĻāĻĒāύāĻŋ āϏāĻŦ āĻ āĻĒāĻļāύ āĻā§āϞā§āϰ āĻāĻŋāĻā§āĻāĻž āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ āĻŦāĻŋāĻŦāϰāĻŖ āĻĒāĻžāĻŦā§āύ āĨ¤ āĻāĻ āĻŦā§āϝāĻžāĻĒāĻžāϰ⧠āĻāϰāĻ āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ āĻāĻžāύāϤ⧠āĻāĻ āϰā§āĻĢāĻžāϰā§āύā§āϏ āĻĻā§āĻāϤ⧠āĻĒāĻžāϰā§āύ https://git-scm.com/docs/git-config[^]āĨ¤
āĻāύā§āύāϤ āĻŦā§āϝāĻŦāĻšāĻžāϰā§āϰ āĻā§āώā§āϤā§āϰ⧠āĻāĻĒāύāĻŋ āĻāĻĒāϰ⧠āĻāϞā§āϞāĻŋāĻāĻŋāϤ āĻĄāĻā§āĻŽā§āύā§āĻā§āĻļāύ⧠“āĻāύā§āĻĄāĻŋāĻļāύāĻžāϞ āĻāύāĻā§āϞā§āĻĄāϏ” āĻĻā§āĻāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
core.editor
āĻāϤāĻžāύā§āĻāϤāĻŋāĻ āĻāĻžāĻŦā§, āĻļā§āϞ āĻāύāĻāĻžāϝāĻŧāϰāύāĻŽā§āύā§āĻ āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞ `āĻāĻŋāĻā§āϝā§āϝāĻŧāĻžāϞ` āĻŦāĻž `āĻāĻĄāĻŋāĻāϰ` āĻāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāĻĒāύāĻŋ āĻāĻĒāύāĻžāϰ āĻĄāĻŋāĻĢāϞā§āĻ āĻā§āĻā§āϏāĻ āĻāĻĄāĻŋāĻāϰ āĻšāĻŋāϏāĻžāĻŦā§ āϝāĻž āϏā§āĻ āĻāϰā§āĻā§āύ āϤāĻž āĻāĻŋāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻ āĻĨāĻŦāĻž āĻāĻĒāύāĻžāĻ°Â āĻāĻŽāĻŋāĻ āĻāĻŦāĻ āĻā§āϝāĻžāĻ āĻŽā§āϏā§āĻ āĻā§āϰāĻŋā§ā§āĻ āĻāĻŦāĻ āĻāĻĄāĻŋāĻ āĻāϰ āĻāύā§āϝ vi āĻāĻĄāĻŋāĻāϰ āĻāϰ āĻāĻžāĻā§ āĻĢāĻŋāϰ⧠āĻāϏā§āĨ¤ āϏā§āĻ āĻĄāĻŋāĻĢāϞā§āĻāĻāĻŋāĻā§ āĻ āύā§āϝ āĻāĻŋāĻā§āϤ⧠āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāϤā§, āĻāĻĒāύāĻŋ core.editor āϏā§āĻāĻŋāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ:
$ git config --global core.editor emacs
āĻāĻāύ, āĻāĻĒāύāĻžāϰ āĻĄāĻŋāĻĢāϞā§āĻ āĻļā§āϞ āĻāĻĄāĻŋāĻāϰ āĻšāĻŋāϏāĻžāĻŦā§ āϏā§āĻ āϝāĻžāĻ āĻāϰāĻž āĻšā§āĻ āύāĻž āĻā§āύ, āĻāĻŋāĻ āĻŽā§āϏā§āĻā§āϏ āĻāĻĄāĻŋāĻ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻŽāĻžāĻā§āϏāĻ āĻāĻžāϞāĻžāĻŦā§āĨ¤Â
commit.template
āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻāĻŋāĻā§ āĻāĻĒāύāĻžāϰ āϏāĻŋāϏā§āĻā§āĻŽā§ āĻāĻāĻāĻŋ āĻĢāĻžāĻāϞā§āϰ āĻĒāĻžāĻĨā§ āϏā§āĻ āĻāϰā§āύ, āĻāĻĒāύāĻŋ āĻāĻŽāĻŋāĻ āĻĻā§āĻāϝāĻŧāĻžāϰ āϏāĻŽāϝāĻŧ āĻāĻŋāĻ āϏā§āĻ āĻĢāĻžāĻāϞāĻāĻŋāĻā§ āĻĄāĻŋāĻĢāϞā§āĻ āĻŽā§āϏā§āĻ āĻšāĻŋāϏāĻžāĻŦā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŦā§āĨ¤ āĻāĻāĻāĻŋ āĻāĻžāϏā§āĻāĻŽ āĻāĻŽāĻŋāĻ āĻā§āĻŽāĻĒā§āϞā§āĻ āϤā§āϰāĻŋāϰ āĻŽāĻžāύ⧠āĻšāϞ āϝ⧠āĻāĻĒāύāĻŋ āĻāĻāĻāĻŋ āĻāĻŽāĻŋāĻ āĻŽā§āϏā§āĻ āϤā§āϰāĻŋ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ āϏāĻ āĻŋāĻ āĻĢāϰāĻŽā§āĻ āĻāĻŦāĻ āϏā§āĻāĻžāĻāϞāĻāĻŋ āύāĻŋāĻā§āĻā§ (āĻŦāĻž āĻ āύā§āϝāĻĻā§āϰ) āĻŽāύ⧠āĻāϰāĻŋāϝāĻŧā§ āĻĻāĻŋāϤ⧠āĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
Â
āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, ~/.gitmessage.txt-āĻ āĻāĻāĻāĻŋ āĻā§āĻŽāĻĒā§āϞā§āĻ āĻĢāĻžāĻāϞ āĻŦāĻŋāĻŦā§āĻāύāĻž āĻāϰā§āύ āϝāĻž āĻĻā§āĻāϤ⧠āĻāĻāϰāĻāĻŽ:
Subject line (try to keep under 50 characters)
Multi-line description of commit,
feel free to be detailed.
[Ticket: X]
āϞāĻā§āώā§āϝ āĻāϰā§āύ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻ āĻāĻŽāĻŋāĻ āĻā§āĻŽāĻĒā§āϞā§āĻāĻāĻŋ āĻāĻŽāĻŋāĻāϰāĻā§ āϏāĻžāĻŦāĻā§āĻā§āĻ āϞāĻžāĻāύāĻāĻŋ āĻā§āĻ āϰāĻžāĻāĻžāϰ āĻāĻĨāĻž āĻŽāύ⧠āĻāϰāĻŋāϝāĻŧā§ āĻĻā§āϝāĻŧ (git log –oneline āĻāĻāĻāĻĒā§āĻā§āϰ āĻāύā§āϝ), āĻāϰ āĻ āϧā§āύ⧠āĻāϰāĻ āĻŦāĻŋāĻļāĻĻ āϝā§āĻ āĻāϰā§, āĻāĻŦāĻ āϝāĻĻāĻŋ āĻāĻāĻāĻŋ āĻāϏā§āϝ⧠āĻŦāĻž āĻŦāĻžāĻ āĻā§āϰā§āϝāĻžāĻāĻžāϰ āĻāĻŋāĻāĻŋāĻ āύāĻŽā§āĻŦāϰ āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āĻĨāĻžāĻā§ āϤāĻŦā§ āϤāĻž āĻāϞā§āϞā§āĻ āĻāϰā§āĨ¤
Â
āĻāĻĒāύāĻŋ āϝāĻāύ git commit āĻāĻžāϞāĻžāύ āϤāĻāύ āĻāĻĒāύāĻžāϰ āĻāĻĄāĻŋāĻāϰ⧠āĻĒā§āϰāĻĻāϰā§āĻļāĻŋāϤ āĻĄāĻŋāĻĢāϞā§āĻ āĻŽā§āϏā§āĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻāĻŋāĻ āĻĻā§āĻŦāĻžāϰāĻž, commit.template āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āĻŽāĻžāύ āϏā§āĻ āĻāϰā§āύ:
$ git config --global commit.template ~/.gitmessage.txt
$ git commit
āϤāĻžāϰāĻĒāϰ, āϝāĻāύ āĻāĻĒāύāĻŋ āĻāĻŽāĻŋāĻ āĻāϰā§āύ āϤāĻāύ āĻāĻĒāύāĻžāϰ āĻĒā§āϞā§āϏāĻšā§āϞā§āĻĄā§āϰ āĻāĻŽāĻŋāĻ āĻŽā§āϏā§āĻā§āϰ āĻāύā§āϝ āĻāĻĒāύāĻžāϰ āĻāĻĄāĻŋāĻāĻ°Â āĻāϰāĻāĻŽ āĻāĻŋāĻā§ āĻā§āϞāĻŦā§:
Subject line (try to keep under 50 characters)
Multi-line description of commit,
feel free to be detailed.
[Ticket: X]
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch master
# Changes to be committed:
# (use "git reset HEAD ..." to unstage)
#
# modified: lib/test.rb
#
~
~
".git/COMMIT_EDITMSG" 14L, 297C
āϝāĻĻāĻŋ āĻāĻĒāύāĻžāϰ āĻāĻŋāĻŽā§āϰ āĻāĻāĻāĻŋ āĻāĻŽāĻŋāĻ-āĻŽā§āϏā§āĻ āύā§āϤāĻŋ āĻĨāĻžāĻā§, āϤāĻžāĻšāϞ⧠āĻāĻĒāύāĻžāϰ āϏāĻŋāϏā§āĻā§āĻŽā§ āϏā§āĻ āύā§āϤāĻŋāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻā§āĻŽāĻĒā§āϞā§āĻ āϏā§āĻĨāĻžāĻĒāύ āĻāϰāĻž āĻāĻŦāĻ āĻĄāĻŋāĻĢāϞā§āĻāϰā§āĻĒā§ āĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻŋāĻ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāĻž āϏā§āĻ āύā§āϤāĻŋāĻāĻŋ āύāĻŋāϝāĻŧāĻŽāĻŋāϤ āĻ āύā§āϏāϰāĻŖ āĻāϰāĻžāϰ āϏā§āϝā§āĻ āĻŦāĻžāĻĄāĻŧāĻžāϤ⧠āϏāĻžāĻšāĻžāϝā§āϝ āĻāϰā§āĨ¤
core.pager
āĻāĻ āϏā§āĻāĻŋāĻ āύāĻŋāϰā§āϧāĻžāϰāĻŖ āĻāϰ⧠āϝ⧠āĻā§āύ āĻĒā§āĻāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāĻŦā§ āϝāĻāύ āĻāĻŋāĻ āĻĒā§āĻ āĻāĻāĻāĻĒā§āĻ āϝā§āĻŽāύ `log` āĻāĻŦāĻ `diff` āĻšāĻŦā§āĨ¤ āĻāĻĒāύāĻŋ āĻāĻāĻŋāĻā§ `more` āĻŦāĻž āĻāĻĒāύāĻžāϰ āĻĒā§āϰāĻŋāϝāĻŧ āĻĒā§āĻāĻžāϰ⧠āϏā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ (āĻĄāĻŋāĻĢāϞā§āĻāϰā§āĻĒā§, āĻāĻāĻŋ `less`), āĻ āĻĨāĻŦāĻž āĻāĻĒāύāĻŋ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻāĻž āϏā§āĻā§āϰāĻŋāĻāϝāĻŧā§ āϏā§āĻ āĻāϰ⧠āĻāĻāĻŋ āĻŦāύā§āϧ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ:
$ git config --global core.pager ' '
āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻāĻŋ āĻāĻžāϞāĻžāύ, āĻāĻŋāĻ āϏāĻŽāϏā§āϤ āĻāĻŽāĻžāύā§āĻĄā§āϰ āϏāĻŽā§āĻĒā§āϰā§āĻŖ āĻāĻāĻāĻĒā§āĻ āĻĒā§āĻāĻ āĻāϰāĻŦā§, āϏā§āĻā§āϞāĻŋ āϝāϤāĻ āĻĻā§āϰā§āĻ āĻšā§āĻ āύāĻž āĻā§āύāĨ¤
user.signingkey
āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āϏāĻžāĻāύāĻĄ āĻāύā§āĻā§āĻā§āĻĄÂ āĻā§āϝāĻžāĻ āϤā§āϰāĻŋ āĻāϰā§āύ (āϝā§āĻŽāύ āϏāĻžāĻāύāĻŋāĻ āĻāĻāϰ āĻā§āĻžāϰā§āĻ āĻ āĻāϞā§āĻāύāĻž āĻāϰāĻž āĻšāϝāĻŧā§āĻā§), āĻāĻĒāύāĻžāϰ GPG āϏāĻžāĻāύāĻŋāĻ āĻāĻŋāĻāĻā§Â āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āϏā§āĻāĻŋāĻ āĻšāĻŋāϏāĻžāĻŦā§ āϏā§āĻ āĻāϰāĻž āĻšāϞ⧠āĻāĻŋāύāĻŋāϏāĻā§āϞāĻž āϏāĻšāĻāϤāϰ āĻšā§ā§ āϝāĻžā§āĨ¤ āĻāĻĒāύāĻžāϰ āĻāĻŋāĻ āĻāĻāĻĄāĻŋ āĻāĻāĻžāĻŦā§ āϏā§āĻ āĻāϰā§āύ:
$ git config --global user.signingkey
āĻāĻāύ, āĻāĻĒāύāĻŋ `git tag` āĻāĻŽāĻžāύā§āĻĄā§āϰ āϏāĻžāĻšāĻžāϝā§āϝ⧠āĻĒā§āϰāϤāĻŋāĻŦāĻžāϰ āĻāĻĒāύāĻžāϰ āĻāĻŋāĻ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āύāĻž āĻāϰā§āĻ āĻā§āϝāĻžāĻ āϏāĻžāĻāύ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ:
$ git tag -s
core.excludesfile
āĻāĻĒāύāĻŋ āĻāĻĒāύāĻžāϰ āĻĒā§āϰā§āĻā§āĻā§āĻā§āϰ `.gitignore` āĻĢāĻžāĻāϞ⧠āĻĒā§āϝāĻžāĻāĻžāϰā§āύ āϰāĻžāĻāϤ⧠āĻĒāĻžāϰā§āύ āϝāĻžāϤ⧠āĻāĻŋāĻ āϏā§āĻā§āϞāĻŋāĻā§ āĻāύāĻā§āϰā§āϝāĻžāĻāĻĄ āĻĢāĻžāĻāϞ āĻšāĻŋāϏā§āĻŦā§ āύāĻž āĻĻā§āĻāϤ⧠āĻĒāĻžāϰ⧠āĻŦāĻž āĻāĻĒāύāĻŋ āϝāĻāύ āϏā§āĻā§āϞāĻŋāϤā§Â `git add` āĻāĻžāϞāĻžāύ āϤāĻāύ āϏā§āĻā§āϞāĻŋāĻā§ āϏā§āĻā§āĻ āĻāϰāĻžāϰ āĻā§āώā§āĻāĻž āĻāϰā§āύ, āϝā§āĻŽāύ āĻāĻāύāϰāĻŋāĻ āĻĢāĻžāĻāϞāϏ āĻ āĻāϞā§āĻāύāĻž āĻāϰāĻž āĻšāϝāĻŧā§āĻā§
āĻāĻŋāύā§āϤ⧠āĻāĻāύāĻ āĻāĻāύāĻ āĻāĻĒāύāĻŋ āϝ⧠āϏāĻŽāϏā§āϤ āϰāĻŋāĻĒā§āϏāĻŋāĻā§āϰāĻŋāϏā§āϰ āϏāĻžāĻĨā§ āĻāĻžāĻ āĻāϰā§āύ āϤāĻžāϰ āĻāύā§āϝ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāĻŋāĻā§ āĻĢāĻžāĻāϞāĻā§āϞāĻŋāĻā§ āĻāĻĒā§āĻā§āώāĻž āĻāϰāϤ⧠āĻāĻžāύāĨ¤ āĻāĻĒāύāĻžāϰ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻžāϰ āϝāĻĻāĻŋ āĻŽā§āϝāĻžāĻ āĻāĻāϏ āĻāĻžāϞāĻžāϝāĻŧ, āϤāĻžāĻšāϞ⧠āĻāĻĒāύāĻŋ āϏāĻŽā§āĻāĻŦāϤ `.DS_Store` āĻĢāĻžāĻāϞāĻā§āϞāĻŋāϰ āϏāĻžāĻĨā§ āĻĒāϰāĻŋāĻāĻŋāϤ⧎ āĻāĻĒāύāĻžāϰ āĻĒāĻāύā§āĻĻā§āϰ āĻāĻĄāĻŋāĻāϰ āϝāĻĻāĻŋ āĻšāϝāĻŧ Emacs āĻŦāĻž Vim, āϤāĻžāĻšāϞ⧠āĻāĻĒāύāĻŋ āĻĢāĻžāĻāϞā§āϰ āύāĻžāĻŽ āϏāĻŽā§āĻĒāϰā§āĻā§ āĻāĻžāύā§āύ āϝā§āĻā§āϞ⧠āĻāĻāĻāĻŋ `~` āĻŦāĻž `.swp` āĻĻāĻŋāϝāĻŧā§ āĻļā§āώ āĻšāϝāĻŧāĨ¤
āĻāĻ āϏā§āĻāĻŋāĻ āĻāĻĒāύāĻžāĻā§ āĻāĻ āϧāϰāύā§āϰ āĻā§āϞā§āĻŦāĻžāϞ `.gitignore` āĻĢāĻžāĻāϞ āϞāĻŋāĻāϤ⧠āĻĻā§āϝāĻŧāĨ¤ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻ āĻŦāĻŋāώāϝāĻŧāĻŦāϏā§āϤā§āĻā§āϞāĻŋ āĻĻāĻŋā§ā§ āĻāĻāĻāĻŋ `~/.gitignore_global` āĻĢāĻžāĻāϞ āϤā§āϰāĻŋ āĻāϰā§āύ:
*~
.*.swp
.DS_Store
âĻāĻāĻŦāĻ āĻāĻĒāύāĻŋ `git config –global core.excludesfile ~/.gitignore_global` āĻāĻžāϞāĻžāύ, āĻāĻŋāĻ āĻāĻĒāύāĻžāĻā§ āĻāϰ āĻāĻāύ⧠āϏā§āĻ āĻĢāĻžāĻāϞāĻā§āϞāĻŋ āύāĻŋāϝāĻŧā§ āĻŦāĻŋāϰāĻā§āϤ āĻāϰāĻŦā§ āύāĻžāĨ¤
help.autocorrect
āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻāĻāĻŋ āĻāĻŽāĻžāύā§āĻĄ āĻā§āϞ āĻāĻžāĻāĻĒ āĻāϰā§āύ, āĻāĻāĻŋ āĻāĻĒāύāĻžāĻā§ āĻāϰāĻāĻŽ āĻāĻŋāĻā§ āĻĻā§āĻāĻžāϝāĻŧ:
$ git chekcout master
git: 'chekcout' is not a git command. See 'git --help'.
The most similar command is
checkout
āĻāĻŋāĻ āϏāĻšāĻžāϝāĻŧāĻāĻāĻžāĻŦā§ āĻāĻĒāύāĻŋ āĻā§ āĻŦā§āĻāĻžāϤ⧠āĻā§āϝāĻŧā§āĻāĻŋāϞā§āύ āϤāĻž āĻŦā§āĻāĻžāϰ āĻā§āώā§āĻāĻž āĻāϰā§, āĻĒāϰāύā§āϤ⧠āĻāĻŋāĻ āĻāĻāĻŋ āĻāϰāϤ⧠āĻ āϏā§āĻŦā§āĻāĻžāϰ āĻāϰā§āĨ¤ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ `help.autocorrect` 1 āĻ āϏā§āĻ āĻāϰā§āύ, āĻāĻŋāĻ āĻāϏāϞ⧠āĻāĻĒāύāĻžāϰ āĻāύā§āϝ āĻāĻ āĻāĻŽāĻžāύā§āĻĄāĻāĻŋ āĻāĻžāϞāĻžāĻŦā§:
$ git chekcout master
WARNING: You called a Git command named 'chekcout', which does not exist.
Continuing under the assumption that you meant 'checkout'
in 0.1 seconds automatically...
āύā§āĻ āĻāϰā§āύ āϝ⧠“`ā§Ļ.ā§§ āϏā§āĻā§āύā§āĻĄāϏ`” āĻŦāĻŋāĻāύā§āϏāĨ¤ `help.autocorrect` āĻāϏāϞ⧠āĻāĻāĻāĻŋ āĻĒā§āϰā§āĻŖāϏāĻāĻā§āϝāĻž āϝāĻž āϏā§āĻā§āύā§āĻĄā§āϰ āĻĻāĻļāĻŽāĻžāĻāĻļāĻā§ āĻāĻĒāϏā§āĻĨāĻžāĻĒāύ āĻāϰā§āĨ¤ āϏā§āϤāϰāĻžāĻ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻāĻŋ ā§Ģā§Ļ āĻ āϏā§āĻ āĻāϰā§āύ, āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧāĻāĻžāĻŦā§ āϏāĻāĻļā§āϧāύ āĻāϰāĻž āĻāĻŽāĻžāύā§āĻĄ āĻāĻžāϰā§āϝāĻāϰ āĻāϰāĻžāϰ āĻāĻā§ āĻāĻŋāĻ āĻāĻĒāύāĻžāĻā§ āĻāĻĒāύāĻžāϰ āĻŽāύ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāϤ⧠ā§Ģ āϏā§āĻā§āύā§āĻĄ āϏāĻŽāϝāĻŧ āĻĻā§āĻŦā§āĨ¤
āĻāĻŋāĻā§ āĻāĻžāϞāĻžāϰÂ
āĻāĻŋāĻ āϏāĻŽā§āĻĒā§āϰā§āĻŖāϰā§āĻĒā§ āĻāĻžāϞāĻžāϰāĻĄ āĻāĻžāϰā§āĻŽāĻŋāύāĻžāϞ āĻāĻāĻāĻĒā§āĻ āϏāĻŽāϰā§āĻĨāύ āĻāϰā§, āϝāĻž āĻĻā§āϰā§āϤ āĻāĻŦāĻ āϏāĻšāĻā§āĻ āĻāĻŽāĻžāύā§āĻĄ āĻāĻāĻāĻĒā§āĻāĻā§ āĻāĻŋāϏā§ā§āĻžāϞāĻŋ āĻĒāĻžāϰā§āϏāĻŋāĻ āĻāϰāϤ⧠āϏāĻžāĻšāĻžāϝā§āϝ āĻāϰā§āĨ¤ āĻ āύā§āĻāĻā§āϞāĻŋ āĻ āĻĒāĻļāύ āĻāĻā§ āϝāĻž āĻāĻĒāύāĻžāĻā§ āĻāĻĒāύāĻžāϰ āϏāĻžāĻāύā§āĻĻ āĻ āύā§āϏāĻžāϰ⧠āĻāĻžāϞāĻžāϰ āϏā§āĻ āĻāϰāϤ⧠āϏāĻšāĻžāϝāĻŧāϤāĻž āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤
color.ui
āĻāĻŋāĻ āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧāĻāĻžāĻŦā§ āĻāϰ āĻŦā§āĻļāĻŋāϰāĻāĻžāĻ āĻāĻāĻāĻĒā§āĻ āĻāϞāĻžāϰ āĻāϰā§, āϤāĻŦā§ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻ āĻāĻāϰāĻŖāĻāĻŋ āĻĒāĻāύā§āĻĻ āύāĻž āĻāϰā§āύ āϤāĻŦā§ āĻāĻāĻāĻŋ āĻŽāĻžāϏā§āĻāĻžāϰ āϏā§āĻāĻ āϰāϝāĻŧā§āĻā§āĨ¤ āϏāĻŽāϏā§āϤ āĻāĻŋāĻ āĻāϰ āĻāĻžāϞāĻžāϰāĻĄ āĻāĻžāϰā§āĻŽāĻŋāύāĻžāϞ āĻāĻāĻāĻĒā§āĻ āĻŦāύā§āϧ āĻāϰāϤā§, āĻāĻāĻŋ āĻāϰā§āύ:
$ git config --global color.ui false
āĻĄāĻŋāĻĢāϞā§āĻ āϏā§āĻāĻŋāĻ āĻšāϞ `auto`, āϝāĻž āϏāϰāĻžāϏāϰāĻŋ āĻāĻžāϰā§āĻŽāĻŋāύāĻžāϞ⧠āϝāĻžāĻāϝāĻŧāĻžāϰ āϏāĻŽāϝāĻŧ āĻāĻāĻāĻĒā§āĻāĻā§ āĻāĻžāϞāĻžāϰ āĻāϰā§, āĻāĻŋāύā§āϤ⧠āĻāĻāĻāĻĒā§āĻāĻāĻŋ āĻĒāĻžāĻāĻĒ āĻŦāĻž āĻĢāĻžāĻāϞ⧠āĻĒā§āύāĻāύāĻŋāϰā§āĻĻā§āĻļāĻŋāϤ āĻšāϞ⧠āĻāĻžāϞāĻžāϰ-āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŖ āĻā§āĻĄāĻā§āϞāĻŋ āĻŦāĻžāĻĻ āĻĻā§āϝāĻŧāĨ¤
āĻāĻžāϰā§āĻŽāĻŋāύāĻžāϞ āĻāĻŦāĻ āĻĒāĻžāĻāĻĒā§āϰ āĻŽāϧā§āϝ⧠āĻĒāĻžāϰā§āĻĨāĻā§āϝ āĻāĻĒā§āĻā§āώāĻž āĻāϰāϤ⧠āĻāĻĒāύāĻŋ āĻāĻāĻŋāĻā§ `always` āϏā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
āĻāĻĒāύāĻŋ āĻā§āĻŦ āĻāĻŽāĻ āĻāĻāĻŋ āĻāĻžāĻāĻŦā§āύ; āĻŦā§āĻļāĻŋāϰāĻāĻžāĻ āĻĒāϰāĻŋāϏā§āĻĨāĻŋāϤāĻŋāϤā§, āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻĒāύāĻžāϰ āĻĒā§āύāĻāύāĻŋāϰā§āĻĻā§āĻļāĻŋāϤ āĻāĻāĻāĻĒā§āĻā§ āĻāĻžāϞāĻžāĻ°Â āĻā§āĻĄ āĻāĻžāύ āϤāĻŦā§ āĻāĻĒāύāĻŋ āĻāĻāĻŋāϰ āĻĒāϰāĻŋāĻŦāϰā§āϤ⧠āĻāĻāĻāĻŋ `–color` āĻĢā§āϞā§āϝāĻžāĻ āĻāĻŋāĻ āĻāĻŽāĻžāύā§āĻĄā§ āĻĒāĻžāϏ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ āϝāĻžāϤ⧠āĻāĻāĻŋāĻā§ āĻāĻžāϞāĻžāϰ āĻā§āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻŦāĻžāϧā§āϝ āĻāϰā§āĨ¤ āĻāĻĒāύāĻŋ āϝāĻž āĻāĻžāύ āĻĄāĻŋāĻĢāϞā§āĻ āϏā§āĻāĻŋāĻ āĻĒā§āϰāĻžāϝāĻŧ āϏāĻŦāϏāĻŽāϝāĻŧ āϤāĻžāĻ āĻšā§āĨ¤Â
color.*
āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāϰāĻ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻšāϤ⧠āĻāĻžāύ āϝ⧠āĻā§āύ āĻāĻŽāĻžāύā§āĻĄāĻā§āϞāĻŋ āĻāĻžāϞāĻžāϰ āĻšāĻŦā§ āĻāĻŦāĻ āĻā§āĻāĻžāĻŦā§ āĻšāĻŦā§, āĻāĻŋāĻ āĻā§āϰāĻŦ-āϏā§āĻĒā§āϏāĻŋāĻĢāĻŋāĻ āĻāĻžāϞāĻžāϰ āϏā§āĻāĻŋāĻāϏ āĻĒā§āϰāĻĻāĻžāύ āĻāϰā§āĨ¤ āĻāĻā§āϞāĻŋāϰ āĻĒā§āϰāϤā§āϝā§āĻāĻāĻŋāĻā§ `true`, `false`, āĻŦāĻž `always` āϏā§āĻ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§:
color.branch
color.diff
color.interactive
color.status
āĻāĻĒāϰāύā§āϤā§, āĻāϰ āĻĒā§āϰāϤā§āϝā§āĻāĻāĻŋāϰ āϏāĻžāĻŦāϏā§āĻāĻŋāĻ āϰāϝāĻŧā§āĻā§ āϝāĻž āĻāĻĒāύāĻŋ āĻāĻāĻāĻĒā§āĻā§āϰ āĻ āĻāĻļāĻā§āϞāĻŋāϰ āĻāύā§āϝ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāĻžāϞāĻžāϰ āϏā§āĻ āĻāĻžāϰāĻžāϰ āĻāύā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ, āϝāĻĻāĻŋ āĻāĻĒāύāĻŋ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻāĻžāϞāĻžāϰāĻā§ āĻāĻāĻžāϰāϰāĻžāĻāĻĄ āĻāϰāϤ⧠āĻāĻžāύāĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻāĻĒāύāĻžāϰ āĻĄāĻŋāĻĢ āĻāĻāĻāĻĒā§āĻā§ āĻŽā§āĻāĻž āϤāĻĨā§āϝāĻā§ āύā§āϞ āĻĢā§āϰāĻā§āϰāĻžāĻāύā§āĻĄ, āĻāĻžāϞ⧠āĻŦā§āϝāĻžāĻāĻā§āϰāĻžāĻāύā§āĻĄ āĻāĻŦāĻ āĻŦā§āϞā§āĻĄ āĻā§āĻā§āϏāĻā§ āϏā§āĻ āĻāϰāϤ⧠āĻāĻžāύ, āĻāĻĒāύāĻŋ āĻāĻžāϞāĻžāϤ⧠āĻĒāĻžāϰā§āύ:
$ git config --global color.diff.meta "blue black bold"
āĻāĻĒāύāĻŋ āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻŽāĻžāύāĻā§āϞāĻŋāϰ āϝā§āĻā§āύ āĻāĻāĻāĻŋāϤ⧠āĻāĻžāϞāĻžāϰ āϏā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ: `normal`, `black`, `red`, `green`, `yellow`, `blue`, `magenta`, `cyan`, āĻŦāĻž `white`āĨ¤ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻā§āϰ āĻāĻĻāĻžāĻšāϰāĻŖā§ āĻŦā§āϞā§āĻĄā§āϰ āĻŽāϤ⧠āĻāĻāĻāĻŋ āĻāĻā§āϰāĻŋāĻŦāĻŋāĻāĻ āĻāĻžāύ, āĻāĻĒāύāĻŋ `bold`, `dim`, `ul`(āĻāύā§āĻĄāĻžāϰāϞāĻžāĻāύ), `blink`, āĻāĻŦāĻ `reverse` (āĻĢā§āϰāĻā§āϰāĻžāĻāύā§āĻĄ āĻāĻŦāĻ āĻŦā§āϝāĻžāĻāĻā§āϰāĻžāĻāύā§āĻĄ āĻ āĻĻāϞāĻŦāĻĻāϞ āĻāϰāĻž) āĻĨā§āĻā§ āĻŦā§āĻā§ āύāĻŋāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
āĻāĻā§āϏāĻā§āϰāĻžāύāĻžāϞ āĻŽāĻžāϰā§āĻ āĻāύā§āĻĄ āĻĄāĻŋāĻĢ āĻā§āϞāϏÂ
āϝāĻĻāĻŋāĻ āĻāĻŋāĻā§ āĻĄāĻŋāĻĢ āĻāϰ āĻāĻāĻāĻŋ āĻāύā§āĻāĻžāϰāύāĻžāϞ āĻāĻŽāĻĒā§āϞāĻŋāĻŽā§āύā§āĻā§āĻļāύ āϰāϝāĻŧā§āĻā§, āϝāĻž āĻāĻŽāϰāĻž āĻāĻ āĻŦāĻāĻāĻŋāϤ⧠āĻĻā§āĻāĻŋāϝāĻŧā§āĻāĻŋ, āĻāĻĒāύāĻŋ āϝāĻžāϰ āĻĒāϰāĻŋāĻŦāϰā§āϤ⧠āĻāĻāĻāĻŋ āĻāĻā§āϏāĻāĻžāϰā§āύāĻžāϞ āĻā§āϞ āϏā§āĻāĻāĻĒ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āĻŽā§āϝāĻžāύā§āϝāĻŧāĻžāϞāĻŋ āĻāύāĻĢā§āϞāĻŋāĻā§āĻāϏ āϰā§āϏāϞā§āĻā§ āĻāϰāĻžāϰ āĻĒāϰāĻŋāĻŦāϰā§āϤ⧠āĻāĻĒāύāĻŋ āĻāĻāĻāĻŋ āĻā§āϰāĻžāĻĢāĻŋāĻā§āϝāĻžāϞ āĻŽāĻžāϰā§āĻ-āĻāύāĻĢā§āϞāĻŋāĻā§āĻ-āϰā§āĻā§āϞāĻŋāĻāĻļāύ āĻā§āϞ āϏā§āĻ āĻāĻĒ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āĻāĻŽāϰāĻž āĻĒāĻžāϰāĻĢā§āϰā§āϏ āĻāĻŋāĻā§āϝā§āϝāĻŧāĻžāϞ āĻŽāĻžāϰā§āĻ āĻā§āϞ (P4Merge) āϏā§āĻ āĻāĻĒ āĻāϰāĻŦā§, āϝāĻžāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāĻĒāύāĻžāϰ āĻĄāĻŋāĻĢ āĻāĻŦāĻ āĻŽāĻžāϰā§āĻ āϰā§āĻā§āϞāĻŋāĻāĻļāύ āĻāϰāĻž āϝāĻžāĻŦā§āĨ¤Â āĻāĻžāϰāĻŖ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻāĻŽā§āĻāĻžāϰ āĻā§āϰāĻžāĻĢāĻŋāĻāĻžāϞ āĻā§āϞ āĻāĻŦāĻ āĻāĻāĻŋ āĻŦāĻŋāύāĻžāĻŽā§āϞā§āϝ⧠āĻĒāĻžāĻā§āĻž āϝāĻžā§āĨ¤Â
Â
āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻāĻŋ āĻā§āώā§āĻāĻž āĻāϰ⧠āĻĻā§āĻāϤ⧠āĻāĻžāύ, P4Merge āϏāĻŽāϏā§āϤ āĻĒā§āϰāϧāĻžāύ āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽā§ āĻāĻžāĻ āĻāϰā§, āϤāĻžāĻ āĻāĻĒāύāĻžāϰ āĻāĻāĻŋ āĻāϰāϤ⧠āϏāĻā§āώāĻŽ āĻšāĻāϝāĻŧāĻž āĻāĻāĻŋāϤāĨ¤ āĻāĻŽāϰāĻž āĻŽā§āϝāĻžāĻāĻāĻāϏ, āϞāĻŋāύāĻžāĻā§āϏ āϏāĻŋāϏā§āĻā§āĻŽā§ āĻāĻŦāĻ āĻāĻāύā§āĻĄā§āĻā§āϰ āĻāύā§āϝ āĻāĻžāĻ āĻāϰ⧠āĻāĻŽāύ āĻĒāĻĨā§āϰ āύāĻžāĻŽ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŦ, āĻāĻĒāύāĻžāĻā§ āĻāĻĒāύāĻžāϰ āĻāύāĻāĻžā§āϰāύāĻŽā§āύā§āĻā§āĻ°Â āĻāĻā§āϏāĻŋāĻāĻŋāĻāĻā§āĻŦāϞ āĻĒāĻžāĻĨā§ `/usr/local/bin` āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤
Â
āĻļā§āϰ⧠āĻāϰāĻž, āĻĒāĻžāϰāĻĢā§āϰā§āϏ āĻĨā§āĻā§ P4Merge āĻĄāĻžāĻāύāϞā§āĻĄ āĻāϰā§āύ āĻāϰ āĻĒāϰā§, āĻāĻĒāύāĻŋ āĻāĻĒāύāĻžāϰ āĻāĻŽāĻžāύā§āĻĄ āĻāĻžāϞāĻžāύā§āϰ āĻāύā§āϝ āĻāĻā§āϏāĻāĻžāϰā§āύāĻžāϞ āϰâā§āϝāĻžāĻĒāĻžāϰ āϏā§āĻā§āϰāĻŋāĻĒā§āĻ āϏā§āĻ āĻāĻĒ āĻāϰāĻŦā§āύāĨ¤ āĻāĻŽāϰāĻž āĻāĻā§āϏāĻŋāĻāĻŋāĻāĻā§āĻŦāϞā§āϰ āĻāύā§āϝ āĻŽā§āϝāĻžāĻāĻāĻāϏ āĻĒāĻžāĻĨ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŦ; āĻ āύā§āϝāĻžāύā§āϝ āϏāĻŋāϏā§āĻā§āĻŽā§, āĻāĻāĻŋ āĻšāĻŦā§ āϝā§āĻāĻžāύ⧠āĻāĻĒāύāĻžāϰ `p4merge` āĻŦāĻžāĻāύāĻžāϰāĻŋ āĻāύāϏā§āĻāϞ āĻāϰāĻž āĻāĻā§āĨ¤
‘extMerge’ āύāĻžāĻŽā§ āĻāĻāĻāĻŋ āĻŽāĻžāϰā§āĻ āϰâā§āϝāĻžāĻĒāĻžāϰ āϏā§āĻā§āϰāĻŋāĻĒā§āĻ āϏā§āĻ āĻāĻĒ āĻāϰā§āύ āϝāĻž āĻĒā§āϰāĻĻāϤā§āϤ āϏāĻŽāϏā§āϤ āĻāϰā§āĻā§āĻŽā§āύā§āĻ āϏāĻš āĻāĻĒāύāĻžāϰ āĻŦāĻžāĻāύāĻžāϰāĻŋ āĻāϞ āĻāϰā§:
$ cat /usr/local/bin/extMerge
#!/bin/sh
/Applications/p4merge.app/Contents/MacOS/p4merge $*
āϏāĻžāϤāĻāĻŋ āĻāϰā§āĻā§āĻŽā§āύā§āĻ āĻĒā§āϰāĻĻāĻžāύ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§ āϤāĻž āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰāϤ⧠āĻĄāĻŋāĻĢ āϰâā§āϝāĻžāĻĒāĻžāϰ āĻā§āĻ āĻāϰ⧠āĻāĻŦāĻ āĻāϰ āĻŽāϧā§āϝ⧠āĻĻā§āĻāĻŋ āĻāĻĒāύāĻžāϰ āĻŽāĻžāϰā§āĻ āϏā§āĻā§āϰāĻŋāĻĒā§āĻā§ āĻĒāĻžāϏ āĻāϰā§āĨ¤ āĻĄāĻŋāĻĢāϞā§āĻ āĻāĻžāĻŦā§, āĻāĻŋāĻ āĻĄāĻŋāĻĢ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽā§ āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻāϰā§āĻā§āĻŽā§āύā§āĻāĻā§āϞāĻŋ āĻĒāĻžāϏ āĻāϰā§:
path old-file old-hex old-mode new-file new-hex new-mode
āϝā§āĻšā§āϤ⧠āĻāĻĒāύāĻŋ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ `old-file` āĻāĻŦāĻ `new-file` āĻāϰā§āĻā§āĻŽā§āύā§āĻ āĻāĻžāύ, āĻāĻĒāύāĻŋ āĻāĻĒāύāĻžāϰ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧāĻā§āϞāĻŋ āϰâā§āϝāĻžāĻĒāĻžāϰ āϏā§āĻā§āϰāĻŋāĻĒā§āĻā§ āĻĒāĻžāϏ āĻāϰā§Â āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŦā§āύāĨ¤
$ cat /usr/local/bin/extDiff
#!/bin/sh
[ $# -eq 7 ] && /usr/local/bin/extMerge "$2" "$5"
āĻāĻĒāύāĻžāĻā§ āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰāϤ⧠āĻšāĻŦā§ āϝ⧠āĻāĻ āĻā§āϞāϏāĻā§āϞ⧠āĻāĻā§āϏā§āĻāĻŋāĻāĻāĻžāĻŦāϞ:
$ sudo chmod +x /usr/local/bin/extMerge
$ sudo chmod +x /usr/local/bin/extDiff
āĻāĻāύ āĻāĻĒāύāĻŋ āĻāĻĒāύāĻžāϰ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻĢāĻžāĻāϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻāĻžāϏā§āĻāĻŽ āĻŽāĻžāϰā§āĻ āϰā§āĻā§āϞāĻŋāĻāĻļāύ āĻāĻŦāĻ āĻĄāĻŋāĻĢ āĻā§āϞ āϏā§āĻ āĻāĻĒ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āĻāϰ āĻāύā§āϝ āĻŦā§āĻļ āĻāϝāĻŧā§āĻāĻāĻŋ āĻāĻžāϏā§āĻāĻŽ āϏā§āĻāĻŋāĻāϏ āϞāĻžāĻāĻŦā§: `merge.tool` āĻĻāĻŋā§ā§ āĻāĻŋāĻ āύāĻŋāϰā§āϧāĻžāϰāĻŖ āĻāϰāĻŦā§ āĻā§āύ āϏā§āĻā§āϰāĻžāĻā§āĻāĻŋ āϏ⧠āĻŦā§āϝāĻžāĻŦāĻšāĻžāϰ āĻāϰāĻŦā§, āĻāĻŦāĻ `mergetool.<tool>.cmd` āĻĻāĻŋā§ā§ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰāĻŦā§ āĻā§āύ āĻāĻŽāĻžāύā§āĻĄāĻāĻŋ āĻāĻžāϞāĻžāĻŦā§, `mergetool.<tool>.trustExitCode` āĻĻāĻŋā§ā§ āĻāĻŋāĻ āύāĻŋāϰā§āϧāĻžāϰāĻŖ āĻāϰ⧠āϝā§, āĻĒā§āϰā§āĻā§āϰāĻžāĻŽā§āϰ āĻāĻā§āϏāĻŋāĻ āĻā§āĻĄ āύāĻŋāϰā§āĻĻā§āĻļ āĻāϰ⧠āϏāĻĢāϞ āĻŽāĻžāϰā§āĻ āϰā§āĻā§āϞāĻŋāĻāĻļāύ āĻšāĻā§ā§āĻā§ āĻāĻŋāύāĻž; āĻāĻŦāĻ `diff.external` āĻĻāĻŋā§ā§ āĻāĻŋāĻ āύāĻŋāϰā§āϧāĻžāϰāĻŖ āĻāϰā§, āĻā§āύ āĻāĻŽāĻžāύā§āĻĄ āĻĻāĻŋā§ā§ āĻĄāĻŋāĻĢ āĻāĻžāϞāĻžāύ⧠āϝāĻžāĻŦā§āĨ¤ āϏā§āϤāϰāĻžāĻ, āĻāĻĒāύāĻŋ āĻšāϝāĻŧ āĻāĻ āĻāĻžāϰāĻāĻŋ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāĻŽāĻžāύā§āĻĄ āĻāĻžāϞāĻžāϤ⧠āĻĒāĻžāϰā§āύ:
$ git config --global merge.tool extMerge
$ git config --global mergetool.extMerge.cmd \
'extMerge "$BASE" "$LOCAL" "$REMOTE" "$MERGED"'
$ git config --global mergetool.extMerge.trustExitCode false
$ git config --global diff.external extDiff
āĻ āĻĨāĻŦāĻž āĻāĻĒāύāĻŋ āĻāĻ āϞāĻžāĻāύāĻā§āϞāĻŋ āϝā§āĻ āĻāϰ⧠āĻāĻĒāύāĻžāϰ `~/.gitconfig` āĻĢāĻžāĻāϞāĻāĻŋ āĻāĻĄāĻŋāĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ:
[merge]
tool = extMerge
[mergetool "extMerge"]
cmd = extMerge "$BASE" "$LOCAL" "$REMOTE" "$MERGED"
trustExitCode = false
[diff]
external = extDiff
āĻāĻ āϏāĻŦ āϏā§āĻ āĻāϰāĻžāϰ āĻĒāϰā§, āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻ āϰāĻāĻŽ āĻĄāĻŋāĻĢ āĻāĻŽāĻžāύā§āĻĄ āĻāĻžāϞāĻžāύ:
$ git diff 32d1776b1^ 32d1776b1
āĻāĻŽāĻžāύā§āĻĄ āϞāĻžāĻāύ⧠āĻĄāĻŋāĻĢ āĻāĻāĻāĻĒā§āĻ āĻĒāĻžāĻāϝāĻŧāĻžāϰ āĻĒāϰāĻŋāĻŦāϰā§āϤā§, āĻāĻŋāĻ P4Merge āĻĢāĻžāϝāĻŧāĻžāϰ āĻāϰā§, āϝāĻž āĻĻā§āĻāϤ⧠āĻāĻŋāĻā§āĻāĻž āĻāϰāĻāĻŽ:

āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻĻā§āĻāĻŋ āĻŦā§āϰāĻžāĻā§āĻā§āϏ āĻŽāĻžāϰā§āĻ āĻāϰāĻžāϰ āĻā§āώā§āĻāĻž āĻāϰā§āύ āĻāĻŦāĻ āĻĒāϰāĻŦāϰā§āϤā§āϤ⧠āĻŽāĻžāϰā§āĻ āĻāύāĻĢā§āϞāĻŋāĻā§āĻāϏ āĻĻā§āĻāĻž āĻĻā§āϝāĻŧ, āϤāĻžāĻšāϞ⧠āĻāĻĒāύāĻŋ `git mergetool` āĻāĻŽāĻžāύā§āĻĄāĻāĻŋ āĻāĻžāϞāĻžāϤ⧠āĻĒāĻžāϰā§āύ; āĻāĻāĻŋ P4Merge āĻļā§āϰ⧠āĻāϰ⧠āϝāĻžāϤ⧠āĻāĻĒāύāĻŋ āϏā§āĻ GUI āĻā§āϞā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāύāĻĢā§āϞāĻŋāĻā§āĻ āϰā§āϏāϞā§āĻā§ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
Â
āĻāĻ āϰâā§āϝāĻžāĻĒāĻžāϰ āϏā§āĻāĻāĻĒ āϏāĻŽā§āĻĒāϰā§āĻā§ āĻāĻŽā§āĻāĻžāϰ āĻāĻŋāύāĻŋāϏ āĻšāϞ āϝ⧠āĻāĻĒāύāĻŋ āϏāĻšāĻā§āĻ āĻāĻĒāύāĻžāϰ āĻĄāĻŋāĻĢ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ āĻāĻŦāĻ āĻā§āϞāĻā§āϞā§āĻā§ āĻŽāĻžāϰā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻāĻĒāύāĻžāϰ `extDiff` āĻāĻŦāĻ `extMerge` āĻā§āϞ āĻāĻžāϞāĻžāύā§āϰ āĻĒāϰāĻŋāĻŦāϰā§āϤ⧠KDiff3 āĻā§āϞ āĻāĻžāϞāĻžāϞā§, āĻāĻĒāύāĻžāĻā§ āϝāĻž āĻāϰāϤ⧠āĻšāĻŦā§ āϤāĻž āĻšāϞ āĻāĻĒāύāĻžāϰ `extMerge` āĻĢāĻžāĻāϞāĻāĻŋ āĻāĻĄāĻŋāĻ āĻāϰā§āύ:
$ cat /usr/local/bin/extMerge
#!/bin/sh
/Applications/kdiff3.app/Contents/MacOS/kdiff3 $*
āĻāĻāύ, āĻāĻŋāĻ āĻĄāĻŋāĻĢ āĻĻā§āĻāĻžāϰ āĻāύā§āϝ KDiff3 āĻā§āϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŦā§ āĻāĻŦāĻ āĻŽāĻžāϰā§āĻ āĻāύāĻĢā§āϞāĻŋāĻā§āĻ āϰā§āϏāϞā§āĻā§ āĻāϰāĻŦā§āĨ¤
āĻāĻŋāĻ āĻāĻĒāύāĻžāϰ āϏāĻŋāĻāĻŽāĻĄāĻŋ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āϏā§āĻ āĻāĻĒ āύāĻž āĻāϰā§āĻ āĻ āύā§āϝāĻžāύā§āϝ āĻāĻāĻžāϧāĻŋāĻ āĻŽāĻžāϰā§āĻ-āϰā§āĻā§āϞāĻŋāĻāĻļāύ āĻā§āϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āĻāύā§āϝ āĻĒā§āϰāĻŋāϏā§āĻ āĻāϏā§āĨ¤ āĻāĻāĻŋ āϏāĻŽāϰā§āĻĨāύ āĻāϰ⧠āĻāĻŽāύ āĻā§āϞāĻā§āϞāĻŋāϰ āĻāĻāĻāĻŋ āϤāĻžāϞāĻŋāĻāĻž āĻĻā§āĻāϤ⧠āĻĒāĻžāϰā§āύ:
$ git mergetool --tool-help
'git mergetool --tool=' may be set to one of the following:
emerge
gvimdiff
gvimdiff2
opendiff
p4merge
vimdiff
vimdiff2
The following tools are valid, but not currently available:
araxis
bc3
codecompare
deltawalker
diffmerge
diffuse
ecmerge
kdiff3
meld
tkdiff
tortoisemerge
xxdiff
Some of the tools listed above only work in a windowed
environment. If run in a terminal-only session, they will fail.
āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻĄāĻŋāĻĢā§āϰ āĻāύā§āϝ KDiff3 āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻāĻā§āϰāĻšā§ āύāĻž āĻšāύ āϤāĻŦā§ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻŽāĻžāϰā§āĻ āϰā§āĻā§āϞāĻŋāĻāĻļāύā§āϰ āĻāύā§āϝ āĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻāĻžāύ āĻāĻŦāĻ kdiff3 āĻāĻŽāĻžāύā§āĻĄāĻāĻŋ āĻāĻĒāύāĻžāϰ āĻĒāĻĨā§ āϰāϝāĻŧā§āĻā§, āϤāĻžāĻšāϞ⧠āĻāĻĒāύāĻŋ āĻāĻžāϞāĻžāϤ⧠āĻĒāĻžāϰā§āύ:
$ git config --global merge.tool kdiff3
āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ `extMerge` āĻāĻŦāĻ `extDiff` āĻĢāĻžāĻāϞ āϏā§āĻ āĻāĻĒ āĻāϰāĻžāϰ āĻĒāϰāĻŋāĻŦāϰā§āϤ⧠āĻāĻāĻŋ āĻāĻžāϞāĻžāύ, āĻāĻŋāĻ āĻŽāĻžāϰā§āĻ āϰā§āĻā§āϞāĻŋāĻāĻļāύā§āϰ āĻāύā§āϝ KDiff3 āĻāĻŦāĻ āĻĄāĻŋāĻĢā§āϰ āĻāύā§āϝ āϏāĻžāϧāĻžāϰāĻŖ āĻāĻŋāĻ āĻĄāĻŋāĻĢ āĻā§āϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŦā§āĨ¤
āĻĢāϰāĻŽā§āϝāĻžāĻāĻŋāĻ āĻāύā§āĻĄ āĻšā§ā§āĻžāĻāĻāϏā§āĻĒā§āϏÂ
āĻĢāϰāĻŽā§āϝāĻžāĻāĻŋāĻ āĻāĻŦāĻ āĻšā§āϝāĻŧāĻžāĻāĻāϏā§āĻĒā§āϏ āĻāϏā§āϝā§āϏ āĻšāϞ āĻāĻŋāĻā§āĻāĻž āĻšāϤāĻžāĻļāĻžāĻāύāĻ āĻāĻŦāĻ āϏā§āĻā§āώā§āĻŽ āϏāĻŽāϏā§āϝāĻž āϝāĻž āĻ āύā§āĻ āĻĄā§āĻā§āϞāĻĒāĻžāϰ āϏāĻŽāύā§āĻŦā§ā§ āĻāĻžāĻ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ āϏāĻŽā§āĻŽā§āĻā§āύ āĻšāϝāĻŧ, āĻŦāĻŋāĻļā§āώ āĻāϰ⧠āĻā§āϰāϏ-āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽā§āĨ¤ āĻĒā§āϝāĻžāĻ āĻŦāĻž āĻ āύā§āϝāĻžāύā§āϝ āϏāĻŽāύā§āĻŦā§ āĻāĻžāĻā§āϰ āϏāĻŽā§ āϏā§āĻā§āώā§āĻŽ āĻšā§āϝāĻŧāĻžāĻāĻāϏā§āĻĒā§āϏ āĻĒāϰāĻŋāĻŦāϰā§āϤāύāĻā§āϞāĻŋ āĻĒā§āϰāĻŦāϰā§āϤāύ āĻāϰāĻž āĻā§āĻŦ āϏāĻšāĻ āĻāĻžāϰāĻŖ āĻāĻĄāĻŋāĻāϰāĻ¸Â āύā§āϰāĻŦā§ āϤāĻžāĻĻā§āϰ āĻĒāϰāĻŋāĻāϝāĻŧ āĻāϰāĻŋāϝāĻŧā§ āĻĻā§āϝāĻŧ, āĻāĻŦāĻ āϝāĻĻāĻŋ āĻāĻĒāύāĻžāϰ āĻĢāĻžāĻāϞāĻā§āϞāĻŋ āĻāĻāύāĻ āĻāĻāύā§āĻĄā§āĻ āϏāĻŋāϏā§āĻā§āĻŽāĻā§ āĻāĻžāĻ āĻāϰ⧠āϤāĻŦā§ āϤāĻžāĻĻā§āϰ āϞāĻžāĻāύā§āϰ āĻļā§āώāĻā§āϞāĻŋ āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāĻŋāϤ āĻšāϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻāĻ āĻāϏā§āϝā§āĻā§āϞāĻŋāϰ āϏāĻŽāĻžāϧāĻžāύā§āϰ āĻāύā§āϝ āĻāĻŋāĻā§āϰ āĻāϝāĻŧā§āĻāĻāĻŋ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āĻ āĻĒāĻļāύ āϰāϝāĻŧā§āĻā§āĨ¤
core.autocrlf
āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻāύā§āĻĄā§āĻā§ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽāĻŋāĻ āĻāϰā§āύ āĻāĻŦāĻ āĻāĻŽāύ āϞā§āĻā§āĻĻā§āϰ āϏāĻžāĻĨā§ āĻāĻžāĻ āĻāϰā§āύ āϝāĻžāϰāĻž āĻ āύā§āϝāĻžāύā§āϝ āĻĒā§āϞāĻžāĻāĻĢāϰāĻŽā§ āĻāĻžāĻ āĻāϰā§āύ, āĻāĻĒāύāĻŋ āϏāĻŽā§āĻāĻŦāϤ āĻā§āύ āĻāĻ āϏāĻŽā§ āϞāĻžāĻāύ-āĻāύā§āĻĄāĻŋāĻ āϏāĻŽāϏā§āϝāĻžāϝāĻŧ āĻĒāĻĄāĻŧāĻŦā§āύāĨ¤ āĻāĻžāϰāĻŖ āĻāĻāύā§āĻĄā§āĻ āϤāĻžāϰ āĻĢāĻžāĻāϞāĻā§āϞāĻŋāϤ⧠āύāϤā§āύ āϞāĻžāĻāύā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻā§āϝāĻžāϰā§āĻ-āϰāĻŋāĻāĻžāϰā§āύ āĻ āĻā§āώāϰ āĻāĻŦāĻ āĻāĻāĻāĻŋ āϞāĻžāĻāύāĻĢāĻŋāĻĄ āĻ āĻā§āώāϰ āĻāĻāϝāĻŧāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§, āϝā§āĻāĻžāύ⧠āĻŽā§āϝāĻžāĻāĻāĻāϏ āĻāĻŦāĻ āϞāĻŋāύāĻžāĻā§āϏ āϏāĻŋāϏā§āĻā§āĻŽ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āϞāĻžāĻāύāĻĢāĻŋāĻĄ āĻ āĻā§āώāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĨ¤ āĻāĻāĻŋ āĻā§āϰāϏ-āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽ āĻāĻžāĻā§āϰ āĻāĻāĻāĻŋ āϏā§āĻā§āώā§āĻŽ āĻāĻŋāύā§āϤ⧠āĻ āĻŦāĻŋāĻļā§āĻŦāĻžāϏā§āϝāĻāĻžāĻŦā§ āĻŦāĻŋāϰāĻā§āϤāĻŋāĻāϰ āϏāϤā§āϝ; āĻāĻāύā§āĻĄā§āĻā§āϰ āĻ āύā§āĻ āĻāĻĄāĻŋāĻāϰ āύā§āϰāĻŦā§ āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ LF-āϏā§āĻāĻžāĻāϞā§āϰ āϞāĻžāĻāύā§āϰ āĻļā§āώāĻā§āϞāĻŋāĻā§Â CRLF āĻĻāĻŋāϝāĻŧā§ āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāύ āĻāϰā§, āĻ āĻĨāĻŦāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻāύā§āĻāĻžāϰ āĻāĻŋāĻ āĻāĻžāĻĒāϞ⧠āĻāĻāϝāĻŧ āϞāĻžāĻāύā§āϰ-āĻāύā§āĻĄāĻŋāĻ āĻ āĻā§āώāϰ āϝā§āĻā§āϤ āĻāϰā§āĨ¤
Â
āĻāĻĒāύāĻŋ āϝāĻāύ āĻāύāĻĄā§āĻā§āϏ⧠āĻāĻāĻāĻŋ āĻĢāĻžāĻāϞ āϝā§āĻ āĻāϰā§āύ āϤāĻāύ āĻāĻŋāĻ CRLF āϞāĻžāĻāύā§āϰ āĻļā§āώāĻā§āϞāĻŋāĻā§ āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧāĻāĻžāĻŦā§ LF-āϤ⧠āϰā§āĻĒāĻžāύā§āϤāϰ āĻāϰāϤ⧠āĻĒāĻžāϰ⧠āĻāĻŦāĻ āĻāϰ āĻŦāĻŋāĻĒāϰā§āϤ⧠āϝāĻāύ āĻāĻāĻŋ āĻāĻĒāύāĻžāϰ āĻĢāĻžāĻāϞ āϏāĻŋāϏā§āĻā§āĻŽā§ āĻā§āĻĄ āĻā§āĻ āĻāϰā§āĨ¤
āĻāĻĒāύāĻŋ `core.autocrlf` āϏā§āĻāĻŋāĻ āĻĻāĻŋāϝāĻŧā§ āĻāĻ āĻāĻžāϰā§āϝāĻāĻžāϰāĻŋāϤāĻž āĻāĻžāϞ⧠āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āĻāĻĒāύāĻŋ `core.autocrlf` āϏā§āĻāĻŋāĻ āĻĻāĻŋāϝāĻŧā§ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻāĻāĻŋ āĻāĻāύā§āĻĄā§āĻ āĻŽā§āĻļāĻŋāύ⧠āĻĨāĻžāĻā§āύ āϤāĻŦā§ āĻāĻāĻŋāĻā§ `true` āϤ⧠āϏā§āĻ āĻāϰā§āύ — āĻāĻĒāύāĻŋ āĻā§āĻĄ āĻā§āĻ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻāĻāĻŋ LF āĻĻāĻŋā§ā§ āĻļā§āώāĻā§āϞāĻŋāĻā§ CRLF-āĻ āϰā§āĻĒāĻžāύā§āϤāϰāĻŋāϤ āĻāϰā§:
$ git config --global core.autocrlf true
āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻāĻāĻŋ āϞāĻŋāύāĻžāĻā§āϏ āĻŦāĻž āĻŽā§āϝāĻžāĻāĻāĻāϏ āϏāĻŋāϏā§āĻā§āĻŽā§ āĻĨāĻžāĻā§āύ āϝāĻž LF āϞāĻžāĻāύā§āϰ āĻļā§āώ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§, āϤāĻžāĻšāϞ⧠āĻāĻĒāύāĻŋ āĻāĻžāύ āύāĻž āϝ⧠āĻāĻĒāύāĻŋ āĻĢāĻžāĻāϞāĻā§āϞāĻŋ āĻā§āĻ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻāĻŋāĻ āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧāĻāĻžāĻŦā§ āϤāĻžāĻĻā§āϰ āϰā§āĻĒāĻžāύā§āϤāϰ āĻāϰā§āĻ; āϝāĻĻāĻŋ CRLF āĻāύā§āĻĄāĻŋāĻ āϏāĻš āĻāĻāĻāĻŋ āĻĢāĻžāĻāϞ āĻā§āϞāĻŦāĻļāϤ āĻāĻžāϞ⧠āĻšāϝāĻŧā§ āϝāĻžāϝāĻŧ, āϤāĻžāĻšāϞ⧠āĻāĻĒāύāĻŋ āĻāĻŋāĻ āĻĻāĻŋā§ā§ āĻāĻāĻŋ āĻ āĻŋāĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āĻāĻĒāύāĻŋ āĻāĻŋāĻāĻā§ āĻāĻŽāĻŋāĻā§āϰ āϏāĻŽāϝāĻŧ CRLF āĻā§ LF āϤ⧠āϰā§āĻĒāĻžāύā§āϤāϰ āĻāϰāϤ⧠āĻŦāϞāϤ⧠āĻĒāĻžāϰā§āύ āĻāĻŋāύā§āϤ⧠āĻ āύā§āϝāĻāĻžāĻŦā§ `core.autocrlf` āĻā§ `input` āϏā§āĻ āĻāϰ⧠āύāϝāĻŧ:
$ git config --global core.autocrlf input
āĻāĻ āϏā§āĻāĻāĻĒāĻāĻŋ āĻāĻĒāύāĻžāĻā§ āĻāĻāύā§āĻĄā§āĻ āĻā§āĻāĻāĻāĻā§ CRLF āĻļā§āώā§āϰāĻā§āϞāĻŋāĻā§ āĻā§āĻĄāĻŧā§ āĻĻā§āĻŦā§, āĻāĻŋāύā§āϤ⧠LF āĻļā§āώ āĻšāĻŦā§ āĻŽā§āϝāĻžāĻāĻāĻāϏ āĻāĻŦāĻ āϞāĻŋāύāĻžāĻā§āϏ āϏāĻŋāϏā§āĻā§āĻŽā§ āĻāĻŦāĻ āϰāĻŋāĻĒā§āϏāĻŋāĻā§āϰāĻŋāϤā§āĨ¤Â
Â
āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻāĻāύ āĻāĻāύā§āĻĄā§āĻ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽāĻžāϰ āĻšāύ āĻāĻāĻāĻŋ āĻāĻāύā§āĻĄā§āĻ-āĻ āύāϞāĻŋ āĻĒā§āϰāĻā§āĻā§āĻ āĻāϰāĻā§āύ, āϤāĻžāĻšāϞ⧠āĻāĻĒāύāĻŋ āĻāĻ āĻāĻžāϰā§āϝāĻāĻžāϰāĻŋāϤāĻž āĻŦāύā§āϧ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ, āĻāύāĻĢāĻŋāĻāĻžāϰā§āϰ āĻŽāĻžāύ `false` āϏā§āĻ āĻāϰāĻžāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āϰāĻŋāĻĒā§āϏāĻŋāĻā§āϰāĻŋāϤ⧠āĻā§āϝāĻžāϰā§āĻ āϰāĻŋāĻāĻžāϰā§āύ āϰā§āĻāϰā§āĻĄ āĻāϰā§:
$ git config --global core.autocrlf false
core.whitespace
āĻāĻŋāĻā§ āĻšā§āϝāĻŧāĻžāĻāĻāϏā§āĻĒā§āϏ āĻāϏā§āϝā§āϏ āϏāύāĻžāĻā§āϤ āĻāĻŦāĻ āϏāĻŽāĻžāϧāĻžāύ āĻāϰāϤ⧠āĻāĻŋāĻ āĻĒā§āϰāĻŋāϏā§āĻ āĻāϏā§āĨ¤ āĻāĻāĻŋ āĻāϝāĻŧāĻāĻŋ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ āĻšā§āϝāĻŧāĻžāĻāĻāϏā§āĻĒā§āϏ āĻāϏā§āϝā§āϏ āϏāύā§āϧāĻžāύ āĻāϰāϤ⧠āĻĒāĻžāϰ⧠–āϤāĻŋāύāĻāĻŋ āĻĄāĻŋāĻĢāϞā§āĻāϰā§āĻĒā§ āϏāĻā§āώāĻŽ āĻāĻŦāĻ āĻŦāύā§āϧ āĻāϰāϤ⧠āĻĒāĻžāϰā§, āĻāĻŦāĻ āϤāĻŋāύāĻāĻŋ āĻĄāĻŋāĻĢāϞā§āĻāϰā§āĻĒā§ āĻŦāύā§āϧ āĻāϰāĻž āĻĨāĻžāĻā§ āϤāĻŦā§ āϏāĻā§āϰāĻŋāϝāĻŧ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§āĨ¤
āĻĄāĻŋāĻĢāϞā§āĻāϰā§āĻĒā§ āĻāĻžāϞ⧠āĻāϰāĻž āϤāĻŋāύāĻāĻŋ āĻšāϞ `blank-at-eol`, āϝāĻž āĻāĻāĻāĻŋ āϞāĻžāĻāύā§āϰ āĻļā§āώ⧠āϏā§āĻĒā§āϏ āĻā§āĻāĻā§; `blank-at-eof`, āϝāĻž āĻāĻāĻāĻŋ āĻĢāĻžāĻāϞā§āϰ āĻļā§āώ⧠āĻĢāĻžāĻāĻāĻž āϞāĻžāĻāύ āϞāĻā§āώā§āϝ āĻāϰā§; āĻāĻŦāĻ `space-before-tab`, āϝāĻž āĻāĻāĻāĻŋ āϞāĻžāĻāύā§āϰ āĻļā§āϰā§āϤ⧠āĻā§āϝāĻžāĻŦā§āϰ āĻāĻā§ āϏā§āĻĒā§āϏ āĻā§āĻāĻā§āĨ¤
āϝ⧠āϤāĻŋāύāĻāĻŋ āĻĄāĻŋāĻĢāϞā§āĻāϰā§āĻĒā§ āĻŦāύā§āϧ āĻĨāĻžāĻā§ āĻāĻŋāύā§āϤ⧠āĻāĻžāϞ⧠āĻāϰāĻž āϝāĻžāϝāĻŧ āϤāĻž āĻšāϞ `indent-with-non-tab`, āϝāĻž āĻā§āϝāĻžāĻŦā§āϰ āĻĒāϰāĻŋāĻŦāϰā§āϤ⧠āϏā§āĻĒā§āϏ āĻĻāĻŋāϝāĻŧā§ āĻļā§āϰ⧠āĻšāĻāϝāĻŧāĻž āϞāĻžāĻāύā§āϰ āϏāύā§āϧāĻžāύ āĻāϰ⧠(āĻāĻŦāĻ `tabwidth` āĻ āĻĒāĻļāύ āĻĻā§āĻŦāĻžāϰāĻž āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŋāϤ āĻšāϝāĻŧ); `tab-in-indent`, āϝāĻž āĻāĻāĻāĻŋ āϞāĻžāĻāύā§āϰ āĻāύā§āĻĄā§āύā§āĻā§āĻļāύ āĻ āĻāĻļā§ āĻā§āϝāĻžāĻŦāĻā§āϞāĻŋāϰ āĻāύā§āϝ āϞāĻā§āώā§āϝ āĻāϰā§; āĻāĻŦāĻ `cr-at-eol`, āϝāĻž āĻāĻŋāĻāĻā§ āĻŦāϞ⧠āϝ⧠āϞāĻžāĻāύā§āϰ āĻļā§āώ⧠āĻā§āϝāĻžāϰā§āĻ āϰāĻŋāĻāĻžāϰā§āύ āĻ āĻŋāĻ āĻāĻā§āĨ¤
āĻāĻĒāύāĻŋ āĻāĻŋāĻāĻā§ āĻŦāϞāϤ⧠āĻĒāĻžāϰā§āύ āϝā§, āϝā§āϏāĻāϞ āĻŽāĻžāύāĻā§āϞā§āĻā§ āĻāĻžāϞ⧠āĻŦāĻž āĻŦāύā§āϧ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ `core.whitespace` āϏā§āĻ āĻāϰ⧠(āϝāĻž āĻāĻŽāĻž āĻĻāĻŋā§ā§ āĻāϞāĻžāĻĻāĻž āĻāϰāĻž)āĨ¤ āĻāĻĒāύāĻŋ āĻāĻāĻāĻŋ āĻ āĻĒāĻļāύāĻā§ āĻŦāύā§āϧ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ, āϤāĻžāĻ°Â āύāĻžāĻŽā§āϰ āϏāĻžāĻŽāύ⧠āĻāĻāĻāĻŋ `-` āϞāĻŋāĻā§, āĻ āĻĨāĻŦāĻž āϏā§āĻāĻŋāĻā§ āϏāĻŽā§āĻĒā§āϰā§āĻŖāϰā§āĻĒā§ āϏā§āĻāĻŋāĻ āϏā§āĻā§āϰāĻŋāĻāϝāĻŧā§āϰ āĻŦāĻžāĻāϰ⧠āϰā§āĻā§ āĻĄāĻŋāĻĢāϞā§āĻ āĻŽāĻžāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒāĻāĻžāĻŦā§, āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ `space-before-tab` āϏā§āĻ āĻšāĻā§āĻž āϏāϤā§āϤā§āĻŦā§āĻ āĻŦāĻžāĻāĻŋ āϏāĻŦ āĻāĻžāύ, āϤāĻžāĻšāϞ⧠āĻāĻĒāύāĻŋ āĻāĻāĻŋ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ (`trailing-space` āĻāĻāĻŋ āĻļāϰā§āĻ-āĻšā§āϝāĻžāύā§āĻĄ āĻšāĻŋāϏā§āĻŦā§ āĻāĻāϝāĻŧāĻā§āĻ āĻāĻāĻžāϰ āĻāϰ⧠`blank-at-eol` āĻāĻŦāĻ `blank-at-eof`) Â
$ git config --global core.whitespace \
trailing-space,-space-before-tab,indent-with-non-tab,tab-in-indent,cr-at-eol
āĻ āĻĨāĻŦāĻž āĻāĻĒāύāĻŋ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻāĻžāϏā§āĻāĻŽāĻžāĻāĻāĻŋāĻ āĻ āĻāĻļ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ:
$ git config --global core.whitespace \
-space-before-tab,indent-with-non-tab,tab-in-indent,cr-at-eol
āĻāĻĒāύāĻŋ āϝāĻāύ āĻāĻāĻāĻŋ `git diff` āĻāĻŽāĻžāύā§āĻĄ āĻāĻžāϞāĻžāύ āϤāĻāύ āĻāĻŋāĻ āĻāĻ āĻāϏā§āϝā§āϏāĻā§āϞ⧠āϏāύāĻžāĻā§āϤ āĻāϰ⧠āĻāĻŦāĻ āϏā§āĻā§āϞāĻŋāĻā§ āĻāĻžāϞāĻžāĻ°Â āĻāϰ⧠āϝāĻžāϤ⧠āĻāĻĒāύāĻŋ āĻāĻŽāĻŋāĻ āĻĻā§āĻāϝāĻŧāĻžāϰ āĻāĻā§ āϏā§āĻā§āϞāĻŋ āĻ āĻŋāĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āĻāĻĒāύāĻŋ āϝāĻāύ `git apply` āĻāϰ āϏāĻžāĻĨā§ āĻĒā§āϝāĻžāĻ āĻĒā§āϰāϝāĻŧā§āĻ āĻāϰāĻŦā§āύ āϤāĻāύ āĻāĻāĻŋ āĻŽāĻžāύāĻā§āϞāĻŋāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāĻĒāύāĻžāĻā§ āϏāĻžāĻšāĻžāϝā§āϝ āĻāϰāĻŦā§āĨ¤ āĻāĻĒāύāĻŋ āϝāĻāύ āĻĒā§āϝāĻžāĻāĻā§āϞāĻŋ āĻĒā§āϰāϝāĻŧā§āĻ āĻāϰāĻā§āύ, āĻāĻĒāύāĻŋ āĻāĻŋāĻāĻā§ āϏāϤāϰā§āĻ āĻāϰāϤ⧠āĻŦāϞāϤ⧠āĻĒāĻžāϰā§āύ āϝāĻĻāĻŋ āĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻšā§āϝāĻŧāĻžāĻāĻāϏā§āĻĒā§āϏ āĻāϏā§āϝā§āĻā§āϞāĻŋāϰ āϏāĻžāĻĨā§ āĻĒā§āϝāĻžāĻ āĻĒā§āϰāϝāĻŧā§āĻ āĻāϰā§:
$ git apply --whitespace=warn
āĻ āĻĨāĻŦāĻž āĻāĻĒāύāĻŋ āĻĒā§āϝāĻžāĻ āĻĒā§āϰāϝāĻŧā§āĻ āĻāϰāĻžāϰ āĻāĻā§ āĻāĻŋāĻ āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧāĻāĻžāĻŦā§ āĻāϏā§āϝā§āĻāĻŋ āϏāĻŽāĻžāϧāĻžāύ āĻāϰāĻžāϰ āĻā§āώā§āĻāĻž āĻāϰāϤ⧠āĻĒāĻžāϰā§:
$ git apply --whitespace=fix
āĻāĻ āĻ āĻĒāĻļāύāĻā§āϞāĻŋ ‘git rebase’ āĻāĻŽāĻžāύā§āĻĄā§āϰ āĻā§āώā§āϤā§āϰā§āĻ āĻĒā§āϰāϝā§āĻā§āϝāĨ¤ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻšā§āϝāĻŧāĻžāĻāĻāϏā§āĻĒā§āϏ āĻāϏā§āϝā§āĻā§āϞāĻŋ āĻāĻŽāĻŋāĻā§āĻĄ āĻāϰ⧠āĻĨāĻžāĻā§āύ āĻāĻŋāύā§āϤ⧠āĻāĻāύāĻ āĻāĻĒāϏā§āĻā§āϰāĻŋāĻŽā§ āύāĻž āĻĻāĻŋāϞā§, āϤāĻžāĻšāϞ⧠āĻāĻĒāύāĻŋ `git rebase –whitespace=fix` āĻāĻžāϞāĻžāϤ⧠āĻĒāĻžāϰā§āύ āϝāĻžāϤ⧠āĻāĻŋāĻ āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧāĻāĻžāĻŦā§ āĻšā§āϝāĻŧāĻžāĻāĻāϏā§āĻĒā§āϏ āĻāϏā§āϝā§āĻā§āϞāĻŋ āĻ āĻŋāĻ āĻāϰ⧠āĻĻā§āϝāĻŧ āϝā§āĻāĻžāĻŦā§ āĻāĻŋāĻ āĻĒā§āϝāĻžāĻāĻā§āϞāĻŋ āĻĒā§āύāϰāĻžāϝāĻŧ āϞāĻŋāĻā§āĨ¤
āϏāĻžāϰā§āĻāĻžāϰ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ
āĻāĻŋāĻā§āϰ āϏāĻžāϰā§āĻāĻžāϰ āϏāĻžāĻāĻĄā§āϰ āĻāύā§āϝ āĻĒā§āϰāĻžāϝāĻŧ āĻ āύā§āĻāĻā§āϞāĻŋ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āĻ āĻĒāĻļāύ āĻĨāĻžāĻā§ āύāĻž, āϤāĻŦā§ āĻāϝāĻŧā§āĻāĻāĻŋ āĻāĻāϰā§āώāĻŖā§āϝāĻŧ āĻ āĻĒāĻļāύ āϰāϝāĻŧā§āĻā§ āϝāĻž āĻāĻĒāύāĻŋ āύā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
receive.fsckObjects
āĻāĻŋāĻ āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰ⧠āϝ⧠āĻāĻāĻāĻŋ āĻĒā§āĻļā§āϰ āϏāĻŽāϝāĻŧ āĻĒā§āϰāĻžāĻĒā§āϤ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻ āĻŦāĻā§āĻā§āĻ āĻāĻāύāĻ āϤāĻžāϰ SHA-1 āĻā§āĻāϏāĻžāĻŽā§āϰ āϏāĻžāĻĨā§ āĻŽā§āϞ⧠āĻāĻŦāĻ āĻŦā§āϧ āĻ āĻŦāĻā§āĻā§āĻāĻāĻŋāϰ āĻĻāĻŋāĻā§ āύāĻŋāϰā§āĻĻā§āĻļ āĻāϰā§āĨ¤ āϝāĻžāĻāĻšā§āĻ, āĻĄāĻŋāĻĢāϞā§āĻāϰā§āĻĒā§ āĻāĻŋāĻ āĻāĻāĻŋ āĻāϰ⧠āύāĻž; āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻŽā§āĻāĻžāĻŽā§āĻāĻŋ āĻŦā§āϝāϝāĻŧāĻŦāĻšā§āϞ āĻ āĻĒāĻžāϰā§āĻļāύ, āĻāĻŦāĻ āĻ āĻĒāĻžāϰā§āĻļāύāĻāĻŋāĻā§ āϧā§āϰ āĻāϰ⧠āĻĻāĻŋāϤ⧠āĻĒāĻžāϰā§, āĻŦāĻŋāĻļā§āώ āĻāϰ⧠āĻŦāĻĄāĻŧ āϰāĻŋāĻĒā§āϏāĻŋāĻā§āϰāĻŋāϤ⧠āĻŦāĻž āĻĒā§āĻļā§āϰ āĻā§āώā§āϤā§āϰā§āĨ¤ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻŋāĻāĻā§ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĒā§āĻļā§āϰ āĻ āĻŦāĻā§āĻā§āĻāĻāĻŋāϰ āĻāύā§āϏāĻŋāϏā§āĻā§āύā§āϏāĻŋ āĻā§āĻ āĻāϰāϤ⧠āĻāĻžāύ āϤāĻŦā§ āĻāĻĒāύāĻŋ `receive.fsckObjects` āĻā§ true āϏā§āĻ āĻāϰ⧠āĻāĻāĻŋ āĻāϰāϤ⧠āĻŦāĻžāϧā§āϝ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ:
$ git config --system receive.fsckObjects true
āĻāĻāύ, āĻāĻŋāĻ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĒā§āĻļ āĻāϰāĻŦāĻžāϰ āĻāĻā§ āϰāĻŋāĻĒā§āϏāĻŋāĻā§āϰāĻŋāϰ āĻāύā§āĻāĻŋāĻā§āϰāĻŋāĻāĻŋ āĻā§āĻ āĻāϰā§, āϝā§āύ āĻā§āύāĻ āϧāϰāύā§āϰ āĻĢāϞā§āĻāĻāĻŋ (āĻŦāĻž āĻŽā§āϞāĻŋāϏāĻŋā§āĻžāϏ) āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ āĻĄāĻžāĻāĻž āĻāϰāĻžāĻĒā§āĻā§āĻĄ āĻāϰāϤ⧠āύāĻž āĻĒāĻžāϰā§āĨ¤Â
receive.denyNonFastForwards
āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āϰāĻŋāĻŦā§āϏ āĻāĻŽāĻŋāĻ āĻāϰā§āύ āϝ⧠āĻāĻĒāύāĻŋ āĻāϤāĻŋāĻŽāϧā§āϝā§āĻ āĻĒā§āĻļ āĻĻāĻŋāϝāĻŧā§āĻā§āύ āĻāĻŦāĻ āϤāĻžāϰāĻĒāϰ⧠āĻāĻŦāĻžāϰ āĻĒā§āĻļ āĻāϰāĻžāϰ āĻā§āώā§āĻāĻž āĻāϰā§āύ, āĻ āĻĨāĻŦāĻž āĻ āύā§āϝāĻĨāĻžāϝāĻŧ āϰāĻŋāĻŽā§āĻ āĻŦā§āϰāĻžāĻā§āĻā§ āĻāĻāĻāĻŋ āĻāĻŽāĻŋāĻ āĻĒā§āĻļ āĻāϰāĻžāϰ āĻā§āώā§āĻāĻž āĻāϰā§āύ āϝāĻžāϤ⧠āĻŦāϰā§āϤāĻŽāĻžāύ⧠āϝ⧠āϰāĻŋāĻŽā§āĻ āĻŦā§āϰāĻžāĻā§āĻāĻāĻŋ āύāĻŋāϰā§āĻĻā§āĻļ āĻāϰāĻā§ āϏā§āĻ āĻŦā§āϰāĻžāĻā§āĻā§ āĻāĻŽāĻŋāĻāĻāĻŋ āύāĻž āĻĨāĻžāĻāϞā§, āĻāĻĒāύāĻžāĻā§ āĻĒā§āϰāϤā§āϝāĻžāĻā§āϝāĻžāύ āĻāϰāĻž āĻšāĻŦā§āĨ¤ āĻāĻāĻŋ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻāĻžāϞ āύā§āϤāĻŋ; āĻāĻŋāύā§āϤ⧠āϰāĻŋāĻŦā§āϏā§āϰ āĻā§āώā§āϤā§āϰā§, āĻāĻĒāύāĻŋ āύāĻŋāϰā§āϧāĻžāϰāĻŖ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ āϝ⧠āĻāĻĒāύāĻŋ āĻā§ āĻāϰāĻā§āύ āϤāĻž āĻāĻĒāύāĻŋ āĻāĻžāύā§āύ āĻāĻŦāĻ āĻāĻĒāύāĻžāϰ āĻĒā§āĻļ āĻāĻŽāĻžāύā§āĻĄā§ `-f` āĻĢā§āϞā§āϝāĻžāĻ āϏāĻš āϰāĻŋāĻŽā§āĻ āĻŦā§āϰāĻžāĻā§āĻāĻā§ āĻā§āϰāĻĒā§āϰā§āĻŦāĻ āĻāĻžāĻŦā§ āĻāĻĒāĻĄā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
Â
`receive.denyNonFastForwards` āϏā§āĻ āĻāϰāĻžāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāĻŋāĻ āĻĢā§āϰā§āϏ-āĻĒā§āĻļ āĻĒā§āϰāϤā§āϝāĻžāĻā§āϝāĻžāύ āĻāϰā§āĻ Â
$ git config --system receive.denyNonFastForwards true
āĻ āύā§āϝ āϝā§āĻāĻžāĻŦā§ āĻāĻĒāύāĻŋ āĻāĻāĻŋ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ āϤāĻž āĻšāϞ āϏāĻžāϰā§āĻāĻžāϰ-āϏāĻžāĻāĻĄ āϰāĻŋāϏāĻŋāĻ āĻšā§āĻā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§, āϝāĻž āĻāĻŽāϰāĻž āĻāĻāĻā§ āĻĒāϰ⧠āĻāĻāĻžāϰ āĻāϰāĻŦāĨ¤ āĻāĻ āĻĒāĻĻā§āϧāϤāĻŋāĻāĻŋ āĻāĻĒāύāĻžāĻā§ āĻāϰāĻ āĻāĻāĻŋāϞ āĻāĻŋāύāĻŋāϏāĻā§āϞāĻŋ āĻāϰāϤ⧠āĻĻā§āϝāĻŧ āϝā§āĻŽāύ āĻāĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāĻĒāϏā§āĻā§āĻ°Â āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻĻā§āϰ āύāύ-āĻĢāĻžāϏā§āĻ-āĻĢāϰāĻāϝāĻŧāĻžāϰā§āĻĄ āĻ āϏā§āĻŦā§āĻāĻžāϰ āĻāϰāĻžāĨ¤
receive.denyDeletes
`denyNonFastForwards` āύā§āϤāĻŋāϰ āĻāĻāĻāĻŋ āϏāĻŽāĻžāϧāĻžāύ āĻšāϞ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻāύā§āϝ āĻŦā§āϰāĻžāĻā§āĻāĻāĻŋ āĻĄāĻŋāϞāĻŋāĻ āĻāϰ⧠āĻĢā§āϞāĻž āĻāĻŦāĻ āϤāĻžāϰāĻĒāϰ⧠āύāϤā§āύ āϰā§āĻĢāĻžāϰā§āύā§āϏ āϏāĻš āĻāĻāĻŋāĻā§ āĻŦā§āϝāĻžāĻ āĻāĻĒ āĻāϰāĻžāĨ¤ āĻāĻāĻŋ āĻāĻĄāĻŧāĻžāϤā§, ‘receive.denyDeletes‘ āĻā§ true āϏā§āĻ āĻāϰā§āύ:
$ git config --system receive.denyDeletes true
āĻāĻāĻŋ āĻŦā§āϰāĻžāĻā§āĻ āĻŦāĻž āĻā§āϝāĻžāĻāĻā§āϞāĻŋāĻā§ āĻĄāĻŋāϞāĻŋāĻ āĻāϰāϤā§Â āĻĻā§āĻ āĻāϰ⧠āύāĻž — āĻā§āύāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻāĻāĻŋ āĻāϰāϤ⧠āĻĒāĻžāϰ⧠āύāĻžā§ˇ āϰāĻŋāĻŽā§āĻ āĻŦā§āϰāĻžāĻā§āĻāĻā§āϞāĻŋ āϏāϰāĻžāϤā§, āĻāĻĒāύāĻžāĻā§ āĻ āĻŦāĻļā§āϝāĻ āϏāĻžāϰā§āĻāĻžāϰ āĻĨā§āĻā§ āϰā§āĻĢ āĻĢāĻžāĻāϞāĻā§āϞāĻŋ āĻŽā§āϝāĻžāύā§āϝāĻŧāĻžāϞāĻŋ āϏāϰāĻŋāϝāĻŧā§ āĻĢā§āϞāϤ⧠āĻšāĻŦā§āĨ¤ ACLs -āĻāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻĒā§āϰāϤāĻŋ-āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻāĻŋāϤā§āϤāĻŋāϤ⧠āĻāĻāĻŋ āĻāϰāĻžāϰ āĻāϰāĻ āĻāĻāϰā§āώāĻŖā§āϝāĻŧ āĻāĻĒāĻžāϝāĻŧ āϰāϝāĻŧā§āĻā§, āϝāĻž āĻāĻĒāύāĻŋ āĻāĻā§āϏāĻžāĻŽā§āĻĒāϞ āĻāĻŋāĻ-āĻāύāĻĢā§āϰā§āϏ āĻĒāϞāĻŋāϏāĻŋ āĻ āĻļāĻŋāĻāĻŦā§āύāĨ¤