当前位置:首页 > 文章中心 > 正文内容

git设置全局邮箱和指定仓库邮箱的相关笔记

dgx6665个月前 (07-23)文章中心44


在 Git 中,账号邮箱是提交代码时标识作者身份的重要信息。以下是关于 Git 账号邮箱的详细说明和操作指南:

1. 查看当前配置的邮箱

使用以下命令查看全局和仓库级别的邮箱配置:



bash

# 查看全局邮箱配置
git config --global user.email

# 查看当前仓库的邮箱配置(优先于全局配置)
git config user.email

2. 设置邮箱

全局配置(所有仓库生效)

bash

git config --global user.email "your_email@example.com"

仓库级配置(仅当前仓库生效)

bash

cd /path/to/your/repository
git config user.email "another_email@example.com"

3. 邮箱的作用

  • 提交记录:邮箱会记录在每次提交的元数据中,显示在 GitHub/GitLab 等平台上。
  • 关联身份:若邮箱与平台账号(如 GitHub 邮箱)一致,提交会被正确关联到你的账号。

4. 与远程平台同步邮箱

若使用 GitHub/GitLab 等平台,需确保:



  1. 提交邮箱已添加到平台账号的邮箱设置中。
  2. 若邮箱为私有(如 GitHub 的 username@users.noreply.github.com),需在平台设置中启用该邮箱的提交关联。

5. 修改历史提交的邮箱

若需要修改历史提交的邮箱,可以使用以下脚本(谨慎操作,会重写历史):



bash

git filter-branch --env-filter '
OLD_EMAIL="old_email@example.com"
CORRECT_NAME="Your Name"
CORRECT_EMAIL="correct_email@example.com"

if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
then
    export GIT_COMMITTER_NAME="$CORRECT_NAME"
    export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
then
    export GIT_AUTHOR_NAME="$CORRECT_NAME"
    export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags

6. 常见问题

提交未显示在贡献图中

  • 检查邮箱是否与平台账号关联。
  • 确认提交时间是否在关联邮箱之后。

多个身份切换

使用仓库级配置为不同项目设置不同邮箱,避免全局配置覆盖。

最佳实践

  • 使用与代码托管平台关联的邮箱。
  • 保持邮箱一致性,便于贡献统计。
  • 隐私保护:可使用平台提供的 noreply 邮箱(如 GitHub)。



通过合理配置邮箱,确保你的贡献能被正确记录和识别。

之前git上面填写的邮箱有误,需要修改邮箱

git filter-branch --env-filter '
OLD_EMAIL="zx@163.com"
CORRECT_NAME="zxdaima"
CORRECT_EMAIL="giteezxdaima@163.com"

if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
then
    export GIT_COMMITTER_NAME="$CORRECT_NAME"
    export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
then
    export GIT_AUTHOR_NAME="$CORRECT_NAME"
    export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags

强制更新:

git push --force --all
git push --force --tags

设置当前仓库的邮箱:

git config user.email "giteezxdaima@163.com"

查看当前邮箱

git config user.email



后续提交怎么改名

若需修改后续新提交的用户名(而非历史提交),只需更新 Git 的本地 / 全局配置即可。Git 使用 user.name 和 user.email 配置项记录每次提交的作者信息,修改后新提交将自动使用新配置。

1. 查看当前配置

bash

# 查看全局配置(所有仓库默认使用)
git config --global user.name
git config --global user.email

# 查看当前仓库的单独配置(若有)
git config user.name
git config user.email

2. 修改配置(按需选择)

全局修改(所有仓库生效)

bash

git config --global user.name "新用户名"
git config --global user.email "新邮箱@example.com"

仅当前仓库修改(优先级高于全局)

bash

cd /path/to/your/repository
git config user.name "新用户名"
git config user.email "新邮箱@example.com"

3. 验证配置是否生效

bash

# 检查配置是否正确更新
git config --list | grep user.

# 或查看当前仓库的提交模板
git commit --dry-run --allow-empty | grep Author

4. 多身份切换技巧

若需要在不同项目使用不同用户名(例如工作和个人项目),可通过以下方式实现:

方法一:为特定目录设置别名

在 .gitconfig 中添加条件包含:


ini

[user]
    name = 默认用户名
    email = 默认邮箱@example.com

[includeIf "gitdir:~/work/"]  # 工作项目目录
    path = ~/.gitconfig-work

[includeIf "gitdir:~/personal/"]  # 个人项目目录
    path = ~/.gitconfig-personal


然后创建对应配置文件:


bash

# ~/.gitconfig-work
[user]
    name = 工作用户名
    email = 工作邮箱@company.com

# ~/.gitconfig-personal
[user]
    name = 个人用户名
    email = 个人邮箱@example.com

方法二:使用仓库钩子自动切换

在项目的 .git/hooks 目录添加 post-checkout 脚本,切换到该仓库时自动设置用户名:


bash

#!/bin/sh
git config user.name "该项目专属用户名"
git config user.email "该项目专属邮箱@example.com"

5. 常见问题

提交时忘记切换身份

若偶然用错身份提交,可修改最近一次提交:


bash

git commit --amend --author="正确用户名 <正确邮箱@example.com>" --no-edit
git push --force  # 仅本地提交未推送时可用


历史提交与新配置不一致

历史提交的作者信息不会自动更新,若需统一,需按前文方法修改历史(如 git filter-repo)。


通过以上配置,后续提交将使用新的用户名和邮箱,而无需每次手动指定。

改名操作:

git config user.name "giteezxdaima"

扫描二维码推送至手机访问。

版权声明:本文由第六芝士网发布,如需转载请注明出处。

本文链接:http://www.dgx666.com/post/3327.html

分享给朋友:

“git设置全局邮箱和指定仓库邮箱的相关笔记” 的相关文章

cad版本怎么转换成2007?三步就能完成!

新版本的CAD软件可能无法在旧版本的CAD软件中打开,因此,将CAD文件降低版本可以确保文件能够在旧版本的CAD软件中打开和编辑。为了转换版本,可能需要借助一些工具来进行CAD版本转换操作。下面小编就为您分享三种不错的软件,快来看看吧!一、彩虹办公中心彩虹办公中心是一个功能强大的办公自动化工具,它可...

CAD插座符号怎么画出来,怎么画插座布置图?

插座是我们在使用AutoCAD绘图时经常会遇到的图形对象,也是建筑电器设计中频率非常高的绘制对象,今天小编与大家分享一下如图在CAD中绘制插座。1、首先打开CAD文件,点击“任意布置”或者“矩形布置”,再在弹出的电气图块中点击右上方的下拉菜单,再选择其中的“插座”选项,如下图所示2、再在电气图块的对...

分享三个CAD坐标原点和基点小技巧

CAD使用过程中,关于坐标原点和基点的三个小技巧用得着的工友,可以收藏问题 1 :重新设定的坐标原点,为什么坐标系仍在原位置。出现这种问题的原因不是未设置成功,只是显示问题。命令行输入uc调出ucs设置窗口,设置菜单下勾选“显示于ucs原点”,单击确定。即新定义的坐标原点会显示。问题 2 :怎么定义...

DirectX修复工具-拯救你的游戏无法打开报错等问题-附使用教程

使用此工具可以帮您解决运行游戏中出现的未知错误,使您可以顺利的启动游戏软件下载地址:DirectX修复工具-DirectX_RepairV4.3 - 对岸网说明:这款软件有三种版本,分别是标准版、增强版、在线修复版,三款区别如下图所示软件简介:DirectX修复工具(DirectX Repair)是...

DirectX修复工具有什么用

DirectX修复工具有什么用方舟开服需要用到DirectX修复工具跟大家详细说说DirectX修复工具有什么用DirectX修复工具(DirectX Repair)官方最新版是一款优秀的系统DLL检测修复工具,DirectX不仅能够轻松的检测出电脑中缺失的.dll文件,还能够对其进行修复,并且兼容...

Windows11如何在桌面设置记事便签便利贴

Win11系统是现如今windows操作系统最新的版本,有不少的人都将自己的电脑升级到了win11系统,win11系统是以前系统的升级版,同样也兼容很多的软件功能,便签软件功能就是其中之一,既然如此,在windows11电脑桌面上如何设置记事便签便利贴呢?敬业签便签软件就有很多win11用户在使用,...