Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Unfork a Github fork without deleting

Tags:

git

github

I would like to "unfork" a GitHub fork without deleting + recreating it. Is this possible?

My reason is that my project now has a completely different use to the source of the fork, and makes no sense to be showing number of commits ahead, or the pull request button (or at least, with such prominence). With hindsight, I think I would have just git cloned the original, rather than made a fork.

I would like to not delete my fork in order to keep the issues + history of pull requests made.

I am happy to keep the history of commits, it's just the removal of the fork status that I'm after.

like image 915
Michal Charemza Avatar asked Mar 29 '15 07:03

Michal Charemza


People also ask

Will deleting a forked repository delete the original?

Also note that if you are deleting a forked repository, deleting it will only remove it (including any changes you have made to it) from your own GitHub - you won't accidentally delete the original project (phew).

What happens to forked repo when original is deleted?

If the original repository is deleted, the fork remains.


2 Answers

Na, na. Github is far more powerful than you think.

Undoubtedly, there's no way but make a bare copy of all of the codes. However, the copy procedure can be done by Github itself. So, no pain of mirroring the code with our own bandwidth.

Step by step:

  • Click the "+" on top right corner, select "Import repository"
  • Paste the old repo url (like https://github.com/user/repo) and enter a new name.
  • Click "Begin import"

Done. Github will even give you an email notification when copy'n'paste is done.

Tested to work against my own project. Good feature isn't it?

like image 66
ttimasdf Avatar answered Sep 21 '22 16:09

ttimasdf


This method will create a new "unforked" repository while maintaining everything else (commit history, branches and tags).

How to "unfork" a project in four easy steps:

  1. git clone --bare https://github.com/{username}/{repository}
  2. Delete original repository in https://github.com/{username}/{repository}/settings.
  3. Create new repository with the name {repository} at https://github.com/new.
  4. cd {repository}.git and git push --mirror https://github.com/{username}/{repository}

And done!

like image 24
Tiago A. Avatar answered Sep 22 '22 16:09

Tiago A.