git config/alias

git config levels and files

  • --local 默认情况下,git config 如果未传递任何配置选项,将写入本地级别。本地配置值存储在文件中,该文件可在存储库的 .git 目录中找到:.git/config
  • --global 全局级别配置是特定于用户的。全局配置值存储在用户主目录中的文件中。在 UNIX 系统中存储在 ~/.gitconfig ; 在 WINDOWS 系统中存储在 C:\Users\<username>\.gitconfig
  • --system 系统级配置应用于整个计算机。这涵盖了操作系统上的所有用户和所有存储库。系统级配置文件位于 gitconfig 系统根路径之外的文件中。 在Unix系统中存储在 $(prefix)/etc/gitconfig;在 Windows (XP) 中存储在 C:\Documents and Settings\All Users\Application Data\Git\config; 在 Windows Vista 及更高版本上找到此文件可以在 C:\ProgramData\Git\config

因此,配置级别的优先级顺序为:localglobalsystem。这意味着当寻找配置值时,Git 将在 local 级别启动并冒泡至 system 级别。

配置git的时候,加上 --global 是针对当前用户起作用,如果不加,那只针对当前仓库起作用。

配置文件放哪儿了?每个仓库的 Git 配置文件都放在 .git/config 文件中;而当前用户的 Git 配置文件放在用户主目录下的一个隐藏文件 .gitconfig 中。

config

git config --global user.name "Your Name"
git config --global user.email "email@example.com"
git config --list

git config --global alias.st status
git config --global alias.co checkout
git config --global alias.ck checkout
git config --global alias.ci commit
git config --global alias.br branch
git config --global alias.unstage 'reset HEAD --'
git config --global alias.last 'log -1 HEAD' 
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
git config --global alias.lg1 log --graph --abbrev-commit --decorate --date=relative --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all
git config --global alias.lg2 log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n'' %C(white)%s%C(reset) %C(dim white)- %an%C(reset)' --all
git config --global alias.rg reflog --color --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit

# apt install zsh
git config --global alias.oldest-ancestor !zsh -c 'diff --old-line-format= --new-line-format= <(git rev-list --first-parent \"${1:-master}\") <(git rev-list --first-parent \"${2:-HEAD}\") | head -1'
git config --global alias.branchdiff !sh -c \"git diff `git oldest-ancestor`..\"
git config --global alias.branchlog !sh -c \"git log `git oldest-ancestor`..\"
         
# 彩色git 输出
git config --global color.ui true
# 默认是 GUN NANO
git config --global core.editor vim
git config --global core.autocrlf input

git config --global credential.helper store

# 显示历史记录时,只显示一行注释信息
git config format.pretty oneline

alias

~/.gitconfig

[user]
	name = xqghp
	email = xqghp@126.com
[alias]
	st = status
	co = checkout
	ck = checkout
	ci = commit
	br = branch
	unstage = reset HEAD --
	last = log -1 HEAD
	lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
[core]
	editor = vim
	autocrlf = input
  • https://git-scm.com/book/en/v2/Git-Basics-Git-Aliases
上一篇:git install 下一篇:git .gitignore