dannymcc
dannymcc

Reputation: 3814

Rails and Git workflow advice

I need some advice with my desired setup with git and Rails.

Basically for my first Rails application I used a base application template from GitHub, I then made a ton of changes and now have a full application which is fairly customised.

I have now extracted all of the changes I made to the files within the base application template and have committed the changes to my fork of the github repo. Ideally, I would like to have the base application template as a branch in my application and rebase it with my master. Is this actually possible?

The reason I want to do this: I want to keep the base application up to date and functional, so for my next project I can just clone the base application template from my github fork and get working. Likewise, if anyone fixes any bugs in the base application template, I could merge those fixes with any application I have the base application template as a branch?

Is this possible? Is there a better/more common way to do this?

Thanks in advance!

Thanks,

Danny

Upvotes: 1

Views: 536

Answers (1)

Daniel Beardsley
Daniel Beardsley

Reputation: 20357

That's a interesting idea, though I think it might be harder than you realize to rebase an entire project history ontop of a bunch of updates.

Here's how you could do it, in pseudo-git :-)

# First fork the app template on github
# Then clone it locally
git clone your_fork_of_app_template_url

# Setup a remote to the original repository (the one you forked from)
git remote add original_base original_app_template_url

# make a branch at the root so you have someplace to pull in new changes
git checkout -b app_template original_base/master

# go back to your master and write your app
git checkout master
git commit
git commit 
...

# Then later update your app template if it has changed
git checkout app_template
git pull original_base

# now Rebase your entire app on top of the updated template (not sure how to go about this with multiple branches like edge)
git checkout master
git rebase app_template

This might work out if the app template was just a gem-file or a collection of plugins. But even then, you might be better off just merging master and app_template so you wouldn't have to rewrite your entire app history.

Upvotes: 1

Related Questions