Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am a sole developer and I have a web application template that I have created in Visual Studio. I am using GIT for source control, but only on my development machine. Presently I have a master and I create branches for new features, merging them back in to the master as I complete the features.

I am at a point now where I am ready to use the template for deployments, and of course I want to continue adding new features via branching/merging.

My question is: what would be the typical/recommended way for me to create application deployments based on the master? Should I clone the repository into a new directory that is for a particular web application? Or should I also use branching to do project development based on the main project?

The projects would never be merged back into the master. However, it would be nice if I could merge future features into the master and have the ability to incorporate them into previously completed projects if desired.

For more specific details of my environment: I am using TortoiseGIT in Windows 7, Visual Studio 2012, ASP.NET Web Pages. Obviously the main differences between deployments would simply be differing pages, CSS files and jQuery scripts.


I found this post as I was writing this one. In order to do this should I clone the master repository and checkout from it?

share|improve this question
add comment

1 Answer

up vote 2 down vote accepted

I think your idea of cloning your template is best. But you can tweak that by using GitHub or similar site.

With GitHub you would fork for each new project based on your template.

The fork would create a brand new git repository but based on your template.

Now if one your projects has an update you would like picked up in your original template repository, you could submit a pull request to the original template. Others could too, if you wanted to share.

Then you would simply accept the pull requests you found that you want to incorporate into your original project.

share|improve this answer
    
I am not familiar with sites similar to GitHub, but to use GitHub I am not willing to make my app open source at the moment and I don't particularly want to pay for the option of using GitHub for commercial projects as this seems like an unnecessary expense. Nevertheless, I really appreciate your advice and I was unaware of how the forking worked. That strategy may indeed be very helpful to me in the near future. –  Darren Nov 24 '12 at 19:57
    
I have not really looked at how forking is implemented, but my guess is that it's just a variation of cloning. However after you clone, you create a new repository. In other words, I think you can still do it the way you want to all by cloning. You'll just need to modify your steps so that after you clone, you modify your .git configuration to push to a new repository. It would actually be somewhat simple. –  Johnnie Nov 24 '12 at 20:01
1  
Forking on github is indeed just a clone, with some github-specific metadata (github remembers where you cloned from etc., and cross-links this information back to the original repository, but that's mostly it). –  tdammers Nov 24 '12 at 22:30
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.