英语法语西班牙语

Ad


OnWorks 网站图标

git-update-index - 云端在线

在 OnWorks 免费托管服务提供商中通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器运行 git-update-index

这是 git-update-index 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


git-update-index - 将工作树中的文件内容注册到索引

概要


混帐 更新索引
[--添加] [--删除 | --force-remove] [--replace]
[--刷新] [-q] [--未合并] [--忽略缺失]
[(--cacheinfo , , )...]
[--chmod=(+|-)x]
[--[无-]假设-不变]
[--[no-]跳过工作树]
[--忽略子模块]
[--[无-]拆分索引]
[--[no-|force-]未跟踪缓存]
[--really-refresh] [--unresolve] [--again | -G]
[--仅信息] [--索引信息]
[-z] [--stdin] [--index-version ]
[--详细]
[--] [ ...]

商品描述


修改索引或目录缓存。 提到的每个文件都会更新到索引中
任何 未合并 or 需要 更新 状态被清除。

参见 混帐添加(1) 以更人性化的方式做一些最常见的操作
指数上。

方式 混帐 更新索引 处理它被告知的文件可以使用各种修改
opţiuni:

配置


- 添加
如果指定的文件不在索引中,则添加它。 默认行为是
忽略新文件。

- 消除
如果指定的文件在索引中但丢失,则将其删除。 默认行为
是忽略删除的文件。

- 刷新
查看当前索引并检查是否需要合并或更新
检查 stat() 信息。

-q
安静的。 如果 --refresh 发现索引需要更新,默认行为是
出错了。 此选项使 混帐 更新索引 继续。

--忽略子模块
不要尝试更新子模块。 此选项仅在之前通过时才受到尊重
- 刷新。

--未合并
如果 --refresh 在索引中发现未合并的更改,则默认行为是错误
出去。 此选项使 混帐 更新索引 继续。

--忽略缺失
在 --refresh 期间忽略丢失的文件

--缓存信息, , , --cacheinfo
直接将指定的信息插入到索引中。 为了向后兼容,您可以
也将这三个参数作为三个单独的参数提供,但新用户
鼓励使用单参数形式。

--索引信息
从标准输入读取索引信息。

--chmod=(+|-)x
设置更新文件的执行权限。

--[no-] 假设不变
指定此标志时,不会更新为路径记录的对象名称。
相反,此选项设置/取消设置路径的“假设未更改”位。 当。。。的时候
“假设未更改”位打开,用户承诺不更改文件并允许 Git
假设工作树文件与索引中记录的内容相匹配。 如果你
要更改工作树文件,您需要取消设置位以告诉 Git。 这是
在运行速度非常慢的文件系统上处理大型项目时,有时会有所帮助
统计(2) 系统调用(例如cifs)。

Git 将失败(优雅地)以防它需要修改索引中的这个文件,例如当
合并提交; 因此,如果假定未跟踪的文件在上游发生更改,您
将需要手动处理这种情况。

--真刷新
喜欢 - 刷新, 但无条件地检查统计信息,不考虑
“假设不变”设置。

--[no-] 跳过工作树
当指定这些标志之一时,为路径记录的对象名称不是
更新。 相反,这些选项设置和取消设置路径的“跳过工作树”位。
有关更多信息,请参阅下面的“跳过工作树位”部分。

-g, --再次
运行 混帐 更新索引 自己在索引条目与那些不同的路径上
从 HEAD 提交。

--未解决
恢复 未合并 or 需要 更新 合并期间文件的状态,如果它是
意外清除。

--仅信息
不要在对象数据库中为所有人创建对象紧随其后的论据
旗帜; 只需将它们的对象 ID 插入索引即可。

--强制删除
即使工作目录仍然有这样的文件,也可以从索引中删除该文件。
(暗示 --remove。)

- 代替
默认情况下,当索引中存在文件路径时, 混帐 更新索引 拒绝尝试
添加路径/文件。 同样,如果文件路径/文件存在,则无法添加文件路径。
使用 --replace 标志,与添加的条目冲突的现有条目是
自动删除警告消息。

--标准输入
不要从命令行获取路径列表,而是从命令行读取路径列表
标准输入。 默认情况下,路径以 LF 分隔(即每行一个路径)。

--详细
报告正在添加和从索引中删除的内容。

--index-version
以指定的磁盘格式版本写出结果索引。 支持的版本
分别为 2、3 和 4。当前默认版本为 2 或 3,具体取决于是否额外
使用功能,例如 git add -N。

版本 4 执行简单的路径名压缩,将索引大小减少 30%-50%
大型存储库,这导致更快的加载时间。 版本4比较年轻
(于 1.8.0 年 2012 月在 XNUMX 中首次发布)。 其他 Git 实现,例如 JGit
而 libgit2 可能还不支持它。

-z
仅对 --stdin 或 --index-info 有意义; 路径用 NUL 字符分隔
而不是 LF。

--分割索引,--无分割索引
启用或禁用拆分索引模式。 如果启用,索引被分成两个文件,
$GIT_DIR/index 和 $GIT_DIR/sharedindex。 . 变化累积在
$GIT_DIR/index 而共享索引文件包含所有索引条目保持不变。
如果 split-index 模式已经启用并且再次给出 --split-index ,则所有更改
在 $GIT_DIR/index 中被推回共享索引文件。 该模式专为
需要大量时间来读取或写入的非常大的索引。

--untracked-cache, --no-untracked-cache
启用或禁用未跟踪的缓存扩展。 这可以加快执行以下命令的速度
涉及确定未跟踪的文件,例如 git status。 底层运营
如果添加文件,系统和文件系统必须更改目录的 st_mtime 字段或
在该目录中删除。

--强制未跟踪缓存
为了安全起见,--untracked-cache 对工作目录执行测试以确保
可以使用未跟踪的缓存。 这些测试可能需要几秒钟。
--force-untracked-cache 可用于跳过测试。

--
不要将更多参数解释为选项。


要操作的文件。 请注意,以开头的文件 . 被丢弃。 这包括 ./file
和目录/./文件。 如果您不想要这样,请使用更简洁的名称。 这同样适用于
目录结尾 / 和路径 //

使用 - 刷新


- 刷新 不计算新的 sha1 文件或更新索引
模式/内容更改。 但它是什么 做的是“重新匹配”文件的统计信息
使用索引,以便您可以刷新尚未更改但未更改的文件的索引
其中 stat 条目已过时。

例如,你想在做一个 混帐 读树, 链接 stat 索引
详细信息与适当的文件。

使用 --缓存信息 OR --仅供参考


--缓存信息 用于注册不在当前工作目录中的文件。 这个
对于最小结帐合并很有用。

假设您在路径中有一个带有 mode 和 sha1 的文件,请说:

$ git update-index --cacheinfo , ,

--仅信息 用于注册文件而不将它们放在对象数据库中。 这是
对仅限状态的存储库很有用。

以上皆是 --缓存信息--仅信息 行为类似:索引已更新,但对象
数据库不是。 --缓存信息 当对象在数据库中但文件中时很有用
本地不可用。 --仅信息 当文件可用时很有用,但你不
希望更新对象数据库。

使用 --索引信息


--index-info 是一种更强大的机制,可让您提供多个条目定义
来自标准输入,专为脚本设计。 它可以接受输入
三种格式:

1.模式SP sha1 TAB路径

第一种格式是“git-apply --index-info”报告的格式,用于重建一个
当回退到 3 路合并时,用于虚假合并基础树的部分树。

2.模式SP类型SP sha1 TAB路径

第二种格式是东西 混帐 ls-树 输出到索引文件中。

3.模式SP sha1 SP阶段TAB路径

这种格式是将高阶stage放入索引文件并匹配 混帐 ls-文件
- 阶段 输出。

要将更高阶段的条目放置到索引中,应首先通过提供一个
mode=0 路径条目,然后以第三种格式提供必要的输入行。

例如,从这个索引开始:

$ git ls-文件 -s
100644 8a1218a1024a212bb3db30becd860315f9f3ac52 0 frotz

您可以将以下输入提供给 --index-info:

$ git 更新索引--索引信息
0 0000000000000000000000000000000000000000 弗罗茨
100644 8a1218a1024a212bb3db30becd860315f9f3ac52 1 frotz
100755 8a1218a1024a212bb3db30becd860315f9f3ac52 2 frotz

输入的第一行输入0作为删除路径的模式; SHA-1 没有
只要格式正确就很重要。 然后第二和第三行馈送阶段 1 和
该路径的第 2 阶段条目。 完成上述操作后,我们将得到以下结果:

$ git ls-文件 -s
100644 8a1218a1024a212bb3db30becd860315f9f3ac52 1 frotz
100755 8a1218a1024a212bb3db30becd860315f9f3ac52 2 frotz

使用 “认为 不变”


Git 中的许多操作都依赖于您的文件系统才能有效地 统计(2)
实现,以便可以廉价地检查工作树文件的 st_mtime 信息
查看文件内容是否与索引文件中记录的版本不同。
不幸的是,一些文件系统效率低下 统计(2). 如果您的文件系统是其中之一
它们,您可以将“假设不变”位设置为您未更改的路径,以使 Git 不更改
做这个检查。 请注意,在路径上设置此位并不意味着 Git 会检查
文件的内容以查看它是否已更改——它使 Git 省略任何检查和
假设它有 不能 改变了。 当您对工作树文件进行更改时,您必须
通过在之前或之后删除“假设不变”位来明确告诉 Git
你修改它们。

为了设置“假设不变”位,请使用 --assume-unchanged 选项。 要取消设置,请使用
--no-assume-unchanged。 要查看哪些文件设置了“假设不变”位,请使用 git
ls-files -v(见 git-ls-文件(1))。

该命令查看 core.ignorestat 配置变量。 如果这是真的,路径
使用 git update-index 路径更新...以及使用其他 Git 命令更新的路径
更新索引和工作树(例如 混帐 应用 - 指数, 混帐 结帐索引 -u混帐
读树 -u) 被自动标记为“假设不变”。 注意“假设不变”
位是 不能 设置是否 git update-index --refresh 发现工作树文件与索引匹配
(如果要将它们标记为“假设未更改”,请使用 git update-index --really-refresh)。

示例


仅更新和刷新已签出的文件:

$ git checkout-index -n -f -a && git update-index --ignore-missing --refresh

在设置了 core.ignorestat 的低效文件系统上

$ git update-index --really-refresh (1)
$ git update-index --no-assume-unchanged foo.c (2)
$ git diff --仅名称 (3)
$ 编辑 foo.c
$ git diff --仅名称 (4)
M foo.c
$ git 更新索引 foo.c (5)
$ git diff --仅名称 (6)
$ 编辑 foo.c
$ git diff --仅名称 (7)
$ git update-index --no-assume-unchanged foo.c (8)
$ git diff --仅名称 (9)
M foo.c

1. 军队 统计(2) 为匹配索引的路径设置“假设不变”位。
2. 标记要编辑的路径。
3. 这确实 统计(2) 并找到索引匹配的路径。
4. 这确实 统计(2) and finds index 确实 不能 匹配路径。
5. 将新版本注册到索引集“假设不变”位。
6. 并且假定不变。
7. 即使在您编辑它之后。
8. 你可以告诉你事后的变化。
9. 现在它检查 统计(2) 并发现它已被更改。

跳过工作树


跳过工作树位可以用一个(长)句来定义:当阅读一个条目时,如果它是
标记为跳过工作树,然后 Git 假装它的工作目录版本是最新的并且
改为阅读索引版本。

详细地说,“读取”意味着检查文件是否存在,读取文件属性或文件
内容。 工作目录版本可能存在或不存在。 如果存在,其内容
可能与索引版本匹配或不匹配。 写入不受该位影响,内容
安全仍然是第一要务。 请注意,Git 能够 更新工作目录文件,即
标记为跳过工作树,如果这样做是安全的(即工作目录版本匹配索引
版)

虽然这个位看起来类似于假设不变位,但它的目标不同于
假设不变位。 跳过工作树也优先于假设未更改的位
两者都已设置。

配置


该命令遵循 core.filemode 配置变量。 如果您的存储库位于
可执行位不可靠的文件系统,这应该设置为 false (见 混帐-
配置(1))。 这会导致命令忽略记录在
索引和文件系统上的文件模式,如果它们仅在可执行位上不同。 在这样的
一个不幸的文件系统,您可能需要使用 混帐 更新索引 --chmod=.

非常相似,如果 core.symlinks 配置变量设置为 false (见 混帐-
配置(1)),符号链接被检出为纯文件,该命令不
将记录文件模式从符号链接修改为常规文件。

该命令查看 core.ignorestat 配置变量。 看 运用 “认为 不变”
以上部分。

该命令还会查看 core.trustctime 配置变量。 它在以下情况下很有用
inode 更改时间由 Git 外部的某些内容定期修改(文件系统爬虫
和备份系统使用 ctime 来标记已处理的文件)(请参阅 混帐配置(1))。

使用 onworks.net 服务在线使用 git-update-index


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad