代码之家  ›  专栏  ›  技术社区  ›  Schneems

推送时使用远程源

  •  1
  • Schneems  · 技术社区  · 14 年前

    我在GitHub有一个本地Git存储库,一个“中央”回购。我正在做一个项目的一部分,而一个朋友正在做一个完全独立的回购协议中的相关部分,我是否可以直接链接到我朋友的回购协议?

    例如,这个应用程序被称为widgets。我的代码都在里面了 小工具/应用程序/mycode 我的朋友正在写代码 小部件/插件/很棒/他的代码 .

    我希望能够一直 http://github.com/mycode/widgets/plugins/hiscode 直接链接或克隆到 http://github.com/hiscode/awesome ?

    有可能我的问题中遗漏了一些基本的东西,或者我对Git的了解,如果是的话,请提问,我会很乐意尝试填补空白。

    我正在通过capistrano部署到我的生产站点,所以某种脚本可能更容易?我不知道(这就是为什么我要发帖)!!

    2 回复  |  直到 14 年前
        1
  •  1
  •   Community Paul Sweatte    7 年前

    如上所述 git submodules, true nature ,这可以通过在 widgets/plugins/awesome/hiscode 一个子模块,指 http://github.com/hiscode/awesome .

    然后,您可以定期从该子模块中提取他最新的更改,以便对其进行更新,前提是您随后再次从 widgets/ 目录(它是您的“主”项目,即包含子模块的项目)。
    这样,您的主项目将记录更新子模块的新sha1。

    您甚至可以直接在该子模块中开发,直接推动 http://github.com/mycode/widgets/plugins/hiscode (在仍然提交小部件时,再次记录新的sha1)。
    但是您需要记住首先在该子模块中签出一个分支,因为“子模块更新”总是将其初始化/更新为 detached head .

        2
  •  1
  •   Matt DeKrey Kiran    14 年前

    听起来子模块是一个很好的解决方案。我对GitHub的网址不是百分之百的确定,但这应该能让你接近:

    git子模块添加http://github.com/hiscode/awesome plugins/hiscode>

    要更新子模块并确保您仍然可以提交“棒极了的插件”,您将从您的报告根目录执行以下操作:

    git子模块更新
    CD插件/HisCode
    git checkout master

    请注意,您现在基本上是在嵌套Git存储库,而不是将其作为另一个存储库的一部分。

    对于SVN用户:这类似于Subversion的svn:Externals属性,具有特定的修订号。执行上述脚本与更新SVN属性中的修订号相同。

    在GitHub的URL上,但这会使您关闭:

    git submodule add http://github.com/hiscode/awesome plugins/hiscode

    要更新子模块并确保您仍然可以提交“棒极了的插件”,您将从您的repository的根目录执行以下操作:

    Git子模块更新
    CD插件/His代码
    切换到主分支

    请注意,您现在基本上是在嵌套Git存储库,而不是将其作为另一个存储库的一部分。

    对于SVN用户:这类似于Subversion的svn:Externals属性,具有特定的修订号。执行上述脚本与更新SVN属性中的修订号相同。