So I've forked someone else's repository, made a few changes, submitted a pull request, and my changes made it into the product. Great!

But...what should I do with my forked repository? Is there a compelling reason for me to keep my repository around, or should I go ahead and delete it? I don't plan on making any additional contributions, but if I change my mind I assume I can always just re-fork it.

I'm not really concerned about keeping a backup. I'm more worried about breaking links, losing commit messages, etc.

  • 71
    Please delete it or github will run out of hashes. – Armand Mar 24 '11 at 16:49
  • 3
    duplicate code is evil. And that also goes across git boundaries. – stijn Mar 24 '11 at 17:11
  • 5
    @stijn - I read this more as "backup" than "duplicate". And I don't think I've ever heard anyone argue that backup code is evil ... – Beekguk Mar 24 '11 at 18:15
  • 3
    Delete it. After all, you can always download the last state (which is the one you will want to continue working from anyway) from the project repo. – Rook Mar 24 '11 at 21:17
  • What happens if the original repo gets deleted and no one has forks remaining? How to regain access to the repo/fork in that case? – Kromster Oct 12 '16 at 9:01
up vote 18 down vote accepted

Deleting forked repositories will erase history from your Pull Requests.

PR with unknown repository

Deleting a forked repository will delete any information associated with your repository. This can retroactively affect any references to your repository, including pull requests that have already been merged. (See Pull request displays "unknown repo" after deletion of fork)

Your comments and commits should be preserved on any pull requests that were associated with your repository, but you will do so at your own risk.

However, deleting old branches after a merge is perfectly safe.

While deleting repositories should be avoided, deleting unused branches is perfectly acceptable. In fact, GitHub encourages you to delete old branches.

Tidying up after Pull Requests

At GitHub, we love to use Pull Requests all day, every day. The only trouble is that we end up with a lot of defunct branches after Pull Requests have been merged or closed. From time to time, one of us would clear out these branches with a script, but we thought it would be better to take care of this step as part of our regular workflow on GitHub.com.

Starting today, after a Pull Request has been merged, you’ll see a button to delete the lingering branch:

Delete this branch button

If the Pull Request was closed without being merged, the button will look a little different to warn you about deleting unmerged commits:

Delete branch with warning

Of course, you can only delete branches in repositories that you have push access to.

Enjoy your tidy repositories!

Alternatively, if you really don't want to keep them around, you can archive a repository to indicate it is no longer actively maintained.

See also

If your pull request got accepted and you haven't made any other changes that you might use personally, you should delete it.

  1. Deleting doesn't harm anything.
  2. You can always refork if you need to
  3. It cuts down on useless repos in search results when people are searching for something
  4. If you use your GitHub as a sort of resume for potential jobs/contracts, it looks better if you don't have dozens of forked repos that you're not currently working on. You'll appear more efficient.
  5. It helps your own sanity when you don't have to page through hundreds of useless repos.
  6. Its better for GitHub. :)
  • 43
    The only downside to this is that the pull request will then show "merged commit <commit> into <repo> from unknown repository on <date>", which is a bit odd. – PLPeeters May 7 '15 at 14:53
  • 16
    @PLPeeters, Actually that's a pretty big downside. – Pacerier Aug 13 '15 at 10:05
  • 4
    I suggest using remove-github-forks to "Delete all forks that have no commits that are not in the main repository." Works like a charm. – bfred.it Mar 7 '16 at 8:07
  • 2
    @SteveMoser I may be wrong, but I think you still keep the "Repositories you contributed to" list. I had one I removed every connection between and it still stayed there somehow, but might of been a fluke :P – Mark Pieszak - DevHelp.Online Apr 11 '16 at 18:10
  • 12
    I took the risk and deleted the forked repository and my contributed list didn't get affected so I can safely say that deleting the forked repo will not affect your contribution credits – Amin Mohamed Ajani Mar 14 '17 at 16:10

You can delete your fork as soon as you submit a Pull Request, regardless if it's merged or not. GitHub stores all PRs in the upstream repository, meaning proposed changes are tracked even if the fork is deleted.

That simplifies the decision.

You may still want to keep the fork if:

  • You'll be contributing more right away (e.g. extend existing PR or open new PRs)

You may want to delete the fork if:

  • You want a clean portfolio of projects under your name

I would probably tar/gzip it and put in an archive dir, then delete it 3 years later. ;) Honestly If you don't intend to work on it again for the next few months and have not used it in a while I think it would be safe to delete it.

Just to add to the answers provided - GitHub itself recommends deleting ("tidying") forked repositories after they've been merged.

This can be done right in the pull request after merge - please see this blog post.

Furthermore, as of this moment, I don't see any downsides noticed in the comments:

  • even after deleting forked repository, there is correct message in the pull request (no "unknown repository")
  • repository to which you've contributed is still listed in your contribution activity
  • you are still listed in contributors of that repository

I would not recommend deleting it before merging as suggested by @Dennis, as you might still have to make some modifications to the code if requested by the authors.

  • 2
    I just deleted a forked repository and the pull request now says unknown repository. Oh well. – Krassi Apr 11 '17 at 9:22
  • 8
    Your link goes to an article explaining how to delete a branch after a successful PR merge; this question however asks about deleting a repository. You will only observe the "unknown repository" when you delete your own project fork (repository). – stakx May 24 '17 at 11:01
  • The question is about deleting a fork, not a branch. – Andy Aug 20 at 22:59

protected by gnat Oct 11 '16 at 22:08

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.