I have googled it a lot but didn't find any clear answer if it possible and how to do it.
I have an account from which I have contributions to a private repo. I don't have any repositories.
I want all those contributions to go to my new account (There I have repositories).
Is that possible? Do I still have access to that private repo after transfer the contributions?
You would need to rewrite commits which would create new hashes (the committer's name is part of the data used to calculate the hash).
This would mean all commits that reference these commits (the parent commits also being part of the data used to calculate the hash) would also need to be regenerated (rebase allows this to be done in bulk).
All of this would require forcing pushes as well (so all other contributor's local repositories are going to be impacted).
Even if github can automate some of this, it is a massive impact.
TL;DR: yes, but you probably should accept it is hard to rewrite history.
Guessing from the tags I assume you're talking about GitHub accounts. GitHub calculates contributions based on the author email address used in Git commits, and if there is a GitHub account that uses this email address, your GitHub user name shows up as a contributor. That said, you can associate multiple email addresses with a single GitHub account. So if you unregister your current email address from your old GitHub account, and register the same email address for your new GitHub account, existing contributions will show under your new GitHub account.
Do I still have access to that private repo after transfer the contributions?
That's a totally different question, and the answer depends on whether your new GitHub account was given access to the private repository. The GitHub permissions system is based on the GitHub user name, not on registered email addresses.
Related
I'm been working in a team of four. I'm in the collaborator list. I'm able to commit, push, send pull requests and merge in our repo. My teammates can see my changes, but everyone is on the contributor list except me.
I double checked my email address, make sure the email I used in my local setting is the same with my default email in the github account.
We have changed the owner of the project once, and I'm still using the old url. Is this the reason for that?
I found the github has a complex rule for you be considered as a contributor. Here's the doc of it.
https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-github-profile/managing-contribution-settings-on-your-profile/why-are-my-contributions-not-showing-up-on-my-profile
You have to commit to the main/default branch or make pull requests. To commit into other branches won't count.
Also, to use the old project url is definately one problem. In the project insight, everyone's profile is linked with their username. While mine is only a username with no user icon.
I think I just accidentally hit into one of the corner cases, but I'm still very confused of this design pattern.
Is it possible to merge two GitHub accounts into one?
I had one work account but would like to merge into a personal one.
I found some details about transferring ownership of the own repos which will merge all commit history etc.
Could anyone please confirm if it will transfer all commit history for any contributions made to another third party repos?
What will happen in the third party repos where I have made contributions from work account after the work account is deleted?
That is what describes "Merging multiple personal accounts"
And its repository transfer process (from the account you want to delete to the account you want to keep) should transfer issues, pull requests, and wikis.
You will need to add the email address you used to author the commits (of the old account) to the account you're keeping.
That way, your old contributions will be preserved.
I logged a support ticket with github and below is the summary:
After deleting work account and following steps as mentioned https://docs.github.com/en/repositories/creating-and-managing-repositories/transferring-a-repository did not bring contributions across to the personal account.
As work account was deleted - it started showing as a ghost account.
The commits made through work account were as from the personal acccount but contribution history (PR or any reviews) didn't come across to the personal account.
So make sure you think of above steps before removing any of your Github account.
Below were responses from Github:
As pull requests, issues and all activity in the GitHub web UI excluding commits are directly tied to the account that created them, they will not be counted on the new account even if you add the old account's email address to the new account.
Pull requests are replaced with the ghost user when the account is deleted. On the other hand, we read the email address from the metadata stored inside a commit and attempt to match commits up with a user account, so those that meet the contribution criteria will be counted on the new account.
I have two GitHub accounts. One from my work and my personal one, and i wanna merge these two.
I already read this doc: Merging multiple user accounts
But i still remain with two doubt:
After i add the same e-mail to my personal account. All my collaboration in repos will be transfered too?
the repos that my work account was a colaborator, my personal account will get the permision too?
They answered my ticket:
Contributions are linked to your email address, so adding your
existing email to your new account will transfer these over.
However collaboration and permissions in other repos is attached to
the account itself, not the email, so you will need to request to be
added as a collaborator again for any repos you currently collaborate
on.
Likewise, if you are a member of an organisation, you'll need to be
added to that organisation again and any teams you were a member of.
Commits are associated to your email: after transferring all the repos etc. and deleting your account, you need to add the previous email address (from the deleted account) to the new account in your account settings. The commit history will now be linked to your new account.
I am newbie github users and mistakenly created two github user accounts. I'm wondering how can we merge two github users account into one, including their corresponding repositories? any idea?
A quick something search will give you this:
Transfer any repositories from the account you want to delete to the account you want to keep. Issues, pull requests, and wikis are transferred as well. Verify the repositories exist on the account you want to keep.
Update the remote URLs in any local clones of the repositories that were moved.
Delete the account you no longer want to use.
I've seen Github shows name instead of a linked username in commits and I realise that the right thing to do is to link by email. However, I already have a repository with a whole bunch of commits whose email is "none#none".
On BitBucket, I can specify a per-project mapping of committer name to BitBucket account, and this has worked well enough. Is there anything like this on GitHub?
If not, what other options are there, short of leaving the commits unlinked and rewriting the entire history?
You can use .mailmap file in your repo, for mail aliased (as stated in "“Alias” git authors/committers?")
You also can add another email in your Email setting account.
But both solutions don't scale well when several authors use the same none#none email.