【问题标题】:Rails and Git workflow adviceRails 和 Git 工作流程建议
【发布时间】:2011-03-02 09:12:06
【问题描述】:

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

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

我现在已经提取了我对基本应用程序模板中的文件所做的所有更改,并将这些更改提交到我的 github repo 分支。理想情况下,我希望将基本应用程序模板作为我的应用程序中的一个分支,并使用我的主应用程序重新设置它。这真的可能吗?

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

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

提前致谢!

谢谢,

丹尼

【问题讨论】:

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


    【解决方案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
    

    如果应用程序模板只是一个 gem 文件或插件集合,这可能会奏效。但即便如此,您可能最好还是合并masterapp_template,这样您就不必重写整个应用历史记录。

    【讨论】:

    • 除了引入潜在的合并冲突混乱之外,变基还会重写历史记录,更改提交的 sha1。如果其他人将您的存储库用作遥控器,这是一个很大的禁忌,并且还会破坏您在错误跟踪系统中可能存在的关联......
    • 我想我将不得不回到 Git 教程和截屏视频,更好地理解这一切。我确定我一定错过了什么!感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-13
    • 2021-02-02
    • 2012-01-14
    • 2016-05-23
    • 1970-01-01
    • 2020-10-19
    • 2012-05-22
    相关资源
    最近更新 更多