Rails和Git工作流程建议

时间:2010-06-10 20:21:08

标签: ruby-on-rails git merge github rebase

我需要一些关于git和Rails所需设置的建议。

基本上对于我的第一个Rails应用程序,我使用了GitHub的基本应用程序模板,然后我进行了大量的更改,现在有一个完全自定义的完整应用程序。

我现在已经提取了我对基本应用程序模板中的文件所做的所有更改,并将更改提交到我的github repo的fork。理想情况下,我希望将基本应用程序模板作为我的应用程序中的分支,并将其与我的主人进行重新绑定。这实际上是可能的吗?

我想要这样做的原因:我想让基础应用程序保持最新和功能,所以对于我的下一个项目,我可以从我的github fork克隆基本应用程序模板并开始工作。同样,如果有人修复了基本应用程序模板中的任何错误,我可以将这些修复程序与任何我将基本应用程序模板作为分支的应用程序合并吗?

这可能吗?是否有更好/更常见的方法来做到这一点?

提前致谢!

谢谢,

丹尼

1 个答案:

答案 0 :(得分:1)

这是一个有趣的想法,尽管我认为它可能比你意识到的更难以在一系列更新中重新整理整个项目历史

这是你如何做到的,用伪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

如果app模板只是一个gem文件或一组插件,这可能会有效。但即便如此,只要合并masterapp_template ,您就可以更好,这样您就不必重写整个应用历史记录。