【Git】配置相关操作

Git 配置相关操作

Git的配置文件

Git有三个主要的配置文件:

三个配置文件的优先级是 ① < ② < ③

① 系统全局配置 (--system):包含了适用于系统所有用户和所有仓库(项目)的配置信息,存放在 Git 安装目录下: C:\Program Files\Git\etc\gitconfig

② 用户全局配置 (--global):当前系统用户的全局配置,存放用户目录: C:\Users\[系统用户名]\.gitconfig

③ 仓库/项目配置 (--local):仓库(项目)的特定配置,存放在项目目录下: .git/config

yml 复制代码
# 查看所有配置(包括系统、全局和当前仓库的配置):
git config --list
git config -l
 
# 查看系统配置
git config --system --list
 
# 查看当前用户(global)全局配置
git config --global --list
 
# 查看当前仓库配置信息
git config --local  --list
cat config

# 查看特定全局配置项(例如,查看全局用户的姓名和电子邮件)
git config --global user.name
git config --global user.email

设置当前 git 项目的用户名和邮箱

查看配置

bash 复制代码
cat config

修改【当前项目】用户名

bash 复制代码
git config user.name "name"

修改邮箱

bash 复制代码
git config user.email "your_email@163.com"

配置成功后,查看配置,会发现多了一份 【user】 的信息。

换行符配置

在不同的操作系统中,行结束符是不同的

名词解释:

  • CR:Carriage Return,对应 ASCII 中转义字符\r,表示回车
  • LF:Linefeed,对应 ASCII 中转义字符 \n,表示换行
  • CRLF:Carriage Return & Linefeed,\r\n,表示回车并换行

众所周知,

  • Windows 操作系统采用两个字符来进行换行,即 CRLF
  • Unix/Linux/Mac OS X 操作系统采用单个字符 LF 来进行换行;
  • 另外,MacIntosh 操作系统(即早期的 Mac 操作系统)采用单个字符 CR 来进行换行。

当你在 Windows 上使用 Git 并且想要避免在行结束符上的问题时,你可能会遇到以下两种常见的配置

  1. core.autocrlf true

    • Windows 默认配置

    • 当你在 Windows 上检出(克隆或拉取)文件时,Git 会自动将 LF 转换为 CRLF。这可以防止在 Windows 命令行中显示文件时出现奇怪的字符。

    • 当你提交(commit)文件到仓库时,Git 会将 CRLF 转换回 LF

  2. core.autocrlf input

    • 这个设置会告诉 Git 在检出文件时不进行任何转换,保持文件中的 LF 行结束符不变。这通常用于当你想要确保在检出时获得准确的行结束符,或者当你的编辑器或 IDE 可以正确处理 LF 而不是 CRLF 时。

git 相关配置

  1. 全局配置 -- CRLF

    sh 复制代码
    git config --global core.autocrlf true
  2. 全局配置 -- LF

    sh 复制代码
    git config --global core.autocrlf input
  3. 单个项目配置 -- LF

    sh 复制代码
    # 这个设置只会影响当前项目的 .git 配置目录。如果你在多个项目中使用不同的配置,你需要分别在每个项目中设置它们。
    git config core.autocrlf input
  4. 不做处理配置 -- false

    或者,如果你不想 Git 做任何行结束符的转换,可以使用:

    sh 复制代码
    git config core.autocrlf false
  5. 克隆时配置

    此外,如果你想要为新克隆的仓库设置配置,你可以在克隆时使用 --config 选项:

    sh 复制代码
    # 这将在克隆过程中直接设置仓库的 core.autocrlf 配置
    git clone --config core.autocrlf=input https://example.com/repo.git

IDE 对整个项目文件,批量转换换行符(CRLF LF)

右键主目录进行设置文件换行符格式

参考:https://www.cnblogs.com/meetuj/p/13495462.html

设置安全目录信息

1、场景描述:

移动硬盘 或者 U盘 打开 git 管理的项目的时候,IDEA 会识别不了 git 提交的相关信息。报错如下:

sh 复制代码
更新更改时出错: detected dubious ownership in repository at '[某某项目的文件路径]' is on a file system that does not record ownership To add an exception for this directory, call:  git config --global --add safe.directory [某某项目的文件路径]

2、错误原因:

当 Git 在尝试更新或更改代码库时遇到的一个问题。错误的根本原因是 Git 检测到了一个所有权问题(dubious ownership),并且当前的文件系统不记录所有权信息。

3、错误信息解释:

  • 文件系统不记录所有权:Git 需要确定哪些文件属于仓库(repository),但当前的文件系统不能提供足够的信息来区分仓库内部和外部的文件。在 Unix-like 系统中,文件所有权是通过用户 ID(UID)和组 ID(GID)来记录的,但在 Windows 或某些网络文件系统中,这些信息可能不可用。
  • 可疑的所有权(dubious ownership):Git 无法确定某些文件是否属于仓库,因此它拒绝进行可能导致潜在问题的更改。

4、解决方案:

添加目录到安全目录列表

  • 按照错误信息中的指示,运行以下命令将你的目录添加到 Git 的全局配置中的安全目录列表:

    sh 复制代码
    # 路径示例:E:/codes/ok/chenmeng-test-demos
    git config --global --add safe.directory /path/to/your/git/repository
  • 这告诉 Git 忽略所有权问题,并将该目录视为"安全"的。

5、其他可能会用到的命令

  1. 查看当前配置 : 如果你想查看当前的 safe.directory 配置,可以使用以下命令:

    sh 复制代码
    git config --global --get-regexp safe.directory
  2. 删除指定配置 :使用 --unset 删除特定的目录路径(如果你想删除列表中的特定路径):

    sh 复制代码
    git config --global --unset safe.directory "/path/to/your/git/repository"
  3. 删除某个配置项 :使用 --remove-section 或者 --unset-all 删除整个配置项(如果你想删除所有 safe.directory 配置):

    sh 复制代码
    git config --global --remove-section safe.directory
    # 或者
    git config --global --unset-all safe.directory

    这将删除所有与 safe.directory 相关的配置。

学习参考

相关推荐
GISer_Jing1 小时前
Git协作开发:feature分支、拉取最新并合并
大数据·git·elasticsearch
高山莫衣7 小时前
git rebase多次触发冲突
大数据·git·elasticsearch
码农藏经阁7 小时前
工作中常用的Git操作命令(一)
git
kobe_OKOK_7 小时前
【团队开发】git 操作流程
git·elasticsearch·团队开发
码农垦荒笔记7 小时前
Git 安装闭坑指南(仅 Windows 环境)
windows·git
CC码码17 小时前
管理你的多个 Git 密钥(多平台多账号)
git·gitlab·github
CC码码17 小时前
管理你的多个 Git 密钥(单平台多账号)
git·gitlab·github
大卫小东(Sheldon)17 小时前
GIM 1.5发布了! 支持Windows系统了
git·ai·rust
flying jiang17 小时前
将大仓库拆分为多个小仓库
git
李boyang10 天前
Git(四):远程操作
git