我创建了一个git子模块并将其推送到我们的主存储库。这工作正常,我可以通过浏览器在存储库中看到子模块。为了测试它,我尝试在新的构建树中获取源代码。首先我跑了gitsubmoduleinit然后gitsubmoduleupdate.第二个命令因错误而失败:error:pathspec'x/mypkg'didnotmatchanyfile(s)knowntogit.Didyouforgetto'gitadd'我尝试添加到.gitmodules子模块的URL,但没有运气。 最佳答案 我在使用TortoiseGit尝试更新不在索引中的子模块
我们曾经在Rails应用程序中对delayed_job进行本地hack,位于vendor/plugins/delayed_job中。它是作为一次性事件安装的,并在主应用程序仓库中checkin了git。现在我们决定在github上forkdelayed_job并用git子模块替换子目录,如所述这里:http://doblock.com/articles/using-git-submodules-to-manage-plugins-in-rails在这样做之前,我只是删除了vendor/plugins/delayed_job,而没有将其checkin。现在,尽管添加了子模块,但主仓库中的
我在一个大型代码库的团队中工作。最近我们决定将其中一个文件夹移动到它自己的子模块中--aaa--.git--bbb--ccc--www#thisfolderisgoingintoitsownrepo.我按照说明将www文件夹过滤到它自己的存储库中:Detach(move)subdirectoryintoseparateGitrepository.我将www文件夹移出了aaa存储库。我通过运行这些命令从master分支中删除了目录:$cdaaa$gitcheckoutmaster$gitrm-rfwww$gitcommit-m"removethewww/folderfromtheaaar
我有几个项目页面要维护,它们都使用相同的主题(我将它打包到一个名为KYProjectPageTheme的单独repo中)。只需将KYProjectPageTheme的整个文件夹复制到gh-pages分支的根目录,然后将其推送到Github即可。当静态页面构建成功时,我会收到通知。但是,我想将KYProjectPageTheme添加为gh-pages分支下的子模块。这在我的本地机器上运行良好。但是当我把它推到Github上时,我再也收不到通知了!而静态页面还是之前的状态,即我添加子模块后的修改没有影响。我猜Github的静态页面生成器在gh-pages分支中有子模块时将无法工作。但实际上
我想创建一个新的存储库作为我项目的子模块。通常,我会创建一个Github存储库,然后使用以下命令将其添加为子模块git子模块添加url_to_repo.git有没有一种方法可以直接创建一个新的repo作为子模块,而无需首先在其他地方创建repo(既不是本地也不是远程,例如在Github上)? 最佳答案 简单!假设submodule_dir是您希望进行子模块化的目录的名称(假设它尚未处于git控制之下)。cdsubmodule_dirgitinitgitadd.gitcommit#ongithub,createthenewrepo,t
我有一个包含各种嵌套子模块的存储库。提交和推送工作得很好,更改在GitHub上如预期的那样可见。在测试/生产环境中,正在使用这些命令部署该项目的新版本:gitpull--recurse-submodulesgitsubmoduleupdate--init--recursive但这只会更新根项目,没有任何子模块会更新到与GitHub上的HEAD关联的提交。到目前为止,我发现更新整个项目的唯一方法是在每个单独的子模块文件夹中运行gitpull。我知道gitsubmoduleupdate是大多数地方引用的方法,但在这种情况下它并没有真正产生任何结果。可能是什么原因?
我更改了一个git子模块的提交指针:%gitstatus#Onbranchfix#Yourbranchisbehind'origin/fix'by1commit,andcanbefast-forwarded.##Changesnotstagedforcommit:#(use"gitadd..."toupdatewhatwillbecommitted)#(use"gitcheckout--..."todiscardchangesinworkingdirectory)##modified:app/lib(newcommits)#nochangesaddedtocommit(use"gita
我最近将我的几个插件变成了子模块,并意识到当你“gitclone”一个仓库时,子模块目录将是空的。这对于合作开发者初始化他们的子模块和更新是有意义的。但是,当我使用capistrano部署时,子模块代码显然不会被部署,这会导致问题。我可以进入发布分支并在那里初始化和更新模块,但这显然不是一个理想的解决方案。有人对如何处理这个问题有建议吗?它像Capistrano任务一样简单吗?我在生产方面有点菜鸟。谢谢! 最佳答案 根据thisrecentthread,capistrano应该能够初始化和更新你的子模块:set:git_enable
我发现在使用git子模块时,我经常遇到在包含给定子模块的提交与代表与普通目录相同代码的提交之间merge的问题。小复制示例:#Createoneproject,tobeusedasasubprojectlaterongitinitacdaechoaaa>aagitadd-Agitcommit-ma1cd..#Createasecondproject,containingaasanormaldirectoryinitiallygitinitbcdbmkdirabechoaaa>a/aaechobbb>b/bbgitadd-Agitcommit-mb1#Replacedirectorywi
如何将git子模块(本地文件系统中的文件夹作为远程文件夹)转换为git子树,最好保留子模块的提交历史记录? 最佳答案 以下bash脚本基于AlexanderMikhailian的帖子(http://mikhailian.mova.org/node/233)。我稍微修改了它以调用subtreeadd而不是read-tree。它将从.gitmodule中获取子模块列表,并提取模块的前缀、名称和url。然后它删除每个子模块并将它们作为子树添加回同一位置。它还将每个子模块的远程添加为远程,因此您可以稍后通过提供其名称而不是其url来更新子树