如果我修改了一个子模块,我可以将提交推回到子模块的原点,还是需要克隆?如果克隆,我可以将克隆存储在另一个存储库中吗? 最佳答案 子模块不过是一个git仓库在另一个仓库中的克隆,带有一些额外的元数据(gitlink树条目,.gitmodules文件)$cdyour_submodule$gitcheckoutmaster$gitcommit-a-m"commitinsubmodule"$gitpush$cd..$gitaddyour_submodule$gitcommit-m"Updatedsubmodule"
我有一个存储库托管在https://github.com/aikiframework/json.在我的本地副本上,我使用命令添加了一个子模块gitsubmoduleaddgit@github.com:jcubic/json-rpc.gitjson-rpc然后我做了一个提交和推送,更改出现在GitHub上(我可以点击它)。但是当我克隆repo时gitclonehttps://github.com/aikiframework/json.git子模块文件夹json-rpc是空的。我在这里错过了什么?我是不是忘记了什么?为什么那个文件夹是空的? 最佳答案
我正在尝试向我的.vim/bundles目录添加一些子模块,当我尝试添加这个特定的repo时,Git给了我一个我以前从未见过的奇怪错误:$gitsubmoduleadd-fgit://github.com/derekwyatt/vim-scala.git.vim/bundle/vim-scalafatal:YouareonabranchyettobebornUnabletocheckoutsubmodule'.vim/bundle/vim-scala'知道是什么原因造成的吗?如果我将相同的repo克隆到测试目录(不是通过子模块命令),它工作正常,并创建预期的文件。
我正在尝试让TravisCI自动部署我的Hakyll静态站点,根据thisguide.这是我的存储库的设置方式。我有我的源代码分支,其中包含我的hakyll和Markdown文件。它将html构建到_site目录中,该目录被设置为子模块,链接到我的master分支。我毫无问题地构建了站点,然后cd进入_site目录。但是,当我尝试gitadd./*新生成的HTML文件时,出现以下错误:fatal:Pathspec'./about.html'isinsubmodule'_site'当我尝试gitadd--all时,我得到这个错误:git:pathspec.c:317:prefix_pat
有时(我认为是在1.6.x版本前后)git开始意识到子模块内部的变化。这只会让我烦恼:$gitstatusvendor|grepmodified:#modified:vendor/rails(modifiedcontent)$gitdiffvendor/diff--gita/vendor/railsb/vendor/rails---a/vendor/rails+++b/vendor/rails@@-1+1@@-Subprojectcommit046c900df27994d454b7f906caa0e4226bb42b6f+Subprojectcommit046c900df27994d4
我知道,当您将子模块添加到git存储库时,它会跟踪由其sha1引用的该子模块的特定提交。我正在尝试查找此sha1值的存储位置。.gitmodules和.git/config文件只显示子模块的路径,但不显示提交的sha1。git-submodule(1)引用仅提及gitlink条目和gitmodules(5)引用文献对此也没有任何说明。 最佳答案 它直接存储在Git的对象数据库中。子模块所在目录的树对象将具有子模块提交的条目(这就是所谓的“gitlink”)。尝试做gitls-treemaster(或者只是gitls-treemast
我们正在将我们的(巨大的)项目移动到git,并且我们正在考虑使用子模块。我们的计划是在super项目中拥有三个不同的负责人:release,stable,latest项目负责人将处理发布和稳定分支。他们将根据需要移动子模块。问题是“最新”的头。我们希望super项目“最新”负责人跟踪所有子模块的主分支(自动)。如果它能显示子模块的所有提交历史,那就太好了。我看过gitslave,但不是我们想要的。有什么建议吗? 最佳答案 编辑(2020.12.28):自2020年10月起,GitHub将默认的master分支更改为main分
是否有可能一个git子模块由多个其他git子模块组成,并且supergitrepo可以获取每个子模块的内容?我尝试使用创建包含多个子模块的git存储库的明显/天真的方法来做到这一点。然后将这个git仓库作为子模块添加到另一个git仓库。然后尝试通过gitsubmoduleinit和gitsubmoduleupdate从supergitrepo的根目录中pull。但这无法获取子子模块。 最佳答案 如Retrospectivelyadd--recursivetoagitrepo中所述gitsubmoduleupdate--init--r
是否有一些简单的方法来重命名git子模块目录(除了经历deleting的整个Action并使用新的目标名称重新添加它之外)。虽然我们正在这样做,但为什么我根本无法在父目录中执行以下操作:gitmvold-submodule-namenew-submodule-name 最佳答案 Git1.8.5(October2013)shouldsimplifytheprocess.只需做一个:gitmvAB"gitmvAB",whenmovingasubmoduleAhasbeentaughttorelocateitsworkingtreean
我似乎无法摆脱Git子模块中未跟踪的内容。运行gitstatus产生:#Onbranchmaster#Changesnotstagedforcommit:#(use"gitadd..."toupdatewhatwillbecommitted)#(use"gitcheckout--..."todiscardchangesinworkingdirectory)#(commitordiscardtheuntrackedormodifiedcontentinsubmodules)##modified:bundle/snipmate(untrackedcontent)#modified:bund