我需要你的建议如下。我有一个repo,它将另一个repo称为子模块。所以当你签出这个包含另一个repo作为子模块的主repo时。我收到这个错误。 在子模块路径中获取但它不包含737282d4e408c414e8fcca176aa805ebeb802db9。直接获取该提交失败。
好的我理解这基本上在子模块分支中有错误的提交,并且其中一个开发人员将分支重新定位到发生错误提交的位置并将其推送到主控。现在我不希望我的主回购也获得那些提交,但我认为它仍然是指在rebase之前提交的那些提交。请在这里明确指出在这种情况下该怎么办?我不希望这些更改和子模块中的rebase很好,只是希望主repo也没有得到那些更改,只检索那个子模块repo的主人。
答案 0 :(得分:0)
因为您需要保留本地子模块版本和其他开发人员的重定制版本。因此,您可以在另一个文件夹中为同一个repo添加另一个子模块供您参考。
假设子模块仓库的名称为repo1
,因此您已有一个名为repo1
的文件夹。然后,您可以按git submodule add <URL for repo1> repo1new
添加子模块。现在,您将拥有一个文件夹repo1new
,其中包含最新版本的repo1
。
当您准备好为repo1
文件夹获取repo1
的最新版本时,您可以使用:
git submodule update --init
答案 1 :(得分:0)
MSFT 谢谢回复。基本上我不想保留本地子模块版本。我的意思是,我只想保留已更新的版本,并希望如果使用此子模块的另一个repo在结帐时获取此子模块的代码,它应该获得最新的重定向版本,该版本将提交给master。完成的提交应该被忽略,并且开发人员可以从重新绑定的位置获取另一个副本,并且引用此子模块的模块也应该从该点获取而不是先前的提交。我希望这很清楚吗? 那么我应该做一个git子模块更新--init from where?