You should think in terms of catkin packages. You will use some that are installable via e.g. apt-get, others you will download/clone from GitHub, and finally you have your own packages.
First, you should think about a clean structure of your own packages - i.e. do you want to put them all in one repository, split them up according to some common task or just make a repository for every single of your own packages? The latter is the most flexible but may come with a bit more overhead.
Second, you need to define which packages/repositories constitute your "project". The part that needs to be downloaded is basically defined by src/.rosinstall - you can just keep this local (if it is simple) or upload it in some new repository (basically a workspace is just the .rosinstall file plus whatever packages you download -- which should be defined via the .rosinstall).
You should also take a look at https://github.com/catkin/catkin_tools (via sudo apt-get install python-caktin-tools
) which may be easier to use. And use wstool
to manage your packages / rosinstall file.