Actually, it is possible to create a branch in your fork from any commit of the upstream in the browser:
- openOpen
https://github.com/<repo>/commits/<hash>
, where repo is your fork, and hash is full hash of commit which you can find in the upstream web interface. For example, I can open https://github.com/max630/linux/commits/0aa0313f9d576affd7747cc3f179feb097d28990, which points to linuxlinux
master
as time of writing. - clickClick on the "Tree: ...." button.
- typeType name of the new branch and press EnterEnter
You can then fetch that branch to your local clone, and you won't have to push all that data back top githubto GitHub when you push edits on top of that commit. Or use the web interface to change something in that branch.
How it works (it is a guess, I don't know how exactly githubGitHub does it): forks share object storage and use namespaces to separate users' references. So you can access all commits through your fork, even if they did not exist by the time of forking.