While @VonC has provided the fact that it's not possible to have two different fork of the forks, I want to add two things to this answer:
First, this seems to be an unfortunate design decision by GitHub and there is no technical reason for not allowing this. Every repo should be able to point to whatever upstream it wants to enable PR mechanism to work. For a platform that intends to promote collaborative development, this is quite a mind-boggling limitation.
Second, I want to provide a way so you can still do this but with extra work from your part. Let's say there is repo R and their two forks R1 and R2 by some users. You want to be able to work on R, R1 and R2 and send them your pull requests. Here's how you can accomplish this:
- Clone R locally and then create new github repo from it. This would mean that your repo would not appear as fork and you can't send PRs from it to R.
- Add remotes for each fork using
git remote add r1_fork https://github.com/<user1>/R1.git
.
- For each fork create its own branch using
git checkout -b r1_fork
.
- In each branch, fetch the changes from that fork:
git fetch r1_fork
.
- After fetch do hard reset in that branch for that remote:
git reset --hard r1_fork/master
.
Now you can work in branch for each individual remote and make changes. However, you can't send PRs yet. For sending PRs, you will need to fork that repo, then merge changes from your branch to the fork, send PR and delete the fork. Obviously, this is very non-ideal but this is what we got until GitHub fixes their stuff.