在Git中更改电子邮件地址

366

我有一个项目托管在Git stash中(现已更名为Bitbucket Server),使用Jenkins构建。 现在,在本地安装Git时打了错字,例如:@ab.example而不是@abc.example

每次构建后,Jenkins会发送电子邮件通知,并从Git提交中选择我的错误电子邮件地址进行发送。

即使我已经在本地Git中更改了电子邮件地址,仍然看到Jenkins将电子邮件发送到旧的错误地址。

我该如何解决这个问题?


尝试在“后构建操作”中使用“可编辑电子邮件通知”。您可以通过文字字符串或电子邮件地址变量定义收件人列表。对于早期提交中的错误电子邮件,您可以使用“git filter-branch --env-filter”进行修改。但这会重写提交历史记录。不建议这样做。 - ElpieKay
我知道关于后构建步骤的事情。这就是我现在覆盖问题的方式。 - mani_nz
6个回答

606

本地设置电子邮件地址(每个存储库分别)

  1. 打开 Git Bash。

  2. 将当前工作目录更改为您想要设置 Git 配置电子邮件的本地存储库。

  3. 使用以下命令设置您的电子邮件地址:

git config user.email "your_email@abc.example"

请使用以下命令确认您已正确设置电子邮件地址。
git config user.email

全局设置电子邮件地址(仅在本地未设置时使用)

  1. 打开 Git Bash。

  2. 使用以下命令设置您的电子邮件地址:

git config --global user.email "your_email@abc.example"
  1. 请确认您已经设置了电子邮件地址:
git config --global user.email

或者使用环境变量

  1. GIT_COMMITTER_EMAIL=your_email@abc.example
  2. GIT_AUTHOR_EMAIL=your_email@abc.example

注:来自GitHub官方指南的信息


我已经完成了这个操作,并且在 Git 中更改了电子邮件地址。但是 Jenkins 仍然引用来自 Git 的旧电子邮件地址... 奇怪!! - mani_nz
8
您已经提交的修改可能使用旧的电子邮件地址,只有新的提交才会使用新的电子邮件地址。如果您想在现有的提交中更改电子邮件地址,请参考如何更改Git提交的作者信息 - fracz
我可以添加一个全局的电子邮件地址,即使某个仓库有本地邮件地址存在吗? - Timo
1
你可以使用 git config --get user.email 命令来检查该值。 - AmanicA
如果您更改了电子邮件地址,并且希望将先前提交的贡献(在更改电子邮件之前)现在计入贡献,您需要重写历史记录。如果您想要保留作者/提交者名称(如果不是您自己)和时间戳,请参阅以下链接:https://gist.github.com/bgromov/a1905055a8b9cdbeb1d2a87e70920cc8?permalink_comment_id=4222917#gistcomment-4222917 - behanzin777

116
根据git文档,你所需要做的就是重新运行。
$ git config --global user.name "John Doe"  
$ git config --global user.email johndoe@example.com  

然后只需检查以确保更改生效

$ git config --list

这在Scott ChaconBen Straub所著的《Pro Git》一书中有提及。

1.6 入门 - 初次运行 Git 前的配置


12
这将覆盖最后一次提交中用户的姓名和电子邮件。
"git -c user.name="your name" -c user.email=youremail@email.com
commit --amend --reset-author"

11

设置全局用户名/电子邮件配置:

  1. 打开命令行。

  2. 设置您的用户名:

    git config --global user.name "FIRST_NAME LAST_NAME"

  3. 设置您的电子邮件地址:

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

设置特定存储库的用户名/电子邮件配置:

  1. 从命令行中进入存储库目录。

  2. 设置您的用户名:

    git config user.name "FIRST_NAME LAST_NAME"

  3. 设置您的电子邮件地址:

    git config user.email "MY_NAME@example.com"

  4. 通过显示配置文件来验证您的配置:

    cat .gitconfig

有关更多信息和其他版本控制系统,请参见此处:

此链接


3

下面解释的命令会在本地的 .git/config 文件中设置电子邮件:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[remote "origin"]
        url = https://username:password@git.mydomain.io/username/repo.git
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
[branch "beta"]
        remote = origin
        merge = refs/heads/beta
[user]
        email = pippo.caio@sempronio.io

0

JENKINS_HOME/users/YOUR_NAME/config.xml 配置文件中直接编辑您的电子邮件,并重新启动 Jenkins 服务器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接