【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 相关的配置。

学习参考

相关推荐
多多*2 小时前
新版本的IDEA如何解决Git分支显示为警告⚠<unknown>的问题
java·git·intellij-idea
fury_1233 小时前
git: hint:use --reapply-cherry-picks to include skipped commits
git
七里汀3 小时前
关于husky8.0 与 4.0的配置
javascript·git
代码喵仔5 小时前
git worktree同一个仓库多个分支并行开发和管理
git
Andya_net11 小时前
Git | git reset命令详解
大数据·git·elasticsearch
取经蜗牛12 小时前
git commit 命令
git
九块六1 天前
Git:Cherry-Pick 的使用场景及使用流程
git
nt11071 天前
git小工具---自动向其他分支merge代码
git
程序员沉梦听雨1 天前
【Git】分支管理
git