- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的项目中有一个文件夹,其中包含我想包含在我的每个应用程序组件中的常用工具。我只想要它的一个主版本,我希望其余的副本像往常一样用 git 命令更新。有没有办法在将所有内容保存在同一个存储库中的同时做到这一点?我知道 got 子模块适用于多个存储库,但它似乎不适用于单个存储库。有没有人对此事有任何见解?
最佳答案
您可能需要查看 git subtree
。看看这两篇文章:
它的文档没有在 git-scm.org 上提供(我不能说为什么),你可以通过键入 git help subtree
来阅读它,或者从 git
的仓库:
从技术上讲,您可以将 repo 作为子模块包含在其自身中;不寻常的东西会来自:
假设您的代码如下所示:
Readme.md
libs/util/fileA.py
libs/util/fileB.py
src/main.py
并且您希望将 libs/util/
的内容作为“自托管”子模块。
这意味着你的 repo 协议(protocol)的某个提交的完整内容应该是:
fileA.py
fileB.py
在同一个存储库中,您将有一个代表“完整项目”的提交和一个代表“只是实用程序库”的提交。
这是完全可控的,一开始只是令人惊讶。
因为你的 repo 可能已经有一个名为 master
的分支,它代表你的“完整”项目的状态,你不能将那个名称用于“子模块”部分的分支。
最简单的方法是选择一组专用于该子模块的名称(例如:util/*
)并坚持使用。
在同一分支中提交完整的 repo 和仅提交子模块没有多大意义。专用于子模块的分支与“完整”项目的分支无关。
再一次:git 可以完美地管理它。这是在您的 repo 中创建这样一个起始分支的一种方法:
# from your repo's 'master' branch :
git checkout -b util/master
git filter-branch --subdirectory-filter libs/util
当您查看 git-subtree
的工作原理时,它允许您处理相同类型的设置:不相关的分支存储在同一个 repo 中,并在您选择的位置 checkout 子分支.
它的主要优点是:因为它从一开始就打算以这种方式工作,所以这些命令可能会给您带来更少的摩擦,并且减少在您的存储库中搞砸事情的方式。
关于git - 我可以在同一个存储库中使用 git submodule 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64810428/
我有一个子模块,当我执行 git status 时,我得到: modified: (modified content) 我跑: git submodule update 但仍然得到: modi
我有一个子模块,当我执行 git status 时,我得到: modified: (modified content) 我跑: git submodule update 但仍然得到: modi
有什么区别吗 git submodule init && git submodule update --recursive 和 git submodule update --init --recurs
我掌握了 git submodule 的窍门(一厢情愿?),我想出了更具体的问题,这是一个好兆头...... 我试图在 .gitmodules 中找到 super 项目所指的子模块的哪个版本。和 .g
我花了很多时间阅读和尝试 git 子模块。但我真的放弃了。 我的问题: 我正在克隆一个 git 存储库作为子模块。所以,我做 git submodule add -b master url local
我无法推送我对 git 子模块所做的更改。我已经推送了主项目,得到了这个 mainProject$ git status On branch myBranch Changes not staged f
我正在使用 ROS 构建一个项目,因此,catkin_make 用于构建我的 ROS 节点和库。 我面临的问题是:我在一个包(包 A)中使用一个 git 子模块(因此,我有一个分层的包含文件夹结构)并
我在当前存储库中用作子模块的存储库名称是 droid-media-lib,但是放置此子模块的目录名称是 库 所以我的.gitmodules 看起来像这样 [submodule "droid-media
标题可能听起来有点含糊,但这里有一个错误的例子。假设我们有三个模块 ModuleA、ModuleB 和 ModuleC,因此 ModuleA 依赖于 ModuleB 和 ModuleB 依赖于 Mod
我有一个包含嵌套子模块的 git 仓库。下面两个命令有什么区别? git submodule update --init --recursive git submodule foreach --rec
我有一个 dotfiles 存储库,其中我所有的 vim 插件都存储为子模块,因此当它们有更改时很容易更新。我以为这两个命令做同样的事情,但我注意到这一定不是这种情况。 我知道我在几个子模块中有更新要
当我执行 git submodule update --init 时出现错误 fatal: Needed a single revision Unable to find current revisi
我正在使用 git submodule 在项目之间构建和共享组件。该项目尚未投入生产,因此,此时子模块运行良好。 但是我担心维护和部署,将其转换为 npm 包是个好主意吗? 最佳答案 一个 npm 包
typing 模块将两个类 io 和 re 导出为“伪子模块”,如下所示。通过赋予它们 __all__ 并将它们添加到 sys.modules 中,使它们看起来像模块的目的是什么? 我理解将它们排除在
在我 git submodule update 之后,它总是检查同一个提交。例如 34561。 我为子模块执行 git checkout master,然后执行 git submodule sync。
我一直对此感到困惑: $ git submodule You need to run this command from the toplevel of the working tree. 为什么我需
我刚 pull https://github.com/kolanos/kohana-universe现在我正在尝试更新所有正在运行的模块: git submodule update --init --
我觉得使用 Git 子模块对我的开发工作流程来说有点麻烦。我听说过 Git 子树和 Gitslave。 是否有更多适用于多个存储库项目的工具以及它们如何比较? 这些工具可以在 Windows 上运行吗
我正在尝试开发具有不同“子模块”的 API。例如,有一个称为“todo”,另一个称为“newsletter”。 我想要做的是,我希望能够在开发过程中运行模块本身,并且我希望能够在服务器上运行整个 AP
我正在尝试将子模块支持添加到 project of mine ,但是我似乎无法使用 JGit 来读取特定的提交或记录,而命令行 git 可以很好地做到这一点,尽 pipe 模块所在的头部是分离的(就子
我是一名优秀的程序员,十分优秀!