Skip to main content
Documents
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Git Config

Git 配置

基础配置:

# Core
git config --global core.autocrlf input
git config --global core.bare false
git config --global core.filemode true
git config --global core.ignorecase false
git config --global core.quotepath false
git config --global core.repositoryformatversion 0
git config --global core.safecrlf true

# Core unset
git config --global --unset core.excludesfile
git config --system --unset core.excludesfile

# Credential Storage
git config --global credential.helper store
git config --system credential.helper store

# Initial Default Branch
git config --global init.defaultBranch main
git config --system init.defaultBranch main

# Pull Rebase
# git config --global pull.rebase true

当前项目配置:

git config core.autocrlf input
git config core.bare false
git config core.filemode true
git config core.ignorecase false
git config core.quotepath false
git config core.repositoryformatversion 0
git config core.safecrlf true
git config credential.helper store
git config pull.rebase false
git config --unset core.excludesfile
git config user.name septvean
git config user.email septvean@gmail.com

查看配置

3种配置

--global              use global config file
--system              use system config file
--local               use repository config file

相关的配置文件

# Linux
global  ~/.gitconfig
system  /etc/gitconfig
local   .git/config

# MacOS
global  ~/.gitconfig
system  /usr/local/git/etc/gitconfig
local   .git/config

查看配置

git config --global --list
git config --system --list
git config --local --list

如果不加参数, 默认查看的是 --local 的配置

git config --list
# 个人信息配置, 根据情况配置
# git config --global user.email septvean@gmail.com
# git config --global user.name SeptVean

# 不许忽略文件名大小写
git config --system core.ignorecase false

# 换行模式为 input, 即提交时转换为LF, 检出时不转换, 参数: true | input | false
# https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration
git config --system core.autocrlf input

# Linux/MacOS 检查文件权限 / Windows 不检查文件权限
git config --system core.filemode true

# 拒绝提交包含混合换行符的文件
git config --system core.safecrlf true

# 编辑器
git config --system core.editor vim

# Internal variable identifying the repository format and layout version
git config --system core.repositoryformatversion 0

# 默认不创建裸仓库
git config --system core.bare false

# log 所有 ref 的更新
git config --system core.logallrefupdates true

# Mac专用选项, 开启以便文件名兼容其他系统
# git config --system core.precomposeunicode true

# 只推送本地当前分支,且与上游分支名字一致
git config --system push.default simple

# 日志配置 (Linux)
# git config --system alias.lg "log --color --graph --pretty=format:'%C(bold white)%h%Creset -%C(bold green)%d%Creset %s %C(bold green)(%cr)%Creset %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative"

# 强制开启 rebase 模式
# git config --system pull.rebase true

移除配置

参数 --unset 用于移除相关配置, 示例:

git config --global --unset credential.helper
git config --global --unset user.name
git config --global --unset user.email

Command line instructions

Git global setup

git config --global user.name "septvean"
git config --global user.email "septvean@gmail.com"

Create a new repository

git clone http://git.septvean.com:7000/websites/v2ep.com.git
cd v2ep.com
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master

Existing folder

cd existing_folder
git init
git remote add origin http://git.septvean.com:7000/websites/v2ep.com.git
git add .
git commit -m "Initial commit"
git push -u origin master

Existing Git repository

cd existing_repo
git remote rename origin old-origin
git remote add origin http://git.septvean.com:7000/websites/v2ep.com.git
git push -u origin --all
git push -u origin --tags

大小写敏感配置

Windows 和 MacOS 上的 Git 默认是大小写不敏感的, 这样多平台写作就可能会出现问题.

将 Git 设置为大小写敏感的命令如下

git config core.ignorecase false

查看 .git/config 中的配置

[core]
    ignorecase = false

保存认证信息

参考文档: Git Tools - Credential Storage

参考文档