使用带有子存储库和子模块的深层 Git 存储库-存储库更改权限?

2024-01-26

我决定默认限制存储库树中的可见范围,以便为精美的东西创建公共文件夹。现在因为有很多子存储库,我得到了一个痛苦的提交或一些聪明的想法。我不确定最好的方法 - 我考虑过使用 find 遍历存储库,然后对每个存储库进行一致的虚拟提交,例如"default perms lower and polished public things to public dir in the root to get the quality up"但我可能正在重新发明轮子。我不能选择限制子存储库和子模块的数量,因此提交必须从最低的存储库开始,然后如果使用 find 则逐渐向上遍历。

如何处理这种深度 Git repo-repo -tree 更新?

或许相关

  1. Git:如何避免使用子子子子... Git -repos 重复提交? https://stackoverflow.com/questions/10068119/avoid-repetitive-committing-with-sub-sub-sub-git-repos

  2. Git:管理和构建项目的工具? https://stackoverflow.com/questions/11253615/git-a-tool-to-manage-and-to-structure-projects-in-the-version-control


使用更好的工具!

避免黑客攻击,例如$ find . -exec git checkout '{}' \;然后递归/手动修复权限。有一个名为 Gitslave 的工具,可以更轻松地管理不断扩展的投资组合。有价值的文章here http://sethrobertson.github.com/GitBestPractices/#tool。我还建议您阅读此主题here https://stackoverflow.com/a/11371872/164148,再次出现 SethRobertson 的文章——非常好的读物。

为什么需要 Gitslave?

假设您对存储库进行了更改Happy.git在结构上像"Works.git > Project.git > Pictures.git > Happy.git"。然后有人 尝试从您的裸 -git 存储库中提取数据,例如Project.git。因为 你是个混蛋,你只在Happy.git。现在你的 朋友会得到一些令人讨厌的错误。一个懒惰的 git 会使用gitslave -tool.

$ mkdir t1; cd t1; mkdir t2; cd t2; mkdir t3; git init; echo "t3" >t3; git add .; git commit -m "t3"; cd ..; git init; echo "t2" >t2; git add .; git commit -m "t2"; git init; echo "t1" >t1; git add .; git commit -m "t1"; cd ..; cd t1/t2/t3; echo "only here">only; git add .; git commit -m "only"; cd ../..; git status
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
# t2/
$ Look you need to do repetitive work because you did not use Gitslave!

安装 Gitslave 的演练

不幸的是,Gitslave 还没有在 Apt-get 中,所以下载here http://gitslave.sourceforge.net/.

看起来有点像Maven,更多here https://stackoverflow.com/questions/11253615/structure-of-projects-in-version-control-something-like-maven-for-non-java-pro。 您可以通过它来管理您的项目。首先,您指定 super -repo 然后附加从库。

$ git clone http://someGitRepoHere.com/xyz.git super
$ cd super; gits prepare
$ gits attach http://someBareRepo.git yourDirHere

更多线路,例如 153here http://gitslave.git.sourceforge.net/git/gitweb.cgi?p=gitslave/gitslave;a=blob;f=README;h=15cc7076fc876c402ad86bd1e4de7ac6c53ee278;hb=e096b161b5bf7cac1ac537fa749bb27daa2ac999.

当 Gitslave 进入诸如 apt-get 之类的包管理软件时,我将继续这个答案,这样它对人们更有用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用带有子存储库和子模块的深层 Git 存储库-存储库更改权限? 的相关文章

  • 致命:无法将 HEAD 解析为有效引用

    我正进入 状态fatal Failed to resolve HEAD as a valid ref 每当我尝试承诺时 我努力了 echo ref refs heads master gt git HEAD 但它不起作用 也尝试过 git
  • 如何将 GIT 调用的输出获取到批处理脚本中的变量中?

    我有一个 git 命令来获取当前存储库的最新 SHA 如下所示 git log pretty format H n 1 我有一个 Windows 批处理脚本 我想按如下方式使用它 SET CURRENT SHA 但我不知道如何将从 git
  • 如何禁用 GitHub 中的拉取请求?

    我试图了解如何禁用 github 中的 拉取请求 问题一 我们正在尝试使用变基工作流程 这意味着如果不是快速推进 那么使用拉取请求可能会有害 一种解决方案 为我想要禁用拉取请求的分支设置分支权限 或者将我添加为任何进入 master 的内容
  • 在 .gitconfig 中隐藏 GitHub 令牌

    我想将所有点文件存储在 GitHub 上 包括 gitconfig 这需要我将 GitHub 令牌隐藏在 gitconfig 中 为此 我有一个 gitconfig hidden token 文件 这是我打算编辑并放在隐藏令牌的 git 下
  • 自动同步两个 git 存储库

    是否可以保持同步两个 Github 存储库 远程 的特定文件夹 有两个 github 存储库 repoA 和 repoB 这两个存储库都有名为 ABC 的文件夹以及其他独特的文件夹 如果repoA的文件夹ABC中的任何文件有更新 我想自动更
  • 更改先前提交的作者姓名:快进推送被拒绝

    我最近在 GitHub 上打开了一个存储库 我是 Git 新手 与新人一样 我使用默认名称和电子邮件进行提交 按照最佳菜鸟传统 我发现五次提交为时已晚 现在乐趣开始了 因为我开始搜索有关如何更改这些提交的作者和提交者名称的信息 美好的 我基
  • 使用 TFS REST API 获取 Git 提交的最新关联工作项

    我正在尝试获取关联的工作项使用 TFS REST API 进行 GIT 提交 https www visualstudio com en us docs integrate api git commits 我的请求 URL 如下所示 htt
  • GIT 和 Ruby:如何从 ruby​​ 脚本内部取消设置 GIT_DIR 变量?

    我编写了一个非常简单的 部署 脚本作为我的post update挂钩到我的裸 git 存储库中 变量如下 live domain mydomain com staging domain stage mydomain com git repo
  • http.h:6:23: 致命错误:curl/curl.h:没有该文件/目录

    我在 CentOS 7 中下载 git 包 wget https www kernel org pub software scm git git 2 0 1 tar gz tar xzf git 2 0 1 tar gz 当我编译git时
  • 如何停用 Xcode git 功能? (删除 git 集成)

    我的 Xcode 项目位于 git 上 但我不喜欢 Xcode git 集成 有时 我有来自 Xcode 的错误 https stackoverflow com questions 7388560 error fatal not a git
  • 如何获取 git 存储库中所有文件的计数?

    如何获取 git 存储库中当前所有文件的计数 您可以使用以下命令获取 git 存储库中所有跟踪文件的计数 git ls files wc l 命令分解 The git ls files命令本身打印出存储库中所有跟踪文件的列表 每行一个 Th
  • Git 中的数据完整性?

    我现在已经多次听到提到 Git 提供数据完整性 但是 这是什么意思 据我所知 git 中的所有对象都是使用 SHA 1 校验和来访问的 并且该校验和是根据文件的内容计算的 这意味着如果文件发生更改 您将得到不同的校验和 但这如何提供数据完整
  • VS Code 在交互式变基期间不会等待我 [重复]

    这个问题在这里已经有答案了 如果我使用交互式变基git rebase i使用为 Git 配置的默认编辑器 一切都运行良好 如果我在我的全局中添加以下内容 gitconfig core editor C Program Files x86 M
  • Android repo 脚本创建的 .repo/projects/ 中的裸 git 存储库的用途是什么?

    The 安卓源码 http android git kernel org 由以下人员管理repo http source android com source version control html 使用 repo 同步时 一个名为 re
  • 删除 Xcode 项目的源代码控制

    我在 Xcode 项目上使用源代码控制已经有一段时间了 但现在我不想使用源代码控制 如何从 Xcode 中的项目中删除源代码控制 有三种方法 方法 1 将禁用所有项目的源代码管理 方法 2 将删除所有项目的单个存储库的链接 方法 3 将删除
  • 结帐时出现 Git 错误:“致命:引用不是树”

    当我决定弄清楚为什么我正在从事的项目如此重要时 这一切就开始了 我运行了以下脚本 git rev list objects all git cat file batch check objecttype objectname objects
  • 为什么从网上下载Git 2.0,总是得到1.9.4的安装包?

    为什么从网上下载Git 2 0 总是得到1 9 4的安装包 为什么你不能在互联网上的任何地方找到一个不仅标记为 2 0 而且你下载的安装存档也标记为这样的 Git 安装程序包 例如 这个2 1 3 站点 http git scm com d
  • Git撤销本地分支删除

    我刚刚删除了错误的分支 并进行了一些我需要的实验性更改git branch D branchName 如何恢复分支 您可以使用git reflog http git scm com docs git reflog查找分支最后一次提交的 SH
  • git rebase 吃了我的提交!为我翻译“git reflog”输出?

    我已经完成了五次提交 我想在推送它们之前将它们全部合并为一次提交 出于某种原因 我决定尝试通过与通常使用的不同的方式来做到这一点 FWIW 我试图按照此处的说明进行操作http gitready com advanced 2009 02 1
  • 是否可以使用“git gc”来打包引用日志对象?

    正如答案所暗示的https stackoverflow com a 32025729 https stackoverflow com a 32025729我已经配置了远程裸仓库 git config gc pruneExpire never

随机推荐

  • JavaFX - 动态关闭 TabPane 中的选项卡

    我有一个带有可关闭选项卡的 TabPane 当用户单击选项卡内容中的按钮时 我想触发 关闭选项卡事件 这是用户单击按钮时调用的方法 public class CustomTab extends Tab protected void clos
  • 我应该安装@types/node吗? VSCode 好像自动安装了

    我看到很多人都在安装 types node在他们的开发依赖项中 但是 如果您在 VSCode 中打开一个空文件夹 并创建一个空的 js 文件 然后输入 const fs require fs lt hover it and type sho
  • GNU Make for 带有两个变量的循环

    我想写一些这样的内容 foreach var1 var2 LIST1 LIST2 cp var1 var2 我该如何在 GNU makefile 中执行此操作 Beta关于使用join的建议是正确的 但问题是 以构造包含空格的命令行的方式使
  • Firestore 活动文档快照侦听器中断排序

    我遇到了一个 Firestore 问题 希望有人可以帮助我解决 我有一个活动文档快照侦听器 它似乎破坏了排序行为 我不确定为什么 在组件的构造函数中 我初始化文档快照侦听器一次 this listen this fs collection
  • 数据库允许应用程序始终通过 SP 进行 CRUD 操作是最佳实践吗?

    我听过这背后的推理 我很好奇其他人是否认为这是最佳实践 好主意 一种推理是 限制对数据库表的直接访问 并强制应用程序 用户使用 SP 存储过程 进行 CRUD 操作将允许 DBA 在将 SP 投入生产之前进行细粒度控制以批准 审查 SP 避
  • 从 monodroid 类库访问资源

    是否可以从引用类库的 monodroid 应用程序中的 monodroid 类库访问文件 使用构建操作 AndroidAsset 我在类库中创建了一个 Assets 文件夹 并添加了一个带有构建操作 Android Asset 的文本文件
  • 如何减少 TextField 上 prefixIcon 的填充?

    我不知道如何超越 48px 材质库默认值 我快速浏览了 SDK 但没有找到任何东西 我知道这与 prefixIcon 参数本身有关 因为无论里面放什么 它总是 48px 或其他任何值 我有一个自定义 SDK 所以如果有人知道它在哪里 我想减
  • GIT 接收后结账,无需根文件夹

    我是 git 新手 试图弄清楚如何通过检查网络根目录来更新每次推送的网站 我搜索了 stackoverflow 只找到了有关如何克隆的主题 这不是我想要的 到目前为止 我已经设置了本地和远程存储库 以及接收后挂钩 bin sh GIT WO
  • iOS:在 UIImage 上绘制 NSString 和边框

    我想在我已有的 UIImage 上绘制一个 NSString 和一个边框 我找到了一种将 NSString 绘制为 UIImage 的方法 但我需要它在我提供的图像上绘制 UIImage imageFromText NSString tex
  • Android Firebase Analytics 控制台中的自定义事件报告

    如果这是发布此问题的不正确位置 请提前接受我的歉意 因为我不确定会是什么 我想要完成的是甚至使用 Firebase 分析来记录自定义 该分析在 Firebase 控制台中生成与他们的示例类似的报告select content事件 其触发方式
  • 无法安装 phpMyAdmin 错误:php71w-common 与 php-common-5.4.16-43.el7_4.1.x86_64 冲突

    我刚刚安装了 CentOS 7 和 PHP 7 1xx 和 MySQL 但无法安装 phpMyAdmin 我有一条错误消息 但在 Google 上没有答案 是的 只有一个答案 但它本身给了我相同的错误消息 rpm iUvh http dl
  • MySQL:`... ADD INDEX(a); 之间的区别... ADD INDEX(b);` 和 `... ADD INDEX(a,b);`?

    有人可以告诉我这两者有什么区别 ALTER TABLE x1 ADD INDEX a ALTER TABLE x1 ADD INDEX b AND ALTER TABLE x1 ADD INDEX a b 我知道这涉及到最基本的问题 但有时
  • Javascript 合并具有嵌套属性的对象

    让我们看一下下面的例子 var ref fullName rules type string minLength 4 maxLength 64 description Full name of a user var user fullNam
  • 如何将大文件导入到 PostgreSQL 中?

    我在一个新项目中 现在必须使用现有的 PostgreSQL 数据库 该应用程序是使用 CakePHP 构建的 我在导入时面临的问题是数据库的文件大小约为 4 8 GB 而我对 PostgreSQL 完全陌生 我曾研究过 MySql 和 No
  • 数据结构填充

    C 中的数据结构填充是什么以及如何检查填充字节的字节数 class a public int x int y int z 处理器要求某些类型的数据具有特定的对齐方式 例如 处理器可能需要int位于 4 字节边界上 因此 例如 一个int可以
  • LinkedBlockingQueue 的 Java 性能问题

    这是我在 stackoverflow 上的第一篇文章 我希望有人能帮助我 我的 Java 6 性能大幅下降LinkedBlockingQueue 在第一个线程中 我生成一些对象并将其推入队列 在第二个线程中 我将这些对象拉出来 当take
  • 如何在 Nunit 中调用 WPF Dispatcher?

    我想测试一个使用数据字段值呈现文本块的应用程序 渲染完成后 我想获得实际宽度和实际高度 一切正常 当我尝试测试该应用程序时 问题首先出现 我无法从测试项目调用调度程序 以下是代码 this Loaded s e gt TextBlock t
  • Xcode 6.1 - 如何卸载命令行工具?

    我通过发出安装了 Xcode 命令行工具xcode select install 现在我想卸载它 不卸载Xcode 我试过了 sudo Developer Library uninstall devtools mode all 但后来我得到
  • 模块依赖 - Android Studio

    我的项目 M1 M2 下有 2 个模块 Project M1 M2 早些时候 我将 M1 作为我的主要应用程序 然而 需要新的应用程序 M2 与 M1 共享许多通用内容 因此 我创建了一个新模块 M2 并以 M1 作为依赖项 为了实现这一点
  • 使用带有子存储库和子模块的深层 Git 存储库-存储库更改权限?

    我决定默认限制存储库树中的可见范围 以便为精美的东西创建公共文件夹 现在因为有很多子存储库 我得到了一个痛苦的提交或一些聪明的想法 我不确定最好的方法 我考虑过使用 find 遍历存储库 然后对每个存储库进行一致的虚拟提交 例如 defau