404

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.

Brant Bobby
  • 4,588
  • 4
  • 25
  • 22

5 Answers5

235

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. :)
tharris
  • 2,451
95

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
Dennis
  • 1,081
82

Updated answer:

As of February 18, 2021, the “Unknown Repository” issue has been resolved. You should be ok to delete repositories once all the branches have been merged.


Old answer:

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

Stevoisiak
  • 1,354
20

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.

Zachary K
  • 10,413
13

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.