沉梦听雨的编程指南 沉梦听雨的编程指南
首页
  • 基础篇
  • 集合篇
  • 并发篇
  • JVM
  • 新特性
  • 计算机网络
  • 操作系统
  • 数据结构与算法
  • 基础篇
  • MySql
  • Redis
  • 达梦数据库
  • Spring
  • SpringBoot
  • Mybatis
  • Shiro
  • 设计须知
  • UML画图
  • 权限校验
  • 设计模式
  • API网关
  • RPC
  • 消息队列
  • SpringCloud
  • 分布式事务
  • 云存储
  • 搜索引擎
  • 多媒体框架
  • 虚拟机
  • 开发工具篇
  • 工具库篇
  • 开发技巧篇
  • 工具类系列
  • 随笔
  • 前端环境搭建
  • HTML与CSS
  • JS学习
  • Vue3入门
  • Vue3进阶
  • 黑马Vue3
  • 脚手架搭建
  • 瑞吉外卖
  • 黑马点评
  • vue-blog
  • 沉梦接口开放平台
  • 用户中心
  • 聚合搜索平台
  • 仿12306项目
  • 壁纸小程序项目
  • RuoYi-Vue
  • 博客搭建
  • 网站收藏箱
  • 断墨寻径摘录
  • 费曼学习法
Github (opens new window)

沉梦听雨

时间是最好的浸渍剂,而沉淀是最好的提纯器🚀
首页
  • 基础篇
  • 集合篇
  • 并发篇
  • JVM
  • 新特性
  • 计算机网络
  • 操作系统
  • 数据结构与算法
  • 基础篇
  • MySql
  • Redis
  • 达梦数据库
  • Spring
  • SpringBoot
  • Mybatis
  • Shiro
  • 设计须知
  • UML画图
  • 权限校验
  • 设计模式
  • API网关
  • RPC
  • 消息队列
  • SpringCloud
  • 分布式事务
  • 云存储
  • 搜索引擎
  • 多媒体框架
  • 虚拟机
  • 开发工具篇
  • 工具库篇
  • 开发技巧篇
  • 工具类系列
  • 随笔
  • 前端环境搭建
  • HTML与CSS
  • JS学习
  • Vue3入门
  • Vue3进阶
  • 黑马Vue3
  • 脚手架搭建
  • 瑞吉外卖
  • 黑马点评
  • vue-blog
  • 沉梦接口开放平台
  • 用户中心
  • 聚合搜索平台
  • 仿12306项目
  • 壁纸小程序项目
  • RuoYi-Vue
  • 博客搭建
  • 网站收藏箱
  • 断墨寻径摘录
  • 费曼学习法
Github (opens new window)
  • 开发工具篇

    • idea相关

    • 玩转Git

      • 基础知识梳理
      • Git配置相关操作
        • Git的配置文件
        • 设置当前 git 项目的用户名和邮箱
          • 查看配置
          • 修改【当前项目】用户名
          • 修改邮箱
        • 换行符配置
          • IDE 对整个项目文件,批量转换换行符(CRLF LF)
        • 设置安全目录信息
        • 学习参考
      • git修改已提交人的用户名和邮箱
      • git提交规范
      • git分支管理
      • git常用操作
      • 常见问题
    • Maven相关

    • 前端工具

    • 测试工具

  • 工具库篇

  • 开发技巧篇

  • 工具类系列

  • 随笔

  • 开发日常
  • 开发工具篇
  • 玩转Git
沉梦听雨
2024-07-30
目录

Git配置相关操作

# Git 配置相关操作

# Git的配置文件

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

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

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

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

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

# 查看所有配置(包括系统、全局和当前仓库的配置):
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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

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

# 查看配置

cat config
1

# 修改【当前项目】用户名

git config user.name "name"
1

# 修改邮箱

git config user.email "your_email@163.com"
1

配置成功后,查看配置,会发现多了一份 【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

    git config --global core.autocrlf true
    
    1
  2. 全局配置 -- LF

    git config --global core.autocrlf input
    
    1
  3. 单个项目配置 -- LF

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

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

    git config core.autocrlf false
    
    1
  5. 克隆时配置

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

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

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

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

参考:https://www.cnblogs.com/meetuj/p/13495462.html (opens new window)

# 设置安全目录信息

1、场景描述:

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

更新更改时出错: 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 [某某项目的文件路径]
1

2、错误原因:

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

3、错误信息解释:

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

4、解决方案:

添加目录到安全目录列表:

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

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

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

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

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

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

    git config --global --remove-section safe.directory
    # 或者
    git config --global --unset-all safe.directory
    
    1
    2
    3

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

# 学习参考

  • git 为不同的项目设置不同的用户名和邮箱_git 不同项目设置不同用户名和提交邮箱-CSDN博客 (opens new window)
  • Git配置autocrlf来处理文件crlf-CSDN博客 (opens new window)
上次更新: 2024/9/25 11:16:13
基础知识梳理
git修改已提交人的用户名和邮箱

← 基础知识梳理 git修改已提交人的用户名和邮箱→

Theme by Vdoing | Copyright © 2023-2025 沉梦听雨 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式