ChatGPT解决这个技术问题 Extra ChatGPT

Change email address in Git

I have a project hosted in Git stash (now rebranded as Bitbucket Server). It is built using Jenkins. Now I made a typo while installing my Git locally. Like @ab.example instead of @abc.example

After every build, Jenkins sends email notifications and it picks up my incorrect email address from Git commit and tries to send it.

Even after I have changed the email address in my local Git, I still see Jenkins sending the emails to the old incorrect address.

How can I fix this?

Try Editable Email Notification in Post-build Actions. You can define the recipient list by literal strings or variables of email addresses. As to the incorrect email in the early commits, you could use git filter-branch --env-filter to modify. But this rewrites the commit history. It's not recommended.
I know about the post build step. That is how I'm overriding the issue now.

S
Stephen Ostermiller

Locally set email-address (separately for each repository)

Open Git Bash. Change the current working directory to the local repository in which you want to set your Git config email. Set your email address with the following command:

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

Confirm that you have set your email address correctly with the following command.

git config user.email

Globally set email-address (only used when nothing is set locally)

Open Git Bash. Set your email address with the following command:

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

Confirm that you have set your email address:

git config --global user.email

Or using environment variables

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

PD: Info from GitHub official guide


I have done this already and the email address is changed in git. But Jenkins still refers to the old email address from Git.. Strange!!
The commits that you have made already will have an old email address. Only new commits will have the new e-mail address. If you want to change the e-mail address in existing commits, see how to change an author of a commit.
Can I add a global email which dominates all repos although a repo(local) mail exists?
You can use git config --get user.email to check the value
After changing your email, if you want your previous commit (before the email change) to be counted now as your contribution. You need to rewrite your history and if you want to do while preserving author/commiter name ( if it's not yours) and timestamp: gist.github.com/bgromov/…
D
Donald L Wilson

According to the git documentation, all you should have to do is re-run

$ git config --global user.name "John Doe"  
$ git config --global user.email johndoe@example.com  

Then just check to make sure the change took effect

$ git config --list

This is listed in the Pro Git book, written by Scott Chacon and Ben Straub

1.6 Getting Started - First-Time Git Setup


u
user3143487

use

"git -c user.name="your name" -c user.email=youremail@email.com commit --amend --reset-author"


a
awgtek

To set your global username/email configuration:

Open the command line. Set your username: git config --global user.name "FIRST_NAME LAST_NAME" Set your email address: git config --global user.email "MY_NAME@example.com"

To set repository-specific username/email configuration:

From the command line, change into the repository directory. Set your username: git config user.name "FIRST_NAME LAST_NAME" Set your email address: git config user.email "MY_NAME@example.com" Verify your configuration by displaying your configuration file: cat .gitconfig

For more information and for other version control systems .. => SeeThis


V
Victor Procure

Edit your email directly in the JENKINS_HOME/users/YOUR_NAME/config.xml configuration file and restart the Jenkins server


g
gdm

The commands explained set the email in the .git/config locally:

[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