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_Git Submodules - Fatal编程技术网

Git 如何将子模块更改推送到另一个存储库中

Git 如何将子模块更改推送到另一个存储库中,git,git-submodules,Git,Git Submodules,我读过这篇文章,并没有找到主题问题的答案 我的远程存储库由第三方子模块组成,这些子模块已更改,更改应推送到我的存储库中。我还需要从子模块中获取新数据 GIT为此提供了什么吗?您的repo不包含任何子模块的代码,它只存储指向子模块中某个提交的指针 因此,如果您想接受来自第三方子模块的修改,您应该 $cd/path/to/submodule/in/your/work/tree#输入子模块目录 $git获取来源#更新 $git checkout origin/master#接受修改 $cd/path/

我读过这篇文章,并没有找到主题问题的答案

我的远程存储库由第三方子模块组成,这些子模块已更改,更改应推送到我的存储库中。我还需要从子模块中获取新数据


GIT为此提供了什么吗?

您的repo不包含任何子模块的代码,它只存储指向子模块中某个提交的指针

因此,如果您想接受来自第三方子模块的修改,您应该

$cd/path/to/submodule/in/your/work/tree#输入子模块目录
$git获取来源#更新
$git checkout origin/master#接受修改
$cd/path/to/your/work/tree
$git add/path/to/submodule/in/your/work/tree#添加对子模块指针的修改
$git commit-m“将xxx模块更新为x.x.x.x”#提交


希望我能帮助你

它可以工作,但如何在签出后从子模块原点获取数据(步骤3)?@Dmitry在子模块中
git fetch origin
之后,您已经获取了本地repo的远程repo更新,因此在步骤2之后,“从子模块原点获取数据”已经完成。如果您想更改子模块中的
master
,可以
获取checkout master;git reset——子模块目录中的硬源文件/master
,但要小心,对工作树中跟踪文件(当然,在子模块中)的任何更改都将被丢弃,请参见此处:这种方法似乎不起作用,因为我无法提交更改或克隆存储库。git克隆url;git子模块更新——init;然后:克隆到“test/src/github.com/guelfey/go.dbus”。。。远程:重用现有包:951,完成。远程:总计951(增量0),重复使用0(增量0)接收对象:100%(951/951),314.59千磅| 253千磅/秒,完成。解析增量:100%(583/583),完成。致命:引用不是树:562E287D99DA12094E55597ABA99B93A3AD5CCE无法签出子模块路径“test/src/github.com/guelfey/go.dbus”中的“562E287D99DA12094E55597ABA99B93A3AD5CCE”,然后我可以使git签出origin/master;在模块内部,获取处于“分离头”状态的源树。但在git之后添加;git提交;git推送;在另一台计算机上,我有相同的错误消息,并且没有更改数据。Git在两个开发人员之间以客户机/服务器模式工作。无法签出“xxx”主要意味着您没有将提交推送到子模块repo。假设第三方库(名为B)repo的url为
http://not/on/your/sever/B.git
,您的回购url是
http://this/is/your/repo/server/A.git
,从
http://not/on/your/sever/B.git
然后点击http://this/is/your/repo/server/B.git,将子模块B添加到A
git子模块添加http://this/is/your/repo/server/B.git 路径/到/B/目录
。当
http://not/on/your/server/B.git
updated,您应该首先将这些更新提交到您的
http://this/is/your/repo/server/B.git