如何读取 git-ls-tree 输出的模式字段

2024-02-05

$ git ls-tree fb3a8bdd0ce
100644 blob 63c918c667fa005ff12ad89437f2fdc80926e21c    .gitignore
100644 blob 5529b198e8d14decbe4ad99db3f7fb632de0439d    .mailmap
100644 blob 6ff87c4664981e4397625791c8ea3bbb5f2279a3    COPYING
040000 tree 2fb783e477100ce076f6bf57e4a6f026013dc745    Documentation
100755 blob 3c0032cec592a765692234f1cba47dfdcc3a9200    GIT-VERSION-GEN
100644 blob 289b046a443c0647624607d471289b2c7dcd470b    INSTALL
100644 blob 4eb463797adc693dc168b926b6932ff53f17d0b1    Makefile
100644 blob 548142c327a6790ff8821d67c2ee1eff7a656b52    README
...

我知道最后 3 个八进制数字是文件模式,但是前 3 个数字是做什么用的? 我在 git 用户手册中找不到它。


来自 Gitindex-format.txt https://github.com/git/git/blob/master/Documentation/technical/index-format.txt文件,关于模式:

32-bit mode, split into (high to low bits)

    4-bit object type
      valid values in binary are 1000 (regular file), 1010 (symbolic link)
      and 1110 (gitlink)

    3-bit unused

    9-bit unix permission. Only 0755 and 0644 are valid for regular files.
    Symbolic links and gitlinks have value 0 in this field.

此外,还允许目录对象类型(二进制 0100)和组可写(0664 权限)常规文件,如fsck.c https://github.com/git/git/blob/master/fsck.c fsck_tree方法。常规的不可执行的组可写文件是早期版本的 Git 支持的非标准模式。

这使得有效模式(如二进制和八进制):

  • 0100000000000000 (040000): 目录
  • 1000000110100100 (100644): 常规非可执行文件
  • 1000000110110100 (100664): 常规非可执行组可写文件
  • 1000000111101101 (100755): 常规可执行文件
  • 1010000000000000 (120000): 符号链接
  • 1110000000000000 (160000): gitlink
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何读取 git-ls-tree 输出的模式字段 的相关文章

  • Hudson 结帐卡在“git fetch”处

    我正在使用 git 版本 1 6 2 2 1669 g7eaf8 在 Hudson 1 314 上使用 Hudson Git 插件 0 7 3 当我触发构建时 Hudson 执行 git fetch 但它永远不会返回 我把一只卡在那里14天
  • 如何在 Android Studio 中比较两个 Git 分支?

    我不确定是否可以将主分支 或任何其他分支 与当前功能分支进行比较 例如GIT does 我想要两个分支 主分支和功能分支 之间的差异 以便我可以在合并之前比较差异 我发现 Git UI 对用户不太友好 就像在 AS 中一样 我可以遍历代码并
  • 如何在 git diff 中按标点符号拆分单词?

    我对以下命令有一些运气 git diff color words lt gt space lt gt 但它似乎没有在第一个字符类中正确地否定方括号 我试过这个 git diff color words lt gt space lt gt 为
  • git分支和标签如何存储在磁盘中?

    我最近检查了我工作中的一个 git 存储库 其中有 10 000 多个分支和 30000 多个标签 新克隆后 存储库的总大小为 12Gigs 我确信没有理由拥有 10000 个分支机构 所以我相信它们会占用磁盘中相当大的空间 所以 我的问题
  • 如果文件已在服务器上,请避免使用 git-ftp 上传

    假设我有应用程序的本地副本 我将其推送到 github 然后使用 git ftp 将任何更改上传到我的服务器 我首先会使用 git ftp init u
  • git-svn --忽略路径

    我现在在 git svn 的 ignore paths 选项上挣扎了几个小时 试图从大型存储库中仅获取某些标签 我想在 dev 处开始获取 看起来像 gt svn ls http 192 168 0 2 svn repo corporati
  • Git - 推送到远程存储库中的远程跟踪分支

    当简单地做git push到远程存储库 其master分支得到更新 对于非裸存储库来说 这是不希望出现的情况 最近的 Git 版本显示的警告消息清楚地表明了这一点 我希望能够推送到远程存储库 并拥有其之一远程追踪分支进行更新 稍后 当我登录
  • Gerrit 安装后无法克隆所有项目存储库

    我有一个新设置的 Gerrit 实例 目前只有两个存储库 所有项目 binutils 测试 尝试克隆所有项目时 我收到以下错误 git clone ssh user hostname 29418 All Projects Initializ
  • 如何查看上次提交和现在之间发生了什么变化(进行一些更改后)

    与此类似question https stackoverflow com questions 1552340 how to list the file names only that changed between two commits但
  • git在Windows和Linux之间切换后强制刷新索引

    我有一个Windows和Linux共享的磁盘分区 格式 NTFS 它包含一个 git 存储库 约 6 7 GB 如果我只使用Windows or 只使用Linux操作 git 存储库一切正常 但是每次切换系统的时候git status命令将
  • 在 git 子模块中签出分支

    如何从子模块内更改分支 当我跑步时git branch从子模块内 我看到以下输出 gt git branch HEAD detached from 229a7b2 master 我如何将自己置于一个新的分支上 喜欢development 只
  • 如何修复树与树之间的 Git 错误断开链接?

    我的事务被中断 当我再次尝试时 我遇到了空或损坏的对象错误 在另一个问题之后 我删除了所有空文件 当我运行时 git fsck full 我收到这个错误 Checking object directories 100 256 256 don
  • git 预提交钩子格式代码 - Intellij/Android Studio

    本要点展示了如何在预提交时使用 Eclipse 格式化程序自动格式化 Java 代码 Source https gist github com ktoso 708972 https gist github com ktoso 708972
  • 运行“git apply”时出错

    当我尝试时 您能否告诉我如何解决 补丁不适用 错误 git 应用补丁 git apply 0001 my patch error patch failed test xml 114 error text xml patch does not
  • refname 不明确且拉取失败

    我运行了以下命令 因为我想将生产分支移回而不必先签出 git branch f production HEAD 1 现在 当我检查生产时 我收到以下警告 warning refname production is ambiguous 然后我
  • IntelliJ:查看本地和 git 提交/分支之间所有已更改文件的差异

    使用 IntelliJ 的 diff 查看器是检查代码的一种非常好的方法 因为您可以使用 IntelliJ 代码编辑器的所有功能 重构 完成等 在本地版本中进行更改 不幸的是 我还没有弄清楚当你在 IntelliJ 中进行代码审查时如何做最
  • 如何使用交互式变基将提交编辑为未提交?

    我想使用交互式变基来编辑以前的提交 但是当我进入该提交的编辑模式时 所有文件都已提交 我知道我可以进行更改并修改提交 但我希望所有更改最初都未提交 暂存或以其他方式 这样我就可以对其进行编辑 就像在最初提交之前一样 这可能吗 Imagine
  • 代表 Git 存储库的数学结构是什么

    我正在学习 Git 如果我能描述一下代表 Git 存储库的数学结构 那就太好了 例如 它是一个有向无环图 它的节点代表提交 它的节点有代表分支等的标签 每个节点最多一个标签 没有标签使用两次 我知道这个描述不正确 我只是想解释我正在寻找的内
  • 如何正确使用“mvn release:prepare”?

    我尝试了这个命令 用dryrun在我的 Maven 项目上进行测试 mvn release clean release prepare DdryRun true DgenerateBackupPoms false Dtag solocal
  • 自动将所有 GitHub 存储库镜像到 gitlab

    对于 GitLab 必须手动为每个存储库设置拉 推镜像 我想知道那里有any way可以自动将所有 Github 存储库同步到 GitLab 这样 当您在 GitHub 中创建新的存储库时 GitLab 中的存储库将自动创建 并充当拉取镜像

随机推荐

  • HeartBleed python 测试脚本

    我碰到这个Python脚本 https gist github com takeshixx 10107280测试服务器是否存在 HeartBleed 漏洞 有人能够解释 你好 的内容 正在发送的内容以及该内容是如何构造的吗 我并不是想恶意使
  • 无法写入请求:找不到适合请求类型和内容类型的 HttpMessageConverter [application/x-java-serialized-object]

    我正在尝试向第三方服务器发送 xml 请求并期待返回 xml 响应 我在这里附上用于配置 Cnfiguration 网关和通道 自定义 Rest 模板类和要执行的测试客户端的源代码 我们有各种用于 XML Posting 的消息转换器 但尽
  • 如何在 iOS 上获取 Cognito 用户池“sub”属性

    我正在使用 Cognito 用户池授权者 无 AWS IAM 选项 无自定义编码授权者 通过 API 网关调用 Lambda 方法并识别登录 iOS 客户端的用户 在 Lambda 上 我使用从 Cognito 用户池授权者处获得的用户 I
  • 如何在 PL/pgSQL IF 语句中运行 SELECT 查询

    我正在尝试使用以下代码在 PL pgSQL IF 语句中运行 SELECT 查询 DO do DECLARE query type real arr real array 1 BEGIN IF query type 1 THEN RETUR
  • Javascript匿名函数不更新全局变量

    我在一些代码中进行了 getJSON 调用 该调用似乎没有更新全局变量 但我不明白为什么 JSON 数据加载正常 但由于某种原因 全局 EventOptions 数组未在 for 循环中更新 大写的注释指的是变量 有任何想法吗 谢谢 fun
  • 无法在外键上创建表(错误号:150)

    我看到很多同样的问题 但我无法解决我的问题 如果我运行这段代码
  • 如何设置 thymeleaf th:来自其他变量的字段值

    我有一个简单的文本输入字段 我必须在其中设置一个对象的默认值并将其最终值保存在其他对象中 以下代码不起作用 div div
  • 简单的分布式 Erlang

    我有一个简单的模块 module dist compile add 3 add From X Y gt From X Y 我正在启动两个节点 一与 erl sname foo 另一个与 erl sname bar 在我正在做的酒吧节点上 g
  • 速度较慢的 numpy.argmax/argmin 的更快替代方案

    我正在使用很多argmin and argmax在Python中 不幸的是 该功能非常慢 我已经做了一些搜索 我能找到的最好的就在这里 http lemire me blog archives 2008 12 17 fast argmax
  • Firefox 4中的Greasemonkey脚本,想更改网页上的一行代码

    好吧 我会尽量让这件事变得尽可能简单 但不会太含糊 我想更改网页上的一行代码 以防止出现预览窗格 原始代码行 div class previewpane 我想将上面的行替换为 div class previewpane previewpan
  • 文件加密与内容加密不同吗

    加密文件和加密文件内容之间有什么区别吗 如果是这样 两者该如何做 文件加密是从外部加密整个文件 例如通过在 Windows XP 资源管理器中右键单击 内容加密通常被用作文件加密的同义词 但两者是不同的 内容加密是指对文件的内容进行加密 或
  • Pandas 合并错误:MemoryError

    Problem 我正在尝试将两个相对较小的数据集放在一起 但合并会引发MemoryError 我有两个国家贸易数据汇总数据集 我试图将其合并到关键年份和国家 地区 因此需要对数据进行特殊设置 不幸的是 这使得使用concat正如这个问题的答
  • 理解非齐次 numpy 数组

    我最近开始使用 numpy 并注意到一件奇怪的事情 import numpy as np a np array 1 2 3 4 5 9 8 print a shape shape print a 1 0 在这种情况下 形状是2L 但是 如果
  • 从 awk 调用 python 脚本

    大多数解决方案都从 python 调用 awk 但我想反过来做 我有一个从文件中提取信息的 python 脚本 然而 所述文件名在 awk 脚本的列中引用 如何向 python 传递参数 s20s 文件名并从标准输出获取输入 我想将输出添加
  • 填充嵌入的 UITableViewController

    我有一个使用导航控制器的应用程序 在其中一个视图中 我有一个视图容器 其中嵌入了使用静态单元格的 UITableViewController 我需要使用从上一个视图传入的数据来填充此表视图控制器的标签 流程如下 View1 gt segue
  • 用整数哈希替换字符串名称有哪些好方法

    通常 数据驱动设计中的实体和组件或游戏代码的其他部分都会有名称 如果您想准确地找出正在处理的对象 则需要检查这些名称 void Player Interact Entity myEntity if myEntity gt isNearEno
  • formGroup 需要一个 FormGroup 实例。请传一份

    情况 我正在尝试在我的 Ionic 2 应用程序中制作一个非常简单的登录表单 无论我尝试什么 我都会不断收到此错误 formGroup expects a FormGroup instance Please pass one in 代码 页
  • 使用命令行参数从 python 制作 exe 文件

    我想从使用命令行参数 argv 的 python 脚本创建一个 exe据我所知 py2exe 不支持命令行参数 我能做些什么 编辑 我使用的是 GUI2Exe 工具 所以我错过了控制台标志 但接受的答案是完全正确的 setup consol
  • PHP 正斜杠匹配

    PHP 中如何检查某个字符串是否包含正斜杠 检查是否出现strpos http php net manual en function strpos php if strpos string FALSE Found 以整数形式返回位置 如果未
  • 如何读取 git-ls-tree 输出的模式字段

    git ls tree fb3a8bdd0ce 100644 blob 63c918c667fa005ff12ad89437f2fdc80926e21c gitignore 100644 blob 5529b198e8d14decbe4ad