I have a local Git repository called 'skeleton' that I use for storing project skeletons. It has a few branches, for different kinds of projects:
casey@agave [~/Projects/skeleton] git branch
* master
rails
c
c++
If I want to check out the master branch for a new project, I can do
casey@agave [~/Projects] git clone skeleton new
Initialized empty Git repository in /Users/casey/Projects/new/.git/
and everything is how I want it. Specifically, the new master branch points to the skeleton master branch, and I can push and pull to move around changes to the basic project setup.
What doesn't work, however, is if I want to clone another branch. I can't get it so that I only pull the branch I want, for instance the rails
branch, and then the new repository has a master
branch that pushes to and pulls from the skeleton repository's rails
branch, by default.
Is there a good way to go about doing this? Or, maybe this isn't the way that Git wants me to structure things, and I'm certainly open to that. Perhaps I should have multiple repositories, with the Ruby on Rails skeleton repository tracking the master skeleton repository? And any individual project cloning the Ruby on Rails skeleton repository.
For cloning a branch of Git you don't have the public key to, use this:
<Branch Name>
Open the cmd.
cd folder_name
(enter the path where to clone the branch)Just one command:
Clone only one branch. This is the easiest way:
After cloning was complete, I had to enter
git submodule update --init --recursive
to download all submodulesYou can try the long-winded way:
What this does is:
Hopefully that will be something like what you are after.