【问题标题】:Git - How to commit a local repository to a subfolder of another local repository?Git - 如何将本地存储库提交到另一个本地存储库的子文件夹?
【发布时间】:2014-10-20 06:19:31
【问题描述】:

我有一个不久前开始的 Django 项目,我将它托管在 bitbucket 上。现在我需要将它托管在 openshift 上,这样做的方法是它们为您提供一个 git 存储库,并且每次您推送它们时它们都会自动部署。问题是存储库带有几个用于配置和设置的顶级文件夹,有效的 django 项目必须位于名为 wsig/openshift 的子文件夹中。

我的问题是,如何将本地 django 存储库中的更改提交到本地 openshift 存储库的 wsig/openshift 子文件夹?因为我打算继续在bitbucket/local仓库上开发

【问题讨论】:

    标签: django git openshift


    【解决方案1】:

    您可能正在寻找submodules。来自文档:

    子模块允许将外部存储库嵌入到一个 源树的专用子目录,始终指向 特定的提交。

    因此,您可以通过运行将 bitbucket 存储库作为单独的存储库嵌入到 openshift 存储库的子文件夹中

    git submodule add path_to_bitbucket folder/in/openshift
    

    在 openshift 存储库中。

    您必须偶尔运行git submodule update 以使 openshift 保持最新状态,但您可能已经预料到此类额外工作。

    【讨论】:

    • 我接受了你的回答,因为我更深入地研究了子模块和一些推荐使用子树的地方,我发现一个有用的链接是help.github.com/articles/about-git-subtree-merges
    • @ibrabeicker 子树也可以工作,区别基本上归结为子树你必须注意你正在提交的内容,并且你必须记住在推送之前更新子模块。我选择了子模块,因为您听起来好像希望将存储库放在不同的文件夹中,并且只想推送到 openshift 进行部署。如果你想在 openshift repositories 子文件夹中工作,那么 subtree 会更容易。
    【解决方案2】:

    我也有同样的问题!非常烦人,但我走了另一条路

    为什么不从头开始创建一个 Python 2.7 项目?当前的 Django 结构确实很烦人。我的做法是:

    1. 创建一个具有这种烦人结构的 openshift 项目。
    2. 复制、保存(在我的本地 FS 中,而不是在 Openshift 中)settings.py 和 wsgi.py 的副本。
    3. 放弃该项目,并启动一个裸 Python 2.7 项目。
    4. 检查到我的本地 FS,创建一个 Django 项目在我的本地 fs
    5. 相应地替换 wsgi 和设置的内容(调整任何可能放错位置的路径 - 这比看起来容易)。
    6. 提交/推送(这个新结构)。

    您将在第 4 点做不同的事情:您也将签出远程分支 (bitbucket),将其合并到 openshift 分支,相应地更改第 5 点中的这些文件,然后推送 openshift 分支。

    你有一个全新的项目,与你的结构相匹配(也许你想在你的环境中配置两个远程分支:openshift 和 bitbucket)。

    我就是这样做的,老实说我没有什么可后悔的。

    题外话,但由于您使用的是 Django,因此可能会很有用:如果您想同时使用 (gunicorn|uwsgi)+nginx(带有自定义购物车),这一点尤其重要。不提供 apache 只提供 nginx 和 python),所以不能使用默认的 Django 购物车。

    【讨论】:

      猜你喜欢
      • 2014-09-06
      • 2013-02-23
      • 2011-07-23
      • 1970-01-01
      • 2014-06-05
      • 1970-01-01
      • 2017-09-09
      • 2011-12-30
      相关资源
      最近更新 更多