How to create a project from another project?

Hi, I’m relatively new to Git and GitHub and so I’m unfamiliar with the workflows or the correct terminology. What I would like to do is take an existing project made by another user and create my own project using that source as the baseline. I want to be able to easily integrate changes from the original project into my version in the future.

Is this something that GitHub supports? If so, what is the correct terminology for this and where can I find documentation on how to do it? Thanks for the help.

I was able to figure this out. The correct term is “forking,” and it’s pretty easy to do. There’s just a button on the top right of each projects page that will make a copy for you.

Yep, that’s the right thing!

For that you should add the other user’s repository as a “remote” to your local repository, so you can fetch and merge updates from there. See Git Basics: Working with Remotes for details.

You’ll be able to do this by integrating changes from the upstream repository (i.e. via a remote pointing to its master branch, or whatever its main branch is called) into your fork.

Whether this is going to be an easy operation will largely depend on the level of divergence introduced by your changes — i.e. if you start renaming files and folder, and entirely revamp their code, integration will not be so easy since the two code-bases are departing from each other.

In similar cases, what I do is create in my fork a dedicated branch (e.g. upstream-master) that tracks upstream/master independently of my fork’s master branch, which I can then use to keep track locally of how the upstream project is evolving, which somehow can make the integration easier.

You might also want to consider using Git ReReRe functionality to integrate changes that involve complex adaptations and choices:

https://git-scm.com/docs/git-rerere