Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
Community Proposals
Community Proposals
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Q&A

Welcome to Software Development on Codidact!

Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.

Can GitHub rewrite authorship of commits?

+5
−0

GitHub has a setting wherein they offer to "anonymize" your user email from, say, somebody@example.com to somebody@users.noreply.github.com. I presume this is to prevent you from getting spam from a scraper that reads the metadata on commits to public repositories.

How do they do this without invalidating the commit? Isn't the commit message, user, timestamp, and so on hashed along with the worktree state to get the commit hash?

My local Git is happy to pull stuff that other people have written on top of my commits with the anonymous author.

Does that mean that anyone with a clone of the repository can rewrite authorship of all the commits and still maintain the commit hashes of the original? Or is GitHub doing some giant translation between commit hashes on different forks?

History
Why does this post require attention from curators or moderators?
You might want to add some details to your flag.
Why should this post be closed?

1 comment thread

Does it? (1 comment)

1 answer

+3
−0

It doesn't change commit data when you push. You have to set your local email address to the noreply one.

About commit email addresses

[…]

If you'd like to keep your personal email address private, you can use a noreply email address from GitHub as your commit email address. To use your noreply email address for commits you push from the command line, use that email address when you set your commit email address in Git. To use your noreply address for web-based Git operations, set your commit email address on GitHub and choose to Keep my email address private.

Instead, GitHub can block pushing commits that contain a non-noreply email:

Blocking command line pushes that expose your personal email address

If you've chosen to keep your email address private when performing web-based operations, you can also choose to block command line pushes that may expose your personal email address.

When you push commits from the command line, the email address that you've set in Git is associated with your commits. If you enable this setting, each time you push to GitHub, we’ll check the most recent commit. If the author email on that commit is a private email on your GitHub account, we will block the push and warn you about exposing your private email.

History
Why does this post require attention from curators or moderators?
You might want to add some details to your flag.

0 comment threads

Sign up to answer this question »