问题标签 [git-subrepo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
822 浏览

git - Git 和 Git 子代表

我是 Git 的新手并开始学习它。我已经使用 SVN 很长时间了。我想模拟以下。

我在文件夹'main'中有一个主仓库。我可以在这个文件夹中拉取、提交和推送。我在“main”中有一个名为“srepo”的文件夹。我可以在此文件夹“srepo”中克隆一个子存储库

我在本地向 subrepo 'srepo' 添加了一些文件,并希望推送到上游 subrepo。当我执行命令 'git subrepo add FileName.txt' 然后它给我错误git-subrepo: 'add' is not a command。请参阅“git subrepo 帮助”。

当我执行命令“git subrepo commit”时,它给了我以下消息:-

使用提交命令添加子目录名称后,它显示“git-subrepo:无法提交:'subrepo/origin'不包含上游 HEAD。”

请让我知道如何解决这个问题。

同样的问题已发布在https://github.community/t5/How-to-use-Git-and-GitHub/Git-and-Git-Subrepo/mp/5974#M1955

0 投票
1 回答
130 浏览

git-submodules - Git 子模块 - 跟踪外部 Git 存储库的子文件夹

假设我们正在使用 git 子模块:

我想知道是否有办法跟踪特定文件夹,如下所示:

这样的事情可能吗?

例如,假设我们在 .gitmodules 文件中有这个:

所以我正在寻找的是我本地项目中的配置文件夹,以反映其他/远程仓库中的 xxx 文件夹。

0 投票
1 回答
649 浏览

git - 在没有远程的情况下创建 git 子模块

我想sub在我的mainrepo 中有一个 repo,它可以从一个完全不同的远程 repo 推送和拉取main。所以我想要一个子模块。但我想在本地创建子模块,然后将其推送到远程。它还不存在于任何地方。

我见过的所有示例都涉及将远程 repo 拉入子模块,在某种程度上,这就是子模块的创建方式

有没有办法创建子模块,进行一些提交,然后将它们推送到有问题的远程仓库?

0 投票
1 回答
126 浏览

git - git 子模块、子树或其他

可能,我误解了 git 的工作原理,我的目录结构如下:

所有这些文件夹都有自己的存储库,其中主存储库project可以有子存储库,例如project 1, project 2, child scripts. 它们可以是子模块或子树。问题是common scripts包含一些常见且必不可少的代码,这些代码对于构建project 1project 2. 维护这一点的最佳策略是什么,以便每个项目都可以独立,并且无需将通用脚本保存在两个地方。

0 投票
1 回答
296 浏览

git - 如何对一个目录中的多个依赖项目进行版本控制(例如 web2py、django)

我想获得一些建议来最好地处理和版本控制项目,这些项目表现出以下结构:

从父项目(在许多项目之间共享),我需要获取给定的目录结构和文件,即

从这个父项目派生了几个子依赖项,它们将文件添加到目录中。

然后情况可能如下所示(文件/目录所属的项目名称在括号中)

具体来说,在我的例子中,父项目是 web2py/django 项目,我想从中派生几个子项目。

现在的问题是,

  • 如何对每个项目进行版本控制?
  • 我应该分别为父项目和子项目创建一个存储库吗?
  • 我应该将父项目视为某种包/库吗?

我考虑了以下方法:

  • 使用git submoduleor git subtrees:这不起作用,因为我需要来自父项目的非常严格的目录和文件结构
  • 本地项目中的多个git remotes,即两个git origins,一个给父项目,一个给子项目:反对这个解决方案的是,为了在某个地方部署项目,我不能简单地运行git clone,而是必须手动设置 multiple git remote -v origin
  • 将父项目视为一个库,我通过数据包管理器安装它,然后对子存储库中安装的文件进行版本控制或将它们放入.gitignore:也许不是解决方案,这不是那么糟糕,但我不知道实现这一目标的工具。也许有一个工具可以通过一些命令从 github repo 安装给定版本,比如some_paket_manager install path/to/git/repo==v.0.0.9
  • 从父项目复制和粘贴文件:我试图避免手动工作。
0 投票
0 回答
149 浏览

python - 间歇性 TabError:缩进中制表符和空格的不一致使用(仅在 CircleCI 上)

我刚刚将我的程序从 python2 转换为 python3。一切都在我的电脑上检查。当我运行 pytest 时,它工作正常。

当我提交到 github 并 circleci 测试它时,它得到:

同样,当我在家用机器上运行 pytest 时,它工作正常。

当我浏览文件时,我没有找到任何选项卡。

为什么只有circleci抱怨?炸开的标签在哪里?

ETA:这是一个使用子回购的测试。我目前的理论是,circle 正在使用 sub-repo 的 master 分支,而不是它应该使用的 subRepo 的分支,(应该将其提交给 master Repo 分支,但也许不是?)

ETA2:我的circleci有:

这意味着它正在更新到主分支,对吗?

0 投票
0 回答
100 浏览

git - 使用 git subrepo 或树之类的 SVN 外部

我们终于要从SVN过渡到git了,感谢各位大神和小鱼。

但是我们有一个非常广泛的库系统,它存在于 SVN 外部。

一切都在工具、单元测试框架等之间使用了很多相对路径。

我理想中想要的是一种将我们所有的库作为子存储库(或可能的子树)并保持我们现在使用的相同相对路径方案的方法。

我只提出了一种可能的方法来做到这一点。每个库都有两个存储库,一个用于开发,另一个包含测试代码,第一个存储库作为子存储库。然后像往常一样使用 subrepo。

有没有办法不将整个仓库用作子仓库,而只使用一个文件夹?

0 投票
1 回答
279 浏览

git - 添加修改过的不属于自己的 git 子模块

是否可以添加您在本地修改但您不是其所有者的 git 子模块,因此无法推送到远程。目前我的 repo 只添加了一个指向原始子模块的链接,但没有我对它的修改。但我希望将包括我的修改在内的全部内容推送到我的远程仓库。

到目前为止,我做了以下事情:

0 投票
1 回答
250 浏览

git - 使用 sourcetree 将 Git 项目复制到带有子模块的新仓库

我想要完成的工作 我想复制一个 wordpress “入门主题”,我将其与来自各种 repos 的子模块库放在一起。(例如 normalize-css 或 scrollmagic)。它在我当前的项目文件夹中运行良好,但是当我尝试将主题复制到新文件夹,重命名父主题文件夹,然后将其添加到新仓库时,我无法让它显示在 sourcetree 中。它只是想像常规文件一样将子模块文件添加到主仓库中。

我尝试过的: 首先,我将启动主题文件夹复制到一个新位置并给它一个新名称。然后我更新了其中的文件以反映以下区域中的新文件夹名称:“模块 .git 文件”驻留在子模块文件夹中,在“项目根 .gitmodules 文件”中。我还注意到在项目根 .git 文件夹中,也出现了一个模块文件夹。我不知道该怎么办。我将它复制到新的 .git 文件夹位置,并在一对夫妇上使用适当的文件夹名称更改更新了配置文件作为测试,但似乎没有做任何事情。附注我也尝试了子回购,但也遇到了麻烦。

这是我必须手动添加到每个新项目的东西,还是有办法将它们转移到新的仓库?

原始文件夹结构 | 下面的新文件夹结构比较(如果有帮助) 在此处输入图像描述

第一个是我开始的分支,New 是我复制过来的分支。

在此处输入图像描述 在此处输入图像描述

0 投票
0 回答
47 浏览

git - 在 subrepo 中开发而不提交原始 repo

我们的项目有一个私有的 Git 存储库,我们目前在子文件夹中有另一个众所周知的存储库 - 作为子存储库(使用https://github.com/ingydotnet/git-subrepo)。当知名 repo 的新版本可用时,我们希望将它包含在我们的 repo 中。但是,我们在子文件夹中做了一些与我们相关的更改。我们不想将我们的更改提交到众所周知的 repo,但我们也不想丢失它们 - 我们希望将它们与新版本合并。

目前使用“git surepo”我没有看到非手动的方式来做到这一点。没有正确的方法将子存储库升级到一个版本 - 可以在没有分支或标签的情况下拉出主库,但要拉出标签,唯一的选择是从头开始,因此必须删除子存储库目录,显然,删除我们所有的更改。

我们已经研究了 subrepo 的其他替代方案,但如果它们在这种情况下工作,它们似乎并没有让生活变得更好。他们之中有一些是:

  • 手动添加更改是最后的手段
  • 有一个单独的存储库(由于这个项目的具体情况,我们试图避免它,而且显然更难维护)
  • git submodule 并没有让它变得更好,并增加了其他问题
  • git fork 是可能的,但是需要做很多工作才能到达那里并且非常复杂

我希望我已经把问题说清楚了。请问这里有什么想法吗?