How To Fork A Subdirectory Of Repo As A Different Repo On GitHub.
3 Min Read
Ever wanted to fork a subdirectory and not the whole git/github repository. Well I have, I recently had to fork a subdirectory of one of the repositories I wanted to work on without the need to forking the whole repository. In this post I will show you how it’s done.
Note: I do not think you can fork subdirectories through GitHub’s web interface
Clone the repo
git clone https://github.com/<username>/<my-repo> cd my-repo
Create a branch using the
git subtree command for the folder only
git subtree split --prefix=./src -b fork-src-dir git checkout fork-src-dir
Create a new GitHub repo
Head over to GitHub and create a new repository you wish to fork the directory to.
Add the newly created repo as a remote
cd my-repo git remote add upstream https://github.com/<username>/<new_repo>.git
Push the subtree to the new repository
git fetch origin -pa git push -u origin fork-src-dir
Fetch all remote branches in the new repository
git clone https://github.com/<username>/<new_repo>.git cd new_repo git checkout --detach git fetch origin '+refs/heads/*:refs/heads/*' git checkout fork-src-dir
You now have a “fork” of the