Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git在推送期间使用远程源_Git_Github_Capistrano - Fatal编程技术网

Git在推送期间使用远程源

Git在推送期间使用远程源,git,github,capistrano,Git,Github,Capistrano,我在github有一个本地git存储库和一个“中央”回购。我在做一个项目的一部分,而一个朋友在做一个完全独立的回购协议的相关部分,我能直接链接到我朋友的回购协议吗 例如,该应用程序被称为widgets。我所有的代码都在widgets/app/mycode中,我的朋友正在编写进入widgets/plugins/awesome/hiscode的代码 我希望能够始终将作为指向的直接链接或克隆 有可能我的问题或git知识中遗漏了一些基本的东西,如果是的话,请提问,我很乐意尝试填补这些空白 我正在通过ca

我在github有一个本地git存储库和一个“中央”回购。我在做一个项目的一部分,而一个朋友在做一个完全独立的回购协议的相关部分,我能直接链接到我朋友的回购协议吗

例如,该应用程序被称为widgets。我所有的代码都在widgets/app/mycode中,我的朋友正在编写进入widgets/plugins/awesome/hiscode的代码

我希望能够始终将作为指向的直接链接或克隆

有可能我的问题或git知识中遗漏了一些基本的东西,如果是的话,请提问,我很乐意尝试填补这些空白


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

听起来子模块将是一个很好的解决方案。我对github url没有100%的把握,但这应该能让你接近:

git子模块添加http://github.com/hiscode/awesome 插件/hiscode

要更新子模块并确保您仍然可以提交到“awesome plugin”,您将从repoistory的根目录执行以下操作:

git子模块更新
cd插件/hiscode
git签出主机

请注意,在这一点上,您实际上是嵌套git存储库,而不是将一部分变成另一部分

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

如中所述,这可以通过在
widgets/plugins/awesome/hiscode
中声明引用
http://github.com/hiscode/awesome

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

您甚至可以直接在该子模块中开发,直接推到
http://github.com/mycode/widgets/plugins/hiscode
(仍然提交小部件时,再次记录新的SHA1)。

但您需要记住首先签出该子模块内的分支,因为“子模块更新”总是将其初始化/更新为。

使用此解决方案,我是否必须在每次提交到主回购之前提取子模块,以确保我有最新的更改?如果是这样的话,有什么方法可以自动完成吗?@ThinkBohemian:如果您最近(对该子模块)的更改是在主项目之外进行的,那么是的,在主项目提交之前,需要在子模块内进行拉取。但是(如“子模块,真实本质”中所述),您也可以直接在子模块内进行修改。