l10n: zh_CN: for git v2.23.0 l10n round 1~2
authorJiang Xin <worldhello.net@gmail.com>
Tue, 30 Jul 2019 02:02:22 +0000 (10:02 +0800)
committerJiang Xin <worldhello.net@gmail.com>
Fri, 16 Aug 2019 08:59:17 +0000 (16:59 +0800)
Translate 128 new messages (4674t0f0u) for git 2.23.0.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
po/zh_CN.po

index 075c5c5..c6bdb3e 100644 (file)
@@ -139,8 +139,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Git\n"
 "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2019-06-04 08:24+0800\n"
-"PO-Revision-Date: 2019-06-04 09:04+0800\n"
+"POT-Creation-Date: 2019-08-10 20:12+0800\n"
+"PO-Revision-Date: 2019-08-13 21:16+0800\n"
 "Last-Translator: Jiang Xin <worldhello.net@gmail.com>\n"
 "Language-Team: GitHub <https://github.com/jiangxin/git/>\n"
 "Language: zh_CN\n"
@@ -149,37 +149,37 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: advice.c:103
+#: advice.c:109
 #, c-format
 msgid "%shint: %.*s%s\n"
 msgstr "%s提示:%.*s%s\n"
 
-#: advice.c:156
+#: advice.c:162
 msgid "Cherry-picking is not possible because you have unmerged files."
 msgstr "无法拣选,因为您有未合并的文件。"
 
-#: advice.c:158
+#: advice.c:164
 msgid "Committing is not possible because you have unmerged files."
 msgstr "无法提交,因为您有未合并的文件。"
 
-#: advice.c:160
+#: advice.c:166
 msgid "Merging is not possible because you have unmerged files."
 msgstr "无法合并,因为您有未合并的文件。"
 
-#: advice.c:162
+#: advice.c:168
 msgid "Pulling is not possible because you have unmerged files."
 msgstr "无法拉取,因为您有未合并的文件。"
 
-#: advice.c:164
+#: advice.c:170
 msgid "Reverting is not possible because you have unmerged files."
 msgstr "无法回退,因为您有未合并的文件。"
 
-#: advice.c:166
+#: advice.c:172
 #, c-format
 msgid "It is not possible to %s because you have unmerged files."
 msgstr "无法 %s,因为您有未合并的文件。"
 
-#: advice.c:174
+#: advice.c:180
 msgid ""
 "Fix them up in the work tree, and then use 'git add/rm <file>'\n"
 "as appropriate to mark resolution and make a commit."
@@ -187,47 +187,59 @@ msgstr ""
 "请在工作区改正文件,然后酌情使用 'git add/rm <文件>' 命令标记\n"
 "解决方案并提交。"
 
-#: advice.c:182
+#: advice.c:188
 msgid "Exiting because of an unresolved conflict."
 msgstr "因为存在未解决的冲突而退出。"
 
-#: advice.c:187 builtin/merge.c:1320
+#: advice.c:193 builtin/merge.c:1327
 msgid "You have not concluded your merge (MERGE_HEAD exists)."
 msgstr "您尚未结束您的合并(存在 MERGE_HEAD)。"
 
-#: advice.c:189
+#: advice.c:195
 msgid "Please, commit your changes before merging."
 msgstr "请在合并前先提交您的修改。"
 
-#: advice.c:190
+#: advice.c:196
 msgid "Exiting because of unfinished merge."
 msgstr "因为存在未完成的合并而退出。"
 
-#: advice.c:196
+#: advice.c:202
 #, c-format
 msgid ""
-"Note: checking out '%s'.\n"
+"Note: switching to '%s'.\n"
 "\n"
 "You are in 'detached HEAD' state. You can look around, make experimental\n"
 "changes and commit them, and you can discard any commits you make in this\n"
-"state without impacting any branches by performing another checkout.\n"
+"state without impacting any branches by switching back to a branch.\n"
 "\n"
 "If you want to create a new branch to retain commits you create, you may\n"
-"do so (now or later) by using -b with the checkout command again. Example:\n"
+"do so (now or later) by using -c with the switch command. Example:\n"
 "\n"
-"  git checkout -b <new-branch-name>\n"
+"  git switch -c <new-branch-name>\n"
+"\n"
+"Or undo this operation with:\n"
+"\n"
+"  git switch -\n"
+"\n"
+"Turn off this advice by setting config variable advice.detachedHead to "
+"false\n"
 "\n"
 msgstr ""
-"注意:正在检出 '%s'。\n"
+"注意:正在切换到 '%s'。\n"
+"\n"
+"您正处于分离头指针状态。您可以查看、做试验性的修改及提交,并且您可以在切换\n"
+"回一个分支时,丢弃在此状态下所做的提交而不对分支造成影响。\n"
 "\n"
-"您正处于分离头指针状态。您可以查看、做试验性的修改及提交,并且您可以通过另"
-"外\n"
-"的检出分支操作丢弃在这个状态下所做的任何提交。\n"
+"如果您想要通过创建分支来保留在此状态下所做的提交,您可以通过在 switch 命令\n"
+"中添加参数 -c 来实现(现在或稍后)。例如:\n"
 "\n"
-"如果您想要通过创建分支来保留在此状态下所做的提交,您可以通过在检出命令添加\n"
-"参数 -b 来实现(现在或稍后)。例如:\n"
+"  git switch -c <新分支名>\n"
 "\n"
-"  git checkout -b <新分支名>\n"
+"或者撤销此操作:\n"
+"\n"
+"  git switch -\n"
+"\n"
+"通过将配置变量 advice.detachedHead 设置为 false 来关闭此建议\n"
 "\n"
 
 #: alias.c:50
@@ -238,92 +250,92 @@ msgstr "命令行以 \\ 结尾"
 msgid "unclosed quote"
 msgstr "未关闭的引号"
 
-#: apply.c:63
+#: apply.c:69
 #, c-format
 msgid "unrecognized whitespace option '%s'"
 msgstr "未能识别的空白字符选项 '%s'"
 
-#: apply.c:79
+#: apply.c:85
 #, c-format
 msgid "unrecognized whitespace ignore option '%s'"
 msgstr "未能识别的空白字符忽略选项 '%s'"
 
-#: apply.c:129
+#: apply.c:135
 msgid "--reject and --3way cannot be used together."
 msgstr "--reject 和 --3way 不能同时使用。"
 
-#: apply.c:131
+#: apply.c:137
 msgid "--cached and --3way cannot be used together."
 msgstr "--cached 和 --3way 不能同时使用。"
 
-#: apply.c:134
+#: apply.c:140
 msgid "--3way outside a repository"
 msgstr "--3way 在一个仓库之外"
 
-#: apply.c:145
+#: apply.c:151
 msgid "--index outside a repository"
 msgstr "--index 在一个仓库之外"
 
-#: apply.c:148
+#: apply.c:154
 msgid "--cached outside a repository"
 msgstr "--cached 在一个仓库之外"
 
-#: apply.c:829
+#: apply.c:801
 #, c-format
 msgid "Cannot prepare timestamp regexp %s"
 msgstr "无法准备时间戳正则表达式 %s"
 
-#: apply.c:838
+#: apply.c:810
 #, c-format
 msgid "regexec returned %d for input: %s"
 msgstr "regexec 返回 %d,输入为:%s"
 
-#: apply.c:912
+#: apply.c:884
 #, c-format
 msgid "unable to find filename in patch at line %d"
 msgstr "不能在补丁的第 %d 行找到文件名"
 
-#: apply.c:950
+#: apply.c:922
 #, c-format
 msgid "git apply: bad git-diff - expected /dev/null, got %s on line %d"
 msgstr "git apply:错误的 git-diff - 应为 /dev/null,但在第 %2$d 行得到 %1$s"
 
-#: apply.c:956
+#: apply.c:928
 #, c-format
 msgid "git apply: bad git-diff - inconsistent new filename on line %d"
 msgstr "git apply:错误的 git-diff - 第 %d 行上新文件名不一致"
 
-#: apply.c:957
+#: apply.c:929
 #, c-format
 msgid "git apply: bad git-diff - inconsistent old filename on line %d"
 msgstr "git apply:错误的 git-diff - 第 %d 行上旧文件名不一致"
 
-#: apply.c:962
+#: apply.c:934
 #, c-format
 msgid "git apply: bad git-diff - expected /dev/null on line %d"
 msgstr "git apply:错误的 git-diff - 第 %d 行处应为 /dev/null"
 
-#: apply.c:991
+#: apply.c:963
 #, c-format
 msgid "invalid mode on line %d: %s"
 msgstr "第 %d 行包含无效文件模式:%s"
 
-#: apply.c:1310
+#: apply.c:1282
 #, c-format
 msgid "inconsistent header lines %d and %d"
 msgstr "不一致的文件头,%d 行和 %d 行"
 
-#: apply.c:1482
+#: apply.c:1460
 #, c-format
 msgid "recount: unexpected line: %.*s"
 msgstr "recount:意外的行:%.*s"
 
-#: apply.c:1551
+#: apply.c:1529
 #, c-format
 msgid "patch fragment without header at line %d: %.*s"
 msgstr "第 %d 行的补丁片段没有头信息:%.*s"
 
-#: apply.c:1571
+#: apply.c:1551
 #, c-format
 msgid ""
 "git diff header lacks filename information when removing %d leading pathname "
@@ -334,82 +346,82 @@ msgid_plural ""
 msgstr[0] "当移除 %d 个前导路径后 git diff 头缺乏文件名信息(第 %d 行)"
 msgstr[1] "当移除 %d 个前导路径后 git diff 头缺乏文件名信息(第 %d 行)"
 
-#: apply.c:1584
+#: apply.c:1564
 #, c-format
 msgid "git diff header lacks filename information (line %d)"
 msgstr "git diff 的头信息中缺乏文件名信息(第 %d 行)"
 
-#: apply.c:1772
+#: apply.c:1752
 msgid "new file depends on old contents"
 msgstr "新文件依赖旧内容"
 
-#: apply.c:1774
+#: apply.c:1754
 msgid "deleted file still has contents"
 msgstr "删除的文件仍有内容"
 
-#: apply.c:1808
+#: apply.c:1788
 #, c-format
 msgid "corrupt patch at line %d"
 msgstr "补丁在第 %d 行损坏"
 
-#: apply.c:1845
+#: apply.c:1825
 #, c-format
 msgid "new file %s depends on old contents"
 msgstr "新文件 %s 依赖旧内容"
 
-#: apply.c:1847
+#: apply.c:1827
 #, c-format
 msgid "deleted file %s still has contents"
 msgstr "删除的文件 %s 仍有内容"
 
-#: apply.c:1850
+#: apply.c:1830
 #, c-format
 msgid "** warning: file %s becomes empty but is not deleted"
 msgstr "** 警告:文件 %s 成为空文件但并未删除"
 
-#: apply.c:1997
+#: apply.c:1977
 #, c-format
 msgid "corrupt binary patch at line %d: %.*s"
 msgstr "二进制补丁在第 %d 行损坏:%.*s"
 
-#: apply.c:2034
+#: apply.c:2014
 #, c-format
 msgid "unrecognized binary patch at line %d"
 msgstr "未能识别的二进制补丁位于第 %d 行"
 
-#: apply.c:2196
+#: apply.c:2176
 #, c-format
 msgid "patch with only garbage at line %d"
 msgstr "补丁文件的第 %d 行只有垃圾数据"
 
-#: apply.c:2282
+#: apply.c:2262
 #, c-format
 msgid "unable to read symlink %s"
 msgstr "无法读取符号链接 %s"
 
-#: apply.c:2286
+#: apply.c:2266
 #, c-format
 msgid "unable to open or read %s"
 msgstr "不能打开或读取 %s"
 
-#: apply.c:2945
+#: apply.c:2925
 #, c-format
 msgid "invalid start of line: '%c'"
 msgstr "无效的行首字符:'%c'"
 
-#: apply.c:3066
+#: apply.c:3046
 #, c-format
 msgid "Hunk #%d succeeded at %d (offset %d line)."
 msgid_plural "Hunk #%d succeeded at %d (offset %d lines)."
 msgstr[0] "块 #%d 成功应用于 %d(偏移 %d 行)"
 msgstr[1] "块 #%d 成功应用于 %d(偏移 %d 行)"
 
-#: apply.c:3078
+#: apply.c:3058
 #, c-format
 msgid "Context reduced to (%ld/%ld) to apply fragment at %d"
 msgstr "上下文减少到(%ld/%ld)以在第 %d 行应用补丁片段"
 
-#: apply.c:3084
+#: apply.c:3064
 #, c-format
 msgid ""
 "while searching for:\n"
@@ -418,445 +430,445 @@ msgstr ""
 "当查询:\n"
 "%.*s"
 
-#: apply.c:3106
+#: apply.c:3086
 #, c-format
 msgid "missing binary patch data for '%s'"
 msgstr "缺失 '%s' 的二进制补丁数据"
 
-#: apply.c:3114
+#: apply.c:3094
 #, c-format
 msgid "cannot reverse-apply a binary patch without the reverse hunk to '%s'"
 msgstr "不能反向应用一个缺少到 '%s' 的反向数据块的二进制补丁"
 
-#: apply.c:3161
+#: apply.c:3141
 #, c-format
 msgid "cannot apply binary patch to '%s' without full index line"
 msgstr "不能在 '%s' 上应用没有完整索引行的二进制补丁"
 
-#: apply.c:3171
+#: apply.c:3151
 #, c-format
 msgid ""
 "the patch applies to '%s' (%s), which does not match the current contents."
 msgstr "补丁应用到 '%s'(%s),但是和当前内容不匹配。"
 
-#: apply.c:3179
+#: apply.c:3159
 #, c-format
 msgid "the patch applies to an empty '%s' but it is not empty"
 msgstr "补丁应用到空文件 '%s',但其并非空文件"
 
-#: apply.c:3197
+#: apply.c:3177
 #, c-format
 msgid "the necessary postimage %s for '%s' cannot be read"
 msgstr "无法读取 '%2$s' 必需的目标文件 %1$s"
 
-#: apply.c:3210
+#: apply.c:3190
 #, c-format
 msgid "binary patch does not apply to '%s'"
 msgstr "二进制补丁未应用到 '%s'"
 
-#: apply.c:3216
+#: apply.c:3196
 #, c-format
 msgid "binary patch to '%s' creates incorrect result (expecting %s, got %s)"
 msgstr "到 '%s' 的二进制补丁产生了不正确的结果(应为 %s,却为 %s)"
 
-#: apply.c:3237
+#: apply.c:3217
 #, c-format
 msgid "patch failed: %s:%ld"
 msgstr "打补丁失败:%s:%ld"
 
-#: apply.c:3360
+#: apply.c:3340
 #, c-format
 msgid "cannot checkout %s"
 msgstr "不能检出 %s"
 
-#: apply.c:3412 apply.c:3423 apply.c:3469 midx.c:59 setup.c:279
+#: apply.c:3392 apply.c:3403 apply.c:3449 midx.c:62 setup.c:279
 #, c-format
 msgid "failed to read %s"
 msgstr "无法读取 %s"
 
-#: apply.c:3420
+#: apply.c:3400
 #, c-format
 msgid "reading from '%s' beyond a symbolic link"
 msgstr "读取位于符号链接中的 '%s'"
 
-#: apply.c:3449 apply.c:3692
+#: apply.c:3429 apply.c:3672
 #, c-format
 msgid "path %s has been renamed/deleted"
 msgstr "路径 %s 已经被重命名/删除"
 
-#: apply.c:3535 apply.c:3707
+#: apply.c:3515 apply.c:3687
 #, c-format
 msgid "%s: does not exist in index"
 msgstr "%s:不存在于索引中"
 
-#: apply.c:3544 apply.c:3715
+#: apply.c:3524 apply.c:3695
 #, c-format
 msgid "%s: does not match index"
 msgstr "%s:和索引不匹配"
 
-#: apply.c:3579
+#: apply.c:3559
 msgid "repository lacks the necessary blob to fall back on 3-way merge."
 msgstr "仓库缺乏必要的数据对象以进行三方合并。"
 
-#: apply.c:3582
+#: apply.c:3562
 #, c-format
 msgid "Falling back to three-way merge...\n"
 msgstr "回落到三方合并...\n"
 
-#: apply.c:3598 apply.c:3602
+#: apply.c:3578 apply.c:3582
 #, c-format
 msgid "cannot read the current contents of '%s'"
 msgstr "无法读取 '%s' 的当前内容"
 
-#: apply.c:3614
+#: apply.c:3594
 #, c-format
 msgid "Failed to fall back on three-way merge...\n"
 msgstr "无法回落到三方合并...\n"
 
-#: apply.c:3628
+#: apply.c:3608
 #, c-format
 msgid "Applied patch to '%s' with conflicts.\n"
 msgstr "应用补丁到 '%s' 存在冲突。\n"
 
-#: apply.c:3633
+#: apply.c:3613
 #, c-format
 msgid "Applied patch to '%s' cleanly.\n"
 msgstr "成功应用补丁到 '%s'。\n"
 
-#: apply.c:3659
+#: apply.c:3639
 msgid "removal patch leaves file contents"
 msgstr "移除补丁仍留下了文件内容"
 
-#: apply.c:3732
+#: apply.c:3712
 #, c-format
 msgid "%s: wrong type"
 msgstr "%s:错误类型"
 
-#: apply.c:3734
+#: apply.c:3714
 #, c-format
 msgid "%s has type %o, expected %o"
 msgstr "%s 的类型是 %o,应为 %o"
 
-#: apply.c:3885 apply.c:3887 read-cache.c:830 read-cache.c:856
+#: apply.c:3865 apply.c:3867 read-cache.c:830 read-cache.c:856
 #: read-cache.c:1309
 #, c-format
 msgid "invalid path '%s'"
 msgstr "无效路径 '%s'"
 
-#: apply.c:3943
+#: apply.c:3923
 #, c-format
 msgid "%s: already exists in index"
 msgstr "%s:已经存在于索引中"
 
-#: apply.c:3946
+#: apply.c:3926
 #, c-format
 msgid "%s: already exists in working directory"
 msgstr "%s:已经存在于工作区中"
 
-#: apply.c:3966
+#: apply.c:3946
 #, c-format
 msgid "new mode (%o) of %s does not match old mode (%o)"
 msgstr "%2$s 的新模式(%1$o)和旧模式(%3$o)不匹配"
 
-#: apply.c:3971
+#: apply.c:3951
 #, c-format
 msgid "new mode (%o) of %s does not match old mode (%o) of %s"
 msgstr "%2$s 的新模式(%1$o)和 %4$s 的旧模式(%3$o)不匹配"
 
-#: apply.c:3991
+#: apply.c:3971
 #, c-format
 msgid "affected file '%s' is beyond a symbolic link"
 msgstr "受影响的文件 '%s' 位于符号链接中"
 
-#: apply.c:3995
+#: apply.c:3975
 #, c-format
 msgid "%s: patch does not apply"
 msgstr "%s:补丁未应用"
 
-#: apply.c:4010
+#: apply.c:3990
 #, c-format
 msgid "Checking patch %s..."
 msgstr "正在检查补丁 %s..."
 
-#: apply.c:4102
+#: apply.c:4082
 #, c-format
 msgid "sha1 information is lacking or useless for submodule %s"
 msgstr "子模组 %s 的 sha1 信息缺失或无效"
 
-#: apply.c:4109
+#: apply.c:4089
 #, c-format
 msgid "mode change for %s, which is not in current HEAD"
 msgstr "%s 的模式变更,但它不在当前 HEAD 中"
 
-#: apply.c:4112
+#: apply.c:4092
 #, c-format
 msgid "sha1 information is lacking or useless (%s)."
 msgstr "sha1 信息缺失或无效(%s)。"
 
-#: apply.c:4117 builtin/checkout.c:257 builtin/reset.c:143
+#: apply.c:4097 builtin/checkout.c:278 builtin/reset.c:143
 #, c-format
 msgid "make_cache_entry failed for path '%s'"
 msgstr "对路径 '%s' 的 make_cache_entry 操作失败"
 
-#: apply.c:4121
+#: apply.c:4101
 #, c-format
 msgid "could not add %s to temporary index"
 msgstr "不能在临时索引中添加 %s"
 
-#: apply.c:4131
+#: apply.c:4111
 #, c-format
 msgid "could not write temporary index to %s"
 msgstr "不能把临时索引写入到 %s"
 
-#: apply.c:4269
+#: apply.c:4249
 #, c-format
 msgid "unable to remove %s from index"
 msgstr "不能从索引中移除 %s"
 
-#: apply.c:4303
+#: apply.c:4283
 #, c-format
 msgid "corrupt patch for submodule %s"
 msgstr "子模组 %s 损坏的补丁"
 
-#: apply.c:4309
+#: apply.c:4289
 #, c-format
 msgid "unable to stat newly created file '%s'"
 msgstr "不能对新建文件 '%s' 调用 stat"
 
-#: apply.c:4317
+#: apply.c:4297
 #, c-format
 msgid "unable to create backing store for newly created file %s"
 msgstr "不能为新建文件 %s 创建后端存储"
 
-#: apply.c:4323 apply.c:4468
+#: apply.c:4303 apply.c:4448
 #, c-format
 msgid "unable to add cache entry for %s"
 msgstr "无法为 %s 添加缓存条目"
 
-#: apply.c:4366
+#: apply.c:4346
 #, c-format
 msgid "failed to write to '%s'"
 msgstr "写入 '%s' 失败"
 
-#: apply.c:4370
+#: apply.c:4350
 #, c-format
 msgid "closing file '%s'"
 msgstr "关闭文件 '%s'"
 
-#: apply.c:4440
+#: apply.c:4420
 #, c-format
 msgid "unable to write file '%s' mode %o"
 msgstr "不能写文件 '%s' 权限 %o"
 
-#: apply.c:4538
+#: apply.c:4518
 #, c-format
 msgid "Applied patch %s cleanly."
 msgstr "成功应用补丁 %s。"
 
-#: apply.c:4546
+#: apply.c:4526
 msgid "internal error"
 msgstr "内部错误"
 
-#: apply.c:4549
+#: apply.c:4529
 #, c-format
 msgid "Applying patch %%s with %d reject..."
 msgid_plural "Applying patch %%s with %d rejects..."
 msgstr[0] "应用 %%s 个补丁,其中 %d 个被拒绝..."
 msgstr[1] "应用 %%s 个补丁,其中 %d 个被拒绝..."
 
-#: apply.c:4560
+#: apply.c:4540
 #, c-format
 msgid "truncating .rej filename to %.*s.rej"
 msgstr "截短 .rej 文件名为 %.*s.rej"
 
-#: apply.c:4568 builtin/fetch.c:837 builtin/fetch.c:1118
+#: apply.c:4548 builtin/fetch.c:878 builtin/fetch.c:1168
 #, c-format
 msgid "cannot open %s"
 msgstr "不能打开 %s"
 
-#: apply.c:4582
+#: apply.c:4562
 #, c-format
 msgid "Hunk #%d applied cleanly."
 msgstr "第 #%d 个片段成功应用。"
 
-#: apply.c:4586
+#: apply.c:4566
 #, c-format
 msgid "Rejected hunk #%d."
 msgstr "拒绝第 #%d 个片段。"
 
-#: apply.c:4696
+#: apply.c:4676
 #, c-format
 msgid "Skipped patch '%s'."
 msgstr "略过补丁 '%s'。"
 
-#: apply.c:4704
+#: apply.c:4684
 msgid "unrecognized input"
 msgstr "未能识别的输入"
 
-#: apply.c:4724
+#: apply.c:4704
 msgid "unable to read index file"
 msgstr "无法读取索引文件"
 
-#: apply.c:4879
+#: apply.c:4859
 #, c-format
 msgid "can't open patch '%s': %s"
 msgstr "不能打开补丁 '%s':%s"
 
-#: apply.c:4906
+#: apply.c:4886
 #, c-format
 msgid "squelched %d whitespace error"
 msgid_plural "squelched %d whitespace errors"
 msgstr[0] "抑制下仍有 %d 个空白字符误用"
 msgstr[1] "抑制下仍有 %d 个空白字符误用"
 
-#: apply.c:4912 apply.c:4927
+#: apply.c:4892 apply.c:4907
 #, c-format
 msgid "%d line adds whitespace errors."
 msgid_plural "%d lines add whitespace errors."
 msgstr[0] "%d 行新增了空白字符误用。"
 msgstr[1] "%d 行新增了空白字符误用。"
 
-#: apply.c:4920
+#: apply.c:4900
 #, c-format
 msgid "%d line applied after fixing whitespace errors."
 msgid_plural "%d lines applied after fixing whitespace errors."
 msgstr[0] "修复空白错误后,应用了 %d 行。"
 msgstr[1] "修复空白错误后,应用了 %d 行。"
 
-#: apply.c:4936 builtin/add.c:540 builtin/mv.c:301 builtin/rm.c:390
+#: apply.c:4916 builtin/add.c:540 builtin/mv.c:301 builtin/rm.c:390
 msgid "Unable to write new index file"
 msgstr "无法写入新索引文件"
 
-#: apply.c:4963 apply.c:4966 builtin/am.c:2210 builtin/am.c:2213
-#: builtin/clone.c:120 builtin/fetch.c:118 builtin/merge.c:271
-#: builtin/pull.c:207 builtin/submodule--helper.c:407
-#: builtin/submodule--helper.c:1366 builtin/submodule--helper.c:1369
-#: builtin/submodule--helper.c:1849 builtin/submodule--helper.c:1852
-#: builtin/submodule--helper.c:2091 git-add--interactive.perl:197
+#: apply.c:4943 apply.c:4946 builtin/am.c:2208 builtin/am.c:2211
+#: builtin/clone.c:123 builtin/fetch.c:128 builtin/merge.c:273
+#: builtin/pull.c:208 builtin/submodule--helper.c:407
+#: builtin/submodule--helper.c:1367 builtin/submodule--helper.c:1370
+#: builtin/submodule--helper.c:1850 builtin/submodule--helper.c:1853
+#: builtin/submodule--helper.c:2092 git-add--interactive.perl:211
 msgid "path"
 msgstr "路径"
 
-#: apply.c:4964
+#: apply.c:4944
 msgid "don't apply changes matching the given path"
 msgstr "不要应用与给出路径向匹配的变更"
 
-#: apply.c:4967
+#: apply.c:4947
 msgid "apply changes matching the given path"
 msgstr "应用与给出路径向匹配的变更"
 
-#: apply.c:4969 builtin/am.c:2219
+#: apply.c:4949 builtin/am.c:2217
 msgid "num"
 msgstr "数字"
 
-#: apply.c:4970
+#: apply.c:4950
 msgid "remove <num> leading slashes from traditional diff paths"
 msgstr "从传统的 diff 路径中移除指定数量的前导斜线"
 
-#: apply.c:4973
+#: apply.c:4953
 msgid "ignore additions made by the patch"
 msgstr "忽略补丁中的添加的文件"
 
-#: apply.c:4975
+#: apply.c:4955
 msgid "instead of applying the patch, output diffstat for the input"
 msgstr "不应用补丁,而是显示输入的差异统计(diffstat)"
 
-#: apply.c:4979
+#: apply.c:4959
 msgid "show number of added and deleted lines in decimal notation"
 msgstr "以十进制数显示添加和删除的行数"
 
-#: apply.c:4981
+#: apply.c:4961
 msgid "instead of applying the patch, output a summary for the input"
 msgstr "不应用补丁,而是显示输入的概要"
 
-#: apply.c:4983
+#: apply.c:4963
 msgid "instead of applying the patch, see if the patch is applicable"
 msgstr "不应用补丁,而是查看补丁是否可应用"
 
-#: apply.c:4985
+#: apply.c:4965
 msgid "make sure the patch is applicable to the current index"
 msgstr "确认补丁可以应用到当前索引"
 
-#: apply.c:4987
+#: apply.c:4967
 msgid "mark new files with `git add --intent-to-add`"
 msgstr "使用命令 `git add --intent-to-add` 标记新增文件"
 
-#: apply.c:4989
+#: apply.c:4969
 msgid "apply a patch without touching the working tree"
 msgstr "应用补丁而不修改工作区"
 
-#: apply.c:4991
+#: apply.c:4971
 msgid "accept a patch that touches outside the working area"
 msgstr "接受修改工作区之外文件的补丁"
 
-#: apply.c:4994
+#: apply.c:4974
 msgid "also apply the patch (use with --stat/--summary/--check)"
 msgstr "还应用此补丁(与 --stat/--summary/--check 选项同时使用)"
 
-#: apply.c:4996
+#: apply.c:4976
 msgid "attempt three-way merge if a patch does not apply"
 msgstr "如果一个补丁不能应用则尝试三方合并"
 
-#: apply.c:4998
+#: apply.c:4978
 msgid "build a temporary index based on embedded index information"
 msgstr "创建一个临时索引基于嵌入的索引信息"
 
-#: apply.c:5001 builtin/checkout-index.c:173 builtin/ls-files.c:524
+#: apply.c:4981 builtin/checkout-index.c:173 builtin/ls-files.c:524
 msgid "paths are separated with NUL character"
 msgstr "路径以 NUL 字符分隔"
 
-#: apply.c:5003
+#: apply.c:4983
 msgid "ensure at least <n> lines of context match"
 msgstr "确保至少匹配 <n> 行上下文"
 
-#: apply.c:5004 builtin/am.c:2198 builtin/interpret-trailers.c:97
-#: builtin/interpret-trailers.c:99 builtin/interpret-trailers.c:101
-#: builtin/pack-objects.c:3317 builtin/rebase.c:1415
+#: apply.c:4984 builtin/am.c:2196 builtin/interpret-trailers.c:98
+#: builtin/interpret-trailers.c:100 builtin/interpret-trailers.c:102
+#: builtin/pack-objects.c:3330 builtin/rebase.c:1421
 msgid "action"
 msgstr "动作"
 
-#: apply.c:5005
+#: apply.c:4985
 msgid "detect new or modified lines that have whitespace errors"
 msgstr "检查新增和修改的行中间的空白字符滥用"
 
-#: apply.c:5008 apply.c:5011
+#: apply.c:4988 apply.c:4991
 msgid "ignore changes in whitespace when finding context"
 msgstr "查找上下文时忽略空白字符的变更"
 
-#: apply.c:5014
+#: apply.c:4994
 msgid "apply the patch in reverse"
 msgstr "反向应用补丁"
 
-#: apply.c:5016
+#: apply.c:4996
 msgid "don't expect at least one line of context"
 msgstr "无需至少一行上下文"
 
-#: apply.c:5018
+#: apply.c:4998
 msgid "leave the rejected hunks in corresponding *.rej files"
 msgstr "将拒绝的补丁片段保存在对应的 *.rej 文件中"
 
-#: apply.c:5020
+#: apply.c:5000
 msgid "allow overlapping hunks"
 msgstr "允许重叠的补丁片段"
 
-#: apply.c:5021 builtin/add.c:291 builtin/check-ignore.c:22
-#: builtin/commit.c:1317 builtin/count-objects.c:98 builtin/fsck.c:786
-#: builtin/log.c:2045 builtin/mv.c:123 builtin/read-tree.c:128
+#: apply.c:5001 builtin/add.c:291 builtin/check-ignore.c:22
+#: builtin/commit.c:1337 builtin/count-objects.c:98 builtin/fsck.c:786
+#: builtin/log.c:2068 builtin/mv.c:123 builtin/read-tree.c:128
 msgid "be verbose"
 msgstr "冗长输出"
 
-#: apply.c:5023
+#: apply.c:5003
 msgid "tolerate incorrectly detected missing new-line at the end of file"
 msgstr "允许不正确的文件末尾换行符"
 
-#: apply.c:5026
+#: apply.c:5006
 msgid "do not trust the line counts in the hunk headers"
 msgstr "不信任补丁片段的头信息中的行号"
 
-#: apply.c:5028 builtin/am.c:2207
+#: apply.c:5008 builtin/am.c:2205
 msgid "root"
 msgstr "根目录"
 
-#: apply.c:5029
+#: apply.c:5009
 msgid "prepend <root> to all filenames"
 msgstr "为所有文件名前添加 <根目录>"
 
@@ -898,98 +910,98 @@ msgstr "不是一个有效的对象名:%s"
 msgid "not a tree object: %s"
 msgstr "不是一个树对象:%s"
 
-#: archive.c:424
+#: archive.c:426
 msgid "current working directory is untracked"
 msgstr "当前工作目录未被跟踪"
 
-#: archive.c:455
+#: archive.c:457
 msgid "fmt"
 msgstr "格式"
 
-#: archive.c:455
+#: archive.c:457
 msgid "archive format"
 msgstr "归档格式"
 
-#: archive.c:456 builtin/log.c:1557
+#: archive.c:458 builtin/log.c:1580
 msgid "prefix"
 msgstr "前缀"
 
-#: archive.c:457
+#: archive.c:459
 msgid "prepend prefix to each pathname in the archive"
 msgstr "为归档中每个路径名加上前缀"
 
-#: archive.c:458 builtin/blame.c:821 builtin/blame.c:822
-#: builtin/commit-tree.c:117 builtin/config.c:129 builtin/fast-export.c:1091
-#: builtin/fast-export.c:1093 builtin/grep.c:895 builtin/hash-object.c:105
+#: archive.c:460 builtin/blame.c:862 builtin/blame.c:874 builtin/blame.c:875
+#: builtin/commit-tree.c:117 builtin/config.c:129 builtin/fast-export.c:1134
+#: builtin/fast-export.c:1136 builtin/grep.c:897 builtin/hash-object.c:105
 #: builtin/ls-files.c:560 builtin/ls-files.c:563 builtin/notes.c:412
 #: builtin/notes.c:578 builtin/read-tree.c:123 parse-options.h:177
 msgid "file"
 msgstr "文件"
 
-#: archive.c:459 builtin/archive.c:90
+#: archive.c:461 builtin/archive.c:90
 msgid "write the archive to this file"
 msgstr "归档写入此文件"
 
-#: archive.c:461
+#: archive.c:463
 msgid "read .gitattributes in working directory"
 msgstr "读取工作区中的 .gitattributes"
 
-#: archive.c:462
+#: archive.c:464
 msgid "report archived files on stderr"
 msgstr "在标准错误上报告归档文件"
 
-#: archive.c:463
+#: archive.c:465
 msgid "store only"
 msgstr "只存储"
 
-#: archive.c:464
+#: archive.c:466
 msgid "compress faster"
 msgstr "压缩速度更快"
 
-#: archive.c:472
+#: archive.c:474
 msgid "compress better"
 msgstr "压缩效果更好"
 
-#: archive.c:475
+#: archive.c:477
 msgid "list supported archive formats"
 msgstr "列出支持的归档格式"
 
-#: archive.c:477 builtin/archive.c:91 builtin/clone.c:110 builtin/clone.c:113
-#: builtin/submodule--helper.c:1378 builtin/submodule--helper.c:1858
+#: archive.c:479 builtin/archive.c:91 builtin/clone.c:113 builtin/clone.c:116
+#: builtin/submodule--helper.c:1379 builtin/submodule--helper.c:1859
 msgid "repo"
 msgstr "仓库"
 
-#: archive.c:478 builtin/archive.c:92
+#: archive.c:480 builtin/archive.c:92
 msgid "retrieve the archive from remote repository <repo>"
 msgstr "从远程仓库(<仓库>)提取归档文件"
 
-#: archive.c:479 builtin/archive.c:93 builtin/difftool.c:707
+#: archive.c:481 builtin/archive.c:93 builtin/difftool.c:707
 #: builtin/notes.c:498
 msgid "command"
 msgstr "命令"
 
-#: archive.c:480 builtin/archive.c:94
+#: archive.c:482 builtin/archive.c:94
 msgid "path to the remote git-upload-archive command"
 msgstr "远程 git-upload-archive 命令的路径"
 
-#: archive.c:487
+#: archive.c:489
 msgid "Unexpected option --remote"
 msgstr "未知参数 --remote"
 
-#: archive.c:489
+#: archive.c:491
 msgid "Option --exec can only be used together with --remote"
 msgstr "选项 --exec 只能和 --remote 同时使用"
 
-#: archive.c:491
+#: archive.c:493
 msgid "Unexpected option --output"
 msgstr "未知参数 --output"
 
-#: archive.c:513
+#: archive.c:515
 #, c-format
 msgid "Unknown archive format '%s'"
 msgstr "未知归档格式 '%s'"
 
-#: archive.c:520
+#: archive.c:522
 #, c-format
 msgid "Argument not supported for format '%s': -%d"
 msgstr "参数不支持此格式 '%s':-%d"
@@ -1033,7 +1045,7 @@ msgstr "路径不是有效的 UTF-8:%s"
 msgid "path too long (%d chars, SHA1: %s): %s"
 msgstr "路径太长(%d 字符,SHA1:%s):%s"
 
-#: archive-zip.c:474 builtin/pack-objects.c:226 builtin/pack-objects.c:229
+#: archive-zip.c:474 builtin/pack-objects.c:230 builtin/pack-objects.c:233
 #, c-format
 msgid "deflate error (%d)"
 msgstr "压缩错误 (%d)"
@@ -1135,12 +1147,12 @@ msgstr "二分查找中:合并基线必须是经过测试的\n"
 msgid "a %s revision is needed"
 msgstr "需要一个 %s 版本"
 
-#: bisect.c:884 builtin/notes.c:177 builtin/tag.c:248
+#: bisect.c:884 builtin/notes.c:177 builtin/tag.c:254
 #, c-format
 msgid "could not create file '%s'"
 msgstr "不能创建文件 '%s'"
 
-#: bisect.c:928 builtin/merge.c:146
+#: bisect.c:928 builtin/merge.c:148
 #, c-format
 msgid "could not read file '%s'"
 msgstr "不能读取文件 '%s'"
@@ -1180,37 +1192,37 @@ msgid_plural "Bisecting: %d revisions left to test after this %s\n"
 msgstr[0] "二分查找中:在此之后,还剩 %d 个版本待测试 %s\n"
 msgstr[1] "二分查找中:在此之后,还剩 %d 个版本待测试 %s\n"
 
-#: blame.c:1794
+#: blame.c:2697
 msgid "--contents and --reverse do not blend well."
 msgstr "--contents 和 --reverse 不能混用。"
 
-#: blame.c:1808
+#: blame.c:2711
 msgid "cannot use --contents with final commit object name"
 msgstr "不能将 --contents 和最终的提交对象名共用"
 
-#: blame.c:1829
+#: blame.c:2732
 msgid "--reverse and --first-parent together require specified latest commit"
 msgstr "--reverse 和 --first-parent 共用,需要指定最新的提交"
 
-#: blame.c:1838 bundle.c:164 ref-filter.c:2077 remote.c:1938 sequencer.c:2030
-#: sequencer.c:4224 builtin/commit.c:1017 builtin/log.c:382 builtin/log.c:940
-#: builtin/log.c:1428 builtin/log.c:1804 builtin/log.c:2094 builtin/merge.c:415
-#: builtin/pack-objects.c:3140 builtin/pack-objects.c:3155
+#: blame.c:2741 bundle.c:167 ref-filter.c:2196 remote.c:1938 sequencer.c:2033
+#: sequencer.c:4348 builtin/commit.c:1020 builtin/log.c:387 builtin/log.c:963
+#: builtin/log.c:1451 builtin/log.c:1827 builtin/log.c:2117 builtin/merge.c:411
+#: builtin/pack-objects.c:3148 builtin/pack-objects.c:3163
 #: builtin/shortlog.c:192
 msgid "revision walk setup failed"
 msgstr "版本遍历设置失败"
 
-#: blame.c:1856
+#: blame.c:2759
 msgid ""
 "--reverse --first-parent together require range along first-parent chain"
 msgstr "--reverse 和 --first-parent 共用,需要第一祖先链上的提交范围"
 
-#: blame.c:1867
+#: blame.c:2770
 #, c-format
 msgid "no such path %s in %s"
 msgstr "在 %2$s 中无此路径 %1$s"
 
-#: blame.c:1878
+#: blame.c:2781
 #, c-format
 msgid "cannot read blob %s for path %s"
 msgstr "不能为路径 %2$s 读取数据对象 %1$s"
@@ -1338,12 +1350,12 @@ msgstr "歧义的对象名:'%s'。"
 msgid "Not a valid branch point: '%s'."
 msgstr "无效的分支点:'%s'。"
 
-#: branch.c:359
+#: branch.c:364
 #, c-format
 msgid "'%s' is already checked out at '%s'"
 msgstr "'%s' 已经检出到 '%s'"
 
-#: branch.c:382
+#: branch.c:387
 #, c-format
 msgid "HEAD of working tree %s is not updated"
 msgstr "工作区 %s 的 HEAD 指向没有被更新"
@@ -1358,8 +1370,8 @@ msgstr "'%s' 不像是一个 v2 版本的包文件"
 msgid "unrecognized header: %s%s (%d)"
 msgstr "未能识别的包头:%s%s (%d)"
 
-#: bundle.c:90 rerere.c:480 rerere.c:690 sequencer.c:2281 sequencer.c:2916
-#: builtin/commit.c:788
+#: bundle.c:90 rerere.c:480 rerere.c:690 sequencer.c:2283 sequencer.c:3024
+#: builtin/commit.c:791
 #, c-format
 msgid "could not open '%s'"
 msgstr "不能打开 '%s'"
@@ -1368,60 +1380,64 @@ msgstr "不能打开 '%s'"
 msgid "Repository lacks these prerequisite commits:"
 msgstr "仓库中缺少这些必备的提交:"
 
-#: bundle.c:194
+#: bundle.c:146
+msgid "need a repository to verify a bundle"
+msgstr "需要一个仓库来校验一个包"
+
+#: bundle.c:197
 #, c-format
 msgid "The bundle contains this ref:"
 msgid_plural "The bundle contains these %d refs:"
 msgstr[0] "这个包中含有这个引用:"
 msgstr[1] "这个包中含有 %d 个引用:"
 
-#: bundle.c:201
+#: bundle.c:204
 msgid "The bundle records a complete history."
 msgstr "这个包记录一个完整历史。"
 
-#: bundle.c:203
+#: bundle.c:206
 #, c-format
 msgid "The bundle requires this ref:"
 msgid_plural "The bundle requires these %d refs:"
 msgstr[0] "这个包需要这个引用:"
 msgstr[1] "这个包需要 %d 个引用:"
 
-#: bundle.c:269
+#: bundle.c:272
 msgid "unable to dup bundle descriptor"
 msgstr "无法复制 bundle 描述符"
 
-#: bundle.c:276
+#: bundle.c:279
 msgid "Could not spawn pack-objects"
 msgstr "不能生成 pack-objects 进程"
 
-#: bundle.c:287
+#: bundle.c:290
 msgid "pack-objects died"
 msgstr "pack-objects 终止"
 
-#: bundle.c:329
+#: bundle.c:332
 msgid "rev-list died"
 msgstr "rev-list 终止"
 
-#: bundle.c:378
+#: bundle.c:381
 #, c-format
 msgid "ref '%s' is excluded by the rev-list options"
 msgstr "引用 '%s' 被 rev-list 选项排除"
 
-#: bundle.c:457 builtin/log.c:197 builtin/log.c:1709 builtin/shortlog.c:306
+#: bundle.c:460 builtin/log.c:202 builtin/log.c:1732 builtin/shortlog.c:306
 #, c-format
 msgid "unrecognized argument: %s"
 msgstr "未能识别的参数:%s"
 
-#: bundle.c:465
+#: bundle.c:468
 msgid "Refusing to create empty bundle."
 msgstr "不能创建空包。"
 
-#: bundle.c:475
+#: bundle.c:478
 #, c-format
 msgid "cannot create '%s'"
 msgstr "不能创建 '%s'"
 
-#: bundle.c:500
+#: bundle.c:503
 msgid "index-pack died"
 msgstr "index-pack 终止"
 
@@ -1430,8 +1446,8 @@ msgstr "index-pack 终止"
 msgid "invalid color value: %.*s"
 msgstr "无效的颜色值:%.*s"
 
-#: commit.c:50 sequencer.c:2697 builtin/am.c:355 builtin/am.c:399
-#: builtin/am.c:1377 builtin/am.c:2022 builtin/replace.c:455
+#: commit.c:50 sequencer.c:2727 builtin/am.c:355 builtin/am.c:399
+#: builtin/am.c:1378 builtin/am.c:2020 builtin/replace.c:455
 #, c-format
 msgid "could not parse %s"
 msgstr "不能解析 %s"
@@ -1441,7 +1457,7 @@ msgstr "不能解析 %s"
 msgid "%s %s is not a commit!"
 msgstr "%s %s 不是一个提交!"
 
-#: commit.c:193
+#: commit.c:192
 msgid ""
 "Support for <GIT_DIR>/info/grafts is deprecated\n"
 "and will be removed in a future Git version.\n"
@@ -1461,27 +1477,27 @@ msgstr ""
 "设置 \"git config advice.graftFileDeprecated false\"\n"
 "可关闭本消息"
 
-#: commit.c:1128
+#: commit.c:1127
 #, c-format
 msgid "Commit %s has an untrusted GPG signature, allegedly by %s."
 msgstr "提交 %s 有一个非可信的声称来自 %s 的 GPG 签名。"
 
-#: commit.c:1131
+#: commit.c:1130
 #, c-format
 msgid "Commit %s has a bad GPG signature allegedly by %s."
 msgstr "提交 %s 有一个错误的声称来自 %s 的 GPG 签名。"
 
-#: commit.c:1134
+#: commit.c:1133
 #, c-format
 msgid "Commit %s does not have a GPG signature."
 msgstr "提交 %s 没有 GPG 签名。"
 
-#: commit.c:1137
+#: commit.c:1136
 #, c-format
 msgid "Commit %s has a good GPG signature by %s\n"
 msgstr "提交 %s 有一个来自 %s 的好的 GPG 签名。\n"
 
-#: commit.c:1391
+#: commit.c:1390
 msgid ""
 "Warning: commit message did not conform to UTF-8.\n"
 "You may want to amend it after fixing the message, or set the config\n"
@@ -1491,188 +1507,243 @@ msgstr ""
 "您可以通过修补提交来改正提交说明,或者将配置变量 i18n.commitencoding\n"
 "设置为您项目所用的字符编码。\n"
 
-#: commit-graph.c:105
+#: commit-graph.c:127
 msgid "commit-graph file is too small"
 msgstr "提交图形文件太小"
 
-#: commit-graph.c:170
+#: commit-graph.c:192
 #, c-format
 msgid "commit-graph signature %X does not match signature %X"
 msgstr "提交图形签名 %X 和签名 %X 不匹配"
 
-#: commit-graph.c:177
+#: commit-graph.c:199
 #, c-format
 msgid "commit-graph version %X does not match version %X"
 msgstr "提交图形版本 %X 和版本 %X 不匹配"
 
-#: commit-graph.c:184
+#: commit-graph.c:206
 #, c-format
 msgid "commit-graph hash version %X does not match version %X"
 msgstr "提交图形哈希版本 %X 和版本 %X 不匹配"
 
-#: commit-graph.c:207
+#: commit-graph.c:229
 msgid "commit-graph chunk lookup table entry missing; file may be incomplete"
 msgstr "提交图形块查找表条目丢失,文件可能不完整"
 
-#: commit-graph.c:218
+#: commit-graph.c:240
 #, c-format
 msgid "commit-graph improper chunk offset %08x%08x"
 msgstr "提交图形不正确的块偏移 %08x%08x"
 
-#: commit-graph.c:255
+#: commit-graph.c:283
 #, c-format
 msgid "commit-graph chunk id %08x appears multiple times"
 msgstr "提交图形块 id %08x 出现了多次"
 
-#: commit-graph.c:390
+#: commit-graph.c:347
+msgid "commit-graph has no base graphs chunk"
+msgstr "提交图形没有基础图形块"
+
+#: commit-graph.c:357
+msgid "commit-graph chain does not match"
+msgstr "提交图形链不匹配"
+
+#: commit-graph.c:404
+#, c-format
+msgid "invalid commit-graph chain: line '%s' not a hash"
+msgstr "无效的提交图形链:行 '%s' 不是一个哈希值"
+
+#: commit-graph.c:430
+msgid "unable to find all commit-graph files"
+msgstr "无法找到所有提交图形文件"
+
+#: commit-graph.c:554 commit-graph.c:614
+msgid "invalid commit position. commit-graph is likely corrupt"
+msgstr "无效的提交位置。提交图形可能已损坏"
+
+#: commit-graph.c:575
 #, c-format
 msgid "could not find commit %s"
 msgstr "无法找到提交 %s"
 
-#: commit-graph.c:732 builtin/pack-objects.c:2649
+#: commit-graph.c:1002 builtin/pack-objects.c:2657
 #, c-format
 msgid "unable to get type of object %s"
 msgstr "无法获得对象 %s 类型"
 
-#: commit-graph.c:765
+#: commit-graph.c:1034
 msgid "Loading known commits in commit graph"
 msgstr "正在加载提交图中的已知提交"
 
-#: commit-graph.c:781
+#: commit-graph.c:1051
 msgid "Expanding reachable commits in commit graph"
 msgstr "正在扩展提交图中的可达提交"
 
-#: commit-graph.c:793
+#: commit-graph.c:1070
 msgid "Clearing commit marks in commit graph"
 msgstr "正在清除提交图中的提交标记"
 
-#: commit-graph.c:813
+#: commit-graph.c:1089
 msgid "Computing commit graph generation numbers"
 msgstr "正在计算提交图世代数字"
 
-#: commit-graph.c:930
+#: commit-graph.c:1163
 #, c-format
 msgid "Finding commits for commit graph in %d pack"
 msgid_plural "Finding commits for commit graph in %d packs"
 msgstr[0] "正在 %d 个包中查找提交图的提交"
 msgstr[1] "正在 %d 个包中查找提交图的提交"
 
-#: commit-graph.c:943
+#: commit-graph.c:1176
 #, c-format
 msgid "error adding pack %s"
 msgstr "添加包 %s 出错"
 
-#: commit-graph.c:945
+#: commit-graph.c:1180
 #, c-format
 msgid "error opening index for %s"
 msgstr "为 %s 打开索引出错"
 
-#: commit-graph.c:959
+#: commit-graph.c:1204
 #, c-format
 msgid "Finding commits for commit graph from %d ref"
 msgid_plural "Finding commits for commit graph from %d refs"
 msgstr[0] "正在从 %d 个引用中查找提交图的提交"
 msgstr[1] "正在从 %d 个引用中查找提交图的提交"
 
-#: commit-graph.c:991
+#: commit-graph.c:1238
 msgid "Finding commits for commit graph among packed objects"
 msgstr "正在打包对象中查找提交图的提交"
 
-#: commit-graph.c:1004
+#: commit-graph.c:1253
 msgid "Counting distinct commits in commit graph"
 msgstr "正在计算提交图中不同的提交"
 
-#: commit-graph.c:1017
-#, c-format
-msgid "the commit graph format cannot write %d commits"
-msgstr "提交图格式不能写入 %d 个提交"
-
-#: commit-graph.c:1026
+#: commit-graph.c:1284
 msgid "Finding extra edges in commit graph"
 msgstr "正在查找提交图中额外的边"
 
-#: commit-graph.c:1050
-msgid "too many commits to write graph"
-msgstr "æ\8f\90交太å¤\9aä¸\8dè\83½ç\94»å\9b¾"
+#: commit-graph.c:1332
+msgid "failed to write correct number of base graph ids"
+msgstr "æ\97 æ³\95å\86\99å\85¥æ­£ç¡®æ\95°é\87\8fç\9a\84å\9fºç¡\80å\9b¾å½¢ ID"
 
-#: commit-graph.c:1057 midx.c:819
+#: commit-graph.c:1365 midx.c:811
 #, c-format
 msgid "unable to create leading directories of %s"
 msgstr "不能为 %s 创建先导目录"
 
-#: commit-graph.c:1097
+#: commit-graph.c:1377 builtin/index-pack.c:306 builtin/repack.c:240
+#, c-format
+msgid "unable to create '%s'"
+msgstr "不能创建 '%s'"
+
+#: commit-graph.c:1437
 #, c-format
 msgid "Writing out commit graph in %d pass"
 msgid_plural "Writing out commit graph in %d passes"
 msgstr[0] "正在用 %d 步写出提交图"
 msgstr[1] "正在用 %d 步写出提交图"
 
-#: commit-graph.c:1162
+#: commit-graph.c:1478
+msgid "unable to open commit-graph chain file"
+msgstr "无法打开提交图形链文件"
+
+#: commit-graph.c:1490
+msgid "failed to rename base commit-graph file"
+msgstr "无法重命名基础提交图形文件"
+
+#: commit-graph.c:1510
+msgid "failed to rename temporary commit-graph file"
+msgstr "无法重命名临时提交图形文件"
+
+#: commit-graph.c:1621
+msgid "Scanning merged commits"
+msgstr "正在扫描合并提交"
+
+#: commit-graph.c:1632
+#, c-format
+msgid "unexpected duplicate commit id %s"
+msgstr "意外的重复提交 ID %s"
+
+#: commit-graph.c:1657
+msgid "Merging commit-graph"
+msgstr "正在合并提交图形"
+
+#: commit-graph.c:1844
+#, c-format
+msgid "the commit graph format cannot write %d commits"
+msgstr "提交图格式不能写入 %d 个提交"
+
+#: commit-graph.c:1855
+msgid "too many commits to write graph"
+msgstr "提交太多不能画图"
+
+#: commit-graph.c:1945
 msgid "the commit-graph file has incorrect checksum and is likely corrupt"
 msgstr "提交图文件的校验码错误,可能已经损坏"
 
-#: commit-graph.c:1172
+#: commit-graph.c:1955
 #, c-format
 msgid "commit-graph has incorrect OID order: %s then %s"
 msgstr "提交图形的对象 ID 顺序不正确:%s 然后 %s"
 
-#: commit-graph.c:1182 commit-graph.c:1197
+#: commit-graph.c:1965 commit-graph.c:1980
 #, c-format
 msgid "commit-graph has incorrect fanout value: fanout[%d] = %u != %u"
 msgstr "提交图形有不正确的扇出值:fanout[%d] = %u != %u"
 
-#: commit-graph.c:1189
+#: commit-graph.c:1972
 #, c-format
 msgid "failed to parse commit %s from commit-graph"
 msgstr "无法从提交图形中解析提交 %s"
 
-#: commit-graph.c:1206
+#: commit-graph.c:1989
 msgid "Verifying commits in commit graph"
 msgstr "正在校验提交图中的提交"
 
-#: commit-graph.c:1219
+#: commit-graph.c:2002
 #, c-format
 msgid "failed to parse commit %s from object database for commit-graph"
 msgstr "无法从提交图形的对象库中解析提交 %s"
 
-#: commit-graph.c:1226
+#: commit-graph.c:2009
 #, c-format
 msgid "root tree OID for commit %s in commit-graph is %s != %s"
 msgstr "提交图形中的提交 %s 的根树对象 ID 是 %s != %s"
 
-#: commit-graph.c:1236
+#: commit-graph.c:2019
 #, c-format
 msgid "commit-graph parent list for commit %s is too long"
 msgstr "提交 %s 的提交图形父提交列表太长了"
 
-#: commit-graph.c:1242
+#: commit-graph.c:2028
 #, c-format
 msgid "commit-graph parent for %s is %s != %s"
 msgstr "%s 的提交图形父提交是 %s != %s"
 
-#: commit-graph.c:1255
+#: commit-graph.c:2041
 #, c-format
 msgid "commit-graph parent list for commit %s terminates early"
 msgstr "提交 %s 的提交图形父提交列表过早终止"
 
-#: commit-graph.c:1260
+#: commit-graph.c:2046
 #, c-format
 msgid ""
 "commit-graph has generation number zero for commit %s, but non-zero elsewhere"
 msgstr "提交图形中提交 %s 的世代号是零,但其它地方非零"
 
-#: commit-graph.c:1264
+#: commit-graph.c:2050
 #, c-format
 msgid ""
 "commit-graph has non-zero generation number for commit %s, but zero elsewhere"
 msgstr "提交图形中提交 %s 的世代号非零,但其它地方是零"
 
-#: commit-graph.c:1279
+#: commit-graph.c:2065
 #, c-format
 msgid "commit-graph generation for commit %s is %u != %u"
 msgstr "提交图形中的提交 %s 的世代号是 %u != %u"
 
-#: commit-graph.c:1285
+#: commit-graph.c:2071
 #, c-format
 msgid "commit date for commit %s in commit-graph is %<PRIuMAX> != %<PRIuMAX>"
 msgstr "提交图形中提交 %s 的提交日期是 %<PRIuMAX> != %<PRIuMAX>"
@@ -1681,7 +1752,7 @@ msgstr "提交图形中提交 %s 的提交日期是 %<PRIuMAX> != %<PRIuMAX>"
 msgid "memory exhausted"
 msgstr "内存耗尽"
 
-#: config.c:123
+#: config.c:124
 #, c-format
 msgid ""
 "exceeded maximum include depth (%d) while including\n"
@@ -1696,294 +1767,294 @@ msgstr ""
 "\t%2$s\n"
 "这可能是因为循环包含。"
 
-#: config.c:139
+#: config.c:140
 #, c-format
 msgid "could not expand include path '%s'"
 msgstr "无法扩展包含路径 '%s'"
 
-#: config.c:150
+#: config.c:151
 msgid "relative config includes must come from files"
 msgstr "相对路径的配置文件引用必须来自于文件"
 
-#: config.c:190
+#: config.c:197
 msgid "relative config include conditionals must come from files"
 msgstr "相对路径的配置文件条件引用必须来自于文件"
 
-#: config.c:348
+#: config.c:376
 #, c-format
 msgid "key does not contain a section: %s"
 msgstr "键名没有包含一个小节名称:%s"
 
-#: config.c:354
+#: config.c:382
 #, c-format
 msgid "key does not contain variable name: %s"
 msgstr "键名没有包含变量名:%s"
 
-#: config.c:378 sequencer.c:2459
+#: config.c:406 sequencer.c:2463
 #, c-format
 msgid "invalid key: %s"
 msgstr "无效键名:%s"
 
-#: config.c:384
+#: config.c:412
 #, c-format
 msgid "invalid key (newline): %s"
 msgstr "无效键名(有换行符):%s"
 
-#: config.c:420 config.c:432
+#: config.c:448 config.c:460
 #, c-format
 msgid "bogus config parameter: %s"
 msgstr "伪配置参数:%s"
 
-#: config.c:467
+#: config.c:495
 #, c-format
 msgid "bogus format in %s"
 msgstr "%s 中格式错误"
 
-#: config.c:793
+#: config.c:821
 #, c-format
 msgid "bad config line %d in blob %s"
 msgstr "数据对象 %2$s 中错误的配置行 %1$d"
 
-#: config.c:797
+#: config.c:825
 #, c-format
 msgid "bad config line %d in file %s"
 msgstr "文件 %2$s 中错误的配置行 %1$d"
 
-#: config.c:801
+#: config.c:829
 #, c-format
 msgid "bad config line %d in standard input"
 msgstr "标准输入中错误的配置行 %d"
 
-#: config.c:805
+#: config.c:833
 #, c-format
 msgid "bad config line %d in submodule-blob %s"
 msgstr "子模组数据对象 %2$s 中错误的配置行 %1$d"
 
-#: config.c:809
+#: config.c:837
 #, c-format
 msgid "bad config line %d in command line %s"
 msgstr "命令行 %2$s 中错误的配置行 %1$d"
 
-#: config.c:813
+#: config.c:841
 #, c-format
 msgid "bad config line %d in %s"
 msgstr "在 %2$s 中错误的配置行 %1$d"
 
-#: config.c:952
+#: config.c:978
 msgid "out of range"
 msgstr "超出范围"
 
-#: config.c:952
+#: config.c:978
 msgid "invalid unit"
 msgstr "无效的单位"
 
-#: config.c:958
+#: config.c:979
 #, c-format
 msgid "bad numeric config value '%s' for '%s': %s"
 msgstr "配置变量 '%2$s' 的数字取值 '%1$s' 设置错误:%3$s"
 
-#: config.c:963
+#: config.c:998
 #, c-format
 msgid "bad numeric config value '%s' for '%s' in blob %s: %s"
 msgstr "数据对象 %3$s 中配置变量 '%2$s' 错误的取值 '%1$s':%4$s"
 
-#: config.c:966
+#: config.c:1001
 #, c-format
 msgid "bad numeric config value '%s' for '%s' in file %s: %s"
 msgstr "文件 %3$s 中配置变量 '%2$s' 错误的取值 '%1$s':%4$s"
 
-#: config.c:969
+#: config.c:1004
 #, c-format
 msgid "bad numeric config value '%s' for '%s' in standard input: %s"
 msgstr "标准输入中配置变量 '%2$s' 错误的取值 '%1$s':%3$s"
 
-#: config.c:972
+#: config.c:1007
 #, c-format
 msgid "bad numeric config value '%s' for '%s' in submodule-blob %s: %s"
 msgstr "子模组数据 %3$s 中配置变量 '%2$s' 错误的取值 '%1$s':%4$s"
 
-#: config.c:975
+#: config.c:1010
 #, c-format
 msgid "bad numeric config value '%s' for '%s' in command line %s: %s"
 msgstr "命令行 %3$s 中配置变量 '%2$s' 错误的取值 '%1$s':%4$s"
 
-#: config.c:978
+#: config.c:1013
 #, c-format
 msgid "bad numeric config value '%s' for '%s' in %s: %s"
 msgstr "在 %3$s 中配置变量 '%2$s' 错误的取值 '%1$s':%4$s"
 
-#: config.c:1073
+#: config.c:1108
 #, c-format
 msgid "failed to expand user dir in: '%s'"
 msgstr "无法扩展用户目录:'%s'"
 
-#: config.c:1082
+#: config.c:1117
 #, c-format
 msgid "'%s' for '%s' is not a valid timestamp"
 msgstr "'%2$s' 的值 '%1$s' 不是一个有效的时间戳"
 
-#: config.c:1173
+#: config.c:1208
 #, c-format
 msgid "abbrev length out of range: %d"
 msgstr "缩写长度超出范围:%d"
 
-#: config.c:1187 config.c:1198
+#: config.c:1222 config.c:1233
 #, c-format
 msgid "bad zlib compression level %d"
 msgstr "错误的 zlib 压缩级别 %d"
 
-#: config.c:1290
+#: config.c:1325
 msgid "core.commentChar should only be one character"
 msgstr "core.commentChar 应该是一个字符"
 
-#: config.c:1323
+#: config.c:1358
 #, c-format
 msgid "invalid mode for object creation: %s"
 msgstr "无效的对象创建模式:%s"
 
-#: config.c:1395
+#: config.c:1430
 #, c-format
 msgid "malformed value for %s"
 msgstr "%s 的取值格式错误"
 
-#: config.c:1421
+#: config.c:1456
 #, c-format
 msgid "malformed value for %s: %s"
 msgstr "%s 的取值格式错误:%s"
 
-#: config.c:1422
+#: config.c:1457
 msgid "must be one of nothing, matching, simple, upstream or current"
 msgstr "必须是其中之一:nothing、matching、simple、upstream 或 current"
 
-#: config.c:1483 builtin/pack-objects.c:3397
+#: config.c:1518 builtin/pack-objects.c:3410
 #, c-format
 msgid "bad pack compression level %d"
 msgstr "错误的打包压缩级别 %d"
 
-#: config.c:1604
+#: config.c:1639
 #, c-format
 msgid "unable to load config blob object '%s'"
 msgstr "无法从数据对象 '%s' 加载配置"
 
-#: config.c:1607
+#: config.c:1642
 #, c-format
 msgid "reference '%s' does not point to a blob"
 msgstr "引用 '%s' 没有指向一个数据对象"
 
-#: config.c:1624
+#: config.c:1659
 #, c-format
 msgid "unable to resolve config blob '%s'"
 msgstr "不能解析配置对象 '%s'"
 
-#: config.c:1654
+#: config.c:1689
 #, c-format
 msgid "failed to parse %s"
 msgstr "解析 %s 失败"
 
-#: config.c:1710
+#: config.c:1745
 msgid "unable to parse command-line config"
 msgstr "无法解析命令行中的配置"
 
-#: config.c:2059
+#: config.c:2094
 msgid "unknown error occurred while reading the configuration files"
 msgstr "在读取配置文件时遇到未知错误"
 
-#: config.c:2229
+#: config.c:2264
 #, c-format
 msgid "Invalid %s: '%s'"
 msgstr "无效 %s:'%s'"
 
-#: config.c:2272
+#: config.c:2307
 #, c-format
 msgid "unknown core.untrackedCache value '%s'; using 'keep' default value"
 msgstr "未知的 core.untrackedCache 取值 '%s',使用默认值 'keep'"
 
-#: config.c:2298
+#: config.c:2333
 #, c-format
 msgid "splitIndex.maxPercentChange value '%d' should be between 0 and 100"
 msgstr "splitIndex.maxPercentChange 的取值 '%d' 应该介于 0 和 100 之间"
 
-#: config.c:2344
+#: config.c:2379
 #, c-format
 msgid "unable to parse '%s' from command-line config"
 msgstr "无法解析命令行配置中的 '%s'"
 
-#: config.c:2346
+#: config.c:2381
 #, c-format
 msgid "bad config variable '%s' in file '%s' at line %d"
 msgstr "在文件 '%2$s' 的第 %3$d 行发现错误的配置变量 '%1$s'"
 
-#: config.c:2427
+#: config.c:2462
 #, c-format
 msgid "invalid section name '%s'"
 msgstr "无效的小节名称 '%s'"
 
-#: config.c:2459
+#: config.c:2494
 #, c-format
 msgid "%s has multiple values"
 msgstr "%s 有多个取值"
 
-#: config.c:2488
+#: config.c:2523
 #, c-format
 msgid "failed to write new configuration file %s"
 msgstr "写入新的配置文件 %s 失败"
 
-#: config.c:2740 config.c:3064
+#: config.c:2775 config.c:3099
 #, c-format
 msgid "could not lock config file %s"
 msgstr "不能锁定配置文件 %s"
 
-#: config.c:2751
+#: config.c:2786
 #, c-format
 msgid "opening %s"
 msgstr "打开 %s"
 
-#: config.c:2786 builtin/config.c:328
+#: config.c:2821 builtin/config.c:328
 #, c-format
 msgid "invalid pattern: %s"
 msgstr "无效模式:%s"
 
-#: config.c:2811
+#: config.c:2846
 #, c-format
 msgid "invalid config file %s"
 msgstr "无效的配置文件 %s"
 
-#: config.c:2824 config.c:3077
+#: config.c:2859 config.c:3112
 #, c-format
 msgid "fstat on %s failed"
 msgstr "对 %s 调用 fstat 失败"
 
-#: config.c:2835
+#: config.c:2870
 #, c-format
 msgid "unable to mmap '%s'"
 msgstr "不能 mmap '%s'"
 
-#: config.c:2844 config.c:3082
+#: config.c:2879 config.c:3117
 #, c-format
 msgid "chmod on %s failed"
 msgstr "对 %s 调用 chmod 失败"
 
-#: config.c:2929 config.c:3179
+#: config.c:2964 config.c:3214
 #, c-format
 msgid "could not write config file %s"
 msgstr "不能写入配置文件 %s"
 
-#: config.c:2963
+#: config.c:2998
 #, c-format
 msgid "could not set '%s' to '%s'"
 msgstr "不能设置 '%s' 为 '%s'"
 
-#: config.c:2965 builtin/remote.c:782
+#: config.c:3000 builtin/remote.c:782
 #, c-format
 msgid "could not unset '%s'"
 msgstr "不能取消设置 '%s'"
 
-#: config.c:3055
+#: config.c:3090
 #, c-format
 msgid "invalid section name: %s"
 msgstr "无效的小节名称:%s"
 
-#: config.c:3222
+#: config.c:3257
 #, c-format
 msgid "missing value for '%s'"
 msgstr "%s 的取值缺失"
@@ -2146,19 +2217,19 @@ msgstr "已阻止奇怪的路径名 '%s'"
 msgid "unable to fork"
 msgstr "无法 fork"
 
-#: connected.c:85 builtin/fsck.c:221 builtin/prune.c:43
+#: connected.c:86 builtin/fsck.c:221 builtin/prune.c:43
 msgid "Checking connectivity"
 msgstr "正在检查连通性"
 
-#: connected.c:97
+#: connected.c:98
 msgid "Could not run 'git rev-list'"
 msgstr "不能执行 'git rev-list'"
 
-#: connected.c:117
+#: connected.c:118
 msgid "failed write to rev-list"
 msgstr "写入 rev-list 失败"
 
-#: connected.c:124
+#: connected.c:125
 msgid "failed to close rev-list's stdin"
 msgstr "关闭 rev-list 的标准输入失败"
 
@@ -2372,7 +2443,7 @@ msgstr "未能加载 '%s' 的数据岛正则表达式:%s"
 msgid "island regex from config has too many capture groups (max=%d)"
 msgstr "来自 config 的数据岛正则表达式有太多的捕获组(最多 %d 个)"
 
-#: delta-islands.c:466
+#: delta-islands.c:467
 #, c-format
 msgid "Marked %d islands, done.\n"
 msgstr "已标记 %d 个数据岛,结束。\n"
@@ -2445,35 +2516,35 @@ msgstr ""
 "发现配置变量 'diff.dirstat' 中的错误:\n"
 "%s"
 
-#: diff.c:4210
+#: diff.c:4215
 #, c-format
 msgid "external diff died, stopping at %s"
 msgstr "外部 diff 退出,停止在 %s"
 
-#: diff.c:4555
+#: diff.c:4560
 msgid "--name-only, --name-status, --check and -s are mutually exclusive"
 msgstr "--name-only、--name-status、--check 和 -s 是互斥的"
 
-#: diff.c:4558
+#: diff.c:4563
 msgid "-G, -S and --find-object are mutually exclusive"
 msgstr "-G、-S 和 --find-object 是互斥的"
 
-#: diff.c:4636
+#: diff.c:4641
 msgid "--follow requires exactly one pathspec"
 msgstr "--follow 明确要求只跟一个路径规格"
 
-#: diff.c:4684
+#: diff.c:4689
 #, c-format
 msgid "invalid --stat value: %s"
 msgstr "无效的 --stat 值:%s"
 
-#: diff.c:4689 diff.c:4694 diff.c:4699 diff.c:4704 diff.c:5217
+#: diff.c:4694 diff.c:4699 diff.c:4704 diff.c:4709 diff.c:5222
 #: parse-options.c:199 parse-options.c:203
 #, c-format
 msgid "%s expects a numerical value"
 msgstr "%s 期望一个数字值"
 
-#: diff.c:4721
+#: diff.c:4726
 #, c-format
 msgid ""
 "Failed to parse --dirstat/-X option parameter:\n"
@@ -2482,195 +2553,195 @@ msgstr ""
 "无法解析 --dirstat/-X 选项的参数:\n"
 "%s"
 
-#: diff.c:4806
+#: diff.c:4811
 #, c-format
 msgid "unknown change class '%c' in --diff-filter=%s"
 msgstr "--diff-filter=%2$s 中未知的变更类 '%1$c'"
 
-#: diff.c:4830
+#: diff.c:4835
 #, c-format
 msgid "unknown value after ws-error-highlight=%.*s"
 msgstr "ws-error-highlight=%.*s 之后未知的值"
 
-#: diff.c:4844
+#: diff.c:4849
 #, c-format
 msgid "unable to resolve '%s'"
 msgstr "不能解析 '%s'"
 
-#: diff.c:4894 diff.c:4900
+#: diff.c:4899 diff.c:4905
 #, c-format
 msgid "%s expects <n>/<m> form"
 msgstr "%s 期望 <n>/<m> 格式"
 
-#: diff.c:4912
+#: diff.c:4917
 #, c-format
 msgid "%s expects a character, got '%s'"
 msgstr "%s 期望一个字符,得到 '%s'"
 
-#: diff.c:4933
+#: diff.c:4938
 #, c-format
 msgid "bad --color-moved argument: %s"
 msgstr "坏的 --color-moved 参数:%s"
 
-#: diff.c:4952
+#: diff.c:4957
 #, c-format
 msgid "invalid mode '%s' in --color-moved-ws"
 msgstr "--color-moved-ws 中的无效模式 '%s' "
 
-#: diff.c:4992
+#: diff.c:4997
 msgid ""
 "option diff-algorithm accepts \"myers\", \"minimal\", \"patience\" and "
 "\"histogram\""
 msgstr ""
 "diff-algorithm 选项有 \"myers\"、\"minimal\"、\"patience\" 和 \"histogram\""
 
-#: diff.c:5028 diff.c:5048
+#: diff.c:5033 diff.c:5053
 #, c-format
 msgid "invalid argument to %s"
 msgstr "%s 的参数无效"
 
-#: diff.c:5186
+#: diff.c:5191
 #, c-format
 msgid "failed to parse --submodule option parameter: '%s'"
 msgstr "无法解析 --submodule 选项的参数:'%s'"
 
-#: diff.c:5242
+#: diff.c:5247
 #, c-format
 msgid "bad --word-diff argument: %s"
 msgstr "坏的 --word-diff 参数:%s"
 
-#: diff.c:5265
+#: diff.c:5270
 msgid "Diff output format options"
 msgstr "差异输出格式化选项"
 
-#: diff.c:5267 diff.c:5273
+#: diff.c:5272 diff.c:5278
 msgid "generate patch"
 msgstr "生成补丁"
 
-#: diff.c:5270 builtin/log.c:167
+#: diff.c:5275 builtin/log.c:172
 msgid "suppress diff output"
 msgstr "不显示差异输出"
 
-#: diff.c:5275 diff.c:5389 diff.c:5396
+#: diff.c:5280 diff.c:5394 diff.c:5401
 msgid "<n>"
 msgstr "<n>"
 
-#: diff.c:5276 diff.c:5279
+#: diff.c:5281 diff.c:5284
 msgid "generate diffs with <n> lines context"
 msgstr "生成含 <n> 行上下文的差异"
 
-#: diff.c:5281
+#: diff.c:5286
 msgid "generate the diff in raw format"
 msgstr "生成原始格式的差异"
 
-#: diff.c:5284
+#: diff.c:5289
 msgid "synonym for '-p --raw'"
 msgstr "和 '-p --raw' 同义"
 
-#: diff.c:5288
+#: diff.c:5293
 msgid "synonym for '-p --stat'"
 msgstr "和 '-p --stat' 同义"
 
-#: diff.c:5292
+#: diff.c:5297
 msgid "machine friendly --stat"
 msgstr "机器友好的 --stat"
 
-#: diff.c:5295
+#: diff.c:5300
 msgid "output only the last line of --stat"
 msgstr "只输出 --stat 的最后一行"
 
-#: diff.c:5297 diff.c:5305
+#: diff.c:5302 diff.c:5310
 msgid "<param1,param2>..."
 msgstr "<参数1,参数2>..."
 
-#: diff.c:5298
+#: diff.c:5303
 msgid ""
 "output the distribution of relative amount of changes for each sub-directory"
 msgstr "输出每个子目录相对变更的分布"
 
-#: diff.c:5302
+#: diff.c:5307
 msgid "synonym for --dirstat=cumulative"
 msgstr "和 --dirstat=cumulative 同义"
 
-#: diff.c:5306
+#: diff.c:5311
 msgid "synonym for --dirstat=files,param1,param2..."
 msgstr "是 --dirstat=files,param1,param2... 的同义词"
 
-#: diff.c:5310
+#: diff.c:5315
 msgid "warn if changes introduce conflict markers or whitespace errors"
 msgstr "如果变更中引入冲突定界符或空白错误,给出警告"
 
-#: diff.c:5313
+#: diff.c:5318
 msgid "condensed summary such as creations, renames and mode changes"
 msgstr "精简摘要,例如创建、重命名和模式变更"
 
-#: diff.c:5316
+#: diff.c:5321
 msgid "show only names of changed files"
 msgstr "只显示变更文件的文件名"
 
-#: diff.c:5319
+#: diff.c:5324
 msgid "show only names and status of changed files"
 msgstr "只显示变更文件的文件名和状态"
 
-#: diff.c:5321
+#: diff.c:5326
 msgid "<width>[,<name-width>[,<count>]]"
 msgstr "<宽度>[,<文件名宽度>[,<次数>]]"
 
-#: diff.c:5322
+#: diff.c:5327
 msgid "generate diffstat"
 msgstr "生成差异统计(diffstat)"
 
-#: diff.c:5324 diff.c:5327 diff.c:5330
+#: diff.c:5329 diff.c:5332 diff.c:5335
 msgid "<width>"
 msgstr "<宽度>"
 
-#: diff.c:5325
+#: diff.c:5330
 msgid "generate diffstat with a given width"
 msgstr "使用给定的长度生成差异统计"
 
-#: diff.c:5328
+#: diff.c:5333
 msgid "generate diffstat with a given name width"
 msgstr "使用给定的文件名长度生成差异统计"
 
-#: diff.c:5331
+#: diff.c:5336
 msgid "generate diffstat with a given graph width"
 msgstr "使用给定的图形长度生成差异统计"
 
-#: diff.c:5333
+#: diff.c:5338
 msgid "<count>"
 msgstr "<次数>"
 
-#: diff.c:5334
+#: diff.c:5339
 msgid "generate diffstat with limited lines"
 msgstr "生成有限行数的差异统计"
 
-#: diff.c:5337
+#: diff.c:5342
 msgid "generate compact summary in diffstat"
 msgstr "生成差异统计的简洁摘要"
 
-#: diff.c:5340
+#: diff.c:5345
 msgid "output a binary diff that can be applied"
 msgstr "输出一个可以应用的二进制差异"
 
-#: diff.c:5343
+#: diff.c:5348
 msgid "show full pre- and post-image object names on the \"index\" lines"
 msgstr "在 \"index\" 行显示完整的前后对象名称"
 
-#: diff.c:5345
+#: diff.c:5350
 msgid "show colored diff"
 msgstr "显示带颜色的差异"
 
-#: diff.c:5346
+#: diff.c:5351
 msgid "<kind>"
 msgstr "<类型>"
 
-#: diff.c:5347
+#: diff.c:5352
 msgid ""
 "highlight whitespace errors in the 'context', 'old' or 'new' lines in the "
 "diff"
 msgstr "对于差异中的上下文、旧的和新的行,加亮显示错误的空白字符"
 
-#: diff.c:5350
+#: diff.c:5355
 msgid ""
 "do not munge pathnames and use NULs as output field terminators in --raw or "
 "--numstat"
@@ -2678,295 +2749,295 @@ msgstr ""
 "在 --raw 或者 --numstat 中,不对路径字符转码并使用 NUL 字符做为输出字段的分隔"
 "符"
 
-#: diff.c:5353 diff.c:5356 diff.c:5359 diff.c:5465
+#: diff.c:5358 diff.c:5361 diff.c:5364 diff.c:5470
 msgid "<prefix>"
 msgstr "<前缀>"
 
-#: diff.c:5354
+#: diff.c:5359
 msgid "show the given source prefix instead of \"a/\""
 msgstr "显示给定的源前缀取代 \"a/\""
 
-#: diff.c:5357
+#: diff.c:5362
 msgid "show the given destination prefix instead of \"b/\""
 msgstr "显示给定的目标前缀取代 \"b/\""
 
-#: diff.c:5360
+#: diff.c:5365
 msgid "prepend an additional prefix to every line of output"
 msgstr "输出的每一行附加前缀"
 
-#: diff.c:5363
+#: diff.c:5368
 msgid "do not show any source or destination prefix"
 msgstr "不显示任何源和目标前缀"
 
-#: diff.c:5366
+#: diff.c:5371
 msgid "show context between diff hunks up to the specified number of lines"
 msgstr "显示指定行数的差异块间的上下文"
 
-#: diff.c:5370 diff.c:5375 diff.c:5380
+#: diff.c:5375 diff.c:5380 diff.c:5385
 msgid "<char>"
 msgstr "<字符>"
 
-#: diff.c:5371
+#: diff.c:5376
 msgid "specify the character to indicate a new line instead of '+'"
 msgstr "指定一个字符取代 '+' 来表示新的一行"
 
-#: diff.c:5376
+#: diff.c:5381
 msgid "specify the character to indicate an old line instead of '-'"
 msgstr "指定一个字符取代 '-' 来表示旧的一行"
 
-#: diff.c:5381
+#: diff.c:5386
 msgid "specify the character to indicate a context instead of ' '"
 msgstr "指定一个字符取代 ' ' 来表示一行上下文"
 
-#: diff.c:5384
+#: diff.c:5389
 msgid "Diff rename options"
 msgstr "差异重命名选项"
 
-#: diff.c:5385
+#: diff.c:5390
 msgid "<n>[/<m>]"
 msgstr "<n>[/<m>]"
 
-#: diff.c:5386
+#: diff.c:5391
 msgid "break complete rewrite changes into pairs of delete and create"
 msgstr "将完全重写的变更打破为成对的删除和创建"
 
-#: diff.c:5390
+#: diff.c:5395
 msgid "detect renames"
 msgstr "检测重命名"
 
-#: diff.c:5394
+#: diff.c:5399
 msgid "omit the preimage for deletes"
 msgstr "省略删除操作的差异输出"
 
-#: diff.c:5397
+#: diff.c:5402
 msgid "detect copies"
 msgstr "检测拷贝"
 
-#: diff.c:5401
+#: diff.c:5406
 msgid "use unmodified files as source to find copies"
 msgstr "使用未修改的文件做为发现拷贝的源"
 
-#: diff.c:5403
+#: diff.c:5408
 msgid "disable rename detection"
 msgstr "禁用重命名探测"
 
-#: diff.c:5406
+#: diff.c:5411
 msgid "use empty blobs as rename source"
 msgstr "使用空的数据对象做为重命名的源"
 
-#: diff.c:5408
+#: diff.c:5413
 msgid "continue listing the history of a file beyond renames"
 msgstr "继续列出文件重命名以外的历史记录"
 
-#: diff.c:5411
+#: diff.c:5416
 msgid ""
 "prevent rename/copy detection if the number of rename/copy targets exceeds "
 "given limit"
 msgstr "如果重命名/拷贝目标超过给定的限制,禁止重命名/拷贝检测"
 
-#: diff.c:5413
+#: diff.c:5418
 msgid "Diff algorithm options"
 msgstr "差异算法选项"
 
-#: diff.c:5415
+#: diff.c:5420
 msgid "produce the smallest possible diff"
 msgstr "生成尽可能小的差异"
 
-#: diff.c:5418
+#: diff.c:5423
 msgid "ignore whitespace when comparing lines"
 msgstr "行比较时忽略空白字符"
 
-#: diff.c:5421
+#: diff.c:5426
 msgid "ignore changes in amount of whitespace"
 msgstr "忽略空白字符的变更"
 
-#: diff.c:5424
+#: diff.c:5429
 msgid "ignore changes in whitespace at EOL"
 msgstr "忽略行尾的空白字符变更"
 
-#: diff.c:5427
+#: diff.c:5432
 msgid "ignore carrier-return at the end of line"
 msgstr "忽略行尾的回车符(CR)"
 
-#: diff.c:5430
+#: diff.c:5435
 msgid "ignore changes whose lines are all blank"
 msgstr "忽略整行都是空白的变更"
 
-#: diff.c:5433
+#: diff.c:5438
 msgid "heuristic to shift diff hunk boundaries for easy reading"
 msgstr "启发式转换差异边界以便阅读"
 
-#: diff.c:5436
+#: diff.c:5441
 msgid "generate diff using the \"patience diff\" algorithm"
 msgstr "使用 \"patience diff\" 算法生成差异"
 
-#: diff.c:5440
+#: diff.c:5445
 msgid "generate diff using the \"histogram diff\" algorithm"
 msgstr "使用 \"histogram diff\" 算法生成差异"
 
-#: diff.c:5442
+#: diff.c:5447
 msgid "<algorithm>"
 msgstr "<算法>"
 
-#: diff.c:5443
+#: diff.c:5448
 msgid "choose a diff algorithm"
 msgstr "选择一个差异算法"
 
-#: diff.c:5445
+#: diff.c:5450
 msgid "<text>"
 msgstr "<文本>"
 
-#: diff.c:5446
+#: diff.c:5451
 msgid "generate diff using the \"anchored diff\" algorithm"
 msgstr "使用 \"anchored diff\" 算法生成差异"
 
-#: diff.c:5448 diff.c:5457 diff.c:5460
+#: diff.c:5453 diff.c:5462 diff.c:5465
 msgid "<mode>"
 msgstr "<模式>"
 
-#: diff.c:5449
+#: diff.c:5454
 msgid "show word diff, using <mode> to delimit changed words"
 msgstr "显示单词差异,使用 <模式> 分隔变更的单词"
 
-#: diff.c:5451 diff.c:5454 diff.c:5499
+#: diff.c:5456 diff.c:5459 diff.c:5504
 msgid "<regex>"
 msgstr "<正则>"
 
-#: diff.c:5452
+#: diff.c:5457
 msgid "use <regex> to decide what a word is"
 msgstr "使用 <正则表达式> 确定何为一个词"
 
-#: diff.c:5455
+#: diff.c:5460
 msgid "equivalent to --word-diff=color --word-diff-regex=<regex>"
 msgstr "相当于 --word-diff=color --word-diff-regex=<正则>"
 
-#: diff.c:5458
+#: diff.c:5463
 msgid "moved lines of code are colored differently"
 msgstr "移动的代码行用不同方式着色"
 
-#: diff.c:5461
+#: diff.c:5466
 msgid "how white spaces are ignored in --color-moved"
 msgstr "在 --color-moved 下如何忽略空白字符"
 
-#: diff.c:5464
+#: diff.c:5469
 msgid "Other diff options"
 msgstr "其它差异选项"
 
-#: diff.c:5466
+#: diff.c:5471
 msgid "when run from subdir, exclude changes outside and show relative paths"
 msgstr "当从子目录运行,排除目录之外的变更并显示相对路径"
 
-#: diff.c:5470
+#: diff.c:5475
 msgid "treat all files as text"
 msgstr "把所有文件当做文本处理"
 
-#: diff.c:5472
+#: diff.c:5477
 msgid "swap two inputs, reverse the diff"
 msgstr "交换两个输入,反转差异"
 
-#: diff.c:5474
+#: diff.c:5479
 msgid "exit with 1 if there were differences, 0 otherwise"
 msgstr "有差异时退出码为 1,否则为 0"
 
-#: diff.c:5476
+#: diff.c:5481
 msgid "disable all output of the program"
 msgstr "禁用本程序的所有输出"
 
-#: diff.c:5478
+#: diff.c:5483
 msgid "allow an external diff helper to be executed"
 msgstr "允许执行一个外置的差异助手"
 
-#: diff.c:5480
+#: diff.c:5485
 msgid "run external text conversion filters when comparing binary files"
 msgstr "当比较二进制文件时,运行外部的文本转换过滤器"
 
-#: diff.c:5482
+#: diff.c:5487
 msgid "<when>"
 msgstr "<何时>"
 
-#: diff.c:5483
+#: diff.c:5488
 msgid "ignore changes to submodules in the diff generation"
 msgstr "在生成差异时,忽略子模组的更改"
 
-#: diff.c:5486
+#: diff.c:5491
 msgid "<format>"
 msgstr "<格式>"
 
-#: diff.c:5487
+#: diff.c:5492
 msgid "specify how differences in submodules are shown"
 msgstr "指定子模组的差异如何显示"
 
-#: diff.c:5491
+#: diff.c:5496
 msgid "hide 'git add -N' entries from the index"
 msgstr "隐藏索引中 'git add -N' 条目"
 
-#: diff.c:5494
+#: diff.c:5499
 msgid "treat 'git add -N' entries as real in the index"
 msgstr "将索引中 'git add -N' 条目当做真实的"
 
-#: diff.c:5496
+#: diff.c:5501
 msgid "<string>"
 msgstr "<字符串>"
 
-#: diff.c:5497
+#: diff.c:5502
 msgid ""
 "look for differences that change the number of occurrences of the specified "
 "string"
 msgstr "查找改变了指定字符串出现次数的差异"
 
-#: diff.c:5500
+#: diff.c:5505
 msgid ""
 "look for differences that change the number of occurrences of the specified "
 "regex"
 msgstr "查找改变指定正则匹配出现次数的差异"
 
-#: diff.c:5503
+#: diff.c:5508
 msgid "show all changes in the changeset with -S or -G"
 msgstr "显示使用 -S 或 -G 的变更集的所有变更"
 
-#: diff.c:5506
+#: diff.c:5511
 msgid "treat <string> in -S as extended POSIX regular expression"
 msgstr "将 -S 的 <string> 当做扩展的 POSIX 正则表达式"
 
-#: diff.c:5509
+#: diff.c:5514
 msgid "control the order in which files appear in the output"
 msgstr "控制输出中的文件显示顺序"
 
-#: diff.c:5510
+#: diff.c:5515
 msgid "<object-id>"
 msgstr "<对象 ID>"
 
-#: diff.c:5511
+#: diff.c:5516
 msgid ""
 "look for differences that change the number of occurrences of the specified "
 "object"
 msgstr "查找改变指定对象出现次数的差异"
 
-#: diff.c:5513
+#: diff.c:5518
 msgid "[(A|C|D|M|R|T|U|X|B)...[*]]"
 msgstr "[(A|C|D|M|R|T|U|X|B)...[*]]"
 
-#: diff.c:5514
+#: diff.c:5519
 msgid "select files by diff type"
 msgstr "通过差异类型选择文件"
 
-#: diff.c:5516
+#: diff.c:5521
 msgid "<file>"
 msgstr "<文件>"
 
-#: diff.c:5517
+#: diff.c:5522
 msgid "Output to a specific file"
 msgstr "输出到一个指定的文件"
 
-#: diff.c:6150
+#: diff.c:6177
 msgid "inexact rename detection was skipped due to too many files."
 msgstr "因为文件太多,略过不严格的重命名检查。"
 
-#: diff.c:6153
+#: diff.c:6180
 msgid "only found copies from modified paths due to too many files."
 msgstr "因为文件太多,只在修改的路径中查找拷贝。"
 
-#: diff.c:6156
+#: diff.c:6183
 #, c-format
 msgid ""
 "you may want to set your %s variable to at least %d and retry the command."
@@ -3068,32 +3139,32 @@ msgstr "无法写到远程"
 msgid "--stateless-rpc requires multi_ack_detailed"
 msgstr "--stateless-rpc 需要 multi_ack_detailed"
 
-#: fetch-pack.c:360 fetch-pack.c:1271
+#: fetch-pack.c:360 fetch-pack.c:1284
 #, c-format
 msgid "invalid shallow line: %s"
 msgstr "无效的 shallow 信息:%s"
 
-#: fetch-pack.c:366 fetch-pack.c:1277
+#: fetch-pack.c:366 fetch-pack.c:1290
 #, c-format
 msgid "invalid unshallow line: %s"
 msgstr "无效的 unshallow 信息:%s"
 
-#: fetch-pack.c:368 fetch-pack.c:1279
+#: fetch-pack.c:368 fetch-pack.c:1292
 #, c-format
 msgid "object not found: %s"
 msgstr "对象未找到:%s"
 
-#: fetch-pack.c:371 fetch-pack.c:1282
+#: fetch-pack.c:371 fetch-pack.c:1295
 #, c-format
 msgid "error in object: %s"
 msgstr "对象中出错:%s"
 
-#: fetch-pack.c:373 fetch-pack.c:1284
+#: fetch-pack.c:373 fetch-pack.c:1297
 #, c-format
 msgid "no shallow found: %s"
 msgstr "未发现 shallow:%s"
 
-#: fetch-pack.c:376 fetch-pack.c:1288
+#: fetch-pack.c:376 fetch-pack.c:1301
 #, c-format
 msgid "expected shallow/unshallow, got %s"
 msgstr "应为 shallow/unshallow,却得到 %s"
@@ -3112,7 +3183,7 @@ msgstr "无效提交 %s"
 msgid "giving up"
 msgstr "放弃"
 
-#: fetch-pack.c:477 progress.c:284
+#: fetch-pack.c:477 progress.c:277
 msgid "done"
 msgstr "完成"
 
@@ -3153,154 +3224,130 @@ msgstr "%s 失败"
 msgid "error in sideband demultiplexer"
 msgstr "sideband 多路输出出错"
 
-#: fetch-pack.c:906
-msgid "Server does not support shallow clients"
-msgstr "服务器不支持 shalllow 客户端"
-
-#: fetch-pack.c:910
-msgid "Server supports multi_ack_detailed"
-msgstr "服务器支持 multi_ack_detailed"
-
-#: fetch-pack.c:913
-msgid "Server supports no-done"
-msgstr "服务器支持 no-done"
-
-#: fetch-pack.c:919
-msgid "Server supports multi_ack"
-msgstr "服务器支持 multi_ack"
-
-#: fetch-pack.c:923
-msgid "Server supports side-band-64k"
-msgstr "服务器支持 side-band-64k"
-
-#: fetch-pack.c:927
-msgid "Server supports side-band"
-msgstr "服务器支持 side-band"
-
-#: fetch-pack.c:931
-msgid "Server supports allow-tip-sha1-in-want"
-msgstr "服务器支持 allow-tip-sha1-in-want"
-
-#: fetch-pack.c:935
-msgid "Server supports allow-reachable-sha1-in-want"
-msgstr "服务器支持 allow-reachable-sha1-in-want"
-
-#: fetch-pack.c:945
-msgid "Server supports ofs-delta"
-msgstr "服务器支持 ofs-delta"
-
-#: fetch-pack.c:951 fetch-pack.c:1144
-msgid "Server supports filter"
-msgstr "服务器支持 filter"
-
-#: fetch-pack.c:959
+#: fetch-pack.c:908
 #, c-format
 msgid "Server version is %.*s"
 msgstr "服务器版本 %.*s"
 
-#: fetch-pack.c:965
+#: fetch-pack.c:913 fetch-pack.c:919 fetch-pack.c:922 fetch-pack.c:928
+#: fetch-pack.c:932 fetch-pack.c:936 fetch-pack.c:940 fetch-pack.c:944
+#: fetch-pack.c:948 fetch-pack.c:952 fetch-pack.c:956 fetch-pack.c:960
+#: fetch-pack.c:966 fetch-pack.c:972 fetch-pack.c:977 fetch-pack.c:982
+#, c-format
+msgid "Server supports %s"
+msgstr "服务器支持 %s"
+
+#: fetch-pack.c:915
+msgid "Server does not support shallow clients"
+msgstr "服务器不支持 shalllow 客户端"
+
+#: fetch-pack.c:975
 msgid "Server does not support --shallow-since"
 msgstr "服务器不支持 --shallow-since"
 
-#: fetch-pack.c:969
+#: fetch-pack.c:980
 msgid "Server does not support --shallow-exclude"
 msgstr "服务器不支持 --shallow-exclude"
 
-#: fetch-pack.c:971
+#: fetch-pack.c:984
 msgid "Server does not support --deepen"
 msgstr "服务器不支持 --deepen"
 
-#: fetch-pack.c:988
+#: fetch-pack.c:1001
 msgid "no common commits"
 msgstr "没有共同的提交"
 
-#: fetch-pack.c:1000 fetch-pack.c:1449
+#: fetch-pack.c:1013 fetch-pack.c:1462
 msgid "git fetch-pack: fetch failed."
 msgstr "git fetch-pack:获取失败。"
 
-#: fetch-pack.c:1138
+#: fetch-pack.c:1151
 msgid "Server does not support shallow requests"
 msgstr "服务器不支持 shalllow 请求"
 
-#: fetch-pack.c:1171
+#: fetch-pack.c:1157
+msgid "Server supports filter"
+msgstr "服务器支持 filter"
+
+#: fetch-pack.c:1184
 msgid "unable to write request to remote"
 msgstr "无法将请求写到远程"
 
-#: fetch-pack.c:1189
+#: fetch-pack.c:1202
 #, c-format
 msgid "error reading section header '%s'"
 msgstr "读取节标题 '%s' 出错"
 
-#: fetch-pack.c:1195
+#: fetch-pack.c:1208
 #, c-format
 msgid "expected '%s', received '%s'"
 msgstr "预期 '%s',得到 '%s'"
 
-#: fetch-pack.c:1234
+#: fetch-pack.c:1247
 #, c-format
 msgid "unexpected acknowledgment line: '%s'"
 msgstr "意外的确认行:'%s'"
 
-#: fetch-pack.c:1239
+#: fetch-pack.c:1252
 #, c-format
 msgid "error processing acks: %d"
 msgstr "处理 ack 出错:%d"
 
-#: fetch-pack.c:1249
+#: fetch-pack.c:1262
 msgid "expected packfile to be sent after 'ready'"
 msgstr "预期在 'ready' 之后发送 packfile"
 
-#: fetch-pack.c:1251
+#: fetch-pack.c:1264
 msgid "expected no other sections to be sent after no 'ready'"
 msgstr "在没有 'ready' 不应该发送其它小节"
 
-#: fetch-pack.c:1293
+#: fetch-pack.c:1306
 #, c-format
 msgid "error processing shallow info: %d"
 msgstr "处理浅克隆信息出错:%d"
 
-#: fetch-pack.c:1340
+#: fetch-pack.c:1353
 #, c-format
 msgid "expected wanted-ref, got '%s'"
 msgstr "预期 wanted-ref,得到 '%s'"
 
-#: fetch-pack.c:1345
+#: fetch-pack.c:1358
 #, c-format
 msgid "unexpected wanted-ref: '%s'"
 msgstr "意外的 wanted-ref:'%s'"
 
-#: fetch-pack.c:1350
+#: fetch-pack.c:1363
 #, c-format
 msgid "error processing wanted refs: %d"
 msgstr "处理要获取的引用出错:%d"
 
-#: fetch-pack.c:1676
+#: fetch-pack.c:1689
 msgid "no matching remote head"
 msgstr "没有匹配的远程分支"
 
-#: fetch-pack.c:1699 builtin/clone.c:673
+#: fetch-pack.c:1712 builtin/clone.c:686
 msgid "remote did not send all necessary objects"
 msgstr "远程没有发送所有必需的对象"
 
-#: fetch-pack.c:1726
+#: fetch-pack.c:1739
 #, c-format
 msgid "no such remote ref %s"
 msgstr "没有这样的远程引用 %s"
 
-#: fetch-pack.c:1729
+#: fetch-pack.c:1742
 #, c-format
 msgid "Server does not allow request for unadvertised object %s"
 msgstr "服务器不允许请求未公开的对象 %s"
 
-#: gpg-interface.c:318
+#: gpg-interface.c:321
 msgid "gpg failed to sign the data"
 msgstr "gpg 无法为数据签名"
 
-#: gpg-interface.c:344
+#: gpg-interface.c:347
 msgid "could not create temporary file"
 msgstr "不能创建临时文件"
 
-#: gpg-interface.c:347
+#: gpg-interface.c:350
 #, c-format
 msgid "failed writing detached signature to '%s'"
 msgstr "无法将分离式签名写入 '%s'"
@@ -3310,18 +3357,18 @@ msgstr "无法将分离式签名写入 '%s'"
 msgid "ignore invalid color '%.*s' in log.graphColors"
 msgstr "忽略 log.graphColors 中无效的颜色 '%.*s'"
 
-#: grep.c:2113
+#: grep.c:2117
 #, c-format
 msgid "'%s': unable to read %s"
 msgstr "'%s':无法读取 %s"
 
-#: grep.c:2130 setup.c:164 builtin/clone.c:411 builtin/diff.c:82
+#: grep.c:2134 setup.c:164 builtin/clone.c:409 builtin/diff.c:82
 #: builtin/rm.c:135
 #, c-format
 msgid "failed to stat '%s'"
 msgstr "对 '%s' 调用 stat 失败"
 
-#: grep.c:2141
+#: grep.c:2145
 #, c-format
 msgid "'%s': short read"
 msgstr "'%s':读取不完整"
@@ -3391,7 +3438,7 @@ msgstr "在 $PATH 路径中的其他地方可用的 git 命令"
 msgid "These are common Git commands used in various situations:"
 msgstr "这些是各种场合常见的 Git 命令:"
 
-#: help.c:363 git.c:97
+#: help.c:363 git.c:98
 #, c-format
 msgid "unsupported command listing type '%s'"
 msgstr "不支持的命令列表类型 '%s'"
@@ -3535,7 +3582,7 @@ msgstr "不允许空的姓名(对于 <%s>)"
 msgid "name consists only of disallowed characters: %s"
 msgstr "姓名中仅包含禁用字符:%s"
 
-#: ident.c:436 builtin/commit.c:608
+#: ident.c:436 builtin/commit.c:611
 #, c-format
 msgid "invalid date format: %s"
 msgstr "无效的日期格式:%s"
@@ -3567,6 +3614,11 @@ msgstr "期望 'tree:<深度>'"
 msgid "sparse:path filters support has been dropped"
 msgstr "sparse:path 过滤器支持已被删除"
 
+#: list-objects-filter-options.c:94
+#, c-format
+msgid "invalid filter-spec '%s'"
+msgstr "无效的过滤器表达式 '%s'"
+
 #: list-objects-filter-options.c:158
 msgid "cannot change partial clone promisor remote"
 msgstr "无法修改部分克隆的 promisor 远程仓库"
@@ -3598,8 +3650,8 @@ msgstr "不能创建 '%s.lock':%s"
 msgid "failed to read the cache"
 msgstr "读取缓存失败"
 
-#: merge.c:107 rerere.c:720 builtin/am.c:1887 builtin/am.c:1921
-#: builtin/checkout.c:461 builtin/checkout.c:811 builtin/clone.c:773
+#: merge.c:107 rerere.c:720 builtin/am.c:1885 builtin/am.c:1919
+#: builtin/checkout.c:536 builtin/checkout.c:796 builtin/clone.c:786
 #: builtin/stash.c:264
 msgid "unable to write new index file"
 msgstr "无法写新的索引文件"
@@ -3622,90 +3674,90 @@ msgstr "add_cacheinfo 无法刷新路径 '%s',合并终止。"
 msgid "error building trees"
 msgstr "创建树出错"
 
-#: merge-recursive.c:861
+#: merge-recursive.c:863
 #, c-format
 msgid "failed to create path '%s'%s"
 msgstr "创建路径 '%s'%s 失败"
 
-#: merge-recursive.c:872
+#: merge-recursive.c:874
 #, c-format
 msgid "Removing %s to make room for subdirectory\n"
 msgstr "删除 %s 以便为子目录留出空间\n"
 
-#: merge-recursive.c:886 merge-recursive.c:905
+#: merge-recursive.c:888 merge-recursive.c:907
 msgid ": perhaps a D/F conflict?"
 msgstr ":可能是一个目录/文件冲突?"
 
-#: merge-recursive.c:895
+#: merge-recursive.c:897
 #, c-format
 msgid "refusing to lose untracked file at '%s'"
 msgstr "拒绝丢弃 '%s' 中的未跟踪文件"
 
-#: merge-recursive.c:936 builtin/cat-file.c:40
+#: merge-recursive.c:938 builtin/cat-file.c:40
 #, c-format
 msgid "cannot read object %s '%s'"
 msgstr "不能读取对象 %s '%s'"
 
-#: merge-recursive.c:939
+#: merge-recursive.c:941
 #, c-format
 msgid "blob expected for %s '%s'"
 msgstr "%s '%s' 应为数据对象"
 
-#: merge-recursive.c:963
+#: merge-recursive.c:965
 #, c-format
 msgid "failed to open '%s': %s"
 msgstr "打开 '%s' 失败:%s"
 
-#: merge-recursive.c:974
+#: merge-recursive.c:976
 #, c-format
 msgid "failed to symlink '%s': %s"
 msgstr "创建符号链接 '%s' 失败:%s"
 
-#: merge-recursive.c:979
+#: merge-recursive.c:981
 #, c-format
 msgid "do not know what to do with %06o %s '%s'"
 msgstr "不知道如何处理 %06o %s '%s'"
 
-#: merge-recursive.c:1175
+#: merge-recursive.c:1177
 #, c-format
 msgid "Failed to merge submodule %s (not checked out)"
 msgstr "无法合并子模组 %s (没有检出)"
 
-#: merge-recursive.c:1182
+#: merge-recursive.c:1184
 #, c-format
 msgid "Failed to merge submodule %s (commits not present)"
 msgstr "无法合并子模组 %s(提交不存在)"
 
-#: merge-recursive.c:1189
+#: merge-recursive.c:1191
 #, c-format
 msgid "Failed to merge submodule %s (commits don't follow merge-base)"
 msgstr "无法合并子模组 %s (提交未跟随合并基线)"
 
-#: merge-recursive.c:1197 merge-recursive.c:1209
+#: merge-recursive.c:1199 merge-recursive.c:1211
 #, c-format
 msgid "Fast-forwarding submodule %s to the following commit:"
 msgstr "子模组 %s 快进到如下提交:"
 
-#: merge-recursive.c:1200 merge-recursive.c:1212
+#: merge-recursive.c:1202 merge-recursive.c:1214
 #, c-format
 msgid "Fast-forwarding submodule %s"
 msgstr "快进子模组 %s"
 
-#: merge-recursive.c:1235
+#: merge-recursive.c:1237
 #, c-format
 msgid "Failed to merge submodule %s (merge following commits not found)"
 msgstr "无法合并子模组 %s (没发现合并跟随的提交)"
 
-#: merge-recursive.c:1239
+#: merge-recursive.c:1241
 #, c-format
 msgid "Failed to merge submodule %s (not fast-forward)"
 msgstr "无法合并子模组 %s(非快进)"
 
-#: merge-recursive.c:1240
+#: merge-recursive.c:1242
 msgid "Found a possible merge resolution for the submodule:\n"
 msgstr "找到子模组的一个可能的合并方案:\n"
 
-#: merge-recursive.c:1243
+#: merge-recursive.c:1245
 #, c-format
 msgid ""
 "If this is correct simply add it to the index for example\n"
@@ -3721,31 +3773,31 @@ msgstr ""
 "\n"
 "以接受此建议。\n"
 
-#: merge-recursive.c:1252
+#: merge-recursive.c:1254
 #, c-format
 msgid "Failed to merge submodule %s (multiple merges found)"
 msgstr "无法合并子模组 %s (发现多个合并)"
 
-#: merge-recursive.c:1325
+#: merge-recursive.c:1327
 msgid "Failed to execute internal merge"
 msgstr "无法执行内部合并"
 
-#: merge-recursive.c:1330
+#: merge-recursive.c:1332
 #, c-format
 msgid "Unable to add %s to database"
 msgstr "不能添加 %s 至对象库"
 
-#: merge-recursive.c:1362
+#: merge-recursive.c:1364
 #, c-format
 msgid "Auto-merging %s"
 msgstr "自动合并 %s"
 
-#: merge-recursive.c:1385
+#: merge-recursive.c:1387
 #, c-format
 msgid "Error: Refusing to lose untracked file at %s; writing to %s instead."
 msgstr "错误:拒绝丢失未跟踪文件 '%s',而是写入 %s。"
 
-#: merge-recursive.c:1457
+#: merge-recursive.c:1459
 #, c-format
 msgid ""
 "CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -3754,7 +3806,7 @@ msgstr ""
 "冲突(%1$s/删除):%2$s 在 %3$s 中被删除,在 %5$s 中被 %4$s。%7$s 的 %6$s 版"
 "本被保留。"
 
-#: merge-recursive.c:1462
+#: merge-recursive.c:1464
 #, c-format
 msgid ""
 "CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
@@ -3763,7 +3815,7 @@ msgstr ""
 "冲突(%1$s/删除):%2$s 在 %3$s 中被删除,在 %6$s 中的 %5$s 被 %4$s。%8$s 的 "
 "%7$s 版本被保留。"
 
-#: merge-recursive.c:1469
+#: merge-recursive.c:1471
 #, c-format
 msgid ""
 "CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -3772,7 +3824,7 @@ msgstr ""
 "冲突(%1$s/删除):%2$s 在 %3$s 中被删除,在 %5$s 中被 %4$s。%7$s 的 %6$s 版"
 "本保留在 %8$s 中。"
 
-#: merge-recursive.c:1474
+#: merge-recursive.c:1476
 #, c-format
 msgid ""
 "CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
@@ -3781,40 +3833,40 @@ msgstr ""
 "冲突(%1$s/删除):%2$s 在 %3$s 中被删除,在 %6$s 中的 %5$s 被 %4$s。%8$s 的 "
 "%7$s 版本保留在 %9$s 中。"
 
-#: merge-recursive.c:1509
+#: merge-recursive.c:1511
 msgid "rename"
 msgstr "重命名"
 
-#: merge-recursive.c:1509
+#: merge-recursive.c:1511
 msgid "renamed"
 msgstr "重命名"
 
-#: merge-recursive.c:1589 merge-recursive.c:2445 merge-recursive.c:3085
+#: merge-recursive.c:1591 merge-recursive.c:2450 merge-recursive.c:3094
 #, c-format
 msgid "Refusing to lose dirty file at %s"
 msgstr "拒绝丢失脏文件 '%s'"
 
-#: merge-recursive.c:1599
+#: merge-recursive.c:1601
 #, c-format
 msgid "Refusing to lose untracked file at %s, even though it's in the way."
 msgstr "拒绝在 '%s' 处失去未跟踪文件,即使它存在于重命名中。"
 
-#: merge-recursive.c:1657
+#: merge-recursive.c:1659
 #, c-format
 msgid "CONFLICT (rename/add): Rename %s->%s in %s.  Added %s in %s"
 msgstr "冲突(重命名/添加):在 %3$s 中重命名 %1$s->%2$s。在 %5$s 中添加 %4$s"
 
-#: merge-recursive.c:1687
+#: merge-recursive.c:1690
 #, c-format
 msgid "%s is a directory in %s adding as %s instead"
 msgstr "%s 是 %s 中的一个目录而以 %s 为名被添加"
 
-#: merge-recursive.c:1692
+#: merge-recursive.c:1695
 #, c-format
 msgid "Refusing to lose untracked file at %s; adding as %s instead"
 msgstr "拒绝丢失未跟踪文件 '%s',而是添加为 %s"
 
-#: merge-recursive.c:1711
+#: merge-recursive.c:1714
 #, c-format
 msgid ""
 "CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
@@ -3823,18 +3875,18 @@ msgstr ""
 "冲突(重命名/重命名):在分支 \"%3$s\" 中重命名 \"%1$s\"->\"%2$s\",在分支 "
 "\"%6$s\" 中重命名 \"%4$s\"->\"%5$s\"%7$s"
 
-#: merge-recursive.c:1716
+#: merge-recursive.c:1719
 msgid " (left unresolved)"
 msgstr "(留下未解决)"
 
-#: merge-recursive.c:1825
+#: merge-recursive.c:1828
 #, c-format
 msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s"
 msgstr ""
 "冲突(重命名/重命名):在 %3$s 中重命名 %1$s->%2$s,在 %6$s 中重命名 %4$s->"
 "%5$s"
 
-#: merge-recursive.c:2030
+#: merge-recursive.c:2035
 #, c-format
 msgid ""
 "CONFLICT (directory rename split): Unclear where to place %s because "
@@ -3844,7 +3896,7 @@ msgstr ""
 "冲突(分割的目录重命名):不清楚 %s 应该放在哪里,因为目录 %s 被重命名到多个"
 "其它目录,没有目录包含大部分文件。"
 
-#: merge-recursive.c:2062
+#: merge-recursive.c:2067
 #, c-format
 msgid ""
 "CONFLICT (implicit dir rename): Existing file/dir at %s in the way of "
@@ -3853,7 +3905,7 @@ msgstr ""
 "冲突(隐式目录重命名):处于隐式目录重命名的现存文件/目录 %s,将以下路径放"
 "在:%s。"
 
-#: merge-recursive.c:2072
+#: merge-recursive.c:2077
 #, c-format
 msgid ""
 "CONFLICT (implicit dir rename): Cannot map more than one path to %s; "
@@ -3862,7 +3914,7 @@ msgstr ""
 "冲突(隐式目录重命名):无法映射一个以上路径到 %s,隐式目录重命名尝试将这些路"
 "径放置于此:%s"
 
-#: merge-recursive.c:2164
+#: merge-recursive.c:2169
 #, c-format
 msgid ""
 "CONFLICT (rename/rename): Rename directory %s->%s in %s. Rename directory %s-"
@@ -3871,59 +3923,59 @@ msgstr ""
 "冲突(重命名/重命名):在 %3$s 中重命名目录 %1$s->%2$s,在 %6$s 中重命名目录 "
 "%4$s->%5$s"
 
-#: merge-recursive.c:2408
+#: merge-recursive.c:2413
 #, c-format
 msgid ""
 "WARNING: Avoiding applying %s -> %s rename to %s, because %s itself was "
 "renamed."
 msgstr "警告:避免应用 %s -> %s 的重命名到 %s,因为 %s 本身已被重命名。"
 
-#: merge-recursive.c:2929
+#: merge-recursive.c:2938
 #, c-format
 msgid "cannot read object %s"
 msgstr "不能读取对象 %s"
 
-#: merge-recursive.c:2932
+#: merge-recursive.c:2941
 #, c-format
 msgid "object %s is not a blob"
 msgstr "对象 %s 不是一个数据对象"
 
-#: merge-recursive.c:2996
+#: merge-recursive.c:3005
 msgid "modify"
 msgstr "修改"
 
-#: merge-recursive.c:2996
+#: merge-recursive.c:3005
 msgid "modified"
 msgstr "修改"
 
-#: merge-recursive.c:3008
+#: merge-recursive.c:3017
 msgid "content"
 msgstr "内容"
 
-#: merge-recursive.c:3012
+#: merge-recursive.c:3021
 msgid "add/add"
 msgstr "添加/添加"
 
-#: merge-recursive.c:3035
+#: merge-recursive.c:3044
 #, c-format
 msgid "Skipped %s (merged same as existing)"
 msgstr "略过 %s(已经做过相同合并)"
 
-#: merge-recursive.c:3057 git-submodule.sh:937
+#: merge-recursive.c:3066 git-submodule.sh:937
 msgid "submodule"
 msgstr "子模组"
 
-#: merge-recursive.c:3058
+#: merge-recursive.c:3067
 #, c-format
 msgid "CONFLICT (%s): Merge conflict in %s"
 msgstr "冲突(%s):合并冲突于 %s"
 
-#: merge-recursive.c:3088
+#: merge-recursive.c:3097
 #, c-format
 msgid "Adding as %s instead"
 msgstr "而是以 %s 为名添加"
 
-#: merge-recursive.c:3170
+#: merge-recursive.c:3179
 #, c-format
 msgid ""
 "Path updated: %s added in %s inside a directory that was renamed in %s; "
@@ -3931,7 +3983,7 @@ msgid ""
 msgstr ""
 "路径已更新:%s 添加到 %s,位于一个被重命名到 %s 的目录中,将其移动到 %s。"
 
-#: merge-recursive.c:3173
+#: merge-recursive.c:3182
 #, c-format
 msgid ""
 "CONFLICT (file location): %s added in %s inside a directory that was renamed "
@@ -3940,7 +3992,7 @@ msgstr ""
 "冲突(文件位置):%s 添加到 %s,位于一个被重命名为 %s 的目录中,建议将其移动"
 "到 %s。"
 
-#: merge-recursive.c:3177
+#: merge-recursive.c:3186
 #, c-format
 msgid ""
 "Path updated: %s renamed to %s in %s, inside a directory that was renamed in "
@@ -3949,7 +4001,7 @@ msgstr ""
 "路径已更新:%1$s 重命名为 %3$s 中的 %2$s,而该目录被重命名到 %4$s 中,将其移"
 "动到 %5$s。"
 
-#: merge-recursive.c:3180
+#: merge-recursive.c:3189
 #, c-format
 msgid ""
 "CONFLICT (file location): %s renamed to %s in %s, inside a directory that "
@@ -3958,35 +4010,35 @@ msgstr ""
 "冲突(文件位置):%1$s 重命名为 %3$s 中的 %2$s,而该目录被重命名到 %4$s 中,"
 "建议将其移动到 %5$s。"
 
-#: merge-recursive.c:3294
+#: merge-recursive.c:3303
 #, c-format
 msgid "Removing %s"
 msgstr "删除 %s"
 
-#: merge-recursive.c:3317
+#: merge-recursive.c:3326
 msgid "file/directory"
 msgstr "文件/目录"
 
-#: merge-recursive.c:3322
+#: merge-recursive.c:3331
 msgid "directory/file"
 msgstr "目录/文件"
 
-#: merge-recursive.c:3329
+#: merge-recursive.c:3338
 #, c-format
 msgid "CONFLICT (%s): There is a directory with name %s in %s. Adding %s as %s"
 msgstr "冲突(%1$s):在 %3$s 中有一个名为 %2$s 的目录。以 %5$s 为名添加 %4$s"
 
-#: merge-recursive.c:3338
+#: merge-recursive.c:3347
 #, c-format
 msgid "Adding %s"
 msgstr "添加 %s"
 
-#: merge-recursive.c:3347
+#: merge-recursive.c:3356
 #, c-format
 msgid "CONFLICT (add/add): Merge conflict in %s"
 msgstr "冲突(add/add):合并冲突于 %s"
 
-#: merge-recursive.c:3385
+#: merge-recursive.c:3394
 #, c-format
 msgid ""
 "Your local changes to the following files would be overwritten by merge:\n"
@@ -3995,174 +4047,187 @@ msgstr ""
 "您对下列文件的本地修改将被合并操作覆盖:\n"
 "  %s"
 
-#: merge-recursive.c:3396
+#: merge-recursive.c:3405
 msgid "Already up to date!"
 msgstr "已经是最新的!"
 
-#: merge-recursive.c:3405
+#: merge-recursive.c:3414
 #, c-format
 msgid "merging of trees %s and %s failed"
 msgstr "无法合并树 %s 和 %s"
 
-#: merge-recursive.c:3504
+#: merge-recursive.c:3513
 msgid "Merging:"
 msgstr "合并:"
 
-#: merge-recursive.c:3517
+#: merge-recursive.c:3526
 #, c-format
 msgid "found %u common ancestor:"
 msgid_plural "found %u common ancestors:"
 msgstr[0] "发现 %u 个共同祖先:"
 msgstr[1] "发现 %u 个共同祖先:"
 
-#: merge-recursive.c:3556
+#: merge-recursive.c:3565
 msgid "merge returned no commit"
 msgstr "合并未返回提交"
 
-#: merge-recursive.c:3622
+#: merge-recursive.c:3631
 #, c-format
 msgid "Could not parse object '%s'"
 msgstr "不能解析对象 '%s'"
 
-#: merge-recursive.c:3638 builtin/merge.c:702 builtin/merge.c:873
+#: merge-recursive.c:3647 builtin/merge.c:698 builtin/merge.c:869
 msgid "Unable to write index."
 msgstr "不能写入索引。"
 
-#: midx.c:66
+#: midx.c:69
 #, c-format
 msgid "multi-pack-index file %s is too small"
 msgstr "多包索引文件 %s 太小"
 
-#: midx.c:82
+#: midx.c:85
 #, c-format
 msgid "multi-pack-index signature 0x%08x does not match signature 0x%08x"
 msgstr "多包索引签名 0x%08x 和签名 0x%08x 不匹配"
 
-#: midx.c:87
+#: midx.c:90
 #, c-format
 msgid "multi-pack-index version %d not recognized"
 msgstr "multi-pack-index 版本 %d 不能被识别"
 
-#: midx.c:92
+#: midx.c:95
 #, c-format
 msgid "hash version %u does not match"
 msgstr "散列版本 %u 不匹配"
 
-#: midx.c:106
+#: midx.c:109
 msgid "invalid chunk offset (too large)"
 msgstr "无效的块偏移(太大)"
 
-#: midx.c:130
+#: midx.c:133
 msgid "terminating multi-pack-index chunk id appears earlier than expected"
 msgstr "终止多包索引块 id 出现时间早于预期"
 
-#: midx.c:143
+#: midx.c:146
 msgid "multi-pack-index missing required pack-name chunk"
 msgstr "多包索引缺少必需的包名块"
 
-#: midx.c:145
+#: midx.c:148
 msgid "multi-pack-index missing required OID fanout chunk"
 msgstr "多包索引缺少必需的对象 ID 扇出块"
 
-#: midx.c:147
+#: midx.c:150
 msgid "multi-pack-index missing required OID lookup chunk"
 msgstr "多包索引缺少必需的对象 ID 查询块"
 
-#: midx.c:149
+#: midx.c:152
 msgid "multi-pack-index missing required object offsets chunk"
 msgstr "多包索引缺少必需的对象偏移块"
 
-#: midx.c:163
+#: midx.c:166
 #, c-format
 msgid "multi-pack-index pack names out of order: '%s' before '%s'"
 msgstr "多包索引包名无序:'%s' 在 '%s' 之前"
 
-#: midx.c:208
+#: midx.c:211
 #, c-format
 msgid "bad pack-int-id: %u (%u total packs)"
 msgstr "错的 pack-int-id:%u(共有 %u 个包)"
 
-#: midx.c:258
+#: midx.c:261
 msgid "multi-pack-index stores a 64-bit offset, but off_t is too small"
 msgstr "多包索引存储一个64位偏移,但是 off_t 太小"
 
-#: midx.c:286
+#: midx.c:289
 msgid "error preparing packfile from multi-pack-index"
 msgstr "从多包索引准备 packfile 出错"
 
-#: midx.c:457
+#: midx.c:470
 #, c-format
 msgid "failed to add packfile '%s'"
 msgstr "添加包文件 '%s' 失败"
 
-#: midx.c:463
+#: midx.c:476
 #, c-format
 msgid "failed to open pack-index '%s'"
 msgstr "打开包索引 '%s' 失败"
 
-#: midx.c:557
+#: midx.c:536
 #, c-format
 msgid "failed to locate object %d in packfile"
 msgstr "在包文件中定位对象 %d 失败"
 
-#: midx.c:993
+#: midx.c:865
+#, c-format
+msgid "did not see pack-file %s to drop"
+msgstr "没有看到要丢弃的包文件 %s"
+
+#: midx.c:1036
 #, c-format
 msgid "failed to clear multi-pack-index at %s"
 msgstr "清理位于 %s 的多包索引失败"
 
-#: midx.c:1048
+#: midx.c:1091
 msgid "Looking for referenced packfiles"
 msgstr "正在查找引用的包文件"
 
-#: midx.c:1063
+#: midx.c:1106
 #, c-format
 msgid ""
 "oid fanout out of order: fanout[%d] = %<PRIx32> > %<PRIx32> = fanout[%d]"
 msgstr "对象 ID 扇出无序:fanout[%d] = %<PRIx32> > %<PRIx32> = fanout[%d]"
 
-#: midx.c:1067
+#: midx.c:1110
 msgid "Verifying OID order in MIDX"
 msgstr "正在校验 MIDX 中的对象 ID 顺序"
 
-#: midx.c:1076
+#: midx.c:1119
 #, c-format
 msgid "oid lookup out of order: oid[%d] = %s >= %s = oid[%d]"
 msgstr "对象 ID 查询无序:oid[%d] = %s >= %s = oid[%d]"
 
-#: midx.c:1095
+#: midx.c:1138
 msgid "Sorting objects by packfile"
 msgstr "通过包文件为对象排序"
 
-#: midx.c:1101
+#: midx.c:1144
 msgid "Verifying object offsets"
 msgstr "校验对象偏移"
 
-#: midx.c:1117
+#: midx.c:1160
 #, c-format
 msgid "failed to load pack entry for oid[%d] = %s"
 msgstr "为 oid[%d] = %s 加载包条目失败"
 
-#: midx.c:1123
+#: midx.c:1166
 #, c-format
 msgid "failed to load pack-index for packfile %s"
 msgstr "为包文件 %s 加载包索引失败"
 
-#: midx.c:1132
+#: midx.c:1175
 #, c-format
 msgid "incorrect object offset for oid[%d] = %s: %<PRIx64> != %<PRIx64>"
 msgstr "oid[%d] = %s 错误的对象偏移:%<PRIx64> != %<PRIx64>"
 
-#: name-hash.c:531
+#: midx.c:1350
+msgid "could not start pack-objects"
+msgstr "不能开始 pack-objects"
+
+#: midx.c:1369
+msgid "could not finish pack-objects"
+msgstr "不能结束 pack-objects"
+
+#: name-hash.c:532
 #, c-format
 msgid "unable to create lazy_dir thread: %s"
 msgstr "不能创建 lazy_dir 线程:%s"
 
-#: name-hash.c:553
+#: name-hash.c:554
 #, c-format
 msgid "unable to create lazy_name thread: %s"
 msgstr "不能创建 lazy_name 线程:%s"
 
-#: name-hash.c:559
+#: name-hash.c:560
 #, c-format
 msgid "unable to join lazy_name thread: %s"
 msgstr "不能加入 lasy_name 线程:%s"
@@ -4231,16 +4296,16 @@ msgstr "不能解析对象:%s"
 msgid "hash mismatch %s"
 msgstr "哈希值与 %s 不匹配"
 
-#: packfile.c:617
+#: packfile.c:648
 msgid "offset before end of packfile (broken .idx?)"
 msgstr "偏移量在包文件结束之前(损坏的 .idx?)"
 
-#: packfile.c:1868
+#: packfile.c:1899
 #, c-format
 msgid "offset before start of pack index for %s (corrupt index?)"
 msgstr "偏移量在 %s 的包索引开始之前(损坏的索引?)"
 
-#: packfile.c:1872
+#: packfile.c:1903
 #, c-format
 msgid "offset beyond end of pack index for %s (truncated index?)"
 msgstr "偏移量越过了 %s 的包索引的结尾(被截断的索引?)"
@@ -4492,24 +4557,29 @@ msgstr "无法创建线程 lstat:%s"
 msgid "unable to parse --pretty format"
 msgstr "不能解析 --pretty 格式"
 
-#: range-diff.c:56
+#: range-diff.c:70
 msgid "could not start `log`"
 msgstr "不能启动 `log`"
 
-#: range-diff.c:59
+#: range-diff.c:72
 msgid "could not read `log` output"
 msgstr "不能读取 `log` 的输出"
 
-#: range-diff.c:74 sequencer.c:4897
+#: range-diff.c:91 sequencer.c:5021
 #, c-format
 msgid "could not parse commit '%s'"
 msgstr "不能解析提交 '%s'"
 
-#: range-diff.c:224
+#: range-diff.c:117
+#, c-format
+msgid "could not parse git header '%.*s'"
+msgstr "无法解析 git 头 '%.*s'"
+
+#: range-diff.c:274
 msgid "failed to generate diff"
 msgstr "生成 diff 失败"
 
-#: range-diff.c:455 range-diff.c:457
+#: range-diff.c:506 range-diff.c:508
 #, c-format
 msgid "could not parse log for '%s'"
 msgstr "不能解析 '%s' 的日志"
@@ -4625,11 +4695,10 @@ msgid "unordered stage entries for '%s'"
 msgstr "'%s' 的未排序暂存条目"
 
 #: read-cache.c:1946 read-cache.c:2234 rerere.c:565 rerere.c:599 rerere.c:1111
-#: builtin/add.c:460 builtin/check-ignore.c:178 builtin/checkout.c:358
-#: builtin/checkout.c:672 builtin/checkout.c:1060 builtin/clean.c:955
-#: builtin/commit.c:344 builtin/diff-tree.c:120 builtin/grep.c:498
-#: builtin/mv.c:145 builtin/reset.c:245 builtin/rm.c:271
-#: builtin/submodule--helper.c:330
+#: builtin/add.c:460 builtin/check-ignore.c:178 builtin/checkout.c:467
+#: builtin/checkout.c:651 builtin/clean.c:956 builtin/commit.c:347
+#: builtin/diff-tree.c:120 builtin/grep.c:499 builtin/mv.c:145
+#: builtin/reset.c:245 builtin/rm.c:271 builtin/submodule--helper.c:330
 msgid "index file corrupt"
 msgstr "索引文件损坏"
 
@@ -4683,12 +4752,12 @@ msgstr "无法刷新共享索引 '%s'"
 msgid "broken index, expect %s in %s, got %s"
 msgstr "损坏的索引,期望在 %2$s 中的 %1$s,得到 %3$s"
 
-#: read-cache.c:2989 wrapper.c:658 builtin/merge.c:1117
+#: read-cache.c:2989 wrapper.c:658 builtin/merge.c:1114
 #, c-format
 msgid "could not close '%s'"
 msgstr "不能关闭 '%s'"
 
-#: read-cache.c:3092 sequencer.c:2354 sequencer.c:3807
+#: read-cache.c:3092 sequencer.c:2358 sequencer.c:3928
 #, c-format
 msgid "could not stat '%s'"
 msgstr "不能对 '%s' 调用 stat"
@@ -4766,7 +4835,7 @@ msgid_plural "Rebase %s onto %s (%d commands)"
 msgstr[0] "变基 %s 到 %s(%d 个提交)"
 msgstr[1] "变基 %s 到 %s(%d 个提交)"
 
-#: rebase-interactive.c:65 git-rebase--preserve-merges.sh:173
+#: rebase-interactive.c:65 git-rebase--preserve-merges.sh:228
 msgid ""
 "\n"
 "Do not remove any line. Use 'drop' explicitly to remove a commit.\n"
@@ -4774,7 +4843,7 @@ msgstr ""
 "\n"
 "不要删除任意一行。使用 'drop' 显式地删除一个提交。\n"
 
-#: rebase-interactive.c:68 git-rebase--preserve-merges.sh:177
+#: rebase-interactive.c:68 git-rebase--preserve-merges.sh:232
 msgid ""
 "\n"
 "If you remove a line here THAT COMMIT WILL BE LOST.\n"
@@ -4782,7 +4851,7 @@ msgstr ""
 "\n"
 "如果您在这里删除一行,对应的提交将会丢失。\n"
 
-#: rebase-interactive.c:74 git-rebase--preserve-merges.sh:816
+#: rebase-interactive.c:74 git-rebase--preserve-merges.sh:871
 msgid ""
 "\n"
 "You are editing the todo file of an ongoing interactive rebase.\n"
@@ -4796,7 +4865,7 @@ msgstr ""
 "    git rebase --continue\n"
 "\n"
 
-#: rebase-interactive.c:79 git-rebase--preserve-merges.sh:893
+#: rebase-interactive.c:79 git-rebase--preserve-merges.sh:948
 msgid ""
 "\n"
 "However, if you remove everything, the rebase will be aborted.\n"
@@ -4806,12 +4875,12 @@ msgstr ""
 "然而,如果您删除全部内容,变基操作将会终止。\n"
 "\n"
 
-#: rebase-interactive.c:85 git-rebase--preserve-merges.sh:900
+#: rebase-interactive.c:85 git-rebase--preserve-merges.sh:955
 msgid "Note that empty commits are commented out"
 msgstr "注意空提交已被注释掉"
 
-#: rebase-interactive.c:105 rerere.c:485 rerere.c:692 sequencer.c:3339
-#: sequencer.c:3365 sequencer.c:4996 builtin/fsck.c:356 builtin/rebase.c:235
+#: rebase-interactive.c:105 rerere.c:485 rerere.c:692 sequencer.c:3447
+#: sequencer.c:3473 sequencer.c:5120 builtin/fsck.c:356 builtin/rebase.c:235
 #, c-format
 msgid "could not write '%s'"
 msgstr "不能写入 '%s'"
@@ -4846,97 +4915,98 @@ msgstr ""
 "可选值有:ignore、warn、error。\n"
 "\n"
 
-#: refs.c:192
+#: refs.c:262
 #, c-format
 msgid "%s does not point to a valid object!"
 msgstr "%s 没有指向一个有效的对象!"
 
-#: refs.c:597
+#: refs.c:667
 #, c-format
 msgid "ignoring dangling symref %s"
 msgstr "忽略悬空符号引用 %s"
 
-#: refs.c:599 ref-filter.c:1982
+#: refs.c:669 ref-filter.c:2092
 #, c-format
 msgid "ignoring broken ref %s"
 msgstr "忽略损坏的引用 %s"
 
-#: refs.c:734
+#: refs.c:804
 #, c-format
 msgid "could not open '%s' for writing: %s"
 msgstr "无法为写入打开 '%s':%s"
 
-#: refs.c:744 refs.c:795
+#: refs.c:814 refs.c:865
 #, c-format
 msgid "could not read ref '%s'"
 msgstr "无法读取引用 '%s'"
 
-#: refs.c:750
+#: refs.c:820
 #, c-format
 msgid "ref '%s' already exists"
 msgstr "引用 '%s' 已经存在"
 
-#: refs.c:755
+#: refs.c:825
 #, c-format
 msgid "unexpected object ID when writing '%s'"
 msgstr "写入 '%s' 时意外的对象 ID"
 
-#: refs.c:763 sequencer.c:400 sequencer.c:2679 sequencer.c:2805
-#: sequencer.c:2819 sequencer.c:3076 sequencer.c:4913 wrapper.c:656
+#: refs.c:833 sequencer.c:403 sequencer.c:2709 sequencer.c:2913
+#: sequencer.c:2927 sequencer.c:3184 sequencer.c:5037 wrapper.c:656
 #, c-format
 msgid "could not write to '%s'"
 msgstr "不能写入 '%s'"
 
-#: refs.c:790 wrapper.c:225 wrapper.c:395 builtin/am.c:715 builtin/rebase.c:993
+#: refs.c:860 wrapper.c:225 wrapper.c:395 builtin/am.c:715
+#: builtin/rebase.c:1003
 #, c-format
 msgid "could not open '%s' for writing"
 msgstr "无法打开 '%s' 进行写入"
 
-#: refs.c:797
+#: refs.c:867
 #, c-format
 msgid "unexpected object ID when deleting '%s'"
 msgstr "删除 '%s' 时意外的对象 ID"
 
-#: refs.c:928
+#: refs.c:998
 #, c-format
 msgid "log for ref %s has gap after %s"
 msgstr "引用 %s 的日志在 %s 之后有缺口"
 
-#: refs.c:934
+#: refs.c:1004
 #, c-format
 msgid "log for ref %s unexpectedly ended on %s"
 msgstr "引用 %s 的日志意外终止于 %s "
 
-#: refs.c:993
+#: refs.c:1063
 #, c-format
 msgid "log for %s is empty"
 msgstr "%s 的日志为空"
 
-#: refs.c:1085
+#: refs.c:1155
 #, c-format
 msgid "refusing to update ref with bad name '%s'"
 msgstr "拒绝更新有错误名称 '%s' 的引用"
 
-#: refs.c:1161
+#: refs.c:1231
 #, c-format
 msgid "update_ref failed for ref '%s': %s"
 msgstr "对引用 '%s' 执行 update_ref 失败:%s"
 
-#: refs.c:1942
+#: refs.c:2012
 #, c-format
 msgid "multiple updates for ref '%s' not allowed"
 msgstr "不允许对引用 '%s' 多次更新"
 
-#: refs.c:1974
+#: refs.c:2044
 msgid "ref updates forbidden inside quarantine environment"
 msgstr "在隔离环境中禁止更新引用"
 
-#: refs.c:2070 refs.c:2100
+#: refs.c:2140 refs.c:2170
 #, c-format
 msgid "'%s' exists; cannot create '%s'"
 msgstr "'%s' 已存在,无法创建 '%s'"
 
-#: refs.c:2076 refs.c:2111
+#: refs.c:2146 refs.c:2181
 #, c-format
 msgid "cannot process '%s' and '%s' at the same time"
 msgstr "无法同时处理 '%s' 和 '%s'"
@@ -4962,267 +5032,251 @@ msgstr "无法删除引用:%s"
 msgid "invalid refspec '%s'"
 msgstr "无效的引用表达式:'%s'"
 
-#: ref-filter.c:39 wt-status.c:1909
+#: ref-filter.c:42 wt-status.c:1934
 msgid "gone"
 msgstr "丢失"
 
-#: ref-filter.c:40
+#: ref-filter.c:43
 #, c-format
 msgid "ahead %d"
 msgstr "领先 %d"
 
-#: ref-filter.c:41
+#: ref-filter.c:44
 #, c-format
 msgid "behind %d"
 msgstr "落后 %d"
 
-#: ref-filter.c:42
+#: ref-filter.c:45
 #, c-format
 msgid "ahead %d, behind %d"
 msgstr "领先 %d,落后 %d"
 
-#: ref-filter.c:138
+#: ref-filter.c:162
 #, c-format
 msgid "expected format: %%(color:<color>)"
 msgstr "期望的格式:%%(color:<颜色>)"
 
-#: ref-filter.c:140
+#: ref-filter.c:164
 #, c-format
 msgid "unrecognized color: %%(color:%s)"
 msgstr "未能识别的颜色:%%(color:%s)"
 
-#: ref-filter.c:162
+#: ref-filter.c:186
 #, c-format
 msgid "Integer value expected refname:lstrip=%s"
 msgstr "期望整数值 refname:lstrip=%s"
 
-#: ref-filter.c:166
+#: ref-filter.c:190
 #, c-format
 msgid "Integer value expected refname:rstrip=%s"
 msgstr "期望整数值 refname:rstrip=%s"
 
-#: ref-filter.c:168
+#: ref-filter.c:192
 #, c-format
 msgid "unrecognized %%(%s) argument: %s"
 msgstr "未能识别的 %%(%s) 参数:%s"
 
-#: ref-filter.c:223
+#: ref-filter.c:247
 #, c-format
 msgid "%%(objecttype) does not take arguments"
 msgstr "%%(objecttype) 不带参数"
 
-#: ref-filter.c:245
+#: ref-filter.c:269
 #, c-format
 msgid "unrecognized %%(objectsize) argument: %s"
 msgstr "未能识别的 %%(objectsize) 参数:%s"
 
-#: ref-filter.c:253
+#: ref-filter.c:277
 #, c-format
 msgid "%%(deltabase) does not take arguments"
 msgstr "%%(deltabase) 不带参数"
 
-#: ref-filter.c:265
+#: ref-filter.c:289
 #, c-format
 msgid "%%(body) does not take arguments"
 msgstr "%%(body) 不带参数"
 
-#: ref-filter.c:274
+#: ref-filter.c:298
 #, c-format
 msgid "%%(subject) does not take arguments"
 msgstr "%%(subject) 不带参数"
 
-#: ref-filter.c:296
+#: ref-filter.c:320
 #, c-format
 msgid "unknown %%(trailers) argument: %s"
 msgstr "未知的 %%(trailers) 参数:%s"
 
-#: ref-filter.c:325
+#: ref-filter.c:349
 #, c-format
 msgid "positive value expected contents:lines=%s"
 msgstr "期望一个正数 contents:lines=%s"
 
-#: ref-filter.c:327
+#: ref-filter.c:351
 #, c-format
 msgid "unrecognized %%(contents) argument: %s"
 msgstr "未能识别的 %%(contents) 参数:%s"
 
-#: ref-filter.c:342
+#: ref-filter.c:366
 #, c-format
 msgid "positive value expected objectname:short=%s"
 msgstr "期望一个正数 objectname:short=%s"
 
-#: ref-filter.c:346
+#: ref-filter.c:370
 #, c-format
 msgid "unrecognized %%(objectname) argument: %s"
 msgstr "未能识别的 %%(objectname) 参数:%s"
 
-#: ref-filter.c:376
+#: ref-filter.c:400
 #, c-format
 msgid "expected format: %%(align:<width>,<position>)"
 msgstr "期望的格式:%%(align:<宽度>,<位置>)"
 
-#: ref-filter.c:388
+#: ref-filter.c:412
 #, c-format
 msgid "unrecognized position:%s"
 msgstr "未能识别的位置:%s"
 
-#: ref-filter.c:395
+#: ref-filter.c:419
 #, c-format
 msgid "unrecognized width:%s"
 msgstr "未能识别的宽度:%s"
 
-#: ref-filter.c:404
+#: ref-filter.c:428
 #, c-format
 msgid "unrecognized %%(align) argument: %s"
 msgstr "未能识别的 %%(align) 参数:%s"
 
-#: ref-filter.c:412
+#: ref-filter.c:436
 #, c-format
 msgid "positive width expected with the %%(align) atom"
 msgstr "元素 %%(align) 需要一个正数的宽度"
 
-#: ref-filter.c:430
+#: ref-filter.c:454
 #, c-format
 msgid "unrecognized %%(if) argument: %s"
 msgstr "未能识别的 %%(if) 参数:%s"
 
-#: ref-filter.c:531
+#: ref-filter.c:556
 #, c-format
 msgid "malformed field name: %.*s"
 msgstr "格式错误的字段名:%.*s"
 
-#: ref-filter.c:558
+#: ref-filter.c:583
 #, c-format
 msgid "unknown field name: %.*s"
 msgstr "未知的字段名:%.*s"
 
-#: ref-filter.c:562
+#: ref-filter.c:587
 #, c-format
 msgid ""
 "not a git repository, but the field '%.*s' requires access to object data"
 msgstr "不是一个 git 仓库,但是字段 '%.*s' 需要访问对象数据"
 
-#: ref-filter.c:686
+#: ref-filter.c:711
 #, c-format
 msgid "format: %%(if) atom used without a %%(then) atom"
 msgstr "格式:使用了 %%(if) 元素而没有 %%(then) 元素"
 
-#: ref-filter.c:749
+#: ref-filter.c:774
 #, c-format
 msgid "format: %%(then) atom used without an %%(if) atom"
 msgstr "格式:使用了 %%(then) 元素而没有 %%(if) 元素"
 
-#: ref-filter.c:751
+#: ref-filter.c:776
 #, c-format
 msgid "format: %%(then) atom used more than once"
 msgstr "格式:%%(then) 元素用了多次"
 
-#: ref-filter.c:753
+#: ref-filter.c:778
 #, c-format
 msgid "format: %%(then) atom used after %%(else)"
 msgstr "格式:%%(then) 元素用在了 %%(else) 之后"
 
-#: ref-filter.c:781
+#: ref-filter.c:806
 #, c-format
 msgid "format: %%(else) atom used without an %%(if) atom"
 msgstr "格式:使用了 %%(else) 元素而没有 %%(if) 元素"
 
-#: ref-filter.c:783
+#: ref-filter.c:808
 #, c-format
 msgid "format: %%(else) atom used without a %%(then) atom"
 msgstr "格式:使用了 %%(else) 元素而没有 %%(then) 元素"
 
-#: ref-filter.c:785
+#: ref-filter.c:810
 #, c-format
 msgid "format: %%(else) atom used more than once"
 msgstr "格式:%%(else) 元素用了多次"
 
-#: ref-filter.c:800
+#: ref-filter.c:825
 #, c-format
 msgid "format: %%(end) atom used without corresponding atom"
 msgstr "格式:使用了 %%(end) 元素却没有它的对应元素"
 
-#: ref-filter.c:857
+#: ref-filter.c:882
 #, c-format
 msgid "malformed format string %s"
 msgstr "错误的格式化字符串 %s"
 
-#: ref-filter.c:1453
-#, c-format
-msgid "(no branch, rebasing %s)"
-msgstr "(非分支,正变基 %s)"
-
-#: ref-filter.c:1456
-#, c-format
-msgid "(no branch, rebasing detached HEAD %s)"
-msgstr "(非分支,正变基分离头指针 %s)"
-
-#: ref-filter.c:1459
+#: ref-filter.c:1485
 #, c-format
-msgid "(no branch, bisect started on %s)"
-msgstr "(非分支,二分查找开始于 %s)"
+msgid "no branch, rebasing %s"
+msgstr "非分支,正变基 %s"
 
-#. TRANSLATORS: make sure this matches "HEAD
-#. detached at " in wt-status.c
-#.
-#: ref-filter.c:1467
+#: ref-filter.c:1488
 #, c-format
-msgid "(HEAD detached at %s)"
-msgstr "(头指针分离于 %s)"
+msgid "no branch, rebasing detached HEAD %s"
+msgstr "非分支,正变基分离头指针 %s"
 
-#. TRANSLATORS: make sure this matches "HEAD
-#. detached from " in wt-status.c
-#.
-#: ref-filter.c:1474
+#: ref-filter.c:1491
 #, c-format
-msgid "(HEAD detached from %s)"
-msgstr "(头指针分离自 %s)"
+msgid "no branch, bisect started on %s"
+msgstr "非分支,二分查找开始于 %s"
 
-#: ref-filter.c:1478
-msgid "(no branch)"
-msgstr "(非分支)"
+#: ref-filter.c:1501
+msgid "no branch"
+msgstr "非分支"
 
-#: ref-filter.c:1512 ref-filter.c:1669
+#: ref-filter.c:1537 ref-filter.c:1743
 #, c-format
 msgid "missing object %s for %s"
 msgstr "缺失 %2$s 的对象 %1$s"
 
-#: ref-filter.c:1522
+#: ref-filter.c:1547
 #, c-format
 msgid "parse_object_buffer failed on %s for %s"
 msgstr "parse_object_buffer 失败于 %2$s 的 %1$s"
 
-#: ref-filter.c:1888
+#: ref-filter.c:1998
 #, c-format
 msgid "malformed object at '%s'"
 msgstr "格式错误的对象 '%s'"
 
-#: ref-filter.c:1977
+#: ref-filter.c:2087
 #, c-format
 msgid "ignoring ref with broken name %s"
 msgstr "忽略带有错误名称 %s 的引用"
 
-#: ref-filter.c:2263
+#: ref-filter.c:2382
 #, c-format
 msgid "format: %%(end) atom missing"
 msgstr "格式:缺少 %%(end) 元素"
 
-#: ref-filter.c:2363
+#: ref-filter.c:2482
 #, c-format
 msgid "option `%s' is incompatible with --merged"
 msgstr "选项 `%s' 和 --merged 不兼容"
 
-#: ref-filter.c:2366
+#: ref-filter.c:2485
 #, c-format
 msgid "option `%s' is incompatible with --no-merged"
 msgstr "选项 `%s' 和 --no-merged 不兼容"
 
-#: ref-filter.c:2376
+#: ref-filter.c:2495
 #, c-format
 msgid "malformed object name %s"
 msgstr "格式错误的对象名 %s"
 
-#: ref-filter.c:2381
+#: ref-filter.c:2500
 #, c-format
 msgid "option `%s' must point to a commit"
 msgstr "选项 `%s' 必须指向一个提交"
@@ -5559,8 +5613,8 @@ msgstr "不能删除 stray '%s'"
 msgid "Recorded preimage for '%s'"
 msgstr "为 '%s' 记录 preimage"
 
-#: rerere.c:881 submodule.c:2024 builtin/log.c:1750
-#: builtin/submodule--helper.c:1417 builtin/submodule--helper.c:1427
+#: rerere.c:881 submodule.c:2023 builtin/log.c:1773
+#: builtin/submodule--helper.c:1418 builtin/submodule--helper.c:1428
 #, c-format
 msgid "could not create directory '%s'"
 msgstr "不能创建目录 '%s'"
@@ -5594,20 +5648,20 @@ msgstr "忘记 '%s' 的解决方案\n"
 msgid "unable to open rr-cache directory"
 msgstr "不能打开 rr-cache 目录"
 
-#: revision.c:2476
+#: revision.c:2507
 msgid "your current branch appears to be broken"
 msgstr "您的当前分支好像被损坏"
 
-#: revision.c:2479
+#: revision.c:2510
 #, c-format
 msgid "your current branch '%s' does not have any commits yet"
 msgstr "您的当前分支 '%s' 尚无任何提交"
 
-#: revision.c:2679
+#: revision.c:2710
 msgid "--first-parent is incompatible with --bisect"
 msgstr "--first-parent 与 --bisect 不兼容"
 
-#: revision.c:2683
+#: revision.c:2714
 msgid "-L does not yet support diff formats besides -p and -s"
 msgstr "-L 尚不支持 -p 和 -s 之外的差异格式"
 
@@ -5675,24 +5729,29 @@ msgstr "无效的提交信息清理模式 '%s'"
 msgid "could not delete '%s'"
 msgstr "无法删除 '%s'"
 
-#: sequencer.c:318
+#: sequencer.c:311 builtin/rebase.c:759 builtin/rebase.c:1645 builtin/rm.c:369
+#, c-format
+msgid "could not remove '%s'"
+msgstr "无法删除 '%s'"
+
+#: sequencer.c:321
 msgid "revert"
 msgstr "还原"
 
-#: sequencer.c:320
+#: sequencer.c:323
 msgid "cherry-pick"
 msgstr "拣选"
 
-#: sequencer.c:322
+#: sequencer.c:325
 msgid "rebase -i"
 msgstr "rebase -i"
 
-#: sequencer.c:324
+#: sequencer.c:327
 #, c-format
 msgid "unknown action: %d"
 msgstr "未知动作:%d"
 
-#: sequencer.c:382
+#: sequencer.c:385
 msgid ""
 "after resolving the conflicts, mark the corrected paths\n"
 "with 'git add <paths>' or 'git rm <paths>'"
@@ -5700,7 +5759,7 @@ msgstr ""
 "冲突解决完毕后,用 'git add <路径>' 或 'git rm <路径>'\n"
 "命令标记修正后的文件"
 
-#: sequencer.c:385
+#: sequencer.c:388
 msgid ""
 "after resolving the conflicts, mark the corrected paths\n"
 "with 'git add <paths>' or 'git rm <paths>'\n"
@@ -5709,44 +5768,44 @@ msgstr ""
 "冲突解决完毕后,用 'git add <路径>' 或 'git rm <路径>'\n"
 "对修正后的文件做标记,然后用 'git commit' 提交"
 
-#: sequencer.c:398 sequencer.c:2801
+#: sequencer.c:401 sequencer.c:2909
 #, c-format
 msgid "could not lock '%s'"
 msgstr "不能锁定 '%s'"
 
-#: sequencer.c:405
+#: sequencer.c:408
 #, c-format
 msgid "could not write eol to '%s'"
 msgstr "不能将换行符写入 '%s'"
 
-#: sequencer.c:410 sequencer.c:2684 sequencer.c:2807 sequencer.c:2821
-#: sequencer.c:3084
+#: sequencer.c:413 sequencer.c:2714 sequencer.c:2915 sequencer.c:2929
+#: sequencer.c:3192
 #, c-format
 msgid "failed to finalize '%s'"
 msgstr "无法完成 '%s'"
 
-#: sequencer.c:433 sequencer.c:978 sequencer.c:1652 sequencer.c:2704
-#: sequencer.c:3066 sequencer.c:3175 builtin/am.c:245 builtin/commit.c:760
-#: builtin/merge.c:1115 builtin/rebase.c:567
+#: sequencer.c:436 sequencer.c:981 sequencer.c:1655 sequencer.c:2734
+#: sequencer.c:3174 sequencer.c:3283 builtin/am.c:245 builtin/commit.c:763
+#: builtin/merge.c:1112 builtin/rebase.c:567
 #, c-format
 msgid "could not read '%s'"
 msgstr "不能读取 '%s'"
 
-#: sequencer.c:459
+#: sequencer.c:462
 #, c-format
 msgid "your local changes would be overwritten by %s."
 msgstr "您的本地修改将被%s覆盖。"
 
-#: sequencer.c:463
+#: sequencer.c:466
 msgid "commit your changes or stash them to proceed."
 msgstr "提交您的修改或贮藏后再继续。"
 
-#: sequencer.c:495
+#: sequencer.c:498
 #, c-format
 msgid "%s: fast-forward"
 msgstr "%s:快进"
 
-#: sequencer.c:534 builtin/tag.c:555
+#: sequencer.c:537 builtin/tag.c:565
 #, c-format
 msgid "Invalid cleanup mode %s"
 msgstr "无效的清理模式 %s"
@@ -5754,70 +5813,70 @@ msgstr "无效的清理模式 %s"
 #. TRANSLATORS: %s will be "revert", "cherry-pick" or
 #. "rebase -i".
 #.
-#: sequencer.c:629
+#: sequencer.c:632
 #, c-format
 msgid "%s: Unable to write new index file"
 msgstr "%s:无法写入新索引文件"
 
-#: sequencer.c:646
+#: sequencer.c:649
 msgid "unable to update cache tree"
 msgstr "不能更新缓存树"
 
-#: sequencer.c:660
+#: sequencer.c:663
 msgid "could not resolve HEAD commit"
 msgstr "不能解析 HEAD 提交"
 
-#: sequencer.c:740
+#: sequencer.c:743
 #, c-format
 msgid "no key present in '%.*s'"
 msgstr "在 '%.*s' 中没有 key"
 
-#: sequencer.c:751
+#: sequencer.c:754
 #, c-format
 msgid "unable to dequote value of '%s'"
 msgstr "无法为 '%s' 的值去引号"
 
-#: sequencer.c:788 wrapper.c:227 wrapper.c:397 builtin/am.c:706
-#: builtin/am.c:798 builtin/merge.c:1112 builtin/rebase.c:1035
+#: sequencer.c:791 wrapper.c:227 wrapper.c:397 builtin/am.c:706
+#: builtin/am.c:798 builtin/merge.c:1109 builtin/rebase.c:1045
 #, c-format
 msgid "could not open '%s' for reading"
 msgstr "无法打开 '%s' 进行读取"
 
-#: sequencer.c:798
+#: sequencer.c:801
 msgid "'GIT_AUTHOR_NAME' already given"
 msgstr "已经给出 'GIT_AUTHOR_NAME'"
 
-#: sequencer.c:803
+#: sequencer.c:806
 msgid "'GIT_AUTHOR_EMAIL' already given"
 msgstr "已经给出 'GIT_AUTHOR_EMAIL'"
 
-#: sequencer.c:808
+#: sequencer.c:811
 msgid "'GIT_AUTHOR_DATE' already given"
 msgstr "已经给出 'GIT_AUTHOR_DATE'"
 
-#: sequencer.c:812
+#: sequencer.c:815
 #, c-format
 msgid "unknown variable '%s'"
 msgstr "未知变量 '%s'"
 
-#: sequencer.c:817
+#: sequencer.c:820
 msgid "missing 'GIT_AUTHOR_NAME'"
 msgstr "缺少 'GIT_AUTHOR_NAME'"
 
-#: sequencer.c:819
+#: sequencer.c:822
 msgid "missing 'GIT_AUTHOR_EMAIL'"
 msgstr "缺少 'GIT_AUTHOR_EMAIL'"
 
-#: sequencer.c:821
+#: sequencer.c:824
 msgid "missing 'GIT_AUTHOR_DATE'"
 msgstr "缺少 'GIT_AUTHOR_DATE'"
 
-#: sequencer.c:881
+#: sequencer.c:884
 #, c-format
 msgid "invalid date format '%s' in '%s'"
 msgstr "'%2$s' 中无效的日期格式 '%1$s'"
 
-#: sequencer.c:898
+#: sequencer.c:901
 #, c-format
 msgid ""
 "you have staged changes in your working tree\n"
@@ -5846,15 +5905,15 @@ msgstr ""
 "\n"
 "  git rebase --continue\n"
 
-#: sequencer.c:992
+#: sequencer.c:995
 msgid "writing root commit"
 msgstr "写根提交"
 
-#: sequencer.c:1213
+#: sequencer.c:1216
 msgid "'prepare-commit-msg' hook failed"
 msgstr "'prepare-commit-msg' 钩子失败"
 
-#: sequencer.c:1220
+#: sequencer.c:1223
 msgid ""
 "Your name and email address were configured automatically based\n"
 "on your username and hostname. Please check that they are accurate.\n"
@@ -5878,7 +5937,7 @@ msgstr ""
 "\n"
 "    git commit --amend --reset-author\n"
 
-#: sequencer.c:1233
+#: sequencer.c:1236
 msgid ""
 "Your name and email address were configured automatically based\n"
 "on your username and hostname. Please check that they are accurate.\n"
@@ -5901,306 +5960,349 @@ msgstr ""
 "\n"
 "    git commit --amend --reset-author\n"
 
-#: sequencer.c:1275
+#: sequencer.c:1278
 msgid "couldn't look up newly created commit"
 msgstr "无法找到新创建的提交"
 
-#: sequencer.c:1277
+#: sequencer.c:1280
 msgid "could not parse newly created commit"
 msgstr "不能解析新创建的提交"
 
-#: sequencer.c:1323
+#: sequencer.c:1326
 msgid "unable to resolve HEAD after creating commit"
 msgstr "创建提交后,不能解析 HEAD"
 
-#: sequencer.c:1325
+#: sequencer.c:1328
 msgid "detached HEAD"
 msgstr "分离头指针"
 
 #  译者:中文字符串拼接,可删除前导空格
-#: sequencer.c:1329
+#: sequencer.c:1332
 msgid " (root-commit)"
 msgstr "(根提交)"
 
-#: sequencer.c:1350
+#: sequencer.c:1353
 msgid "could not parse HEAD"
 msgstr "不能解析 HEAD"
 
-#: sequencer.c:1352
+#: sequencer.c:1355
 #, c-format
 msgid "HEAD %s is not a commit!"
 msgstr "HEAD %s 不是一个提交!"
 
-#: sequencer.c:1356 builtin/commit.c:1551
+#: sequencer.c:1359 builtin/commit.c:1571
 msgid "could not parse HEAD commit"
 msgstr "不能解析 HEAD 提交"
 
-#: sequencer.c:1408 sequencer.c:2001
+#: sequencer.c:1411 sequencer.c:2004
 msgid "unable to parse commit author"
 msgstr "不能解析提交作者"
 
-#: sequencer.c:1418 builtin/am.c:1572 builtin/merge.c:688
+#: sequencer.c:1421 builtin/am.c:1573 builtin/merge.c:684
 msgid "git write-tree failed to write a tree"
 msgstr "git write-tree 无法写入树对象"
 
-#: sequencer.c:1435 sequencer.c:1496
+#: sequencer.c:1438 sequencer.c:1499
 #, c-format
 msgid "unable to read commit message from '%s'"
 msgstr "不能从 '%s' 读取提交说明"
 
-#: sequencer.c:1462 builtin/am.c:1594 builtin/commit.c:1650 builtin/merge.c:882
-#: builtin/merge.c:906
+#: sequencer.c:1465 builtin/am.c:1595 builtin/commit.c:1670 builtin/merge.c:878
+#: builtin/merge.c:903
 msgid "failed to write commit object"
 msgstr "写提交对象失败"
 
-#: sequencer.c:1523
+#: sequencer.c:1526
 #, c-format
 msgid "could not parse commit %s"
 msgstr "不能解析提交 %s"
 
-#: sequencer.c:1528
+#: sequencer.c:1531
 #, c-format
 msgid "could not parse parent commit %s"
 msgstr "不能解析父提交 %s"
 
-#: sequencer.c:1602 sequencer.c:1712
+#: sequencer.c:1605 sequencer.c:1715
 #, c-format
 msgid "unknown command: %d"
 msgstr "未知命令:%d"
 
-#: sequencer.c:1659 sequencer.c:1684
+#: sequencer.c:1662 sequencer.c:1687
 #, c-format
 msgid "This is a combination of %d commits."
 msgstr "这是一个 %d 个提交的组合。"
 
-#: sequencer.c:1669
+#: sequencer.c:1672
 msgid "need a HEAD to fixup"
 msgstr "需要一个 HEAD 来修复"
 
-#: sequencer.c:1671 sequencer.c:3111
+#: sequencer.c:1674 sequencer.c:3219
 msgid "could not read HEAD"
 msgstr "不能读取 HEAD"
 
-#: sequencer.c:1673
+#: sequencer.c:1676
 msgid "could not read HEAD's commit message"
 msgstr "不能读取 HEAD 的提交说明"
 
-#: sequencer.c:1679
+#: sequencer.c:1682
 #, c-format
 msgid "cannot write '%s'"
 msgstr "不能写 '%s'"
 
-#: sequencer.c:1686 git-rebase--preserve-merges.sh:441
+#: sequencer.c:1689 git-rebase--preserve-merges.sh:496
 msgid "This is the 1st commit message:"
 msgstr "这是第一个提交说明:"
 
-#: sequencer.c:1694
+#: sequencer.c:1697
 #, c-format
 msgid "could not read commit message of %s"
 msgstr "不能读取 %s 的提交说明"
 
-#: sequencer.c:1701
+#: sequencer.c:1704
 #, c-format
 msgid "This is the commit message #%d:"
 msgstr "这是提交说明 #%d:"
 
-#: sequencer.c:1707
+#: sequencer.c:1710
 #, c-format
 msgid "The commit message #%d will be skipped:"
 msgstr "提交说明 #%d 将被跳过:"
 
-#: sequencer.c:1795
+#: sequencer.c:1798
 msgid "your index file is unmerged."
 msgstr "您的索引文件未完成合并。"
 
-#: sequencer.c:1802
+#: sequencer.c:1805
 msgid "cannot fixup root commit"
 msgstr "不能修复根提交"
 
-#: sequencer.c:1821
+#: sequencer.c:1824
 #, c-format
 msgid "commit %s is a merge but no -m option was given."
 msgstr "提交 %s 是一个合并提交但未提供 -m 选项。"
 
-#: sequencer.c:1829 sequencer.c:1837
+#: sequencer.c:1832 sequencer.c:1840
 #, c-format
 msgid "commit %s does not have parent %d"
 msgstr "提交 %s 没有第 %d 个父提交"
 
-#: sequencer.c:1843
+#: sequencer.c:1846
 #, c-format
 msgid "cannot get commit message for %s"
 msgstr "不能得到 %s 的提交说明"
 
 #. TRANSLATORS: The first %s will be a "todo" command like
 #. "revert" or "pick", the second %s a SHA1.
-#: sequencer.c:1862
+#: sequencer.c:1865
 #, c-format
 msgid "%s: cannot parse parent commit %s"
 msgstr "%s:不能解析父提交 %s"
 
-#: sequencer.c:1927
+#: sequencer.c:1930
 #, c-format
 msgid "could not rename '%s' to '%s'"
 msgstr "不能将 '%s' 重命名为 '%s'"
 
-#: sequencer.c:1982
+#: sequencer.c:1985
 #, c-format
 msgid "could not revert %s... %s"
 msgstr "不能还原 %s... %s"
 
-#: sequencer.c:1983
+#: sequencer.c:1986
 #, c-format
 msgid "could not apply %s... %s"
 msgstr "不能应用 %s... %s"
 
-#: sequencer.c:2042
+#: sequencer.c:2045
 #, c-format
 msgid "git %s: failed to read the index"
 msgstr "git %s:无法读取索引"
 
-#: sequencer.c:2049
+#: sequencer.c:2052
 #, c-format
 msgid "git %s: failed to refresh the index"
 msgstr "git %s:无法刷新索引"
 
-#: sequencer.c:2118
+#: sequencer.c:2128
 #, c-format
 msgid "%s does not accept arguments: '%s'"
 msgstr "%s 不接受参数:'%s'"
 
-#: sequencer.c:2127
+#: sequencer.c:2137
 #, c-format
 msgid "missing arguments for %s"
 msgstr "缺少 %s 的参数"
 
-#: sequencer.c:2164
+#: sequencer.c:2174
 #, c-format
 msgid "could not parse '%.*s'"
 msgstr "无法解析 '%.*s'"
 
-#: sequencer.c:2226
+#: sequencer.c:2228
 #, c-format
 msgid "invalid line %d: %.*s"
 msgstr "无效行 %d:%.*s"
 
-#: sequencer.c:2237
+#: sequencer.c:2239
 #, c-format
 msgid "cannot '%s' without a previous commit"
 msgstr "没有父提交的情况下不能 '%s'"
 
-#: sequencer.c:2285 builtin/rebase.c:153 builtin/rebase.c:178
+#: sequencer.c:2287 builtin/rebase.c:153 builtin/rebase.c:178
 #: builtin/rebase.c:204 builtin/rebase.c:229
 #, c-format
 msgid "could not read '%s'."
 msgstr "不能读取 '%s'。"
 
-#: sequencer.c:2360
+#: sequencer.c:2323
+msgid "cancelling a cherry picking in progress"
+msgstr "正在取消一个进行中的拣选"
+
+#: sequencer.c:2330
+msgid "cancelling a revert in progress"
+msgstr "正在取消一个进行中的还原"
+
+#: sequencer.c:2364
 msgid "please fix this using 'git rebase --edit-todo'."
 msgstr "请用 'git rebase --edit-todo' 来修改。"
 
-#: sequencer.c:2362
+#: sequencer.c:2366
 #, c-format
 msgid "unusable instruction sheet: '%s'"
 msgstr "不可用的指令清单:'%s'"
 
-#: sequencer.c:2367
+#: sequencer.c:2371
 msgid "no commits parsed."
 msgstr "没有解析提交。"
 
-#: sequencer.c:2378
+#: sequencer.c:2382
 msgid "cannot cherry-pick during a revert."
 msgstr "不能在回退中执行拣选。"
 
-#: sequencer.c:2380
+#: sequencer.c:2384
 msgid "cannot revert during a cherry-pick."
 msgstr "不能在拣选中执行回退。"
 
-#: sequencer.c:2462
+#: sequencer.c:2466
 #, c-format
 msgid "invalid value for %s: %s"
 msgstr "%s 的值无效:%s"
 
-#: sequencer.c:2549
+#: sequencer.c:2553
 msgid "unusable squash-onto"
 msgstr "不可用的 squash-onto"
 
-#: sequencer.c:2565
+#: sequencer.c:2569
 #, c-format
 msgid "malformed options sheet: '%s'"
 msgstr "格式错误的选项清单:'%s'"
 
-#: sequencer.c:2648 sequencer.c:4227
+#: sequencer.c:2652 sequencer.c:4351
 msgid "empty commit set passed"
 msgstr "提供了空的提交集"
 
-#: sequencer.c:2656
-msgid "a cherry-pick or revert is already in progress"
-msgstr "一个拣选或还原操作已在进行"
+#: sequencer.c:2668
+msgid "revert is already in progress"
+msgstr "一个还原操作已在进行"
 
-#: sequencer.c:2657
-msgid "try \"git cherry-pick (--continue | --quit | --abort)\""
-msgstr "尝试 \"git cherry-pick (--continue | --quit | --abort)\""
+#: sequencer.c:2670
+#, c-format
+msgid "try \"git revert (--continue | %s--abort | --quit)\""
+msgstr "尝试 \"git revert (--continue | %s--abort | --quit)\""
+
+#: sequencer.c:2673
+msgid "cherry-pick is already in progress"
+msgstr "拣选操作已在进行"
+
+#: sequencer.c:2675
+#, c-format
+msgid "try \"git cherry-pick (--continue | %s--abort | --quit)\""
+msgstr "尝试 \"git cherry-pick (--continue | %s--abort | --quit)\""
 
-#: sequencer.c:2660
+#: sequencer.c:2689
 #, c-format
 msgid "could not create sequencer directory '%s'"
 msgstr "不能创建序列目录 '%s'"
 
-#: sequencer.c:2674
+#: sequencer.c:2704
 msgid "could not lock HEAD"
 msgstr "不能锁定 HEAD"
 
-#: sequencer.c:2729 sequencer.c:3979
+#: sequencer.c:2764 sequencer.c:4103
 msgid "no cherry-pick or revert in progress"
 msgstr "拣选或还原操作并未进行"
 
-#: sequencer.c:2731
+#: sequencer.c:2766 sequencer.c:2777
 msgid "cannot resolve HEAD"
 msgstr "不能解析 HEAD"
 
-#: sequencer.c:2733 sequencer.c:2768
+#: sequencer.c:2768 sequencer.c:2812
 msgid "cannot abort from a branch yet to be born"
 msgstr "不能从尚未建立的分支终止"
 
-#: sequencer.c:2754 builtin/grep.c:732
+#: sequencer.c:2798 builtin/grep.c:734
 #, c-format
 msgid "cannot open '%s'"
 msgstr "不能打开 '%s'"
 
-#: sequencer.c:2756
+#: sequencer.c:2800
 #, c-format
 msgid "cannot read '%s': %s"
 msgstr "不能读取 '%s':%s"
 
-#: sequencer.c:2757
+#: sequencer.c:2801
 msgid "unexpected end of file"
 msgstr "意外的文件结束"
 
-#: sequencer.c:2763
+#: sequencer.c:2807
 #, c-format
 msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
 msgstr "保存拣选提交前的 HEAD 文件 '%s' 损坏"
 
-#: sequencer.c:2774
+#: sequencer.c:2818
 msgid "You seem to have moved HEAD. Not rewinding, check your HEAD!"
 msgstr "您好像移动了 HEAD。未能回退,检查您的 HEAD!"
 
-#: sequencer.c:2903 sequencer.c:3894
+#: sequencer.c:2859
+msgid "no revert in progress"
+msgstr "没有正在进行的还原"
+
+#: sequencer.c:2867
+msgid "no cherry-pick in progress"
+msgstr "没有正在进行的拣选"
+
+#: sequencer.c:2877
+msgid "failed to skip the commit"
+msgstr "无法跳过这个提交"
+
+#: sequencer.c:2884
+msgid "there is nothing to skip"
+msgstr "没有要跳过的"
+
+#: sequencer.c:2887
+#, c-format
+msgid ""
+"have you committed already?\n"
+"try \"git %s --continue\""
+msgstr ""
+"您已经提交了么?\n"
+"试试 \"git %s --continue\""
+
+#: sequencer.c:3011 sequencer.c:4015
 #, c-format
 msgid "could not update %s"
 msgstr "不能更新 %s"
 
-#: sequencer.c:2941 sequencer.c:3874
+#: sequencer.c:3049 sequencer.c:3995
 msgid "cannot read HEAD"
 msgstr "不能读取 HEAD"
 
-#: sequencer.c:2958
+#: sequencer.c:3066
 #, c-format
 msgid "unable to copy '%s' to '%s'"
 msgstr "无法拷贝 '%s' 至 '%s'"
 
-#: sequencer.c:2966
+#: sequencer.c:3074
 #, c-format
 msgid ""
 "You can amend the commit now, with\n"
@@ -6219,28 +6321,28 @@ msgstr ""
 "\n"
 "  git rebase --continue\n"
 
-#: sequencer.c:2976
+#: sequencer.c:3084
 #, c-format
 msgid "Could not apply %s... %.*s"
 msgstr "不能应用 %s... %.*s"
 
-#: sequencer.c:2983
+#: sequencer.c:3091
 #, c-format
 msgid "Could not merge %.*s"
 msgstr "不能合并 %.*s"
 
-#: sequencer.c:2997 sequencer.c:3001 builtin/difftool.c:633
+#: sequencer.c:3105 sequencer.c:3109 builtin/difftool.c:633
 #, c-format
 msgid "could not copy '%s' to '%s'"
 msgstr "不能拷贝 '%s' 至 '%s'"
 
-#: sequencer.c:3023 sequencer.c:3446 builtin/rebase.c:839 builtin/rebase.c:1580
-#: builtin/rebase.c:1940 builtin/rebase.c:1995
+#: sequencer.c:3131 sequencer.c:3558 builtin/rebase.c:849 builtin/rebase.c:1582
+#: builtin/rebase.c:1953 builtin/rebase.c:2008
 msgid "could not read index"
 msgstr "不能读取索引"
 
 #  译者:注意保持前导空格
-#: sequencer.c:3028
+#: sequencer.c:3136
 #, c-format
 msgid ""
 "execution failed: %s\n"
@@ -6255,11 +6357,11 @@ msgstr ""
 "  git rebase --continue\n"
 "\n"
 
-#: sequencer.c:3034
+#: sequencer.c:3142
 msgid "and made changes to the index and/or the working tree\n"
 msgstr "并且修改索引和/或工作区\n"
 
-#: sequencer.c:3040
+#: sequencer.c:3148
 #, c-format
 msgid ""
 "execution succeeded: %s\n"
@@ -6276,76 +6378,76 @@ msgstr ""
 "  git rebase --continue\n"
 "\n"
 
-#: sequencer.c:3101
+#: sequencer.c:3209
 #, c-format
 msgid "illegal label name: '%.*s'"
 msgstr "非法的标签名称:'%.*s'"
 
-#: sequencer.c:3155
+#: sequencer.c:3263
 msgid "writing fake root commit"
 msgstr "写伪根提交"
 
-#: sequencer.c:3160
+#: sequencer.c:3268
 msgid "writing squash-onto"
 msgstr "写入 squash-onto"
 
-#: sequencer.c:3198 builtin/rebase.c:844 builtin/rebase.c:850
+#: sequencer.c:3306 builtin/rebase.c:854 builtin/rebase.c:860
 #, c-format
 msgid "failed to find tree of %s"
 msgstr "无法找到 %s 指向的树。"
 
-#: sequencer.c:3216 builtin/rebase.c:863
+#: sequencer.c:3324 builtin/rebase.c:873
 msgid "could not write index"
 msgstr "不能写入索引"
 
-#: sequencer.c:3243
+#: sequencer.c:3351
 #, c-format
 msgid "could not resolve '%s'"
 msgstr "无法解析 '%s'"
 
-#: sequencer.c:3271
+#: sequencer.c:3379
 msgid "cannot merge without a current revision"
 msgstr "没有当前版本不能合并"
 
-#: sequencer.c:3293
+#: sequencer.c:3401
 #, c-format
 msgid "unable to parse '%.*s'"
 msgstr "无法解析 '%.*s'"
 
-#: sequencer.c:3302
+#: sequencer.c:3410
 #, c-format
 msgid "nothing to merge: '%.*s'"
 msgstr "无可用合并:'%.*s'"
 
-#: sequencer.c:3314
+#: sequencer.c:3422
 msgid "octopus merge cannot be executed on top of a [new root]"
 msgstr "章鱼合并不能在一个新的根提交上执行"
 
-#: sequencer.c:3329
+#: sequencer.c:3437
 #, c-format
 msgid "could not get commit message of '%s'"
 msgstr "不能获取 '%s' 的提交说明"
 
-#: sequencer.c:3478
+#: sequencer.c:3590
 #, c-format
 msgid "could not even attempt to merge '%.*s'"
 msgstr "甚至不能尝试合并 '%.*s'"
 
-#: sequencer.c:3494
+#: sequencer.c:3606
 msgid "merge: Unable to write new index file"
 msgstr "合并:无法写入新索引文件"
 
-#: sequencer.c:3562 builtin/rebase.c:711
+#: sequencer.c:3675 builtin/rebase.c:711
 #, c-format
 msgid "Applied autostash.\n"
 msgstr "已应用 autostash。\n"
 
-#: sequencer.c:3574
+#: sequencer.c:3687
 #, c-format
 msgid "cannot store %s"
 msgstr "不能存储 %s"
 
-#: sequencer.c:3577 builtin/rebase.c:727
+#: sequencer.c:3690 builtin/rebase.c:727 git-rebase--preserve-merges.sh:113
 #, c-format
 msgid ""
 "Applying autostash resulted in conflicts.\n"
@@ -6356,31 +6458,31 @@ msgstr ""
 "您的修改安全地保存在贮藏区中。\n"
 "您可以在任何时候运行 \"git stash pop\" 或 \"git stash drop\"。\n"
 
-#: sequencer.c:3638
+#: sequencer.c:3751
 #, c-format
 msgid "could not checkout %s"
 msgstr "不能检出 %s"
 
-#: sequencer.c:3652
+#: sequencer.c:3765
 #, c-format
 msgid "%s: not a valid OID"
 msgstr "%s:不是一个有效的对象 ID"
 
-#: sequencer.c:3657 git-rebase--preserve-merges.sh:724
+#: sequencer.c:3770 git-rebase--preserve-merges.sh:779
 msgid "could not detach HEAD"
 msgstr "不能分离头指针"
 
-#: sequencer.c:3672
+#: sequencer.c:3785
 #, c-format
 msgid "Stopped at HEAD\n"
 msgstr "停止在 HEAD\n"
 
-#: sequencer.c:3674
+#: sequencer.c:3787
 #, c-format
 msgid "Stopped at %s\n"
 msgstr "停止在 %s\n"
 
-#: sequencer.c:3682
+#: sequencer.c:3795
 #, c-format
 msgid ""
 "Could not execute the todo command\n"
@@ -6400,48 +6502,48 @@ msgstr ""
 "    git rebase --edit-todo\n"
 "    git rebase --continue\n"
 
-#: sequencer.c:3759
+#: sequencer.c:3877
 #, c-format
 msgid "Stopped at %s...  %.*s\n"
 msgstr "停止在 %s... %.*s\n"
 
-#: sequencer.c:3837
+#: sequencer.c:3958
 #, c-format
 msgid "unknown command %d"
 msgstr "未知命令 %d"
 
-#: sequencer.c:3882
+#: sequencer.c:4003
 msgid "could not read orig-head"
 msgstr "不能读取 orig-head"
 
-#: sequencer.c:3887
+#: sequencer.c:4008
 msgid "could not read 'onto'"
 msgstr "不能读取 'onto'"
 
-#: sequencer.c:3901
+#: sequencer.c:4022
 #, c-format
 msgid "could not update HEAD to %s"
 msgstr "不能更新 HEAD 为 %s"
 
-#: sequencer.c:3991
+#: sequencer.c:4115
 msgid "cannot rebase: You have unstaged changes."
 msgstr "不能变基:您有未暂存的变更。"
 
-#: sequencer.c:4000
+#: sequencer.c:4124
 msgid "cannot amend non-existing commit"
 msgstr "不能修补不存在的提交"
 
-#: sequencer.c:4002
+#: sequencer.c:4126
 #, c-format
 msgid "invalid file: '%s'"
 msgstr "无效文件:'%s'"
 
-#: sequencer.c:4004
+#: sequencer.c:4128
 #, c-format
 msgid "invalid contents: '%s'"
 msgstr "无效内容:'%s'"
 
-#: sequencer.c:4007
+#: sequencer.c:4131
 msgid ""
 "\n"
 "You have uncommitted changes in your working tree. Please, commit them\n"
@@ -6450,42 +6552,42 @@ msgstr ""
 "\n"
 "您的工作区中有未提交的变更。请先提交然后再次运行 'git rebase --continue'。"
 
-#: sequencer.c:4043 sequencer.c:4081
+#: sequencer.c:4167 sequencer.c:4205
 #, c-format
 msgid "could not write file: '%s'"
 msgstr "不能写入文件:'%s'"
 
-#: sequencer.c:4096
+#: sequencer.c:4220
 msgid "could not remove CHERRY_PICK_HEAD"
 msgstr "不能删除 CHERRY_PICK_HEAD"
 
-#: sequencer.c:4103
+#: sequencer.c:4227
 msgid "could not commit staged changes."
 msgstr "不能提交暂存的修改。"
 
-#: sequencer.c:4204
+#: sequencer.c:4328
 #, c-format
 msgid "%s: can't cherry-pick a %s"
 msgstr "%s:不能拣选一个%s"
 
-#: sequencer.c:4208
+#: sequencer.c:4332
 #, c-format
 msgid "%s: bad revision"
 msgstr "%s:错误的版本"
 
-#: sequencer.c:4243
+#: sequencer.c:4367
 msgid "can't revert as initial commit"
 msgstr "不能作为初始提交回退"
 
-#: sequencer.c:4686
+#: sequencer.c:4810
 msgid "make_script: unhandled options"
 msgstr "make_script:有未能处理的选项"
 
-#: sequencer.c:4689
+#: sequencer.c:4813
 msgid "make_script: error preparing revisions"
 msgstr "make_script:准备版本时错误"
 
-#: sequencer.c:4847
+#: sequencer.c:4971
 msgid ""
 "You can fix this with 'git rebase --edit-todo' and then run 'git rebase --"
 "continue'.\n"
@@ -6494,15 +6596,15 @@ msgstr ""
 "您可以用 'git rebase --edit-todo' 修正,然后执行 'git rebase --continue'。\n"
 "或者您可以用 'git rebase --abort' 终止变基。\n"
 
-#: sequencer.c:4959 sequencer.c:4976
+#: sequencer.c:5083 sequencer.c:5100
 msgid "nothing to do"
 msgstr "无事可做"
 
-#: sequencer.c:4990
+#: sequencer.c:5114
 msgid "could not skip unnecessary pick commands"
 msgstr "无法跳过不必要的拣选"
 
-#: sequencer.c:5073
+#: sequencer.c:5197
 msgid "the script was already rearranged."
 msgstr "脚本已经重新编排。"
 
@@ -6719,194 +6821,199 @@ msgstr "参考仓库 '%s' 是一个浅克隆"
 msgid "reference repository '%s' is grafted"
 msgstr "参考仓库 '%s' 已被移植"
 
-#: sha1-file.c:846
+#: sha1-file.c:792
+#, c-format
+msgid "invalid line while parsing alternate refs: %s"
+msgstr "解析备用引用时无效的行:%s"
+
+#: sha1-file.c:944
 #, c-format
 msgid "attempting to mmap %<PRIuMAX> over limit %<PRIuMAX>"
 msgstr "尝试 mmap %<PRIuMAX>,超过了最大值 %<PRIuMAX>"
 
-#: sha1-file.c:871
+#: sha1-file.c:969
 msgid "mmap failed"
 msgstr "mmap 失败"
 
-#: sha1-file.c:1035
+#: sha1-file.c:1133
 #, c-format
 msgid "object file %s is empty"
 msgstr "对象文件 %s 为空"
 
-#: sha1-file.c:1159 sha1-file.c:2297
+#: sha1-file.c:1257 sha1-file.c:2396
 #, c-format
 msgid "corrupt loose object '%s'"
 msgstr "损坏的松散对象 '%s'"
 
-#: sha1-file.c:1161 sha1-file.c:2301
+#: sha1-file.c:1259 sha1-file.c:2400
 #, c-format
 msgid "garbage at end of loose object '%s'"
 msgstr "松散对象 '%s' 后面有垃圾数据"
 
-#: sha1-file.c:1203
+#: sha1-file.c:1301
 msgid "invalid object type"
 msgstr "无效的对象类型"
 
-#: sha1-file.c:1287
+#: sha1-file.c:1385
 #, c-format
 msgid "unable to unpack %s header with --allow-unknown-type"
 msgstr "无法用 --allow-unknown-type 参数解开 %s 头信息"
 
-#: sha1-file.c:1290
+#: sha1-file.c:1388
 #, c-format
 msgid "unable to unpack %s header"
 msgstr "无法解开 %s 头部"
 
-#: sha1-file.c:1296
+#: sha1-file.c:1394
 #, c-format
 msgid "unable to parse %s header with --allow-unknown-type"
 msgstr "无法用 --allow-unknown-type 参数解析 %s 头信息"
 
-#: sha1-file.c:1299
+#: sha1-file.c:1397
 #, c-format
 msgid "unable to parse %s header"
 msgstr "无法解析 %s 头部"
 
-#: sha1-file.c:1490
+#: sha1-file.c:1588
 #, c-format
 msgid "failed to read object %s"
 msgstr "读取对象 %s 失败"
 
-#: sha1-file.c:1494
+#: sha1-file.c:1592
 #, c-format
 msgid "replacement %s not found for %s"
 msgstr "找不到 %2$s 的替代 %1$s"
 
-#: sha1-file.c:1498
+#: sha1-file.c:1596
 #, c-format
 msgid "loose object %s (stored in %s) is corrupt"
 msgstr "松散对象 %s(保存在 %s)已损坏"
 
-#: sha1-file.c:1502
+#: sha1-file.c:1600
 #, c-format
 msgid "packed object %s (stored in %s) is corrupt"
 msgstr "打包对象 %s(保存在 %s)已损坏"
 
-#: sha1-file.c:1604
+#: sha1-file.c:1703
 #, c-format
 msgid "unable to write file %s"
 msgstr "无法写文件 %s"
 
-#: sha1-file.c:1611
+#: sha1-file.c:1710
 #, c-format
 msgid "unable to set permission to '%s'"
 msgstr "无法为 '%s' 设置权限"
 
-#: sha1-file.c:1618
+#: sha1-file.c:1717
 msgid "file write error"
 msgstr "文件写错误"
 
-#: sha1-file.c:1637
+#: sha1-file.c:1736
 msgid "error when closing loose object file"
 msgstr "关闭松散对象文件时出错"
 
-#: sha1-file.c:1702
+#: sha1-file.c:1801
 #, c-format
 msgid "insufficient permission for adding an object to repository database %s"
 msgstr "权限不足,无法在仓库对象库 %s 中添加对象"
 
-#: sha1-file.c:1704
+#: sha1-file.c:1803
 msgid "unable to create temporary file"
 msgstr "无法创建临时文件"
 
-#: sha1-file.c:1728
+#: sha1-file.c:1827
 msgid "unable to write loose object file"
 msgstr "不能写松散对象文件"
 
-#: sha1-file.c:1734
+#: sha1-file.c:1833
 #, c-format
 msgid "unable to deflate new object %s (%d)"
 msgstr "不能压缩新对象 %s(%d)"
 
-#: sha1-file.c:1738
+#: sha1-file.c:1837
 #, c-format
 msgid "deflateEnd on object %s failed (%d)"
 msgstr "在对象 %s 上调用 deflateEnd 失败(%d)"
 
-#: sha1-file.c:1742
+#: sha1-file.c:1841
 #, c-format
 msgid "confused by unstable object source data for %s"
 msgstr "被 %s 的不稳定对象源数据搞糊涂了"
 
-#: sha1-file.c:1752 builtin/pack-objects.c:920
+#: sha1-file.c:1851 builtin/pack-objects.c:925
 #, c-format
 msgid "failed utime() on %s"
 msgstr "在 %s 上调用 utime() 失败"
 
-#: sha1-file.c:1827
+#: sha1-file.c:1926
 #, c-format
 msgid "cannot read object for %s"
 msgstr "不能读取对象 %s"
 
-#: sha1-file.c:1867
+#: sha1-file.c:1966
 msgid "corrupt commit"
 msgstr "损坏的提交"
 
-#: sha1-file.c:1875
+#: sha1-file.c:1974
 msgid "corrupt tag"
 msgstr "损坏的标签"
 
-#: sha1-file.c:1974
+#: sha1-file.c:2073
 #, c-format
 msgid "read error while indexing %s"
 msgstr "索引 %s 时读取错误"
 
-#: sha1-file.c:1977
+#: sha1-file.c:2076
 #, c-format
 msgid "short read while indexing %s"
 msgstr "索引 %s 时读入不完整"
 
-#: sha1-file.c:2050 sha1-file.c:2059
+#: sha1-file.c:2149 sha1-file.c:2158
 #, c-format
 msgid "%s: failed to insert into database"
 msgstr "%s:插入数据库失败"
 
-#: sha1-file.c:2065
+#: sha1-file.c:2164
 #, c-format
 msgid "%s: unsupported file type"
 msgstr "%s:不支持的文件类型"
 
-#: sha1-file.c:2089
+#: sha1-file.c:2188
 #, c-format
 msgid "%s is not a valid object"
 msgstr "%s 不是一个有效的对象"
 
-#: sha1-file.c:2091
+#: sha1-file.c:2190
 #, c-format
 msgid "%s is not a valid '%s' object"
 msgstr "%s 不是一个有效的 '%s' 对象"
 
-#: sha1-file.c:2118 builtin/index-pack.c:154
+#: sha1-file.c:2217 builtin/index-pack.c:155
 #, c-format
 msgid "unable to open %s"
 msgstr "不能打开 %s"
 
-#: sha1-file.c:2308 sha1-file.c:2360
+#: sha1-file.c:2407 sha1-file.c:2459
 #, c-format
 msgid "hash mismatch for %s (expected %s)"
 msgstr "%s 的哈希值不匹配(预期 %s)"
 
-#: sha1-file.c:2332
+#: sha1-file.c:2431
 #, c-format
 msgid "unable to mmap %s"
 msgstr "不能 mmap %s"
 
-#: sha1-file.c:2337
+#: sha1-file.c:2436
 #, c-format
 msgid "unable to unpack header of %s"
 msgstr "无法解压缩 %s 的头部"
 
-#: sha1-file.c:2343
+#: sha1-file.c:2442
 #, c-format
 msgid "unable to parse header of %s"
 msgstr "无法解析 %s 的头部"
 
-#: sha1-file.c:2354
+#: sha1-file.c:2453
 #, c-format
 msgid "unable to unpack contents of %s"
 msgstr "无法解压缩 %s 的内容"
@@ -6926,20 +7033,72 @@ msgid ""
 "because it will be ignored when you just specify 40-hex. These refs\n"
 "may be created by mistake. For example,\n"
 "\n"
-"  git checkout -b $br $(git rev-parse ...)\n"
+"  git switch -c $br $(git rev-parse ...)\n"
 "\n"
 "where \"$br\" is somehow empty and a 40-hex ref is created. Please\n"
 "examine these refs and maybe delete them. Turn this message off by\n"
 "running \"git config advice.objectNameWarning false\""
 msgstr ""
-"Git é\80\9a常ä¸\8dä¼\9aå\88\9b建ä¸\80个以40ä½\8då\8d\81å\85­è¿\9bå\88¶å­\97符å\91½å\90\8dç\9a\84å¼\95ç\94¨ï¼\8cå\9b ä¸ºå½\93ä½ æ\8f\90ä¾\9b40ä½\8d\n"
-"十六进制字符时将被忽略。不过这些引用也可能被错误地创建。例如:\n"
+"Git é\80\9a常ä¸\8dä¼\9aå\88\9b建ä¸\80个以40个å\8d\81å\85­è¿\9bå\88¶å­\97符ç»\93å°¾ç\9a\84å¼\95ç\94¨ï¼\8cå\9b ä¸ºå½\93æ\82¨å\8fªæ\8f\90ä¾\9b40\n"
+"个十六进制字符时将被忽略。这些引用可能被错误地创建。例如:\n"
 "\n"
-"  git checkout -b $br $(git rev-parse ...)\n"
+"  git switch -c $br $(git rev-parse ...)\n"
 "\n"
-"当 \"$br\" 空白时一个40位十六进制的引用将被创建。请检查这些引用,\n"
-"可能需要删除它们。用 \"git config advice.objectNameWarning false\"\n"
-"命令关闭本消息通知。"
+"当 \"$br\" 某种原因空白时,一个40位十六进制的引用将被创建。请检查这些\n"
+"引用,可能需要删除它们。运行 \"git config advice.objectNameWarning\n"
+"false\" 命令关闭本消息通知。"
+
+#. TRANSLATORS: IEC 80000-13:2008 gibibyte
+#: strbuf.c:821
+#, c-format
+msgid "%u.%2.2u GiB"
+msgstr "%u.%2.2u GiB"
+
+#. TRANSLATORS: IEC 80000-13:2008 gibibyte/second
+#: strbuf.c:823
+#, c-format
+msgid "%u.%2.2u GiB/s"
+msgstr "%u.%2.2u GiB/s"
+
+#. TRANSLATORS: IEC 80000-13:2008 mebibyte
+#: strbuf.c:831
+#, c-format
+msgid "%u.%2.2u MiB"
+msgstr "%u.%2.2u MiB"
+
+#. TRANSLATORS: IEC 80000-13:2008 mebibyte/second
+#: strbuf.c:833
+#, c-format
+msgid "%u.%2.2u MiB/s"
+msgstr "%u.%2.2u MiB/s"
+
+#. TRANSLATORS: IEC 80000-13:2008 kibibyte
+#: strbuf.c:840
+#, c-format
+msgid "%u.%2.2u KiB"
+msgstr "%u.%2.2u KiB"
+
+#. TRANSLATORS: IEC 80000-13:2008 kibibyte/second
+#: strbuf.c:842
+#, c-format
+msgid "%u.%2.2u KiB/s"
+msgstr "%u.%2.2u KiB/s"
+
+#. TRANSLATORS: IEC 80000-13:2008 byte
+#: strbuf.c:848
+#, c-format
+msgid "%u byte"
+msgid_plural "%u bytes"
+msgstr[0] "%u 字节"
+msgstr[1] "%u 字节"
+
+#. TRANSLATORS: IEC 80000-13:2008 byte/second
+#: strbuf.c:850
+#, c-format
+msgid "%u byte/s"
+msgid_plural "%u bytes/s"
+msgstr[0] "%u 字节/秒"
+msgstr[1] "%u 字节/秒"
 
 #: submodule.c:114 submodule.c:143
 msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first"
@@ -6974,7 +7133,7 @@ msgstr "路径规格 '%s' 在子模组 '%.*s' 中"
 msgid "submodule entry '%s' (%s) is a %s, not a commit"
 msgstr "子模组条目 '%s'(%s)是一个 %s,不是一个提交"
 
-#: submodule.c:1147 builtin/branch.c:672 builtin/submodule--helper.c:1988
+#: submodule.c:1147 builtin/branch.c:680 builtin/submodule--helper.c:1989
 msgid "Failed to resolve HEAD as a valid ref."
 msgstr "无法将 HEAD 解析为有效引用。"
 
@@ -7013,18 +7172,18 @@ msgstr "子模组 '%s' 中有脏索引"
 msgid "Submodule '%s' could not be updated."
 msgstr "子模组 '%s' 无法被更新。"
 
-#: submodule.c:2008
+#: submodule.c:2007
 #, c-format
 msgid ""
 "relocate_gitdir for submodule '%s' with more than one worktree not supported"
 msgstr "不支持对有多个工作区的子模组 '%s' 执行 relocate_gitdir"
 
-#: submodule.c:2020 submodule.c:2076
+#: submodule.c:2019 submodule.c:2074
 #, c-format
 msgid "could not lookup name for submodule '%s'"
 msgstr "不能查询子模组 '%s' 的名称"
 
-#: submodule.c:2027
+#: submodule.c:2026
 #, c-format
 msgid ""
 "Migrating git directory of '%s%s' from\n"
@@ -7035,16 +7194,16 @@ msgstr ""
 "'%s' 迁移至\n"
 "'%s'\n"
 
-#: submodule.c:2111
+#: submodule.c:2109
 #, c-format
 msgid "could not recurse into submodule '%s'"
 msgstr "无法递归进子模组路径 '%s'"
 
-#: submodule.c:2155
+#: submodule.c:2153
 msgid "could not start ls-files in .."
 msgstr "无法在 .. 中启动 ls-files"
 
-#: submodule.c:2194
+#: submodule.c:2192
 #, c-format
 msgid "ls-tree returned unexpected return code %d"
 msgstr "ls-tree 返回未知返回值 %d"
@@ -7214,15 +7373,10 @@ msgstr "正在终止。"
 msgid "failed to push all needed submodules"
 msgstr "不能推送全部需要的子模组"
 
-#: transport.c:1326 transport-helper.c:645
+#: transport.c:1340 transport-helper.c:645
 msgid "operation not supported by protocol"
 msgstr "协议不支持该操作"
 
-#: transport.c:1430
-#, c-format
-msgid "invalid line while parsing alternate refs: %s"
-msgstr "解析备用引用时无效的行:%s"
-
 #: transport-helper.c:51 transport-helper.c:80
 msgid "full write to remote helper failed"
 msgstr "完整写入远程助手失败"
@@ -7265,7 +7419,7 @@ msgstr "不能执行 fast-import"
 msgid "error while running fast-import"
 msgstr "执行 fast-import 出错"
 
-#: transport-helper.c:533 transport-helper.c:1099
+#: transport-helper.c:533 transport-helper.c:1105
 #, c-format
 msgid "could not read ref %s"
 msgstr "无法读取引用 %s"
@@ -7318,24 +7472,24 @@ msgstr "助手 %s 不支持 --signed=if-asked"
 msgid "helper %s does not support 'push-option'"
 msgstr "助手 %s 不支持 'push-option'"
 
-#: transport-helper.c:939
+#: transport-helper.c:945
 msgid "remote-helper doesn't support push; refspec needed"
 msgstr "remote-heper 不支持 push,需要引用表达式"
 
-#: transport-helper.c:944
+#: transport-helper.c:950
 #, c-format
 msgid "helper %s does not support 'force'"
 msgstr "助手 %s 不支持 'force'"
 
-#: transport-helper.c:991
+#: transport-helper.c:997
 msgid "couldn't run fast-export"
 msgstr "无法执行 fast-export"
 
-#: transport-helper.c:996
+#: transport-helper.c:1002
 msgid "error while running fast-export"
 msgstr "执行 fast-export 时出错"
 
-#: transport-helper.c:1021
+#: transport-helper.c:1027
 #, c-format
 msgid ""
 "No refs in common and none specified; doing nothing.\n"
@@ -7344,47 +7498,47 @@ msgstr ""
 "没有共同的引用并且也没有指定,什么也不会做。\n"
 "可能您应该指定一个分支如 'master'。\n"
 
-#: transport-helper.c:1085
+#: transport-helper.c:1091
 #, c-format
 msgid "malformed response in ref list: %s"
 msgstr "引用列表中格式错误的响应:%s"
 
-#: transport-helper.c:1238
+#: transport-helper.c:1244
 #, c-format
 msgid "read(%s) failed"
 msgstr "读取(%s)失败"
 
-#: transport-helper.c:1265
+#: transport-helper.c:1271
 #, c-format
 msgid "write(%s) failed"
 msgstr "写(%s)失败"
 
-#: transport-helper.c:1314
+#: transport-helper.c:1320
 #, c-format
 msgid "%s thread failed"
 msgstr "%s 线程失败"
 
-#: transport-helper.c:1318
+#: transport-helper.c:1324
 #, c-format
 msgid "%s thread failed to join: %s"
 msgstr "%s 线程等待失败:%s"
 
-#: transport-helper.c:1337 transport-helper.c:1341
+#: transport-helper.c:1343 transport-helper.c:1347
 #, c-format
 msgid "can't start thread for copying data: %s"
 msgstr "不能启动线程来拷贝数据:%s"
 
-#: transport-helper.c:1378
+#: transport-helper.c:1384
 #, c-format
 msgid "%s process failed to wait"
 msgstr "%s 进程等待失败"
 
-#: transport-helper.c:1382
+#: transport-helper.c:1388
 #, c-format
 msgid "%s process failed"
 msgstr "%s 进程失败"
 
-#: transport-helper.c:1400 transport-helper.c:1409
+#: transport-helper.c:1406 transport-helper.c:1415
 msgid "can't start thread for copying data"
 msgstr "不能启动线程来拷贝数据"
 
@@ -7400,7 +7554,7 @@ msgstr "树对象中的条目模式错误"
 msgid "empty filename in tree entry"
 msgstr "树对象条目中空的文件名"
 
-#: tree-walk.c:116
+#: tree-walk.c:118
 msgid "too-short tree file"
 msgstr "太短的树文件"
 
@@ -7623,11 +7777,11 @@ msgstr ""
 #: unpack-trees.c:256
 #, c-format
 msgid "Aborting\n"
-msgstr "终止中\n"
+msgstr "正在终止\n"
 
 #: unpack-trees.c:318
-msgid "Checking out files"
-msgstr "æ­£å\9c¨æ£\80å\87º文件"
+msgid "Updating files"
+msgstr "æ­£å\9c¨æ\9b´æ\96°文件"
 
 #: unpack-trees.c:350
 msgid ""
@@ -7667,32 +7821,32 @@ msgstr "无效的端口号"
 msgid "invalid '..' path segment"
 msgstr "无效的 '..' 路径片段"
 
-#: worktree.c:255 builtin/am.c:2097
+#: worktree.c:258 builtin/am.c:2095
 #, c-format
 msgid "failed to read '%s'"
 msgstr "读取 '%s' 失败"
 
-#: worktree.c:301
+#: worktree.c:304
 #, c-format
 msgid "'%s' at main working tree is not the repository directory"
 msgstr "在主工作区的 '%s' 不是仓库目录"
 
-#: worktree.c:312
+#: worktree.c:315
 #, c-format
 msgid "'%s' file does not contain absolute path to the working tree location"
 msgstr "文件 '%s' 不包含工作区的绝对路径"
 
-#: worktree.c:324
+#: worktree.c:327
 #, c-format
 msgid "'%s' does not exist"
 msgstr "'%s' 不存在"
 
-#: worktree.c:330
+#: worktree.c:333
 #, c-format
 msgid "'%s' is not a .git file, error code %d"
 msgstr "'%s' 不是一个 .git 文件,错误码 %d"
 
-#: worktree.c:338
+#: worktree.c:341
 #, c-format
 msgid "'%s' does not point back to '%s'"
 msgstr "'%s' 没有指回到 '%s'"
@@ -7711,162 +7865,167 @@ msgstr "不能访问 '%s'"
 msgid "unable to get current working directory"
 msgstr "不能获取当前工作目录"
 
-#: wt-status.c:156
+#: wt-status.c:158
 msgid "Unmerged paths:"
 msgstr "未合并的路径:"
 
 #  译者:注意保持前导空格
-#: wt-status.c:183 wt-status.c:210
+#: wt-status.c:187 wt-status.c:219
+msgid "  (use \"git restore --staged <file>...\" to unstage)"
+msgstr "  (使用 \"git restore --staged <文件>...\" 以取消暂存)"
+
+#  译者:注意保持前导空格
+#: wt-status.c:190 wt-status.c:222
 #, c-format
-msgid "  (use \"git reset %s <file>...\" to unstage)"
-msgstr "  (使用 \"git reset %s <文件>...\" 以取消暂存)"
+msgid "  (use \"git restore --source=%s --staged <file>...\" to unstage)"
+msgstr "  (使用 \"git restore --source=%s --staged <文件>...\" 以取消暂存)"
 
 #  译者:注意保持前导空格
-#: wt-status.c:185 wt-status.c:212
+#: wt-status.c:193 wt-status.c:225
 msgid "  (use \"git rm --cached <file>...\" to unstage)"
 msgstr "  (使用 \"git rm --cached <文件>...\" 以取消暂存)"
 
 #  译者:注意保持前导空格
-#: wt-status.c:189
+#: wt-status.c:197
 msgid "  (use \"git add <file>...\" to mark resolution)"
 msgstr "  (使用 \"git add <文件>...\" 标记解决方案)"
 
 #  译者:注意保持前导空格
-#: wt-status.c:191 wt-status.c:195
+#: wt-status.c:199 wt-status.c:203
 msgid "  (use \"git add/rm <file>...\" as appropriate to mark resolution)"
 msgstr "  (酌情使用 \"git add/rm <文件>...\" 标记解决方案)"
 
 #  译者:注意保持前导空格
-#: wt-status.c:193
+#: wt-status.c:201
 msgid "  (use \"git rm <file>...\" to mark resolution)"
 msgstr "  (使用 \"git rm <文件>...\" 标记解决方案)"
 
-#: wt-status.c:204 wt-status.c:1064
+#: wt-status.c:211 wt-status.c:1074
 msgid "Changes to be committed:"
 msgstr "要提交的变更:"
 
-#: wt-status.c:222 wt-status.c:1073
+#: wt-status.c:234 wt-status.c:1083
 msgid "Changes not staged for commit:"
 msgstr "尚未暂存以备提交的变更:"
 
 #  译者:注意保持前导空格
-#: wt-status.c:226
+#: wt-status.c:238
 msgid "  (use \"git add <file>...\" to update what will be committed)"
 msgstr "  (使用 \"git add <文件>...\" 更新要提交的内容)"
 
 #  译者:注意保持前导空格
-#: wt-status.c:228
+#: wt-status.c:240
 msgid "  (use \"git add/rm <file>...\" to update what will be committed)"
 msgstr "  (使用 \"git add/rm <文件>...\" 更新要提交的内容)"
 
 #  译者:注意保持前导空格
-#: wt-status.c:229
+#: wt-status.c:241
 msgid ""
-"  (use \"git checkout -- <file>...\" to discard changes in working directory)"
-msgstr "  (使用 \"git checkout -- <文件>...\" 丢弃工作区的改动)"
+"  (use \"git restore <file>...\" to discard changes in working directory)"
+msgstr "  (使用 \"git restore <文件>...\" 丢弃工作区的改动)"
 
 #  译者:注意保持前导空格
-#: wt-status.c:231
+#: wt-status.c:243
 msgid "  (commit or discard the untracked or modified content in submodules)"
 msgstr "  (提交或丢弃子模组中未跟踪或修改的内容)"
 
 #  译者:注意保持前导空格
-#: wt-status.c:243
+#: wt-status.c:254
 #, c-format
 msgid "  (use \"git %s <file>...\" to include in what will be committed)"
 msgstr "  (使用 \"git %s <文件>...\" 以包含要提交的内容)"
 
-#: wt-status.c:258
+#: wt-status.c:268
 msgid "both deleted:"
 msgstr "双方删除:"
 
-#: wt-status.c:260
+#: wt-status.c:270
 msgid "added by us:"
 msgstr "由我们添加:"
 
-#: wt-status.c:262
+#: wt-status.c:272
 msgid "deleted by them:"
 msgstr "由他们删除:"
 
-#: wt-status.c:264
+#: wt-status.c:274
 msgid "added by them:"
 msgstr "由他们添加:"
 
-#: wt-status.c:266
+#: wt-status.c:276
 msgid "deleted by us:"
 msgstr "由我们删除:"
 
-#: wt-status.c:268
+#: wt-status.c:278
 msgid "both added:"
 msgstr "双方添加:"
 
-#: wt-status.c:270
+#: wt-status.c:280
 msgid "both modified:"
 msgstr "双方修改:"
 
-#: wt-status.c:280
+#: wt-status.c:290
 msgid "new file:"
 msgstr "新文件:"
 
-#: wt-status.c:282
+#: wt-status.c:292
 msgid "copied:"
 msgstr "拷贝:"
 
-#: wt-status.c:284
+#: wt-status.c:294
 msgid "deleted:"
 msgstr "删除:"
 
-#: wt-status.c:286
+#: wt-status.c:296
 msgid "modified:"
 msgstr "修改:"
 
-#: wt-status.c:288
+#: wt-status.c:298
 msgid "renamed:"
 msgstr "重命名:"
 
-#: wt-status.c:290
+#: wt-status.c:300
 msgid "typechange:"
 msgstr "类型变更:"
 
-#: wt-status.c:292
+#: wt-status.c:302
 msgid "unknown:"
 msgstr "未知:"
 
-#: wt-status.c:294
+#: wt-status.c:304
 msgid "unmerged:"
 msgstr "未合并:"
 
 #  译者:末尾两个字节可能被删减,如果翻译为中文标点会出现半个汉字
-#: wt-status.c:374
+#: wt-status.c:384
 msgid "new commits, "
 msgstr "新提交, "
 
 #  译者:末尾两个字节可能被删减,如果翻译为中文标点会出现半个汉字
-#: wt-status.c:376
+#: wt-status.c:386
 msgid "modified content, "
 msgstr "修改的内容, "
 
 #  译者:末尾两个字节可能被删减,如果翻译为中文标点会出现半个汉字
-#: wt-status.c:378
+#: wt-status.c:388
 msgid "untracked content, "
 msgstr "未跟踪的内容, "
 
-#: wt-status.c:896
+#: wt-status.c:906
 #, c-format
 msgid "Your stash currently has %d entry"
 msgid_plural "Your stash currently has %d entries"
 msgstr[0] "您的贮藏区当前有 %d 条记录"
 msgstr[1] "您的贮藏区当前有 %d 条记录"
 
-#: wt-status.c:928
+#: wt-status.c:938
 msgid "Submodules changed but not updated:"
 msgstr "子模组已修改但尚未更新:"
 
-#: wt-status.c:930
+#: wt-status.c:940
 msgid "Submodule changes to be committed:"
 msgstr "要提交的子模组变更:"
 
-#: wt-status.c:1012
+#: wt-status.c:1022
 msgid ""
 "Do not modify or remove the line above.\n"
 "Everything below it will be ignored."
@@ -7874,77 +8033,88 @@ msgstr ""
 "不要改动或删除上面的一行。\n"
 "其下所有内容都将被忽略。"
 
-#: wt-status.c:1119
+#: wt-status.c:1114
+#, c-format
+msgid ""
+"\n"
+"It took %.2f seconds to compute the branch ahead/behind values.\n"
+"You can use '--no-ahead-behind' to avoid this.\n"
+msgstr ""
+"\n"
+"花了 %.2f 秒才计算出分支的领先/落后范围。\n"
+"为避免,您可以使用 '--no-ahead-behind'。\n"
+
+#: wt-status.c:1144
 msgid "You have unmerged paths."
 msgstr "您有尚未合并的路径。"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1122
+#: wt-status.c:1147
 msgid "  (fix conflicts and run \"git commit\")"
 msgstr "  (解决冲突并运行 \"git commit\")"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1124
+#: wt-status.c:1149
 msgid "  (use \"git merge --abort\" to abort the merge)"
 msgstr "  (使用 \"git merge --abort\" 终止合并)"
 
-#: wt-status.c:1128
+#: wt-status.c:1153
 msgid "All conflicts fixed but you are still merging."
 msgstr "所有冲突已解决但您仍处于合并中。"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1131
+#: wt-status.c:1156
 msgid "  (use \"git commit\" to conclude merge)"
 msgstr "  (使用 \"git commit\" 结束合并)"
 
-#: wt-status.c:1140
+#: wt-status.c:1165
 msgid "You are in the middle of an am session."
 msgstr "您正处于 am 操作过程中。"
 
-#: wt-status.c:1143
+#: wt-status.c:1168
 msgid "The current patch is empty."
 msgstr "当前的补丁为空。"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1147
+#: wt-status.c:1172
 msgid "  (fix conflicts and then run \"git am --continue\")"
 msgstr "  (解决冲突,然后运行 \"git am --continue\")"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1149
+#: wt-status.c:1174
 msgid "  (use \"git am --skip\" to skip this patch)"
 msgstr "  (使用 \"git am --skip\" 跳过此补丁)"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1151
+#: wt-status.c:1176
 msgid "  (use \"git am --abort\" to restore the original branch)"
 msgstr "  (使用 \"git am --abort\" 恢复原有分支)"
 
-#: wt-status.c:1284
+#: wt-status.c:1309
 msgid "git-rebase-todo is missing."
 msgstr "git-rebase-todo 丢失。"
 
-#: wt-status.c:1286
+#: wt-status.c:1311
 msgid "No commands done."
 msgstr "没有命令被执行。"
 
-#: wt-status.c:1289
+#: wt-status.c:1314
 #, c-format
 msgid "Last command done (%d command done):"
 msgid_plural "Last commands done (%d commands done):"
 msgstr[0] "最后一条命令已完成(%d 条命令被执行):"
 msgstr[1] "最后的命令已完成(%d 条命令被执行):"
 
-#: wt-status.c:1300
+#: wt-status.c:1325
 #, c-format
 msgid "  (see more in file %s)"
 msgstr "  (更多参见文件 %s)"
 
-#: wt-status.c:1305
+#: wt-status.c:1330
 msgid "No commands remaining."
 msgstr "未剩下任何命令。"
 
-#: wt-status.c:1308
+#: wt-status.c:1333
 #, c-format
 msgid "Next command to do (%d remaining command):"
 msgid_plural "Next commands to do (%d remaining commands):"
@@ -7952,187 +8122,179 @@ msgstr[0] "接下来要执行的命令(剩余 %d 条命令):"
 msgstr[1] "接下来要执行的命令(剩余 %d 条命令):"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1316
+#: wt-status.c:1341
 msgid "  (use \"git rebase --edit-todo\" to view and edit)"
 msgstr "  (使用 \"git rebase --edit-todo\" 来查看和编辑)"
 
-#: wt-status.c:1328
+#: wt-status.c:1353
 #, c-format
 msgid "You are currently rebasing branch '%s' on '%s'."
 msgstr "您在执行将分支 '%s' 变基到 '%s' 的操作。"
 
-#: wt-status.c:1333
+#: wt-status.c:1358
 msgid "You are currently rebasing."
 msgstr "您在执行变基操作。"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1346
+#: wt-status.c:1371
 msgid "  (fix conflicts and then run \"git rebase --continue\")"
 msgstr "  (解决冲突,然后运行 \"git rebase --continue\")"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1348
+#: wt-status.c:1373
 msgid "  (use \"git rebase --skip\" to skip this patch)"
 msgstr "  (使用 \"git rebase --skip\" 跳过此补丁)"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1350
+#: wt-status.c:1375
 msgid "  (use \"git rebase --abort\" to check out the original branch)"
 msgstr "  (使用 \"git rebase --abort\" 以检出原有分支)"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1357
+#: wt-status.c:1382
 msgid "  (all conflicts fixed: run \"git rebase --continue\")"
 msgstr "  (所有冲突已解决:运行 \"git rebase --continue\")"
 
-#: wt-status.c:1361
+#: wt-status.c:1386
 #, c-format
 msgid ""
 "You are currently splitting a commit while rebasing branch '%s' on '%s'."
 msgstr "您在执行将分支 '%s' 变基到 '%s' 的操作时拆分提交。"
 
-#: wt-status.c:1366
+#: wt-status.c:1391
 msgid "You are currently splitting a commit during a rebase."
 msgstr "您在执行变基操作时拆分提交。"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1369
+#: wt-status.c:1394
 msgid "  (Once your working directory is clean, run \"git rebase --continue\")"
 msgstr "  (一旦您工作目录提交干净后,运行 \"git rebase --continue\")"
 
-#: wt-status.c:1373
+#: wt-status.c:1398
 #, c-format
 msgid "You are currently editing a commit while rebasing branch '%s' on '%s'."
 msgstr "您在执行将分支 '%s' 变基到 '%s' 的操作时编辑提交。"
 
-#: wt-status.c:1378
+#: wt-status.c:1403
 msgid "You are currently editing a commit during a rebase."
 msgstr "您在执行变基操作时编辑提交。"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1381
+#: wt-status.c:1406
 msgid "  (use \"git commit --amend\" to amend the current commit)"
 msgstr "  (使用 \"git commit --amend\" 修补当前提交)"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1383
+#: wt-status.c:1408
 msgid ""
 "  (use \"git rebase --continue\" once you are satisfied with your changes)"
 msgstr "  (当您对您的修改满意后执行 \"git rebase --continue\")"
 
-#: wt-status.c:1394
+#: wt-status.c:1419
 msgid "Cherry-pick currently in progress."
 msgstr "拣选操作正在进行中。"
 
-#: wt-status.c:1397
+#: wt-status.c:1422
 #, c-format
 msgid "You are currently cherry-picking commit %s."
 msgstr "您在执行拣选提交 %s 的操作。"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1404
+#: wt-status.c:1429
 msgid "  (fix conflicts and run \"git cherry-pick --continue\")"
 msgstr "  (解决冲突并运行 \"git cherry-pick --continue\")"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1407
+#: wt-status.c:1432
 msgid "  (run \"git cherry-pick --continue\" to continue)"
 msgstr "  (执行 \"git cherry-pick --continue\" 以继续)"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1410
+#: wt-status.c:1435
 msgid "  (all conflicts fixed: run \"git cherry-pick --continue\")"
 msgstr "  (所有冲突已解决:运行 \"git cherry-pick --continue\")"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1412
+#: wt-status.c:1437
 msgid "  (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)"
 msgstr "  (使用 \"git cherry-pick --abort\" 以取消拣选操作)"
 
-#: wt-status.c:1422
+#: wt-status.c:1447
 msgid "Revert currently in progress."
 msgstr "还原操作正在行中。"
 
-#: wt-status.c:1425
+#: wt-status.c:1450
 #, c-format
 msgid "You are currently reverting commit %s."
 msgstr "您在执行反转提交 %s 的操作。"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1431
+#: wt-status.c:1456
 msgid "  (fix conflicts and run \"git revert --continue\")"
 msgstr "  (解决冲突并执行 \"git revert --continue\")"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1434
+#: wt-status.c:1459
 msgid "  (run \"git revert --continue\" to continue)"
 msgstr "  (执行 \"git revert --continue\" 以继续)"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1437
+#: wt-status.c:1462
 msgid "  (all conflicts fixed: run \"git revert --continue\")"
 msgstr "  (所有冲突已解决:执行 \"git revert --continue\")"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1439
+#: wt-status.c:1464
 msgid "  (use \"git revert --abort\" to cancel the revert operation)"
 msgstr "  (使用 \"git revert --abort\" 以取消反转提交操作)"
 
-#: wt-status.c:1449
+#: wt-status.c:1474
 #, c-format
 msgid "You are currently bisecting, started from branch '%s'."
 msgstr "您在执行从分支 '%s' 开始的二分查找操作。"
 
-#: wt-status.c:1453
+#: wt-status.c:1478
 msgid "You are currently bisecting."
 msgstr "您在执行二分查找操作。"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1456
+#: wt-status.c:1481
 msgid "  (use \"git bisect reset\" to get back to the original branch)"
 msgstr "  (使用 \"git bisect reset\" 以回到原有分支)"
 
-#: wt-status.c:1665
+#: wt-status.c:1690
 msgid "On branch "
 msgstr "位于分支 "
 
-#: wt-status.c:1672
+#: wt-status.c:1697
 msgid "interactive rebase in progress; onto "
 msgstr "交互式变基操作正在进行中;至 "
 
-#: wt-status.c:1674
+#: wt-status.c:1699
 msgid "rebase in progress; onto "
 msgstr "变基操作正在进行中;至 "
 
-#: wt-status.c:1679
-msgid "HEAD detached at "
-msgstr "头指针分离于 "
-
-#: wt-status.c:1681
-msgid "HEAD detached from "
-msgstr "头指针分离自 "
-
-#: wt-status.c:1684
+#: wt-status.c:1709
 msgid "Not currently on any branch."
 msgstr "当前不在任何分支上。"
 
-#: wt-status.c:1701
+#: wt-status.c:1726
 msgid "Initial commit"
 msgstr "初始提交"
 
-#: wt-status.c:1702
+#: wt-status.c:1727
 msgid "No commits yet"
 msgstr "尚无提交"
 
-#: wt-status.c:1716
+#: wt-status.c:1741
 msgid "Untracked files"
 msgstr "未跟踪的文件"
 
-#: wt-status.c:1718
+#: wt-status.c:1743
 msgid "Ignored files"
 msgstr "忽略的文件"
 
-#: wt-status.c:1722
+#: wt-status.c:1747
 #, c-format
 msgid ""
 "It took %.2f seconds to enumerate untracked files. 'status -uno'\n"
@@ -8142,97 +8304,97 @@ msgstr ""
 "耗费了 %.2f 秒以枚举未跟踪的文件。'status -uno' 也许能提高速度,\n"
 "但您需要小心不要忘了添加新文件(参见 'git help status')。"
 
-#: wt-status.c:1728
+#: wt-status.c:1753
 #, c-format
 msgid "Untracked files not listed%s"
 msgstr "未跟踪的文件没有列出%s"
 
 #  译者:中文字符串拼接,可删除前导空格
-#: wt-status.c:1730
+#: wt-status.c:1755
 msgid " (use -u option to show untracked files)"
 msgstr "(使用 -u 参数显示未跟踪的文件)"
 
-#: wt-status.c:1736
+#: wt-status.c:1761
 msgid "No changes"
 msgstr "没有修改"
 
-#: wt-status.c:1741
+#: wt-status.c:1766
 #, c-format
 msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n"
 msgstr "修改尚未加入提交(使用 \"git add\" 和/或 \"git commit -a\")\n"
 
-#: wt-status.c:1744
+#: wt-status.c:1769
 #, c-format
 msgid "no changes added to commit\n"
 msgstr "修改尚未加入提交\n"
 
-#: wt-status.c:1747
+#: wt-status.c:1772
 #, c-format
 msgid ""
 "nothing added to commit but untracked files present (use \"git add\" to "
 "track)\n"
 msgstr "提交为空,但是存在尚未跟踪的文件(使用 \"git add\" 建立跟踪)\n"
 
-#: wt-status.c:1750
+#: wt-status.c:1775
 #, c-format
 msgid "nothing added to commit but untracked files present\n"
 msgstr "提交为空,但是存在尚未跟踪的文件\n"
 
 #  译者:中文字符串拼接,可删除前导空格
-#: wt-status.c:1753
+#: wt-status.c:1778
 #, c-format
 msgid "nothing to commit (create/copy files and use \"git add\" to track)\n"
 msgstr "无文件要提交(创建/拷贝文件并使用 \"git add\" 建立跟踪)\n"
 
-#: wt-status.c:1756 wt-status.c:1761
+#: wt-status.c:1781 wt-status.c:1786
 #, c-format
 msgid "nothing to commit\n"
 msgstr "无文件要提交\n"
 
 #  译者:中文字符串拼接,可删除前导空格
-#: wt-status.c:1759
+#: wt-status.c:1784
 #, c-format
 msgid "nothing to commit (use -u to show untracked files)\n"
 msgstr "无文件要提交(使用 -u 显示未跟踪的文件)\n"
 
 #  译者:中文字符串拼接,可删除前导空格
-#: wt-status.c:1763
+#: wt-status.c:1788
 #, c-format
 msgid "nothing to commit, working tree clean\n"
 msgstr "无文件要提交,干净的工作区\n"
 
-#: wt-status.c:1876
+#: wt-status.c:1901
 msgid "No commits yet on "
 msgstr "尚无提交在 "
 
-#: wt-status.c:1880
+#: wt-status.c:1905
 msgid "HEAD (no branch)"
 msgstr "HEAD(非分支)"
 
-#: wt-status.c:1911
+#: wt-status.c:1936
 msgid "different"
 msgstr "不同"
 
 #  译者:注意保持句尾空格
-#: wt-status.c:1913 wt-status.c:1921
+#: wt-status.c:1938 wt-status.c:1946
 msgid "behind "
 msgstr "落后 "
 
-#: wt-status.c:1916 wt-status.c:1919
+#: wt-status.c:1941 wt-status.c:1944
 msgid "ahead "
 msgstr "领先 "
 
 #. TRANSLATORS: the action is e.g. "pull with rebase"
-#: wt-status.c:2443
+#: wt-status.c:2466
 #, c-format
 msgid "cannot %s: You have unstaged changes."
 msgstr "不能%s:您有未暂存的变更。"
 
-#: wt-status.c:2449
+#: wt-status.c:2472
 msgid "additionally, your index contains uncommitted changes."
 msgstr "另外,您的索引中包含未提交的变更。"
 
-#: wt-status.c:2451
+#: wt-status.c:2474
 #, c-format
 msgid "cannot %s: Your index contains uncommitted changes."
 msgstr "不能%s:您的索引中包含未提交的变更。"
@@ -8246,7 +8408,7 @@ msgstr "git add [<选项>] [--] <路径规格>..."
 msgid "unexpected diff status %c"
 msgstr "意外的差异状态 %c"
 
-#: builtin/add.c:89 builtin/commit.c:285
+#: builtin/add.c:89 builtin/commit.c:288
 msgid "updating files failed"
 msgstr "更新文件失败"
 
@@ -8294,8 +8456,8 @@ msgstr "不能应用 '%s'"
 msgid "The following paths are ignored by one of your .gitignore files:\n"
 msgstr "下列路径根据您的一个 .gitignore 文件而被忽略:\n"
 
-#: builtin/add.c:290 builtin/clean.c:908 builtin/fetch.c:137 builtin/mv.c:124
-#: builtin/prune-packed.c:56 builtin/pull.c:221 builtin/push.c:560
+#: builtin/add.c:290 builtin/clean.c:909 builtin/fetch.c:147 builtin/mv.c:124
+#: builtin/prune-packed.c:56 builtin/pull.c:222 builtin/push.c:560
 #: builtin/remote.c:1345 builtin/rm.c:241 builtin/send-pack.c:165
 msgid "dry run"
 msgstr "演习"
@@ -8304,7 +8466,7 @@ msgstr "演习"
 msgid "interactive picking"
 msgstr "交互式拣选"
 
-#: builtin/add.c:294 builtin/checkout.c:1379 builtin/reset.c:306
+#: builtin/add.c:294 builtin/checkout.c:1480 builtin/reset.c:306
 msgid "select hunks interactively"
 msgstr "交互式挑选数据块"
 
@@ -8470,7 +8632,7 @@ msgstr "无效的时区偏移值"
 msgid "Patch format detection failed."
 msgstr "补丁格式探测失败。"
 
-#: builtin/am.c:949 builtin/clone.c:409
+#: builtin/am.c:949 builtin/clone.c:407
 #, c-format
 msgid "failed to create directory '%s'"
 msgstr "创建目录 '%s' 失败"
@@ -8479,7 +8641,7 @@ msgstr "创建目录 '%s' 失败"
 msgid "Failed to split patches."
 msgstr "拆分补丁失败。"
 
-#: builtin/am.c:1084 builtin/commit.c:371
+#: builtin/am.c:1084 builtin/commit.c:374
 msgid "unable to write index file"
 msgstr "无法写入索引文件"
 
@@ -8516,15 +8678,15 @@ msgstr "无效的身份标识:%.*s"
 msgid "unable to parse commit %s"
 msgstr "不能解析提交 %s"
 
-#: builtin/am.c:1495
+#: builtin/am.c:1496
 msgid "Repository lacks necessary blobs to fall back on 3-way merge."
 msgstr "仓库缺乏必要的数据对象以进行三方合并。"
 
-#: builtin/am.c:1497
+#: builtin/am.c:1498
 msgid "Using index info to reconstruct a base tree..."
 msgstr "使用索引来重建一个(三方合并的)基础目录树..."
 
-#: builtin/am.c:1516
+#: builtin/am.c:1517
 msgid ""
 "Did you hand edit your patch?\n"
 "It does not apply to blobs recorded in its index."
@@ -8532,28 +8694,24 @@ msgstr ""
 "您是否曾手动编辑过您的补丁?\n"
 "无法应用补丁到索引中的数据对象上。"
 
-#: builtin/am.c:1522
+#: builtin/am.c:1523
 msgid "Falling back to patching base and 3-way merge..."
 msgstr "回落到基础版本上打补丁及进行三方合并..."
 
-#: builtin/am.c:1548
+#: builtin/am.c:1549
 msgid "Failed to merge in the changes."
 msgstr "无法合并变更。"
 
-#: builtin/am.c:1580
+#: builtin/am.c:1581
 msgid "applying to an empty history"
 msgstr "正应用到一个空历史上"
 
-#: builtin/am.c:1627 builtin/am.c:1631
+#: builtin/am.c:1628 builtin/am.c:1632
 #, c-format
 msgid "cannot resume: %s does not exist."
 msgstr "无法继续:%s 不存在。"
 
-#: builtin/am.c:1647
-msgid "cannot be interactive without stdin connected to a terminal."
-msgstr "标准输入没有和终端关联,不能进行交互式操作。"
-
-#: builtin/am.c:1652
+#: builtin/am.c:1650
 msgid "Commit Body is:"
 msgstr "提交内容为:"
 
@@ -8562,34 +8720,35 @@ msgstr "提交内容为:"
 #. in your translation. The program will only accept English
 #. input at this point.
 #.
-#: builtin/am.c:1662
+#: builtin/am.c:1660
+#, c-format
 msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: "
 msgstr "应用?是[y]/否[n]/编辑[e]/查看补丁[v]/应用所有[a]:"
 
-#: builtin/am.c:1712
+#: builtin/am.c:1710
 #, c-format
 msgid "Dirty index: cannot apply patches (dirty: %s)"
 msgstr "脏索引:不能应用补丁(脏文件:%s)"
 
-#: builtin/am.c:1752 builtin/am.c:1820
+#: builtin/am.c:1750 builtin/am.c:1818
 #, c-format
 msgid "Applying: %.*s"
 msgstr "应用:%.*s"
 
-#: builtin/am.c:1769
+#: builtin/am.c:1767
 msgid "No changes -- Patch already applied."
 msgstr "没有变更 —— 补丁已经应用过。"
 
-#: builtin/am.c:1775
+#: builtin/am.c:1773
 #, c-format
 msgid "Patch failed at %s %.*s"
 msgstr "打补丁失败于 %s %.*s"
 
-#: builtin/am.c:1779
+#: builtin/am.c:1777
 msgid "Use 'git am --show-current-patch' to see the failed patch"
 msgstr "用 'git am --show-current-patch' 命令查看失败的补丁"
 
-#: builtin/am.c:1823
+#: builtin/am.c:1821
 msgid ""
 "No changes - did you forget to use 'git add'?\n"
 "If there is nothing left to stage, chances are that something else\n"
@@ -8599,7 +8758,7 @@ msgstr ""
 "如果没有什么要添加到暂存区的,则很可能是其它提交已经引入了相同的变更。\n"
 "您也许想要跳过这个补丁。"
 
-#: builtin/am.c:1830
+#: builtin/am.c:1828
 msgid ""
 "You still have unmerged paths in your index.\n"
 "You should 'git add' each file with resolved conflicts to mark them as "
@@ -8610,159 +8769,159 @@ msgstr ""
 "您应该对已经冲突解决的每一个文件执行 'git add' 来标记已经完成。 \n"
 "你可以对 \"由他们删除\" 的文件执行 `git rm` 命令。"
 
-#: builtin/am.c:1937 builtin/am.c:1941 builtin/am.c:1953 builtin/reset.c:329
+#: builtin/am.c:1935 builtin/am.c:1939 builtin/am.c:1951 builtin/reset.c:329
 #: builtin/reset.c:337
 #, c-format
 msgid "Could not parse object '%s'."
 msgstr "不能解析对象 '%s'。"
 
-#: builtin/am.c:1989
+#: builtin/am.c:1987
 msgid "failed to clean index"
 msgstr "清空索引失败"
 
-#: builtin/am.c:2033
+#: builtin/am.c:2031
 msgid ""
 "You seem to have moved HEAD since the last 'am' failure.\n"
 "Not rewinding to ORIG_HEAD"
 msgstr "您好像在上一次 'am' 失败后移动了 HEAD。未回退至 ORIG_HEAD"
 
-#: builtin/am.c:2130
+#: builtin/am.c:2128
 #, c-format
 msgid "Invalid value for --patch-format: %s"
 msgstr "无效的 --patch-format 值:%s"
 
-#: builtin/am.c:2166
+#: builtin/am.c:2164
 msgid "git am [<options>] [(<mbox> | <Maildir>)...]"
 msgstr "git am [<选项>] [(<mbox> | <Maildir>)...]"
 
-#: builtin/am.c:2167
+#: builtin/am.c:2165
 msgid "git am [<options>] (--continue | --skip | --abort)"
 msgstr "git am [<选项>] (--continue | --skip | --abort)"
 
-#: builtin/am.c:2173
+#: builtin/am.c:2171
 msgid "run interactively"
 msgstr "以交互式方式运行"
 
-#: builtin/am.c:2175
+#: builtin/am.c:2173
 msgid "historical option -- no-op"
 msgstr "老的参数 —— 无作用"
 
-#: builtin/am.c:2177
+#: builtin/am.c:2175
 msgid "allow fall back on 3way merging if needed"
 msgstr "如果必要,允许使用三方合并。"
 
-#: builtin/am.c:2178 builtin/init-db.c:494 builtin/prune-packed.c:58
-#: builtin/repack.c:306 builtin/stash.c:805
+#: builtin/am.c:2176 builtin/init-db.c:494 builtin/prune-packed.c:58
+#: builtin/repack.c:296 builtin/stash.c:806
 msgid "be quiet"
 msgstr "静默模式"
 
-#: builtin/am.c:2180
+#: builtin/am.c:2178
 msgid "add a Signed-off-by line to the commit message"
 msgstr "在提交说明中添加一个 Signed-off-by 签名"
 
-#: builtin/am.c:2183
+#: builtin/am.c:2181
 msgid "recode into utf8 (default)"
 msgstr "使用 utf8 字符集(默认)"
 
-#: builtin/am.c:2185
+#: builtin/am.c:2183
 msgid "pass -k flag to git-mailinfo"
 msgstr "向 git-mailinfo 传递 -k 参数"
 
-#: builtin/am.c:2187
+#: builtin/am.c:2185
 msgid "pass -b flag to git-mailinfo"
 msgstr "向 git-mailinfo 传递 -b 参数"
 
-#: builtin/am.c:2189
+#: builtin/am.c:2187
 msgid "pass -m flag to git-mailinfo"
 msgstr "向 git-mailinfo 传递 -m 参数"
 
-#: builtin/am.c:2191
+#: builtin/am.c:2189
 msgid "pass --keep-cr flag to git-mailsplit for mbox format"
 msgstr "针对 mbox 格式,向 git-mailsplit 传递 --keep-cr 参数"
 
-#: builtin/am.c:2194
+#: builtin/am.c:2192
 msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"
 msgstr "不向 git-mailsplit 传递 --keep-cr 参数,覆盖 am.keepcr 的设置"
 
-#: builtin/am.c:2197
+#: builtin/am.c:2195
 msgid "strip everything before a scissors line"
 msgstr "丢弃裁切线前的所有内容"
 
-#: builtin/am.c:2199 builtin/am.c:2202 builtin/am.c:2205 builtin/am.c:2208
-#: builtin/am.c:2211 builtin/am.c:2214 builtin/am.c:2217 builtin/am.c:2220
-#: builtin/am.c:2226
+#: builtin/am.c:2197 builtin/am.c:2200 builtin/am.c:2203 builtin/am.c:2206
+#: builtin/am.c:2209 builtin/am.c:2212 builtin/am.c:2215 builtin/am.c:2218
+#: builtin/am.c:2224
 msgid "pass it through git-apply"
 msgstr "传递给 git-apply"
 
-#: builtin/am.c:2216 builtin/commit.c:1348 builtin/fmt-merge-msg.c:671
-#: builtin/fmt-merge-msg.c:674 builtin/grep.c:879 builtin/merge.c:247
-#: builtin/pull.c:158 builtin/pull.c:217 builtin/rebase.c:1412
-#: builtin/repack.c:317 builtin/repack.c:321 builtin/repack.c:323
-#: builtin/show-branch.c:651 builtin/show-ref.c:172 builtin/tag.c:397
-#: parse-options.h:141 parse-options.h:162 parse-options.h:311
+#: builtin/am.c:2214 builtin/commit.c:1368 builtin/fmt-merge-msg.c:671
+#: builtin/fmt-merge-msg.c:674 builtin/grep.c:881 builtin/merge.c:249
+#: builtin/pull.c:159 builtin/pull.c:218 builtin/rebase.c:1418
+#: builtin/repack.c:307 builtin/repack.c:311 builtin/repack.c:313
+#: builtin/show-branch.c:650 builtin/show-ref.c:172 builtin/tag.c:403
+#: parse-options.h:141 parse-options.h:162 parse-options.h:312
 msgid "n"
 msgstr "n"
 
-#: builtin/am.c:2222 builtin/branch.c:653 builtin/for-each-ref.c:38
-#: builtin/replace.c:554 builtin/tag.c:431 builtin/verify-tag.c:39
+#: builtin/am.c:2220 builtin/branch.c:661 builtin/for-each-ref.c:38
+#: builtin/replace.c:554 builtin/tag.c:437 builtin/verify-tag.c:38
 msgid "format"
 msgstr "格式"
 
-#: builtin/am.c:2223
+#: builtin/am.c:2221
 msgid "format the patch(es) are in"
 msgstr "补丁的格式"
 
-#: builtin/am.c:2229
+#: builtin/am.c:2227
 msgid "override error message when patch failure occurs"
 msgstr "打补丁失败时显示的错误信息"
 
-#: builtin/am.c:2231
+#: builtin/am.c:2229
 msgid "continue applying patches after resolving a conflict"
 msgstr "冲突解决后继续应用补丁"
 
-#: builtin/am.c:2234
+#: builtin/am.c:2232
 msgid "synonyms for --continue"
 msgstr "和 --continue 同义"
 
-#: builtin/am.c:2237
+#: builtin/am.c:2235
 msgid "skip the current patch"
 msgstr "跳过当前补丁"
 
-#: builtin/am.c:2240
+#: builtin/am.c:2238
 msgid "restore the original branch and abort the patching operation."
 msgstr "恢复原始分支并终止打补丁操作。"
 
-#: builtin/am.c:2243
+#: builtin/am.c:2241
 msgid "abort the patching operation but keep HEAD where it is."
 msgstr "终止补丁操作但保持 HEAD 不变。"
 
-#: builtin/am.c:2246
+#: builtin/am.c:2244
 msgid "show the patch being applied."
 msgstr "显示正在应用的补丁。"
 
-#: builtin/am.c:2250
+#: builtin/am.c:2248
 msgid "lie about committer date"
 msgstr "将作者日期作为提交日期"
 
-#: builtin/am.c:2252
+#: builtin/am.c:2250
 msgid "use current timestamp for author date"
 msgstr "用当前时间作为作者日期"
 
-#: builtin/am.c:2254 builtin/commit-tree.c:120 builtin/commit.c:1491
-#: builtin/merge.c:282 builtin/pull.c:192 builtin/rebase.c:489
-#: builtin/rebase.c:1453 builtin/revert.c:116 builtin/tag.c:412
+#: builtin/am.c:2252 builtin/commit-tree.c:120 builtin/commit.c:1511
+#: builtin/merge.c:286 builtin/pull.c:193 builtin/rebase.c:489
+#: builtin/rebase.c:1459 builtin/revert.c:117 builtin/tag.c:418
 msgid "key-id"
 msgstr "key-id"
 
-#: builtin/am.c:2255 builtin/rebase.c:490 builtin/rebase.c:1454
+#: builtin/am.c:2253 builtin/rebase.c:490 builtin/rebase.c:1460
 msgid "GPG-sign commits"
 msgstr "使用 GPG 签名提交"
 
-#: builtin/am.c:2258
+#: builtin/am.c:2256
 msgid "(internal use for git-rebase)"
 msgstr "(内部使用,用于 git-rebase)"
 
-#: builtin/am.c:2276
+#: builtin/am.c:2274
 msgid ""
 "The -b/--binary option has been a no-op for long time, and\n"
 "it will be removed. Please do not use it anymore."
@@ -8770,16 +8929,16 @@ msgstr ""
 "参数 -b/--binary 已经很长时间不做任何实质操作了,并且将被移除。\n"
 "请不要再使用它了。"
 
-#: builtin/am.c:2283
+#: builtin/am.c:2281
 msgid "failed to read the index"
 msgstr "读取索引失败"
 
-#: builtin/am.c:2298
+#: builtin/am.c:2296
 #, c-format
 msgid "previous rebase directory %s still exists but mbox given."
 msgstr "之前的变基目录 %s 仍然存在,但却提供了 mbox。"
 
-#: builtin/am.c:2322
+#: builtin/am.c:2320
 #, c-format
 msgid ""
 "Stray %s directory found.\n"
@@ -8788,10 +8947,14 @@ msgstr ""
 "发现了错误的 %s 目录。\n"
 "使用 \"git am --abort\" 删除它。"
 
-#: builtin/am.c:2328
+#: builtin/am.c:2326
 msgid "Resolve operation not in progress, we are not resuming."
 msgstr "解决操作未进行,我们不会继续。"
 
+#: builtin/am.c:2336
+msgid "interactive mode requires patches on the command line"
+msgstr "交互式模式需要命令行上提供补丁"
+
 #: builtin/apply.c:8
 msgid "git apply [<options>] [<patch>...]"
 msgstr "git apply [<选项>] [<补丁>...]"
@@ -9017,79 +9180,84 @@ msgstr "不会在做了 cg-seek 的树上做二分查找"
 msgid "bad HEAD - strange symbolic ref"
 msgstr "坏的 HEAD - 奇怪的符号引用"
 
-#: builtin/bisect--helper.c:627
+#: builtin/bisect--helper.c:574
+#, c-format
+msgid "invalid ref: '%s'"
+msgstr "无效的引用:'%s'"
+
+#: builtin/bisect--helper.c:630
 msgid "perform 'git bisect next'"
 msgstr "执行 'git bisect next'"
 
-#: builtin/bisect--helper.c:629
+#: builtin/bisect--helper.c:632
 msgid "write the terms to .git/BISECT_TERMS"
 msgstr "将术语写入 .git/BISECT_TERMS"
 
-#: builtin/bisect--helper.c:631
+#: builtin/bisect--helper.c:634
 msgid "cleanup the bisection state"
 msgstr "清除二分查找状态"
 
-#: builtin/bisect--helper.c:633
+#: builtin/bisect--helper.c:636
 msgid "check for expected revs"
 msgstr "检查预期的版本"
 
-#: builtin/bisect--helper.c:635
+#: builtin/bisect--helper.c:638
 msgid "reset the bisection state"
 msgstr "清除二分查找状态"
 
-#: builtin/bisect--helper.c:637
+#: builtin/bisect--helper.c:640
 msgid "write out the bisection state in BISECT_LOG"
 msgstr "将二分查找的状态写入 BISECT_LOG"
 
-#: builtin/bisect--helper.c:639
+#: builtin/bisect--helper.c:642
 msgid "check and set terms in a bisection state"
 msgstr "在一个二分查找状态中检查和设置术语"
 
-#: builtin/bisect--helper.c:641
+#: builtin/bisect--helper.c:644
 msgid "check whether bad or good terms exist"
 msgstr "检查坏的或好的术语是否存在"
 
-#: builtin/bisect--helper.c:643
+#: builtin/bisect--helper.c:646
 msgid "print out the bisect terms"
 msgstr "打印二分查找术语"
 
-#: builtin/bisect--helper.c:645
+#: builtin/bisect--helper.c:648
 msgid "start the bisect session"
 msgstr "启动二分查找过程"
 
-#: builtin/bisect--helper.c:647
+#: builtin/bisect--helper.c:650
 msgid "update BISECT_HEAD instead of checking out the current commit"
 msgstr "更新 BISECT_HEAD 而非检出当前提交"
 
-#: builtin/bisect--helper.c:649
+#: builtin/bisect--helper.c:652
 msgid "no log for BISECT_WRITE"
 msgstr "BISECT_WRITE 无日志"
 
-#: builtin/bisect--helper.c:666
+#: builtin/bisect--helper.c:669
 msgid "--write-terms requires two arguments"
 msgstr "--write-terms 需要两个参数"
 
-#: builtin/bisect--helper.c:670
+#: builtin/bisect--helper.c:673
 msgid "--bisect-clean-state requires no arguments"
 msgstr "--bisect-clean-state 不带参数"
 
-#: builtin/bisect--helper.c:677
+#: builtin/bisect--helper.c:680
 msgid "--bisect-reset requires either no argument or a commit"
 msgstr "--bisect-reset 无需参数或者需要一个提交"
 
-#: builtin/bisect--helper.c:681
+#: builtin/bisect--helper.c:684
 msgid "--bisect-write requires either 4 or 5 arguments"
 msgstr "--bisect-write 需要 4 或 5 个参数"
 
-#: builtin/bisect--helper.c:687
+#: builtin/bisect--helper.c:690
 msgid "--check-and-set-terms requires 3 arguments"
 msgstr "--check-and-set-terms 需要 3 个参数"
 
-#: builtin/bisect--helper.c:693
+#: builtin/bisect--helper.c:696
 msgid "--bisect-next-check requires 2 or 3 arguments"
 msgstr "--bisect-next-check 需要 2 或 3 个参数"
 
-#: builtin/bisect--helper.c:699
+#: builtin/bisect--helper.c:702
 msgid "--bisect-terms requires 0 or 1 argument"
 msgstr "--bisect-terms 需要 0 或 1 个参数"
 
@@ -9101,133 +9269,150 @@ msgstr "git blame [<选项>] [<版本选项>] [<版本>] [--] <文件>"
 msgid "<rev-opts> are documented in git-rev-list(1)"
 msgstr "<版本选项> 的文档记录在 git-rev-list(1) 中"
 
-#: builtin/blame.c:407
+#: builtin/blame.c:410
 #, c-format
 msgid "expecting a color: %s"
 msgstr "期望一个颜色:%s"
 
-#: builtin/blame.c:414
+#: builtin/blame.c:417
 msgid "must end with a color"
 msgstr "必须以一个颜色结尾"
 
-#: builtin/blame.c:701
+#: builtin/blame.c:730
 #, c-format
 msgid "invalid color '%s' in color.blame.repeatedLines"
 msgstr "设置 color.blame.repeatedLines 中的无效颜色 '%s'"
 
-#: builtin/blame.c:719
+#: builtin/blame.c:748
 msgid "invalid value for blame.coloring"
 msgstr "设置 blame.coloring 中的无效取值"
 
-#: builtin/blame.c:794
+#: builtin/blame.c:823
+#, c-format
+msgid "cannot find revision %s to ignore"
+msgstr "不能找到要忽略的版本 %s"
+
+#: builtin/blame.c:845
 msgid "Show blame entries as we find them, incrementally"
 msgstr "增量式地显示发现的 blame 条目"
 
-#: builtin/blame.c:795
+#: builtin/blame.c:846
 msgid "Show blank SHA-1 for boundary commits (Default: off)"
 msgstr "边界提交显示空的 SHA-1(默认:关闭)"
 
-#: builtin/blame.c:796
+#: builtin/blame.c:847
 msgid "Do not treat root commits as boundaries (Default: off)"
 msgstr "不把根提交作为边界(默认:关闭)"
 
-#: builtin/blame.c:797
+#: builtin/blame.c:848
 msgid "Show work cost statistics"
 msgstr "显示命令消耗统计"
 
-#: builtin/blame.c:798
+#: builtin/blame.c:849
 msgid "Force progress reporting"
 msgstr "强制进度显示"
 
-#: builtin/blame.c:799
+#: builtin/blame.c:850
 msgid "Show output score for blame entries"
 msgstr "显示判断 blame 条目位移的得分诊断信息"
 
-#: builtin/blame.c:800
+#: builtin/blame.c:851
 msgid "Show original filename (Default: auto)"
 msgstr "显示原始文件名(默认:自动)"
 
-#: builtin/blame.c:801
+#: builtin/blame.c:852
 msgid "Show original linenumber (Default: off)"
 msgstr "显示原始的行号(默认:关闭)"
 
-#: builtin/blame.c:802
+#: builtin/blame.c:853
 msgid "Show in a format designed for machine consumption"
 msgstr "显示为一个适合机器读取的格式"
 
-#: builtin/blame.c:803
+#: builtin/blame.c:854
 msgid "Show porcelain format with per-line commit information"
 msgstr "为每一行显示机器适用的提交信息"
 
-#: builtin/blame.c:804
+#: builtin/blame.c:855
 msgid "Use the same output mode as git-annotate (Default: off)"
 msgstr "使用和 git-annotate 相同的输出模式(默认:关闭)"
 
-#: builtin/blame.c:805
+#: builtin/blame.c:856
 msgid "Show raw timestamp (Default: off)"
 msgstr "显示原始时间戳(默认:关闭)"
 
-#: builtin/blame.c:806
+#: builtin/blame.c:857
 msgid "Show long commit SHA1 (Default: off)"
 msgstr "显示长的 SHA1 提交号(默认:关闭)"
 
-#: builtin/blame.c:807
+#: builtin/blame.c:858
 msgid "Suppress author name and timestamp (Default: off)"
 msgstr "隐藏作者名字和时间戳(默认:关闭)"
 
-#: builtin/blame.c:808
+#: builtin/blame.c:859
 msgid "Show author email instead of name (Default: off)"
 msgstr "显示作者的邮箱而不是名字(默认:关闭)"
 
-#: builtin/blame.c:809
+#: builtin/blame.c:860
 msgid "Ignore whitespace differences"
 msgstr "忽略空白差异"
 
-#: builtin/blame.c:810
+#: builtin/blame.c:861 builtin/log.c:1629
+msgid "rev"
+msgstr "版本"
+
+#: builtin/blame.c:861
+msgid "Ignore <rev> when blaming"
+msgstr "在执行 blame 操作时忽略 <版本>"
+
+#: builtin/blame.c:862
+msgid "Ignore revisions from <file>"
+msgstr "忽略来自 <文件> 中的版本"
+
+#: builtin/blame.c:863
 msgid "color redundant metadata from previous line differently"
 msgstr "使用颜色间隔输出与前一行不同的重复元信息"
 
-#: builtin/blame.c:811
+#: builtin/blame.c:864
 msgid "color lines by age"
 msgstr "依据时间着色"
 
-#: builtin/blame.c:818
+#: builtin/blame.c:871
 msgid "Use an experimental heuristic to improve diffs"
 msgstr "使用一个试验性的启发式算法改进差异显示"
 
-#: builtin/blame.c:820
+#: builtin/blame.c:873
 msgid "Spend extra cycles to find better match"
 msgstr "花费额外的循环来找到更好的匹配"
 
-#: builtin/blame.c:821
+#: builtin/blame.c:874
 msgid "Use revisions from <file> instead of calling git-rev-list"
 msgstr "使用来自 <文件> 的修订集而不是调用 git-rev-list"
 
-#: builtin/blame.c:822
+#: builtin/blame.c:875
 msgid "Use <file>'s contents as the final image"
 msgstr "使用 <文件> 的内容作为最终的图片"
 
-#: builtin/blame.c:823 builtin/blame.c:824
+#: builtin/blame.c:876 builtin/blame.c:877
 msgid "score"
 msgstr "得分"
 
-#: builtin/blame.c:823
+#: builtin/blame.c:876
 msgid "Find line copies within and across files"
 msgstr "找到文件内及跨文件的行拷贝"
 
-#: builtin/blame.c:824
+#: builtin/blame.c:877
 msgid "Find line movements within and across files"
 msgstr "找到文件内及跨文件的行移动"
 
-#: builtin/blame.c:825
+#: builtin/blame.c:878
 msgid "n,m"
 msgstr "n,m"
 
-#: builtin/blame.c:825
+#: builtin/blame.c:878
 msgid "Process only line range n,m, counting from 1"
 msgstr "只处理行范围在 n 和 m 之间的,从 1 开始"
 
-#: builtin/blame.c:876
+#: builtin/blame.c:929
 msgid "--progress can't be used with --incremental or porcelain formats"
 msgstr "--progress 不能和 --incremental 或 --porcelain 同时使用"
 
@@ -9239,18 +9424,18 @@ msgstr "--progress 不能和 --incremental 或 --porcelain 同时使用"
 #. your language may need more or fewer display
 #. columns.
 #.
-#: builtin/blame.c:927
+#: builtin/blame.c:980
 msgid "4 years, 11 months ago"
 msgstr "4 年 11 个月前"
 
-#: builtin/blame.c:1031
+#: builtin/blame.c:1087
 #, c-format
 msgid "file %s has only %lu line"
 msgid_plural "file %s has only %lu lines"
 msgstr[0] "文件 %s 只有 %lu 行"
 msgstr[1] "文件 %s 只有 %lu 行"
 
-#: builtin/blame.c:1077
+#: builtin/blame.c:1133
 msgid "Blaming lines"
 msgstr "追踪代码行"
 
@@ -9283,7 +9468,7 @@ msgid "git branch [<options>] [-r | -a] [--format]"
 msgstr "git branch [<选项>] [-r | -a] [--format]"
 
 #  译者:保持原换行格式,在输出时 %s 的替代内容会让字符串变长
-#: builtin/branch.c:151
+#: builtin/branch.c:154
 #, c-format
 msgid ""
 "deleting branch '%s' that has been merged to\n"
@@ -9293,7 +9478,7 @@ msgstr ""
 "         '%s',但未合并到 HEAD。"
 
 #  译者:保持原换行格式,在输出时 %s 的替代内容会让字符串变长
-#: builtin/branch.c:155
+#: builtin/branch.c:158
 #, c-format
 msgid ""
 "not deleting branch '%s' that is not yet merged to\n"
@@ -9302,12 +9487,12 @@ msgstr ""
 "并未删除分支 '%s', 虽然它已经合并到 HEAD,\n"
 "         然而却尚未被合并到分支 '%s' 。"
 
-#: builtin/branch.c:169
+#: builtin/branch.c:172
 #, c-format
 msgid "Couldn't look up commit object for '%s'"
 msgstr "无法查询 '%s' 指向的提交对象"
 
-#: builtin/branch.c:173
+#: builtin/branch.c:176
 #, c-format
 msgid ""
 "The branch '%s' is not fully merged.\n"
@@ -9316,121 +9501,121 @@ msgstr ""
 "分支 '%s' 没有完全合并。\n"
 "如果您确认要删除它,执行 'git branch -D %s'。"
 
-#: builtin/branch.c:186
+#: builtin/branch.c:189
 msgid "Update of config-file failed"
 msgstr "更新配置文件失败"
 
-#: builtin/branch.c:217
+#: builtin/branch.c:220
 msgid "cannot use -a with -d"
 msgstr "不能将 -a 和 -d 同时使用"
 
-#: builtin/branch.c:223
+#: builtin/branch.c:226
 msgid "Couldn't look up commit object for HEAD"
 msgstr "无法查询 HEAD 指向的提交对象"
 
-#: builtin/branch.c:237
+#: builtin/branch.c:240
 #, c-format
 msgid "Cannot delete branch '%s' checked out at '%s'"
 msgstr "无法删除检出于 '%2$s' 的分支 '%1$s'。"
 
-#: builtin/branch.c:252
+#: builtin/branch.c:255
 #, c-format
 msgid "remote-tracking branch '%s' not found."
 msgstr "未能找到远程跟踪分支 '%s'。"
 
-#: builtin/branch.c:253
+#: builtin/branch.c:256
 #, c-format
 msgid "branch '%s' not found."
 msgstr "分支 '%s' 未发现。"
 
-#: builtin/branch.c:268
+#: builtin/branch.c:271
 #, c-format
 msgid "Error deleting remote-tracking branch '%s'"
 msgstr "无法删除远程跟踪分支 '%s'"
 
-#: builtin/branch.c:269
+#: builtin/branch.c:272
 #, c-format
 msgid "Error deleting branch '%s'"
 msgstr "无法删除分支 '%s'"
 
-#: builtin/branch.c:276
+#: builtin/branch.c:279
 #, c-format
 msgid "Deleted remote-tracking branch %s (was %s).\n"
 msgstr "已删除远程跟踪分支 %s(曾为 %s)。\n"
 
-#: builtin/branch.c:277
+#: builtin/branch.c:280
 #, c-format
 msgid "Deleted branch %s (was %s).\n"
 msgstr "已删除分支 %s(曾为 %s)。\n"
 
-#: builtin/branch.c:421 builtin/tag.c:60
+#: builtin/branch.c:429 builtin/tag.c:61
 msgid "unable to parse format string"
 msgstr "不能解析格式化字符串"
 
-#: builtin/branch.c:452
+#: builtin/branch.c:460
 msgid "could not resolve HEAD"
 msgstr "不能解析 HEAD 提交"
 
-#: builtin/branch.c:458
+#: builtin/branch.c:466
 #, c-format
 msgid "HEAD (%s) points outside of refs/heads/"
 msgstr "HEAD (%s) 指向 refs/heads/ 之外"
 
-#: builtin/branch.c:473
+#: builtin/branch.c:481
 #, c-format
 msgid "Branch %s is being rebased at %s"
 msgstr "分支 %s 正被变基到 %s"
 
-#: builtin/branch.c:477
+#: builtin/branch.c:485
 #, c-format
 msgid "Branch %s is being bisected at %s"
 msgstr "分支 %s 正被二分查找于 %s"
 
-#: builtin/branch.c:494
+#: builtin/branch.c:502
 msgid "cannot copy the current branch while not on any."
 msgstr "无法拷贝当前分支因为不处于任何分支上。"
 
-#: builtin/branch.c:496
+#: builtin/branch.c:504
 msgid "cannot rename the current branch while not on any."
 msgstr "无法重命名当前分支因为不处于任何分支上。"
 
-#: builtin/branch.c:507
+#: builtin/branch.c:515
 #, c-format
 msgid "Invalid branch name: '%s'"
 msgstr "无效的分支名:'%s'"
 
-#: builtin/branch.c:534
+#: builtin/branch.c:542
 msgid "Branch rename failed"
 msgstr "分支重命名失败"
 
-#: builtin/branch.c:536
+#: builtin/branch.c:544
 msgid "Branch copy failed"
 msgstr "分支拷贝失败"
 
-#: builtin/branch.c:540
+#: builtin/branch.c:548
 #, c-format
 msgid "Created a copy of a misnamed branch '%s'"
 msgstr "已为错误命名的分支 '%s' 创建了一个副本"
 
-#: builtin/branch.c:543
+#: builtin/branch.c:551
 #, c-format
 msgid "Renamed a misnamed branch '%s' away"
 msgstr "已将错误命名的分支 '%s' 重命名"
 
-#: builtin/branch.c:549
+#: builtin/branch.c:557
 #, c-format
 msgid "Branch renamed to %s, but HEAD is not updated!"
 msgstr "分支重命名为 %s,但 HEAD 没有更新!"
 
-#: builtin/branch.c:558
+#: builtin/branch.c:566
 msgid "Branch is renamed, but update of config-file failed"
 msgstr "分支被重命名,但更新配置文件失败"
 
-#: builtin/branch.c:560
+#: builtin/branch.c:568
 msgid "Branch is copied, but update of config-file failed"
 msgstr "分支已拷贝,但更新配置文件失败"
 
-#: builtin/branch.c:576
+#: builtin/branch.c:584
 #, c-format
 msgid ""
 "Please edit the description for the branch\n"
@@ -9441,213 +9626,217 @@ msgstr ""
 "  %s\n"
 "以 '%c' 开头的行将被过滤。\n"
 
-#: builtin/branch.c:610
+#: builtin/branch.c:618
 msgid "Generic options"
 msgstr "通用选项"
 
-#: builtin/branch.c:612
+#: builtin/branch.c:620
 msgid "show hash and subject, give twice for upstream branch"
 msgstr "显示哈希值和主题,若参数出现两次则显示上游分支"
 
-#: builtin/branch.c:613
+#: builtin/branch.c:621
 msgid "suppress informational messages"
 msgstr "不显示信息"
 
-#: builtin/branch.c:614
+#: builtin/branch.c:622
 msgid "set up tracking mode (see git-pull(1))"
 msgstr "设置跟踪模式(参见 git-pull(1))"
 
-#: builtin/branch.c:616
+#: builtin/branch.c:624
 msgid "do not use"
 msgstr "不要使用"
 
-#: builtin/branch.c:618 builtin/rebase.c:485
+#: builtin/branch.c:626 builtin/rebase.c:485
 msgid "upstream"
 msgstr "上游"
 
-#: builtin/branch.c:618
+#: builtin/branch.c:626
 msgid "change the upstream info"
 msgstr "改变上游信息"
 
-#: builtin/branch.c:619
+#: builtin/branch.c:627
 msgid "Unset the upstream info"
 msgstr "取消上游信息的设置"
 
-#: builtin/branch.c:620
+#: builtin/branch.c:628
 msgid "use colored output"
 msgstr "使用彩色输出"
 
-#: builtin/branch.c:621
+#: builtin/branch.c:629
 msgid "act on remote-tracking branches"
 msgstr "作用于远程跟踪分支"
 
-#: builtin/branch.c:623 builtin/branch.c:625
+#: builtin/branch.c:631 builtin/branch.c:633
 msgid "print only branches that contain the commit"
 msgstr "只打印包含该提交的分支"
 
-#: builtin/branch.c:624 builtin/branch.c:626
+#: builtin/branch.c:632 builtin/branch.c:634
 msgid "print only branches that don't contain the commit"
 msgstr "只打印不包含该提交的分支"
 
-#: builtin/branch.c:629
+#: builtin/branch.c:637
 msgid "Specific git-branch actions:"
 msgstr "具体的 git-branch 动作:"
 
-#: builtin/branch.c:630
+#: builtin/branch.c:638
 msgid "list both remote-tracking and local branches"
 msgstr "列出远程跟踪及本地分支"
 
-#: builtin/branch.c:632
+#: builtin/branch.c:640
 msgid "delete fully merged branch"
 msgstr "删除完全合并的分支"
 
-#: builtin/branch.c:633
+#: builtin/branch.c:641
 msgid "delete branch (even if not merged)"
 msgstr "删除分支(即使没有合并)"
 
-#: builtin/branch.c:634
+#: builtin/branch.c:642
 msgid "move/rename a branch and its reflog"
 msgstr "移动/重命名一个分支,以及它的引用日志"
 
-#: builtin/branch.c:635
+#: builtin/branch.c:643
 msgid "move/rename a branch, even if target exists"
 msgstr "移动/重命名一个分支,即使目标已存在"
 
-#: builtin/branch.c:636
+#: builtin/branch.c:644
 msgid "copy a branch and its reflog"
 msgstr "拷贝一个分支和它的引用日志"
 
-#: builtin/branch.c:637
+#: builtin/branch.c:645
 msgid "copy a branch, even if target exists"
 msgstr "拷贝一个分支,即使目标已存在"
 
-#: builtin/branch.c:638
+#: builtin/branch.c:646
 msgid "list branch names"
 msgstr "列出分支名"
 
-#: builtin/branch.c:639
+#: builtin/branch.c:647
 msgid "show current branch name"
 msgstr "显示当前分支名"
 
-#: builtin/branch.c:640
+#: builtin/branch.c:648
 msgid "create the branch's reflog"
 msgstr "创建分支的引用日志"
 
-#: builtin/branch.c:642
+#: builtin/branch.c:650
 msgid "edit the description for the branch"
 msgstr "标记分支的描述"
 
-#: builtin/branch.c:643
+#: builtin/branch.c:651
 msgid "force creation, move/rename, deletion"
 msgstr "强制创建、移动/重命名、删除"
 
-#: builtin/branch.c:644
+#: builtin/branch.c:652
 msgid "print only branches that are merged"
 msgstr "只打印已经合并的分支"
 
-#: builtin/branch.c:645
+#: builtin/branch.c:653
 msgid "print only branches that are not merged"
 msgstr "只打印尚未合并的分支"
 
-#: builtin/branch.c:646
+#: builtin/branch.c:654
 msgid "list branches in columns"
 msgstr "以列的方式显示分支"
 
-#: builtin/branch.c:649 builtin/for-each-ref.c:42 builtin/notes.c:415
+#: builtin/branch.c:657 builtin/for-each-ref.c:42 builtin/notes.c:415
 #: builtin/notes.c:418 builtin/notes.c:581 builtin/notes.c:584
-#: builtin/tag.c:427
+#: builtin/tag.c:433
 msgid "object"
 msgstr "对象"
 
-#: builtin/branch.c:650
+#: builtin/branch.c:658
 msgid "print only branches of the object"
 msgstr "只打印指向该对象的分支"
 
-#: builtin/branch.c:652 builtin/for-each-ref.c:48 builtin/tag.c:434
+#: builtin/branch.c:660 builtin/for-each-ref.c:48 builtin/tag.c:440
 msgid "sorting and filtering are case insensitive"
 msgstr "排序和过滤属于大小写不敏感"
 
-#: builtin/branch.c:653 builtin/for-each-ref.c:38 builtin/tag.c:432
-#: builtin/verify-tag.c:39
+#: builtin/branch.c:661 builtin/for-each-ref.c:38 builtin/tag.c:438
+#: builtin/verify-tag.c:38
 msgid "format to use for the output"
 msgstr "输出格式"
 
-#: builtin/branch.c:676 builtin/clone.c:748
+#: builtin/branch.c:684 builtin/clone.c:761
 msgid "HEAD not found below refs/heads!"
 msgstr "HEAD 没有位于 /refs/heads 之下!"
 
-#: builtin/branch.c:700
+#: builtin/branch.c:708
 msgid "--column and --verbose are incompatible"
 msgstr "--column 和 --verbose 不兼容"
 
-#: builtin/branch.c:715 builtin/branch.c:769 builtin/branch.c:778
+#: builtin/branch.c:723 builtin/branch.c:777 builtin/branch.c:786
 msgid "branch name required"
 msgstr "必须提供分支名"
 
-#: builtin/branch.c:745
+#: builtin/branch.c:753
 msgid "Cannot give description to detached HEAD"
 msgstr "不能向分离头指针提供描述"
 
-#: builtin/branch.c:750
+#: builtin/branch.c:758
 msgid "cannot edit description of more than one branch"
 msgstr "不能为一个以上的分支编辑描述"
 
-#: builtin/branch.c:757
+#: builtin/branch.c:765
 #, c-format
 msgid "No commit on branch '%s' yet."
 msgstr "分支 '%s' 尚无提交。"
 
-#: builtin/branch.c:760
+#: builtin/branch.c:768
 #, c-format
 msgid "No branch named '%s'."
 msgstr "没有分支 '%s'。"
 
-#: builtin/branch.c:775
+#: builtin/branch.c:783
 msgid "too many branches for a copy operation"
 msgstr "为拷贝操作提供了太多的分支名"
 
-#: builtin/branch.c:784
+#: builtin/branch.c:792
 msgid "too many arguments for a rename operation"
 msgstr "为重命名操作提供了太多的参数"
 
-#: builtin/branch.c:789
+#: builtin/branch.c:797
 msgid "too many arguments to set new upstream"
 msgstr "为设置新上游提供了太多的参数"
 
-#: builtin/branch.c:793
+#: builtin/branch.c:801
 #, c-format
 msgid ""
 "could not set upstream of HEAD to %s when it does not point to any branch."
 msgstr "无法设置 HEAD 的上游为 %s,因为 HEAD 没有指向任何分支。"
 
-#: builtin/branch.c:796 builtin/branch.c:819
+#: builtin/branch.c:804 builtin/branch.c:827
 #, c-format
 msgid "no such branch '%s'"
 msgstr "没有此分支 '%s'"
 
-#: builtin/branch.c:800
+#: builtin/branch.c:808
 #, c-format
 msgid "branch '%s' does not exist"
 msgstr "分支 '%s' 不存在"
 
-#: builtin/branch.c:813
+#: builtin/branch.c:821
 msgid "too many arguments to unset upstream"
 msgstr "为取消上游设置操作提供了太多的参数"
 
-#: builtin/branch.c:817
+#: builtin/branch.c:825
 msgid "could not unset upstream of HEAD when it does not point to any branch."
 msgstr "无法取消 HEAD 的上游设置因为它没有指向一个分支"
 
-#: builtin/branch.c:823
+#: builtin/branch.c:831
 #, c-format
 msgid "Branch '%s' has no upstream information"
 msgstr "分支 '%s' 没有上游信息"
 
-#: builtin/branch.c:833
-msgid "-a and -r options to 'git branch' do not make sense with a branch name"
-msgstr "'git branch' 的 -a 和 -r 选项带一个分支名参数没有意义"
+#: builtin/branch.c:841
+msgid ""
+"The -a, and -r, options to 'git branch' do not take a branch name.\n"
+"Did you mean to use: -a|-r --list <pattern>?"
+msgstr ""
+"'git branch' 的 -a 和 -r 选项不带一个分支名。\n"
+"您是否想要使用:-a|-r --list <模式>?"
 
-#: builtin/branch.c:836
+#: builtin/branch.c:845
 msgid ""
 "the '--set-upstream' option is no longer supported. Please use '--track' or "
 "'--set-upstream-to' instead."
@@ -9667,7 +9856,7 @@ msgstr "需要一个仓库来创建包。"
 msgid "Need a repository to unbundle."
 msgstr "需要一个仓库来解包。"
 
-#: builtin/cat-file.c:593
+#: builtin/cat-file.c:594
 msgid ""
 "git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -"
 "p | <type> | --textconv | --filters) [--path=<path>] <object>"
@@ -9675,7 +9864,7 @@ msgstr ""
 "git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -"
 "p | <类型> | --textconv | --filters) [--path=<路径>] <对象>"
 
-#: builtin/cat-file.c:594
+#: builtin/cat-file.c:595
 msgid ""
 "git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --"
 "filters]"
@@ -9683,71 +9872,71 @@ msgstr ""
 "git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --"
 "filters]"
 
-#: builtin/cat-file.c:615
+#: builtin/cat-file.c:616
 msgid "only one batch option may be specified"
 msgstr "只能指定一个批处理选项"
 
-#: builtin/cat-file.c:633
+#: builtin/cat-file.c:634
 msgid "<type> can be one of: blob, tree, commit, tag"
 msgstr "<类型> 可以是其中之一:blob、tree、commit、tag"
 
-#: builtin/cat-file.c:634
+#: builtin/cat-file.c:635
 msgid "show object type"
 msgstr "显示对象类型"
 
-#: builtin/cat-file.c:635
+#: builtin/cat-file.c:636
 msgid "show object size"
 msgstr "显示对象大小"
 
-#: builtin/cat-file.c:637
+#: builtin/cat-file.c:638
 msgid "exit with zero when there's no error"
 msgstr "当没有错误时退出并返回零"
 
-#: builtin/cat-file.c:638
+#: builtin/cat-file.c:639
 msgid "pretty-print object's content"
 msgstr "美观地打印对象的内容"
 
-#: builtin/cat-file.c:640
+#: builtin/cat-file.c:641
 msgid "for blob objects, run textconv on object's content"
 msgstr "对于数据对象,对其内容做文本转换"
 
-#: builtin/cat-file.c:642
+#: builtin/cat-file.c:643
 msgid "for blob objects, run filters on object's content"
 msgstr "对于数据对象,对其内容做过滤"
 
-#: builtin/cat-file.c:643 git-submodule.sh:936
+#: builtin/cat-file.c:644 git-submodule.sh:936
 msgid "blob"
 msgstr "数据对象"
 
-#: builtin/cat-file.c:644
+#: builtin/cat-file.c:645
 msgid "use a specific path for --textconv/--filters"
 msgstr "对于 --textconv/--filters 使用一个特定的路径"
 
-#: builtin/cat-file.c:646
+#: builtin/cat-file.c:647
 msgid "allow -s and -t to work with broken/corrupt objects"
 msgstr "允许 -s 和 -t 对损坏的对象生效"
 
-#: builtin/cat-file.c:647
+#: builtin/cat-file.c:648
 msgid "buffer --batch output"
 msgstr "缓冲 --batch 的输出"
 
-#: builtin/cat-file.c:649
+#: builtin/cat-file.c:650
 msgid "show info and content of objects fed from the standard input"
 msgstr "显示从标准输入提供的对象的信息和内容"
 
-#: builtin/cat-file.c:653
+#: builtin/cat-file.c:654
 msgid "show info about objects fed from the standard input"
 msgstr "显示从标准输入提供的对象的信息"
 
-#: builtin/cat-file.c:657
+#: builtin/cat-file.c:658
 msgid "follow in-tree symlinks (used with --batch or --batch-check)"
 msgstr "跟随树内符号链接(和 --batch 或 --batch-check 共用)"
 
-#: builtin/cat-file.c:659
+#: builtin/cat-file.c:660
 msgid "show all objects with --batch or --batch-check"
 msgstr "使用 --batch 或 --batch-check 参数显示所有对象"
 
-#: builtin/cat-file.c:661
+#: builtin/cat-file.c:662
 msgid "do not order --batch-all-objects output"
 msgstr "不要对 --batch-all-objects 的输出排序"
 
@@ -9775,8 +9964,8 @@ msgstr "从标准输入读出文件名"
 msgid "terminate input and output records by a NUL character"
 msgstr "输入和输出的记录使用 NUL 字符终结"
 
-#: builtin/check-ignore.c:21 builtin/checkout.c:1355 builtin/gc.c:538
-#: builtin/worktree.c:499
+#: builtin/check-ignore.c:21 builtin/checkout.c:1433 builtin/gc.c:538
+#: builtin/worktree.c:507
 msgid "suppress progress reporting"
 msgstr "不显示进度报告"
 
@@ -9866,9 +10055,9 @@ msgid "write the content to temporary files"
 msgstr "将内容写入临时文件"
 
 #: builtin/checkout-index.c:178 builtin/column.c:31
-#: builtin/submodule--helper.c:1372 builtin/submodule--helper.c:1375
-#: builtin/submodule--helper.c:1383 builtin/submodule--helper.c:1856
-#: builtin/worktree.c:672
+#: builtin/submodule--helper.c:1373 builtin/submodule--helper.c:1376
+#: builtin/submodule--helper.c:1384 builtin/submodule--helper.c:1857
+#: builtin/worktree.c:680
 msgid "string"
 msgstr "字符串"
 
@@ -9880,91 +10069,114 @@ msgstr "在创建文件时,在前面加上 <字符串>"
 msgid "copy out the files from named stage"
 msgstr "从指定暂存区中拷出文件"
 
-#: builtin/checkout.c:32
+#: builtin/checkout.c:31
 msgid "git checkout [<options>] <branch>"
 msgstr "git checkout [<选项>] <分支>"
 
-#: builtin/checkout.c:33
+#: builtin/checkout.c:32
 msgid "git checkout [<options>] [<branch>] -- <file>..."
 msgstr "git checkout [<选项>] [<分支>] -- <文件>..."
 
-#: builtin/checkout.c:151 builtin/checkout.c:190
+#: builtin/checkout.c:37
+msgid "git switch [<options>] [<branch>]"
+msgstr "git switch [<选项>] [<分支>]"
+
+#: builtin/checkout.c:42
+msgid "git restore [<options>] [--source=<branch>] <file>..."
+msgstr "git restore [<选项>] [--source=<分支>] <文件>..."
+
+#: builtin/checkout.c:172 builtin/checkout.c:211
 #, c-format
 msgid "path '%s' does not have our version"
 msgstr "路径 '%s' 没有我们的版本"
 
-#: builtin/checkout.c:153 builtin/checkout.c:192
+#: builtin/checkout.c:174 builtin/checkout.c:213
 #, c-format
 msgid "path '%s' does not have their version"
 msgstr "路径 '%s' 没有他们的版本"
 
-#: builtin/checkout.c:169
+#: builtin/checkout.c:190
 #, c-format
 msgid "path '%s' does not have all necessary versions"
 msgstr "路径 '%s' 没有全部必需的版本"
 
-#: builtin/checkout.c:219
+#: builtin/checkout.c:240
 #, c-format
 msgid "path '%s' does not have necessary versions"
 msgstr "路径 '%s' 没有必需的版本"
 
-#: builtin/checkout.c:237
+#: builtin/checkout.c:258
 #, c-format
 msgid "path '%s': cannot merge"
 msgstr "path '%s':无法合并"
 
-#: builtin/checkout.c:253
+#: builtin/checkout.c:274
 #, c-format
 msgid "Unable to add merge result for '%s'"
 msgstr "无法为 '%s' 添加合并结果"
 
-#: builtin/checkout.c:331 builtin/checkout.c:334 builtin/checkout.c:337
-#: builtin/checkout.c:340
+#: builtin/checkout.c:374
+#, c-format
+msgid "Recreated %d merge conflict"
+msgid_plural "Recreated %d merge conflicts"
+msgstr[0] "重新创建了 %d 个合并冲突"
+msgstr[1] "重新创建了 %d 个合并冲突"
+
+#: builtin/checkout.c:379
+#, c-format
+msgid "Updated %d path from %s"
+msgid_plural "Updated %d paths from %s"
+msgstr[0] "从 %2$s 更新了 %1$d 个路径"
+msgstr[1] "从 %2$s 更新了 %1$d 个路径"
+
+#: builtin/checkout.c:386
+#, c-format
+msgid "Updated %d path from the index"
+msgid_plural "Updated %d paths from the index"
+msgstr[0] "从索引区更新了 %d 个路径"
+msgstr[1] "从索引区更新了 %d 个路径"
+
+#: builtin/checkout.c:409 builtin/checkout.c:412 builtin/checkout.c:415
+#: builtin/checkout.c:419
 #, c-format
 msgid "'%s' cannot be used with updating paths"
 msgstr "'%s' 不能在更新路径时使用"
 
-#: builtin/checkout.c:343 builtin/checkout.c:346
+#: builtin/checkout.c:422 builtin/checkout.c:425
 #, c-format
 msgid "'%s' cannot be used with %s"
 msgstr "'%s' 不能和 %s 同时使用"
 
-#: builtin/checkout.c:349
+#: builtin/checkout.c:429
 #, c-format
 msgid "Cannot update paths and switch to branch '%s' at the same time."
 msgstr "不能同时更新路径并切换到分支'%s'。"
 
-#: builtin/checkout.c:396 builtin/checkout.c:403
+#: builtin/checkout.c:433
 #, c-format
-msgid "path '%s' is unmerged"
-msgstr "路径 '%s' 未合并"
+msgid "neither '%s' or '%s' is specified"
+msgstr "'%s' 或 '%s' 都没有指定"
 
-#: builtin/checkout.c:442
+#: builtin/checkout.c:437
 #, c-format
-msgid "Recreated %d merge conflict"
-msgid_plural "Recreated %d merge conflicts"
-msgstr[0] "重新创建了 %d 个合并冲突"
-msgstr[1] "重新创建了 %d 个合并冲突"
+msgid "'%s' must be used when '%s' is not specified"
+msgstr "未指定 '%2$s' 时,必须使用 '%1$s'"
 
-#: builtin/checkout.c:447
+#: builtin/checkout.c:442 builtin/checkout.c:447
 #, c-format
-msgid "Updated %d path from %s"
-msgid_plural "Updated %d paths from %s"
-msgstr[0] "从 %2$s 更新了 %1$d 个路径"
-msgstr[1] "从 %2$s 更新了 %1$d 个路径"
+msgid "'%s' or '%s' cannot be used with %s"
+msgstr "'%s' 或 '%s' 不能和 %s 一起使用"
 
-#: builtin/checkout.c:454
+#: builtin/checkout.c:506 builtin/checkout.c:513
 #, c-format
-msgid "Updated %d path from the index"
-msgid_plural "Updated %d paths from the index"
-msgstr[0] "从索引区更新了 %d 个路径"
-msgstr[1] "从索引区更新了 %d 个路径"
+msgid "path '%s' is unmerged"
+msgstr "路径 '%s' 未合并"
 
-#: builtin/checkout.c:695
+#: builtin/checkout.c:679
 msgid "you need to resolve your current index first"
 msgstr "您需要先解决当前索引的冲突"
 
-#: builtin/checkout.c:744
+#: builtin/checkout.c:729
 #, c-format
 msgid ""
 "cannot continue with staged changes in the following files:\n"
@@ -9973,56 +10185,56 @@ msgstr ""
 "不能继续,下列文件有暂存的修改:\n"
 "%s"
 
-#: builtin/checkout.c:751
+#: builtin/checkout.c:736
 #, c-format
 msgid "staged changes in the following files may be lost: %s"
 msgstr "下列文件暂存的修改可能会丢失:%s"
 
-#: builtin/checkout.c:848
+#: builtin/checkout.c:833
 #, c-format
 msgid "Can not do reflog for '%s': %s\n"
 msgstr "不能对 '%s' 执行 reflog 操作:%s\n"
 
-#: builtin/checkout.c:890
+#: builtin/checkout.c:875
 msgid "HEAD is now at"
 msgstr "HEAD 目前位于"
 
-#: builtin/checkout.c:894 builtin/clone.c:701
+#: builtin/checkout.c:879 builtin/clone.c:714
 msgid "unable to update HEAD"
 msgstr "不能更新 HEAD"
 
-#: builtin/checkout.c:898
+#: builtin/checkout.c:883
 #, c-format
 msgid "Reset branch '%s'\n"
 msgstr "重置分支 '%s'\n"
 
-#: builtin/checkout.c:901
+#: builtin/checkout.c:886
 #, c-format
 msgid "Already on '%s'\n"
 msgstr "已经位于 '%s'\n"
 
-#: builtin/checkout.c:905
+#: builtin/checkout.c:890
 #, c-format
 msgid "Switched to and reset branch '%s'\n"
 msgstr "切换并重置分支 '%s'\n"
 
-#: builtin/checkout.c:907 builtin/checkout.c:1283
+#: builtin/checkout.c:892 builtin/checkout.c:1289
 #, c-format
 msgid "Switched to a new branch '%s'\n"
 msgstr "切换到一个新分支 '%s'\n"
 
-#: builtin/checkout.c:909
+#: builtin/checkout.c:894
 #, c-format
 msgid "Switched to branch '%s'\n"
 msgstr "切换到分支 '%s'\n"
 
 #  译者:注意保持前导空格
-#: builtin/checkout.c:960
+#: builtin/checkout.c:945
 #, c-format
 msgid " ... and %d more.\n"
 msgstr " ... 及其它 %d 个。\n"
 
-#: builtin/checkout.c:966
+#: builtin/checkout.c:951
 #, c-format
 msgid ""
 "Warning: you are leaving %d commit behind, not connected to\n"
@@ -10043,7 +10255,7 @@ msgstr[1] ""
 "\n"
 "%s\n"
 
-#: builtin/checkout.c:985
+#: builtin/checkout.c:970
 #, c-format
 msgid ""
 "If you want to keep it by creating a new branch, this may be a good time\n"
@@ -10070,24 +10282,28 @@ msgstr[1] ""
 " git branch <新分支名> %s\n"
 "\n"
 
-#: builtin/checkout.c:1017
+#: builtin/checkout.c:1005
 msgid "internal error in revision walk"
 msgstr "在版本遍历时遇到内部错误"
 
-#: builtin/checkout.c:1021
+#: builtin/checkout.c:1009
 msgid "Previous HEAD position was"
 msgstr "之前的 HEAD 位置是"
 
-#: builtin/checkout.c:1052 builtin/checkout.c:1278
+#: builtin/checkout.c:1049 builtin/checkout.c:1284
 msgid "You are on a branch yet to be born"
 msgstr "您位于一个尚未初始化的分支"
 
-#: builtin/checkout.c:1173
+#: builtin/checkout.c:1176
+msgid "only one reference expected"
+msgstr "预期只有一个引用"
+
+#: builtin/checkout.c:1193
 #, c-format
 msgid "only one reference expected, %d given."
 msgstr "应只有一个引用,却给出了 %d 个"
 
-#: builtin/checkout.c:1209
+#: builtin/checkout.c:1230
 #, c-format
 msgid ""
 "'%s' could be both a local file and a tracking branch.\n"
@@ -10096,158 +10312,214 @@ msgstr ""
 "'%s' 既可以是一个本地文件,也可以是一个跟踪分支。\n"
 "请使用 --(和可选的 --no-guess)来消除歧义"
 
-#: builtin/checkout.c:1222 builtin/worktree.c:290 builtin/worktree.c:448
+#: builtin/checkout.c:1243 builtin/worktree.c:291 builtin/worktree.c:456
 #, c-format
 msgid "invalid reference: %s"
 msgstr "无效引用:%s"
 
-#: builtin/checkout.c:1251
+#: builtin/checkout.c:1256 builtin/checkout.c:1618
 #, c-format
 msgid "reference is not a tree: %s"
 msgstr "引用不是一个树:%s"
 
-#: builtin/checkout.c:1292
+#: builtin/checkout.c:1303
+#, c-format
+msgid "a branch is expected, got tag '%s'"
+msgstr "期望一个分支,得到标签 '%s'"
+
+#: builtin/checkout.c:1305
+#, c-format
+msgid "a branch is expected, got remote branch '%s'"
+msgstr "期望一个分支,得到远程分支 '%s'"
+
+#: builtin/checkout.c:1306 builtin/checkout.c:1314
+#, c-format
+msgid "a branch is expected, got '%s'"
+msgstr "期望一个分支,得到 '%s'"
+
+#: builtin/checkout.c:1309
+#, c-format
+msgid "a branch is expected, got commit '%s'"
+msgstr "期望一个分支,得到提交 '%s'"
+
+#: builtin/checkout.c:1325
+msgid ""
+"cannot switch branch while merging\n"
+"Consider \"git merge --quit\" or \"git worktree add\"."
+msgstr ""
+"不能在合并时切换分支\n"
+"考虑使用 \"git merge --quit\" 或 \"git worktree add\"。"
+
+#: builtin/checkout.c:1329
+msgid ""
+"cannot switch branch in the middle of an am session\n"
+"Consider \"git am --quit\" or \"git worktree add\"."
+msgstr ""
+"不能在一个 am 会话期间切换分支\n"
+"考虑使用 \"git am --quit\" 或 \"git worktree add\"。"
+
+#: builtin/checkout.c:1333
+msgid ""
+"cannot switch branch while rebasing\n"
+"Consider \"git rebase --quit\" or \"git worktree add\"."
+msgstr ""
+"不能在变基时切换分支\n"
+"考虑使用 \"git rebase --quit\" 或 \"git worktree add\"。"
+
+#: builtin/checkout.c:1337
+msgid ""
+"cannot switch branch while cherry-picking\n"
+"Consider \"git cherry-pick --quit\" or \"git worktree add\"."
+msgstr ""
+"不能在拣选时切换分支\n"
+"考虑使用 \"git cherry-pick --quit\" 或 \"git worktree add\"。"
+
+#: builtin/checkout.c:1341
+msgid ""
+"cannot switch branch while reverting\n"
+"Consider \"git revert --quit\" or \"git worktree add\"."
+msgstr ""
+"不能在还原时切换分支\n"
+"考虑使用 \"git revert --quit\" 或 \"git worktree add\"。"
+
+#: builtin/checkout.c:1345
+msgid "you are switching branch while bisecting"
+msgstr "您在执行二分查找时切换分支"
+
+#: builtin/checkout.c:1352
 msgid "paths cannot be used with switching branches"
 msgstr "路径不能和切换分支同时使用"
 
-#: builtin/checkout.c:1295 builtin/checkout.c:1299 builtin/checkout.c:1303
+#: builtin/checkout.c:1355 builtin/checkout.c:1359 builtin/checkout.c:1363
 #, c-format
 msgid "'%s' cannot be used with switching branches"
 msgstr "'%s' 不能和切换分支同时使用"
 
-#: builtin/checkout.c:1307 builtin/checkout.c:1310 builtin/checkout.c:1315
-#: builtin/checkout.c:1318
+#: builtin/checkout.c:1367 builtin/checkout.c:1370 builtin/checkout.c:1373
+#: builtin/checkout.c:1378 builtin/checkout.c:1383
 #, c-format
 msgid "'%s' cannot be used with '%s'"
 msgstr "'%s' 不能和 '%s' 同时使用"
 
-#: builtin/checkout.c:1323
+#: builtin/checkout.c:1380
+#, c-format
+msgid "'%s' cannot take <start-point>"
+msgstr "'%s' 不带 <起始点>"
+
+#: builtin/checkout.c:1388
 #, c-format
 msgid "Cannot switch branch to a non-commit '%s'"
 msgstr "不能切换分支到一个非提交 '%s'"
 
-#: builtin/checkout.c:1356 builtin/checkout.c:1358 builtin/clone.c:118
-#: builtin/remote.c:169 builtin/remote.c:171 builtin/worktree.c:492
-#: builtin/worktree.c:494
-msgid "branch"
-msgstr "分支"
+#: builtin/checkout.c:1395
+msgid "missing branch or commit argument"
+msgstr "缺少分支或提交参数"
 
-#: builtin/checkout.c:1357
-msgid "create and checkout a new branch"
-msgstr "创建并检出一个新的分支"
+#: builtin/checkout.c:1437 builtin/clone.c:91 builtin/fetch.c:151
+#: builtin/merge.c:285 builtin/pull.c:137 builtin/push.c:575
+#: builtin/send-pack.c:174
+msgid "force progress reporting"
+msgstr "强制显示进度报告"
 
-#: builtin/checkout.c:1359
-msgid "create/reset and checkout a branch"
-msgstr "å\88\9b建/é\87\8d置并æ£\80å\87ºä¸\80个å\88\86æ\94¯"
+#: builtin/checkout.c:1438
+msgid "perform a 3-way merge with the new branch"
+msgstr "å\92\8cæ\96°ç\9a\84å\88\86æ\94¯æ\89§è¡\8cä¸\89æ\96¹å\90\88并"
 
-#: builtin/checkout.c:1360
-msgid "create reflog for new branch"
-msgstr "为新的分支创建引用日志"
+#: builtin/checkout.c:1439 builtin/log.c:1617 parse-options.h:318
+msgid "style"
+msgstr "风格"
 
-#: builtin/checkout.c:1361 builtin/worktree.c:496
+#: builtin/checkout.c:1440
+msgid "conflict style (merge or diff3)"
+msgstr "冲突输出风格(merge 或 diff3)"
+
+#: builtin/checkout.c:1452 builtin/worktree.c:504
 msgid "detach HEAD at named commit"
 msgstr "HEAD 从指定的提交分离"
 
-#: builtin/checkout.c:1362
+#: builtin/checkout.c:1453
 msgid "set upstream info for new branch"
 msgstr "为新的分支设置上游信息"
 
-#: builtin/checkout.c:1364
+#: builtin/checkout.c:1455
+msgid "force checkout (throw away local modifications)"
+msgstr "强制检出(丢弃本地修改)"
+
+#: builtin/checkout.c:1457
 msgid "new-branch"
 msgstr "新分支"
 
-#: builtin/checkout.c:1364
+#: builtin/checkout.c:1457
 msgid "new unparented branch"
 msgstr "新的没有父提交的分支"
 
-#: builtin/checkout.c:1366
+#: builtin/checkout.c:1459 builtin/merge.c:288
+msgid "update ignored files (default)"
+msgstr "更新忽略的文件(默认)"
+
+#: builtin/checkout.c:1462
+msgid "do not check if another worktree is holding the given ref"
+msgstr "不检查指定的引用是否被其他工作区所占用"
+
+#: builtin/checkout.c:1475
 msgid "checkout our version for unmerged files"
 msgstr "对尚未合并的文件检出我们的版本"
 
-#: builtin/checkout.c:1369
+#: builtin/checkout.c:1478
 msgid "checkout their version for unmerged files"
 msgstr "对尚未合并的文件检出他们的版本"
 
-#: builtin/checkout.c:1371
-msgid "force checkout (throw away local modifications)"
-msgstr "强制检出(丢弃本地修改)"
-
-#: builtin/checkout.c:1373
-msgid "perform a 3-way merge with the new branch"
-msgstr "和新的分支执行三方合并"
-
-#: builtin/checkout.c:1375 builtin/merge.c:284
-msgid "update ignored files (default)"
-msgstr "更新忽略的文件(默认)"
-
-#: builtin/checkout.c:1377 builtin/log.c:1594 parse-options.h:317
-msgid "style"
-msgstr "风格"
-
-#: builtin/checkout.c:1378
-msgid "conflict style (merge or diff3)"
-msgstr "冲突输出风格(merge 或 diff3)"
-
-#: builtin/checkout.c:1381
+#: builtin/checkout.c:1482
 msgid "do not limit pathspecs to sparse entries only"
 msgstr "对路径不做稀疏检出的限制"
 
-#: builtin/checkout.c:1383
-msgid "do not second guess 'git checkout <no-such-branch>'"
-msgstr "不要二次猜测 'git checkout <无此分支>'"
-
-#: builtin/checkout.c:1385
-msgid "do not check if another worktree is holding the given ref"
-msgstr "不检查指定的引用是否被其他工作区所占用"
-
-#: builtin/checkout.c:1389 builtin/clone.c:88 builtin/fetch.c:141
-#: builtin/merge.c:281 builtin/pull.c:136 builtin/push.c:575
-#: builtin/send-pack.c:174
-msgid "force progress reporting"
-msgstr "强制显示进度报告"
-
-#: builtin/checkout.c:1390
-msgid "use overlay mode (default)"
-msgstr "使用叠加模式(默认)"
-
-#: builtin/checkout.c:1422
+#: builtin/checkout.c:1533
 msgid "-b, -B and --orphan are mutually exclusive"
 msgstr "-b、-B 和 --orphan 是互斥的"
 
-#: builtin/checkout.c:1425
+#: builtin/checkout.c:1536
 msgid "-p and --overlay are mutually exclusive"
 msgstr "-p 和 --overlay 互斥"
 
-#: builtin/checkout.c:1442
+#: builtin/checkout.c:1573
 msgid "--track needs a branch name"
 msgstr "--track 需要一个分支名"
 
-#: builtin/checkout.c:1447
+#: builtin/checkout.c:1578
 msgid "missing branch name; try -b"
 msgstr "缺少分支名,尝试 -b"
 
-#: builtin/checkout.c:1484
+#: builtin/checkout.c:1611
+#, c-format
+msgid "could not resolve %s"
+msgstr "无法解析 %s"
+
+#: builtin/checkout.c:1623
+msgid "you must specify path(s) to restore"
+msgstr "您必须指定一个要恢复的路径"
+
+#: builtin/checkout.c:1631
 msgid "invalid path specification"
 msgstr "无效的路径规格"
 
-#: builtin/checkout.c:1491
+#: builtin/checkout.c:1638
 #, c-format
 msgid "'%s' is not a commit and a branch '%s' cannot be created from it"
 msgstr "'%s' 不是一个提交,不能基于它创建分支 '%s'"
 
-#: builtin/checkout.c:1495
+#: builtin/checkout.c:1642
 #, c-format
 msgid "git checkout: --detach does not take a path argument '%s'"
 msgstr "git checkout:--detach 不能接收路径参数 '%s'"
 
-#: builtin/checkout.c:1499
+#: builtin/checkout.c:1646
 msgid ""
 "git checkout: --ours/--theirs, --force and --merge are incompatible when\n"
 "checking out of the index."
 msgstr ""
 "git checkout:在从索引检出时,--ours/--theirs、--force 和 --merge 不兼容。"
 
-#: builtin/checkout.c:1519
+#: builtin/checkout.c:1666
 #, c-format
 msgid ""
 "'%s' matched more than one remote tracking branch.\n"
@@ -10275,6 +10547,68 @@ msgstr ""
 "如果您总是喜欢使用模糊的简短分支名 <name>,而不喜欢如 'origin' 的远程\n"
 "仓库名,可以在配置中设置 checkout.defaultRemote=origin。"
 
+#: builtin/checkout.c:1691 builtin/checkout.c:1693 builtin/checkout.c:1733
+#: builtin/checkout.c:1735 builtin/clone.c:121 builtin/remote.c:169
+#: builtin/remote.c:171 builtin/worktree.c:500 builtin/worktree.c:502
+msgid "branch"
+msgstr "分支"
+
+#: builtin/checkout.c:1692
+msgid "create and checkout a new branch"
+msgstr "创建并检出一个新的分支"
+
+#: builtin/checkout.c:1694
+msgid "create/reset and checkout a branch"
+msgstr "创建/重置并检出一个分支"
+
+#: builtin/checkout.c:1695
+msgid "create reflog for new branch"
+msgstr "为新的分支创建引用日志"
+
+#: builtin/checkout.c:1697
+msgid "second guess 'git checkout <no-such-branch>' (default)"
+msgstr "二次猜测 'git checkout <无此分支>'(默认)"
+
+#: builtin/checkout.c:1698
+msgid "use overlay mode (default)"
+msgstr "使用叠加模式(默认)"
+
+#: builtin/checkout.c:1734
+msgid "create and switch to a new branch"
+msgstr "创建并切换一个新分支"
+
+#: builtin/checkout.c:1736
+msgid "create/reset and switch to a branch"
+msgstr "创建/重置并切换一个分支"
+
+#: builtin/checkout.c:1738
+msgid "second guess 'git switch <no-such-branch>'"
+msgstr "二次猜测 'git switch <无此分支>'"
+
+#: builtin/checkout.c:1740
+msgid "throw away local modifications"
+msgstr "丢弃本地修改"
+
+#: builtin/checkout.c:1772
+msgid "which tree-ish to checkout from"
+msgstr "要检出哪一个树"
+
+#: builtin/checkout.c:1774
+msgid "restore the index"
+msgstr "恢复索引"
+
+#: builtin/checkout.c:1776
+msgid "restore the working tree (default)"
+msgstr "恢复工作区(默认)"
+
+#: builtin/checkout.c:1778
+msgid "ignore unmerged entries"
+msgstr "忽略未合并条目"
+
+#: builtin/checkout.c:1779
+msgid "use overlay mode"
+msgstr "使用叠加模式"
+
 #: builtin/clean.c:28
 msgid ""
 "git clean [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x | -X] [--] <paths>..."
@@ -10306,7 +10640,12 @@ msgstr "将忽略仓库 %s\n"
 msgid "failed to remove %s"
 msgstr "删除 %s 失败"
 
-#: builtin/clean.c:299 git-add--interactive.perl:579
+#: builtin/clean.c:37
+#, c-format
+msgid "could not lstat %s\n"
+msgstr "不能对 %s 调用 lstat\n"
+
+#: builtin/clean.c:300 git-add--interactive.perl:593
 #, c-format
 msgid ""
 "Prompt help:\n"
@@ -10319,7 +10658,7 @@ msgstr ""
 "foo        - 通过唯一前缀选择一个选项\n"
 "           - (空)什么也不选择\n"
 
-#: builtin/clean.c:303 git-add--interactive.perl:588
+#: builtin/clean.c:304 git-add--interactive.perl:602
 #, c-format
 msgid ""
 "Prompt help:\n"
@@ -10340,38 +10679,38 @@ msgstr ""
 "*          - 选择所有选项\n"
 "           - (空)结束选择\n"
 
-#: builtin/clean.c:519 git-add--interactive.perl:554
-#: git-add--interactive.perl:559
+#: builtin/clean.c:520 git-add--interactive.perl:568
+#: git-add--interactive.perl:573
 #, c-format, perl-format
 msgid "Huh (%s)?\n"
 msgstr "嗯(%s)?\n"
 
-#: builtin/clean.c:661
+#: builtin/clean.c:662
 #, c-format
 msgid "Input ignore patterns>> "
 msgstr "输入模版以排除条目>> "
 
-#: builtin/clean.c:698
+#: builtin/clean.c:699
 #, c-format
 msgid "WARNING: Cannot find items matched by: %s"
 msgstr "警告:无法找到和 %s 匹配的条目"
 
-#: builtin/clean.c:719
+#: builtin/clean.c:720
 msgid "Select items to delete"
 msgstr "选择要删除的条目"
 
 #. TRANSLATORS: Make sure to keep [y/N] as is
-#: builtin/clean.c:760
+#: builtin/clean.c:761
 #, c-format
 msgid "Remove %s [y/N]? "
 msgstr "删除 %s [y/N]?"
 
-#: builtin/clean.c:785 git-add--interactive.perl:1717
+#: builtin/clean.c:786 git-add--interactive.perl:1763
 #, c-format
 msgid "Bye.\n"
 msgstr "再见。\n"
 
-#: builtin/clean.c:793
+#: builtin/clean.c:794
 msgid ""
 "clean               - start cleaning\n"
 "filter by pattern   - exclude items from deletion\n"
@@ -10389,227 +10728,231 @@ msgstr ""
 "help                - 显示本帮助\n"
 "?                   - 显示如何在提示符下选择的帮助"
 
-#: builtin/clean.c:820 git-add--interactive.perl:1793
+#: builtin/clean.c:821 git-add--interactive.perl:1849
 msgid "*** Commands ***"
 msgstr "*** 命令 ***"
 
-#: builtin/clean.c:821 git-add--interactive.perl:1790
+#: builtin/clean.c:822 git-add--interactive.perl:1846
 msgid "What now"
 msgstr "请选择"
 
-#: builtin/clean.c:829
+#: builtin/clean.c:830
 msgid "Would remove the following item:"
 msgid_plural "Would remove the following items:"
 msgstr[0] "将删除如下条目:"
 msgstr[1] "将删除如下条目:"
 
-#: builtin/clean.c:845
+#: builtin/clean.c:846
 msgid "No more files to clean, exiting."
 msgstr "没有要清理的文件,退出。"
 
-#: builtin/clean.c:907
+#: builtin/clean.c:908
 msgid "do not print names of files removed"
 msgstr "不打印删除文件的名称"
 
-#: builtin/clean.c:909
+#: builtin/clean.c:910
 msgid "force"
 msgstr "强制"
 
-#: builtin/clean.c:910
+#: builtin/clean.c:911
 msgid "interactive cleaning"
 msgstr "交互式清除"
 
-#: builtin/clean.c:912
+#: builtin/clean.c:913
 msgid "remove whole directories"
 msgstr "删除整个目录"
 
-#: builtin/clean.c:913 builtin/describe.c:546 builtin/describe.c:548
-#: builtin/grep.c:897 builtin/log.c:171 builtin/log.c:173
-#: builtin/ls-files.c:557 builtin/name-rev.c:417 builtin/name-rev.c:419
+#: builtin/clean.c:914 builtin/describe.c:546 builtin/describe.c:548
+#: builtin/grep.c:899 builtin/log.c:176 builtin/log.c:178
+#: builtin/ls-files.c:557 builtin/name-rev.c:413 builtin/name-rev.c:415
 #: builtin/show-ref.c:179
 msgid "pattern"
 msgstr "模式"
 
-#: builtin/clean.c:914
+#: builtin/clean.c:915
 msgid "add <pattern> to ignore rules"
 msgstr "添加 <模式> 到忽略规则"
 
-#: builtin/clean.c:915
+#: builtin/clean.c:916
 msgid "remove ignored files, too"
 msgstr "也删除忽略的文件"
 
-#: builtin/clean.c:917
+#: builtin/clean.c:918
 msgid "remove only ignored files"
 msgstr "只删除忽略的文件"
 
-#: builtin/clean.c:935
+#: builtin/clean.c:936
 msgid "-x and -X cannot be used together"
 msgstr "-x 和 -X 不能同时使用"
 
-#: builtin/clean.c:939
+#: builtin/clean.c:940
 msgid ""
 "clean.requireForce set to true and neither -i, -n, nor -f given; refusing to "
 "clean"
 msgstr ""
 "clean.requireForce 设置为 true 且未提供 -i、-n 或 -f 选项,拒绝执行清理动作"
 
-#: builtin/clean.c:942
+#: builtin/clean.c:943
 msgid ""
 "clean.requireForce defaults to true and neither -i, -n, nor -f given; "
 "refusing to clean"
 msgstr ""
 "clean.requireForce 默认为 true 且未提供 -i、-n 或 -f 选项,拒绝执行清理动作"
 
-#: builtin/clone.c:44
+#: builtin/clone.c:46
 msgid "git clone [<options>] [--] <repo> [<dir>]"
 msgstr "git clone [<选项>] [--] <仓库> [<路径>]"
 
-#: builtin/clone.c:90
+#: builtin/clone.c:93
 msgid "don't create a checkout"
 msgstr "不创建一个检出"
 
-#: builtin/clone.c:91 builtin/clone.c:93 builtin/init-db.c:489
+#: builtin/clone.c:94 builtin/clone.c:96 builtin/init-db.c:489
 msgid "create a bare repository"
 msgstr "创建一个纯仓库"
 
-#: builtin/clone.c:95
+#: builtin/clone.c:98
 msgid "create a mirror repository (implies bare)"
 msgstr "创建一个镜像仓库(也是纯仓库)"
 
-#: builtin/clone.c:97
+#: builtin/clone.c:100
 msgid "to clone from a local repository"
 msgstr "从本地仓库克隆"
 
-#: builtin/clone.c:99
+#: builtin/clone.c:102
 msgid "don't use local hardlinks, always copy"
 msgstr "不使用本地硬链接,始终复制"
 
-#: builtin/clone.c:101
+#: builtin/clone.c:104
 msgid "setup as shared repository"
 msgstr "设置为共享仓库"
 
-#: builtin/clone.c:104
+#: builtin/clone.c:107
 msgid "pathspec"
 msgstr "路径规格"
 
-#: builtin/clone.c:104
+#: builtin/clone.c:107
 msgid "initialize submodules in the clone"
 msgstr "在克隆时初始化子模组"
 
-#: builtin/clone.c:107
+#: builtin/clone.c:110
 msgid "number of submodules cloned in parallel"
 msgstr "并发克隆的子模组的数量"
 
-#: builtin/clone.c:108 builtin/init-db.c:486
+#: builtin/clone.c:111 builtin/init-db.c:486
 msgid "template-directory"
 msgstr "模板目录"
 
-#: builtin/clone.c:109 builtin/init-db.c:487
+#: builtin/clone.c:112 builtin/init-db.c:487
 msgid "directory from which templates will be used"
 msgstr "模板目录将被使用"
 
-#: builtin/clone.c:111 builtin/clone.c:113 builtin/submodule--helper.c:1379
-#: builtin/submodule--helper.c:1859
+#: builtin/clone.c:114 builtin/clone.c:116 builtin/submodule--helper.c:1380
+#: builtin/submodule--helper.c:1860
 msgid "reference repository"
 msgstr "参考仓库"
 
-#: builtin/clone.c:115 builtin/submodule--helper.c:1381
-#: builtin/submodule--helper.c:1861
+#: builtin/clone.c:118 builtin/submodule--helper.c:1382
+#: builtin/submodule--helper.c:1862
 msgid "use --reference only while cloning"
 msgstr "仅在克隆时参考 --reference 指向的本地仓库"
 
-#: builtin/clone.c:116 builtin/column.c:27 builtin/merge-file.c:46
-#: builtin/pack-objects.c:3306 builtin/repack.c:329
+#: builtin/clone.c:119 builtin/column.c:27 builtin/merge-file.c:46
+#: builtin/pack-objects.c:3314 builtin/repack.c:319
 msgid "name"
 msgstr "名称"
 
-#: builtin/clone.c:117
+#: builtin/clone.c:120
 msgid "use <name> instead of 'origin' to track upstream"
 msgstr "使用 <名称> 而不是 'origin' 去跟踪上游"
 
-#: builtin/clone.c:119
+#: builtin/clone.c:122
 msgid "checkout <branch> instead of the remote's HEAD"
 msgstr "检出 <分支> 而不是远程 HEAD"
 
-#: builtin/clone.c:121
+#: builtin/clone.c:124
 msgid "path to git-upload-pack on the remote"
 msgstr "远程 git-upload-pack 路径"
 
-#: builtin/clone.c:122 builtin/fetch.c:142 builtin/grep.c:836
-#: builtin/pull.c:225
+#: builtin/clone.c:125 builtin/fetch.c:152 builtin/grep.c:838
+#: builtin/pull.c:226
 msgid "depth"
 msgstr "深度"
 
-#: builtin/clone.c:123
+#: builtin/clone.c:126
 msgid "create a shallow clone of that depth"
 msgstr "创建一个指定深度的浅克隆"
 
-#: builtin/clone.c:124 builtin/fetch.c:144 builtin/pack-objects.c:3295
+#: builtin/clone.c:127 builtin/fetch.c:154 builtin/pack-objects.c:3303
 msgid "time"
 msgstr "时间"
 
-#: builtin/clone.c:125
+#: builtin/clone.c:128
 msgid "create a shallow clone since a specific time"
 msgstr "从一个特定时间创建一个浅克隆"
 
-#: builtin/clone.c:126 builtin/fetch.c:146 builtin/fetch.c:169
-#: builtin/rebase.c:1389
+#: builtin/clone.c:129 builtin/fetch.c:156 builtin/fetch.c:179
+#: builtin/rebase.c:1395
 msgid "revision"
 msgstr "版本"
 
-#: builtin/clone.c:127 builtin/fetch.c:147
+#: builtin/clone.c:130 builtin/fetch.c:157
 msgid "deepen history of shallow clone, excluding rev"
 msgstr "深化浅克隆的历史,除了特定版本"
 
-#: builtin/clone.c:129
+#: builtin/clone.c:132
 msgid "clone only one branch, HEAD or --branch"
 msgstr "只克隆一个分支、HEAD 或 --branch"
 
-#: builtin/clone.c:131
+#: builtin/clone.c:134
 msgid "don't clone any tags, and make later fetches not to follow them"
 msgstr "不要克隆任何标签,并且后续获取操作也不下载它们"
 
-#: builtin/clone.c:133
+#: builtin/clone.c:136
 msgid "any cloned submodules will be shallow"
 msgstr "子模组将以浅下载模式克隆"
 
-#: builtin/clone.c:134 builtin/init-db.c:495
+#: builtin/clone.c:137 builtin/init-db.c:495
 msgid "gitdir"
 msgstr "git目录"
 
-#: builtin/clone.c:135 builtin/init-db.c:496
+#: builtin/clone.c:138 builtin/init-db.c:496
 msgid "separate git dir from working tree"
 msgstr "git目录和工作区分离"
 
-#: builtin/clone.c:136
+#: builtin/clone.c:139
 msgid "key=value"
 msgstr "key=value"
 
-#: builtin/clone.c:137
+#: builtin/clone.c:140
 msgid "set config inside the new repository"
 msgstr "在新仓库中设置配置信息"
 
-#: builtin/clone.c:139 builtin/fetch.c:164 builtin/ls-remote.c:76
+#: builtin/clone.c:142 builtin/fetch.c:174 builtin/ls-remote.c:76
 #: builtin/push.c:585 builtin/send-pack.c:172
 msgid "server-specific"
 msgstr "server-specific"
 
-#: builtin/clone.c:139 builtin/fetch.c:164 builtin/ls-remote.c:76
+#: builtin/clone.c:142 builtin/fetch.c:174 builtin/ls-remote.c:76
 #: builtin/push.c:585 builtin/send-pack.c:173
 msgid "option to transmit"
 msgstr "传输选项"
 
-#: builtin/clone.c:140 builtin/fetch.c:165 builtin/pull.c:238
+#: builtin/clone.c:143 builtin/fetch.c:175 builtin/pull.c:239
 #: builtin/push.c:586
 msgid "use IPv4 addresses only"
 msgstr "只使用 IPv4 地址"
 
-#: builtin/clone.c:142 builtin/fetch.c:167 builtin/pull.c:241
+#: builtin/clone.c:145 builtin/fetch.c:177 builtin/pull.c:242
 #: builtin/push.c:588
 msgid "use IPv6 addresses only"
 msgstr "只使用 IPv6 地址"
 
-#: builtin/clone.c:280
+#: builtin/clone.c:149
+msgid "any cloned submodules will use their remote-tracking branch"
+msgstr "任何克隆的子模组将使用它们的远程跟踪分支"
+
+#: builtin/clone.c:285
 msgid ""
 "No directory name could be guessed.\n"
 "Please specify a directory on the command line"
@@ -10617,180 +10960,180 @@ msgstr ""
 "无法猜到目录名。\n"
 "请在命令行指定一个目录"
 
-#: builtin/clone.c:333
+#: builtin/clone.c:338
 #, c-format
 msgid "info: Could not add alternate for '%s': %s\n"
 msgstr "info: 不能为 '%s' 添加一个备用:%s\n"
 
-#: builtin/clone.c:405
-#, c-format
-msgid "failed to open '%s'"
-msgstr "打开 '%s' 失败"
-
-#: builtin/clone.c:413
+#: builtin/clone.c:411
 #, c-format
 msgid "%s exists and is not a directory"
 msgstr "%s 存在且不是一个目录"
 
-#: builtin/clone.c:427
+#: builtin/clone.c:428
 #, c-format
-msgid "failed to stat %s\n"
-msgstr "对 %s 调用 stat 失败\n"
+msgid "failed to start iterator over '%s'"
+msgstr "无法在 '%s' 上启动迭代器"
 
-#: builtin/clone.c:444
+#: builtin/clone.c:453
 #, c-format
 msgid "failed to unlink '%s'"
 msgstr "删除 '%s' 失败"
 
-#: builtin/clone.c:449
+#: builtin/clone.c:458
 #, c-format
 msgid "failed to create link '%s'"
 msgstr "创建链接 '%s' 失败"
 
-#: builtin/clone.c:453
+#: builtin/clone.c:462
 #, c-format
 msgid "failed to copy file to '%s'"
 msgstr "拷贝文件至 '%s' 失败"
 
-#: builtin/clone.c:479
+#: builtin/clone.c:467
+#, c-format
+msgid "failed to iterate over '%s'"
+msgstr "无法在 '%s' 上迭代"
+
+#: builtin/clone.c:492
 #, c-format
 msgid "done.\n"
 msgstr "完成。\n"
 
-#: builtin/clone.c:493
+#: builtin/clone.c:506
 msgid ""
 "Clone succeeded, but checkout failed.\n"
 "You can inspect what was checked out with 'git status'\n"
-"and retry the checkout with 'git checkout -f HEAD'\n"
+"and retry with 'git restore --source=HEAD :/'\n"
 msgstr ""
 "克隆成功,但是检出失败。\n"
 "您可以通过 'git status' 检查哪些已被检出,然后使用命令\n"
-"'git checkout -f HEAD' 重试\n"
+"'git restore --source=HEAD :/' 重试\n"
 
-#: builtin/clone.c:570
+#: builtin/clone.c:583
 #, c-format
 msgid "Could not find remote branch %s to clone."
 msgstr "不能发现要克隆的远程分支 %s。"
 
-#: builtin/clone.c:689
+#: builtin/clone.c:702
 #, c-format
 msgid "unable to update %s"
 msgstr "不能更新 %s"
 
-#: builtin/clone.c:739
+#: builtin/clone.c:752
 msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
 msgstr "远程 HEAD 指向一个不存在的引用,无法检出。\n"
 
-#: builtin/clone.c:770
+#: builtin/clone.c:783
 msgid "unable to checkout working tree"
 msgstr "不能检出工作区"
 
-#: builtin/clone.c:815
+#: builtin/clone.c:833
 msgid "unable to write parameters to config file"
 msgstr "无法将参数写入配置文件"
 
-#: builtin/clone.c:878
+#: builtin/clone.c:896
 msgid "cannot repack to clean up"
 msgstr "无法执行 repack 来清理"
 
-#: builtin/clone.c:880
+#: builtin/clone.c:898
 msgid "cannot unlink temporary alternates file"
 msgstr "无法删除临时的 alternates 文件"
 
-#: builtin/clone.c:920 builtin/receive-pack.c:1952
+#: builtin/clone.c:938 builtin/receive-pack.c:1950
 msgid "Too many arguments."
 msgstr "太多参数。"
 
-#: builtin/clone.c:924
+#: builtin/clone.c:942
 msgid "You must specify a repository to clone."
 msgstr "您必须指定一个仓库来克隆。"
 
-#: builtin/clone.c:937
+#: builtin/clone.c:955
 #, c-format
 msgid "--bare and --origin %s options are incompatible."
 msgstr "--bare 和 --origin %s 选项不兼容。"
 
-#: builtin/clone.c:940
+#: builtin/clone.c:958
 msgid "--bare and --separate-git-dir are incompatible."
 msgstr "--bare 和 --separate-git-dir 选项不兼容。"
 
-#: builtin/clone.c:953
+#: builtin/clone.c:971
 #, c-format
 msgid "repository '%s' does not exist"
 msgstr "仓库 '%s' 不存在"
 
-#: builtin/clone.c:959 builtin/fetch.c:1610
+#: builtin/clone.c:977 builtin/fetch.c:1660
 #, c-format
 msgid "depth %s is not a positive number"
 msgstr "深度 %s 不是一个正数"
 
-#: builtin/clone.c:969
+#: builtin/clone.c:987
 #, c-format
 msgid "destination path '%s' already exists and is not an empty directory."
 msgstr "目标路径 '%s' 已经存在,并且不是一个空目录。"
 
-#: builtin/clone.c:979
+#: builtin/clone.c:997
 #, c-format
 msgid "working tree '%s' already exists."
 msgstr "工作区 '%s' 已经存在。"
 
-#: builtin/clone.c:994 builtin/clone.c:1015 builtin/difftool.c:264
-#: builtin/worktree.c:296 builtin/worktree.c:328
+#: builtin/clone.c:1012 builtin/clone.c:1033 builtin/difftool.c:264
+#: builtin/worktree.c:303 builtin/worktree.c:335
 #, c-format
 msgid "could not create leading directories of '%s'"
 msgstr "不能为 '%s' 创建先导目录"
 
-#: builtin/clone.c:999
+#: builtin/clone.c:1017
 #, c-format
 msgid "could not create work tree dir '%s'"
 msgstr "不能创建工作区目录 '%s'"
 
-#: builtin/clone.c:1019
+#: builtin/clone.c:1037
 #, c-format
 msgid "Cloning into bare repository '%s'...\n"
 msgstr "克隆到纯仓库 '%s'...\n"
 
-#: builtin/clone.c:1021
+#: builtin/clone.c:1039
 #, c-format
 msgid "Cloning into '%s'...\n"
 msgstr "正克隆到 '%s'...\n"
 
-#: builtin/clone.c:1045
+#: builtin/clone.c:1063
 msgid ""
 "clone --recursive is not compatible with both --reference and --reference-if-"
 "able"
 msgstr "clone --recursive 和 --reference 以及 --reference-if-able 不兼容"
 
-#: builtin/clone.c:1106
+#: builtin/clone.c:1124
 msgid "--depth is ignored in local clones; use file:// instead."
 msgstr "--depth 在本地克隆时被忽略,请改用 file:// 协议。"
 
-#: builtin/clone.c:1108
+#: builtin/clone.c:1126
 msgid "--shallow-since is ignored in local clones; use file:// instead."
 msgstr "--shallow-since 在本地克隆时被忽略,请改用 file:// 协议。"
 
-#: builtin/clone.c:1110
+#: builtin/clone.c:1128
 msgid "--shallow-exclude is ignored in local clones; use file:// instead."
 msgstr "--shallow-exclude 在本地克隆时被忽略,请改用 file:// 协议。"
 
-#: builtin/clone.c:1112
+#: builtin/clone.c:1130
 msgid "--filter is ignored in local clones; use file:// instead."
 msgstr "--filter 在本地克隆时被忽略,请改用 file:// 协议。"
 
-#: builtin/clone.c:1115
+#: builtin/clone.c:1133
 msgid "source repository is shallow, ignoring --local"
 msgstr "源仓库是浅克隆,忽略 --local"
 
-#: builtin/clone.c:1120
+#: builtin/clone.c:1138
 msgid "--local is ignored"
 msgstr "--local 被忽略"
 
-#: builtin/clone.c:1197 builtin/clone.c:1205
+#: builtin/clone.c:1215 builtin/clone.c:1223
 #, c-format
 msgid "Remote branch %s not found in upstream %s"
 msgstr "远程分支 %s 在上游 %s 未发现"
 
-#: builtin/clone.c:1208
+#: builtin/clone.c:1226
 msgid "You appear to have cloned an empty repository."
 msgstr "您似乎克隆了一个空仓库。"
 
@@ -10839,7 +11182,7 @@ msgstr ""
 msgid "duplicate parent %s ignored"
 msgstr "忽略重复的父提交 %s"
 
-#: builtin/commit-tree.c:56 builtin/commit-tree.c:136 builtin/log.c:520
+#: builtin/commit-tree.c:56 builtin/commit-tree.c:136 builtin/log.c:525
 #, c-format
 msgid "not a valid object name %s"
 msgstr "不是一个有效的对象名 %s"
@@ -10867,13 +11210,13 @@ msgstr "父提交"
 msgid "id of a parent commit object"
 msgstr "父提交对象 ID"
 
-#: builtin/commit-tree.c:114 builtin/commit.c:1480 builtin/merge.c:268
-#: builtin/notes.c:409 builtin/notes.c:575 builtin/stash.c:1473
-#: builtin/tag.c:406
+#: builtin/commit-tree.c:114 builtin/commit.c:1500 builtin/merge.c:270
+#: builtin/notes.c:409 builtin/notes.c:575 builtin/stash.c:1460
+#: builtin/tag.c:412
 msgid "message"
 msgstr "说明"
 
-#: builtin/commit-tree.c:115 builtin/commit.c:1480
+#: builtin/commit-tree.c:115 builtin/commit.c:1500
 msgid "commit message"
 msgstr "提交说明"
 
@@ -10881,8 +11224,8 @@ msgstr "提交说明"
 msgid "read commit log message from file"
 msgstr "从文件中读取提交说明"
 
-#: builtin/commit-tree.c:121 builtin/commit.c:1492 builtin/merge.c:283
-#: builtin/pull.c:193 builtin/revert.c:117
+#: builtin/commit-tree.c:121 builtin/commit.c:1512 builtin/merge.c:287
+#: builtin/pull.c:194 builtin/revert.c:118
 msgid "GPG sign commit"
 msgstr "GPG 提交签名"
 
@@ -10926,117 +11269,122 @@ msgstr ""
 "\n"
 
 #: builtin/commit.c:63
-msgid "Otherwise, please use 'git reset'\n"
-msgstr "否则,请使用命令 'git reset'\n"
+msgid "Otherwise, please use 'git cherry-pick --skip'\n"
+msgstr "否则,请使用 'git cherry-pick --skip'\n"
 
 #: builtin/commit.c:66
 msgid ""
+"and then use:\n"
+"\n"
+"    git cherry-pick --continue\n"
+"\n"
+"to resume cherry-picking the remaining commits.\n"
 "If you wish to skip this commit, use:\n"
 "\n"
-"    git reset\n"
+"    git cherry-pick --skip\n"
 "\n"
-"Then \"git cherry-pick --continue\" will resume cherry-picking\n"
-"the remaining commits.\n"
 msgstr ""
-"如果您想跳过这个提交,使用命令:\n"
+"然后使用:\n"
+"\n"
+"    git cherry-pick --continue\n"
 "\n"
-"    git reset\n"
+"来继续拣选剩余提交。如果您想跳过此提交,使用:\n"
+"\n"
+"    git cherry-pick --skip\n"
 "\n"
-"然后执行 \"git cherry-pick --continue\" 继续对其余提交执行拣选\n"
-"操作。\n"
 
-#: builtin/commit.c:312
+#: builtin/commit.c:315
 msgid "failed to unpack HEAD tree object"
 msgstr "解包 HEAD 树对象失败"
 
-#: builtin/commit.c:353
+#: builtin/commit.c:356
 msgid "unable to create temporary index"
 msgstr "不能创建临时索引"
 
-#: builtin/commit.c:359
+#: builtin/commit.c:362
 msgid "interactive add failed"
 msgstr "交互式添加失败"
 
-#: builtin/commit.c:373
+#: builtin/commit.c:376
 msgid "unable to update temporary index"
 msgstr "无法更新临时索引"
 
-#: builtin/commit.c:375
+#: builtin/commit.c:378
 msgid "Failed to update main cache tree"
 msgstr "不能更新树的主缓存"
 
-#: builtin/commit.c:400 builtin/commit.c:423 builtin/commit.c:469
+#: builtin/commit.c:403 builtin/commit.c:426 builtin/commit.c:472
 msgid "unable to write new_index file"
 msgstr "无法写 new_index 文件"
 
-#: builtin/commit.c:452
+#: builtin/commit.c:455
 msgid "cannot do a partial commit during a merge."
 msgstr "在合并过程中不能做部分提交。"
 
-#: builtin/commit.c:454
+#: builtin/commit.c:457
 msgid "cannot do a partial commit during a cherry-pick."
 msgstr "在拣选过程中不能做部分提交。"
 
-#: builtin/commit.c:462
+#: builtin/commit.c:465
 msgid "cannot read the index"
 msgstr "无法读取索引"
 
-#: builtin/commit.c:481
+#: builtin/commit.c:484
 msgid "unable to write temporary index file"
 msgstr "无法写临时索引文件"
 
-#: builtin/commit.c:579
+#: builtin/commit.c:582
 #, c-format
 msgid "commit '%s' lacks author header"
 msgstr "提交 '%s' 缺少作者信息"
 
-#: builtin/commit.c:581
+#: builtin/commit.c:584
 #, c-format
 msgid "commit '%s' has malformed author line"
 msgstr "提交 '%s' 有格式错误的作者信息"
 
-#: builtin/commit.c:600
+#: builtin/commit.c:603
 msgid "malformed --author parameter"
 msgstr "格式错误的 --author 参数"
 
-#: builtin/commit.c:653
+#: builtin/commit.c:656
 msgid ""
 "unable to select a comment character that is not used\n"
 "in the current commit message"
 msgstr "无法选择一个未被当前提交说明使用的注释字符"
 
-#: builtin/commit.c:691 builtin/commit.c:724 builtin/commit.c:1069
+#: builtin/commit.c:694 builtin/commit.c:727 builtin/commit.c:1072
 #, c-format
 msgid "could not lookup commit %s"
 msgstr "不能查询提交 %s"
 
-#: builtin/commit.c:703 builtin/shortlog.c:319
+#: builtin/commit.c:706 builtin/shortlog.c:319
 #, c-format
 msgid "(reading log message from standard input)\n"
 msgstr "(正从标准输入中读取日志信息)\n"
 
-#: builtin/commit.c:705
+#: builtin/commit.c:708
 msgid "could not read log from standard input"
 msgstr "不能从标准输入中读取日志信息"
 
-#: builtin/commit.c:709
+#: builtin/commit.c:712
 #, c-format
 msgid "could not read log file '%s'"
 msgstr "不能读取日志文件 '%s'"
 
-#: builtin/commit.c:740 builtin/commit.c:756
+#: builtin/commit.c:743 builtin/commit.c:759
 msgid "could not read SQUASH_MSG"
 msgstr "不能读取 SQUASH_MSG"
 
-#: builtin/commit.c:747
+#: builtin/commit.c:750
 msgid "could not read MERGE_MSG"
 msgstr "不能读取 MERGE_MSG"
 
-#: builtin/commit.c:807
+#: builtin/commit.c:810
 msgid "could not write commit template"
 msgstr "不能写提交模版"
 
-#: builtin/commit.c:826
+#: builtin/commit.c:829
 #, c-format
 msgid ""
 "\n"
@@ -11050,7 +11398,7 @@ msgstr ""
 "\t%s\n"
 "然后重试。\n"
 
-#: builtin/commit.c:831
+#: builtin/commit.c:834
 #, c-format
 msgid ""
 "\n"
@@ -11064,7 +11412,7 @@ msgstr ""
 "\t%s\n"
 "然后重试。\n"
 
-#: builtin/commit.c:844
+#: builtin/commit.c:847
 #, c-format
 msgid ""
 "Please enter the commit message for your changes. Lines starting\n"
@@ -11073,7 +11421,7 @@ msgstr ""
 "请为您的变更输入提交说明。以 '%c' 开始的行将被忽略,而一个空的提交\n"
 "说明将会终止提交。\n"
 
-#: builtin/commit.c:852
+#: builtin/commit.c:855
 #, c-format
 msgid ""
 "Please enter the commit message for your changes. Lines starting\n"
@@ -11084,385 +11432,399 @@ msgstr ""
 "也可以删除它们。一个空的提交说明将会终止提交。\n"
 
 #  译者:为保证在输出中对齐,注意调整句中空格!
-#: builtin/commit.c:869
+#: builtin/commit.c:872
 #, c-format
 msgid "%sAuthor:    %.*s <%.*s>"
 msgstr "%s作者:  %.*s <%.*s>"
 
 #  译者:为保证在输出中对齐,注意调整句中空格!
-#: builtin/commit.c:877
+#: builtin/commit.c:880
 #, c-format
 msgid "%sDate:      %s"
 msgstr "%s日期:  %s"
 
 #  译者:为保证在输出中对齐,注意调整句中空格!
-#: builtin/commit.c:884
+#: builtin/commit.c:887
 #, c-format
 msgid "%sCommitter: %.*s <%.*s>"
 msgstr "%s提交者:%.*s <%.*s>"
 
-#: builtin/commit.c:902
+#: builtin/commit.c:905
 msgid "Cannot read index"
 msgstr "无法读取索引"
 
-#: builtin/commit.c:969
+#: builtin/commit.c:972
 msgid "Error building trees"
 msgstr "无法创建树对象"
 
-#: builtin/commit.c:983 builtin/tag.c:269
+#: builtin/commit.c:986 builtin/tag.c:275
 #, c-format
 msgid "Please supply the message using either -m or -F option.\n"
 msgstr "请使用 -m 或 -F 选项提供提交说明。\n"
 
-#: builtin/commit.c:1027
+#: builtin/commit.c:1030
 #, c-format
 msgid "--author '%s' is not 'Name <email>' and matches no existing author"
 msgstr "--author '%s' 不是 '姓名 <邮箱>' 格式,且未能在现有作者中找到匹配"
 
-#: builtin/commit.c:1041
+#: builtin/commit.c:1044
 #, c-format
 msgid "Invalid ignored mode '%s'"
 msgstr "无效的忽略模式 '%s'"
 
-#: builtin/commit.c:1059 builtin/commit.c:1284
+#: builtin/commit.c:1062 builtin/commit.c:1304
 #, c-format
 msgid "Invalid untracked files mode '%s'"
 msgstr "无效的未追踪文件参数 '%s'"
 
-#: builtin/commit.c:1097
+#: builtin/commit.c:1102
 msgid "--long and -z are incompatible"
 msgstr "--long 和 -z 选项不兼容"
 
-#: builtin/commit.c:1130
+#: builtin/commit.c:1146
 msgid "Using both --reset-author and --author does not make sense"
 msgstr "同时使用 --reset-author 和 --author 没有意义"
 
-#: builtin/commit.c:1139
+#: builtin/commit.c:1155
 msgid "You have nothing to amend."
 msgstr "您没有可修补的提交。"
 
-#: builtin/commit.c:1142
+#: builtin/commit.c:1158
 msgid "You are in the middle of a merge -- cannot amend."
 msgstr "您正处于一个合并过程中 -- 无法修补提交。"
 
-#: builtin/commit.c:1144
+#: builtin/commit.c:1160
 msgid "You are in the middle of a cherry-pick -- cannot amend."
 msgstr "您正处于一个拣选过程中 -- 无法修补提交。"
 
-#: builtin/commit.c:1147
+#: builtin/commit.c:1163
 msgid "Options --squash and --fixup cannot be used together"
 msgstr "选项 --squash 和 --fixup 不能同时使用"
 
-#: builtin/commit.c:1157
+#: builtin/commit.c:1173
 msgid "Only one of -c/-C/-F/--fixup can be used."
 msgstr "只能用一个 -c/-C/-F/--fixup 选项。"
 
-#: builtin/commit.c:1159
+#: builtin/commit.c:1175
 msgid "Option -m cannot be combined with -c/-C/-F."
 msgstr "选项 -m 不能和 -c/-C/-F 同时使用。"
 
-#: builtin/commit.c:1167
+#: builtin/commit.c:1183
 msgid "--reset-author can be used only with -C, -c or --amend."
 msgstr "--reset-author 只能和 -C、-c 或 --amend 同时使用。"
 
-#: builtin/commit.c:1184
+#: builtin/commit.c:1200
 msgid "Only one of --include/--only/--all/--interactive/--patch can be used."
 msgstr "只能用一个 --include/--only/--all/--interactive/--patch 选项。"
 
-#: builtin/commit.c:1186
+#: builtin/commit.c:1202
 msgid "No paths with --include/--only does not make sense."
 msgstr "参数 --include/--only 不跟路径没有意义。"
 
-#: builtin/commit.c:1192
+#: builtin/commit.c:1208
 #, c-format
 msgid "paths '%s ...' with -a does not make sense"
 msgstr "路径  '%s ...' 和 -a 选项同时使用没有意义"
 
-#: builtin/commit.c:1319 builtin/commit.c:1503
+#: builtin/commit.c:1339 builtin/commit.c:1523
 msgid "show status concisely"
 msgstr "以简洁的格式显示状态"
 
-#: builtin/commit.c:1321 builtin/commit.c:1505
+#: builtin/commit.c:1341 builtin/commit.c:1525
 msgid "show branch information"
 msgstr "显示分支信息"
 
-#: builtin/commit.c:1323
+#: builtin/commit.c:1343
 msgid "show stash information"
 msgstr "显示贮藏区信息"
 
-#: builtin/commit.c:1325 builtin/commit.c:1507
+#: builtin/commit.c:1345 builtin/commit.c:1527
 msgid "compute full ahead/behind values"
 msgstr "计算完整的领先/落后值"
 
-#: builtin/commit.c:1327
+#: builtin/commit.c:1347
 msgid "version"
 msgstr "版本"
 
-#: builtin/commit.c:1327 builtin/commit.c:1509 builtin/push.c:561
-#: builtin/worktree.c:643
+#: builtin/commit.c:1347 builtin/commit.c:1529 builtin/push.c:561
+#: builtin/worktree.c:651
 msgid "machine-readable output"
 msgstr "机器可读的输出"
 
-#: builtin/commit.c:1330 builtin/commit.c:1511
+#: builtin/commit.c:1350 builtin/commit.c:1531
 msgid "show status in long format (default)"
 msgstr "以长格式显示状态(默认)"
 
-#: builtin/commit.c:1333 builtin/commit.c:1514
+#: builtin/commit.c:1353 builtin/commit.c:1534
 msgid "terminate entries with NUL"
 msgstr "条目以 NUL 字符结尾"
 
-#: builtin/commit.c:1335 builtin/commit.c:1339 builtin/commit.c:1517
-#: builtin/fast-export.c:1085 builtin/fast-export.c:1088 builtin/rebase.c:1465
-#: parse-options.h:331
+#: builtin/commit.c:1355 builtin/commit.c:1359 builtin/commit.c:1537
+#: builtin/fast-export.c:1125 builtin/fast-export.c:1128
+#: builtin/fast-export.c:1131 builtin/rebase.c:1471 parse-options.h:332
 msgid "mode"
 msgstr "模式"
 
-#: builtin/commit.c:1336 builtin/commit.c:1517
+#: builtin/commit.c:1356 builtin/commit.c:1537
 msgid "show untracked files, optional modes: all, normal, no. (Default: all)"
 msgstr "显示未跟踪的文件,“模式”的可选参数:all、normal、no。(默认:all)"
 
-#: builtin/commit.c:1340
+#: builtin/commit.c:1360
 msgid ""
 "show ignored files, optional modes: traditional, matching, no. (Default: "
 "traditional)"
 msgstr ""
 "显示已忽略的文件,可选模式:traditional、matching、no。(默认:traditional)"
 
-#: builtin/commit.c:1342 parse-options.h:179
+#: builtin/commit.c:1362 parse-options.h:179
 msgid "when"
 msgstr "何时"
 
-#: builtin/commit.c:1343
+#: builtin/commit.c:1363
 msgid ""
 "ignore changes to submodules, optional when: all, dirty, untracked. "
 "(Default: all)"
 msgstr ""
 "忽略子模组的更改,“何时”的可选参数:all、dirty、untracked。(默认:all)"
 
-#: builtin/commit.c:1345
+#: builtin/commit.c:1365
 msgid "list untracked files in columns"
 msgstr "以列的方式显示未跟踪的文件"
 
-#: builtin/commit.c:1346
+#: builtin/commit.c:1366
 msgid "do not detect renames"
 msgstr "不检测重命名"
 
-#: builtin/commit.c:1348
+#: builtin/commit.c:1368
 msgid "detect renames, optionally set similarity index"
 msgstr "检测重命名,可以设置索引相似度"
 
-#: builtin/commit.c:1368
+#: builtin/commit.c:1388
 msgid "Unsupported combination of ignored and untracked-files arguments"
 msgstr "不支持已忽略和未跟踪文件参数的组合"
 
-#: builtin/commit.c:1473
+#: builtin/commit.c:1493
 msgid "suppress summary after successful commit"
 msgstr "提交成功后不显示概述信息"
 
-#: builtin/commit.c:1474
+#: builtin/commit.c:1494
 msgid "show diff in commit message template"
 msgstr "在提交说明模板里显示差异"
 
-#: builtin/commit.c:1476
+#: builtin/commit.c:1496
 msgid "Commit message options"
 msgstr "提交说明选项"
 
-#: builtin/commit.c:1477 builtin/merge.c:272 builtin/tag.c:408
+#: builtin/commit.c:1497 builtin/merge.c:274 builtin/tag.c:414
 msgid "read message from file"
 msgstr "从文件中读取提交说明"
 
-#: builtin/commit.c:1478
+#: builtin/commit.c:1498
 msgid "author"
 msgstr "作者"
 
-#: builtin/commit.c:1478
+#: builtin/commit.c:1498
 msgid "override author for commit"
 msgstr "提交时覆盖作者"
 
-#: builtin/commit.c:1479 builtin/gc.c:539
+#: builtin/commit.c:1499 builtin/gc.c:539
 msgid "date"
 msgstr "日期"
 
-#: builtin/commit.c:1479
+#: builtin/commit.c:1499
 msgid "override date for commit"
 msgstr "提交时覆盖日期"
 
-#: builtin/commit.c:1481 builtin/commit.c:1482 builtin/commit.c:1483
-#: builtin/commit.c:1484 parse-options.h:323 ref-filter.h:92
+#: builtin/commit.c:1501 builtin/commit.c:1502 builtin/commit.c:1503
+#: builtin/commit.c:1504 parse-options.h:324 ref-filter.h:92
 msgid "commit"
 msgstr "提交"
 
-#: builtin/commit.c:1481
+#: builtin/commit.c:1501
 msgid "reuse and edit message from specified commit"
 msgstr "重用并编辑指定提交的提交说明"
 
-#: builtin/commit.c:1482
+#: builtin/commit.c:1502
 msgid "reuse message from specified commit"
 msgstr "重用指定提交的提交说明"
 
-#: builtin/commit.c:1483
+#: builtin/commit.c:1503
 msgid "use autosquash formatted message to fixup specified commit"
 msgstr "使用 autosquash 格式的提交说明用以修正指定的提交"
 
-#: builtin/commit.c:1484
+#: builtin/commit.c:1504
 msgid "use autosquash formatted message to squash specified commit"
 msgstr "使用 autosquash 格式的提交说明用以压缩至指定的提交"
 
-#: builtin/commit.c:1485
+#: builtin/commit.c:1505
 msgid "the commit is authored by me now (used with -C/-c/--amend)"
 msgstr "现在将该提交的作者改为我(和 -C/-c/--amend 参数共用)"
 
-#: builtin/commit.c:1486 builtin/log.c:1541 builtin/merge.c:285
-#: builtin/pull.c:162 builtin/revert.c:109
+#: builtin/commit.c:1506 builtin/log.c:1564 builtin/merge.c:289
+#: builtin/pull.c:163 builtin/revert.c:110
 msgid "add Signed-off-by:"
 msgstr "添加 Signed-off-by: 签名"
 
-#: builtin/commit.c:1487
+#: builtin/commit.c:1507
 msgid "use specified template file"
 msgstr "使用指定的模板文件"
 
-#: builtin/commit.c:1488
+#: builtin/commit.c:1508
 msgid "force edit of commit"
 msgstr "强制编辑提交"
 
-#: builtin/commit.c:1490
+#: builtin/commit.c:1510
 msgid "include status in commit message template"
 msgstr "在提交说明模板里包含状态信息"
 
-#: builtin/commit.c:1495
+#: builtin/commit.c:1515
 msgid "Commit contents options"
 msgstr "提交内容选项"
 
-#: builtin/commit.c:1496
+#: builtin/commit.c:1516
 msgid "commit all changed files"
 msgstr "提交所有改动的文件"
 
-#: builtin/commit.c:1497
+#: builtin/commit.c:1517
 msgid "add specified files to index for commit"
 msgstr "添加指定的文件到索引区等待提交"
 
-#: builtin/commit.c:1498
+#: builtin/commit.c:1518
 msgid "interactively add files"
 msgstr "交互式添加文件"
 
-#: builtin/commit.c:1499
+#: builtin/commit.c:1519
 msgid "interactively add changes"
 msgstr "交互式添加变更"
 
-#: builtin/commit.c:1500
+#: builtin/commit.c:1520
 msgid "commit only specified files"
 msgstr "只提交指定的文件"
 
-#: builtin/commit.c:1501
+#: builtin/commit.c:1521
 msgid "bypass pre-commit and commit-msg hooks"
 msgstr "绕过 pre-commit 和 commit-msg 钩子"
 
-#: builtin/commit.c:1502
+#: builtin/commit.c:1522
 msgid "show what would be committed"
 msgstr "显示将要提交的内容"
 
-#: builtin/commit.c:1515
+#: builtin/commit.c:1535
 msgid "amend previous commit"
 msgstr "修改先前的提交"
 
-#: builtin/commit.c:1516
+#: builtin/commit.c:1536
 msgid "bypass post-rewrite hook"
 msgstr "绕过 post-rewrite 钩子"
 
-#: builtin/commit.c:1521
+#: builtin/commit.c:1541
 msgid "ok to record an empty change"
 msgstr "允许一个空提交"
 
-#: builtin/commit.c:1523
+#: builtin/commit.c:1543
 msgid "ok to record a change with an empty message"
 msgstr "允许空的提交说明"
 
-#: builtin/commit.c:1596
+#: builtin/commit.c:1616
 #, c-format
 msgid "Corrupt MERGE_HEAD file (%s)"
 msgstr "损坏的 MERGE_HEAD 文件(%s)"
 
-#: builtin/commit.c:1603
+#: builtin/commit.c:1623
 msgid "could not read MERGE_MODE"
 msgstr "不能读取 MERGE_MODE"
 
-#: builtin/commit.c:1622
+#: builtin/commit.c:1642
 #, c-format
 msgid "could not read commit message: %s"
 msgstr "不能读取提交说明:%s"
 
-#: builtin/commit.c:1629
+#: builtin/commit.c:1649
 #, c-format
 msgid "Aborting commit due to empty commit message.\n"
 msgstr "终止提交因为提交说明为空。\n"
 
-#: builtin/commit.c:1634
+#: builtin/commit.c:1654
 #, c-format
 msgid "Aborting commit; you did not edit the message.\n"
 msgstr "终止提交;您未更改来自模版的提交说明。\n"
 
-#: builtin/commit.c:1668
+#: builtin/commit.c:1688
 msgid ""
 "repository has been updated, but unable to write\n"
 "new_index file. Check that disk is not full and quota is\n"
-"not exceeded, and then \"git reset HEAD\" to recover."
+"not exceeded, and then \"git restore --staged :/\" to recover."
 msgstr ""
-"仓库已更新,但无法写 new_index 文件。检查是否磁盘已满\n"
-"或磁盘配额已耗尽,然后执行 \"git reset HEAD\" 恢复。"
+"仓库已更新,但无法写 new_index 文件。检查是否磁盘已满\n"
+"磁盘配额已耗尽,然后执行 \"git restore --staged :/\" 恢复。"
 
-#: builtin/commit-graph.c:10
+#: builtin/commit-graph.c:11
 msgid "git commit-graph [--object-dir <objdir>]"
 msgstr "git commit-graph [--object-dir <对象目录>]"
 
-#: builtin/commit-graph.c:11 builtin/commit-graph.c:23
+#: builtin/commit-graph.c:12 builtin/commit-graph.c:24
 msgid "git commit-graph read [--object-dir <objdir>]"
 msgstr "git commit-graph read [--object-dir <对象目录>]"
 
-#: builtin/commit-graph.c:12 builtin/commit-graph.c:18
-msgid "git commit-graph verify [--object-dir <objdir>]"
-msgstr "git commit-graph verify [--object-dir <对象目录>]"
+#: builtin/commit-graph.c:13 builtin/commit-graph.c:19
+msgid "git commit-graph verify [--object-dir <objdir>] [--shallow]"
+msgstr "git commit-graph verify [--object-dir <对象目录>] [--shallow]"
 
-#: builtin/commit-graph.c:13 builtin/commit-graph.c:28
+#: builtin/commit-graph.c:14 builtin/commit-graph.c:29
 msgid ""
-"git commit-graph write [--object-dir <objdir>] [--append] [--reachable|--"
-"stdin-packs|--stdin-commits]"
-msgstr ""
-"git commit-graph write [--object-dir <对象目录>] [--append] [--reachable|--"
-"stdin-packs|--stdin-commits]"
+"git commit-graph write [--object-dir <objdir>] [--append|--split] [--"
+"reachable|--stdin-packs|--stdin-commits] <split options>"
+msgstr "git commit-graph write [--object-dir <对象目录>] [--append|--split] [--reachable|--stdin-packs|--stdin-commits] <split options>"
 
-#: builtin/commit-graph.c:51 builtin/commit-graph.c:89
-#: builtin/commit-graph.c:147 builtin/commit-graph.c:205 builtin/fetch.c:153
-#: builtin/log.c:1561
+#: builtin/commit-graph.c:54 builtin/commit-graph.c:100
+#: builtin/commit-graph.c:161 builtin/commit-graph.c:237 builtin/fetch.c:163
+#: builtin/log.c:1584
 msgid "dir"
 msgstr "目录"
 
-#: builtin/commit-graph.c:52 builtin/commit-graph.c:90
-#: builtin/commit-graph.c:148 builtin/commit-graph.c:206
+#: builtin/commit-graph.c:55 builtin/commit-graph.c:101
+#: builtin/commit-graph.c:162 builtin/commit-graph.c:238
 msgid "The object directory to store the graph"
 msgstr "保存图形的对象目录"
 
-#: builtin/commit-graph.c:68 builtin/commit-graph.c:105
+#: builtin/commit-graph.c:57
+msgid "if the commit-graph is split, only verify the tip file"
+msgstr "如果提交图形被拆分,只验证头一个文件"
+
+#: builtin/commit-graph.c:73 builtin/commit-graph.c:116
 #, c-format
 msgid "Could not open commit-graph '%s'"
 msgstr "无法打开提交图形 '%s'"
 
-#: builtin/commit-graph.c:150
+#: builtin/commit-graph.c:164
 msgid "start walk at all refs"
 msgstr "开始遍历所有引用"
 
-#: builtin/commit-graph.c:152
+#: builtin/commit-graph.c:166
 msgid "scan pack-indexes listed by stdin for commits"
 msgstr "从标准输入中的包索引文件列表中扫描提交"
 
-#: builtin/commit-graph.c:154
+#: builtin/commit-graph.c:168
 msgid "start walk at commits listed by stdin"
 msgstr "从标准输入中的提交开始扫描"
 
-#: builtin/commit-graph.c:156
+#: builtin/commit-graph.c:170
 msgid "include all commits already in the commit-graph file"
 msgstr "包含 commit-graph 文件中已有所有提交"
 
-#: builtin/commit-graph.c:165
+#: builtin/commit-graph.c:172
+msgid "allow writing an incremental commit-graph file"
+msgstr "允许写一个增量提交图形文件"
+
+#: builtin/commit-graph.c:174 builtin/commit-graph.c:178
+msgid "maximum number of commits in a non-base split commit-graph"
+msgstr "在非基本拆分提交图形中的最大提交数"
+
+#: builtin/commit-graph.c:176
+msgid "maximum ratio between two levels of a split commit-graph"
+msgstr "一个拆分提交图形的两个级别之间的最大比率"
+
+#: builtin/commit-graph.c:191
 msgid "use at most one of --reachable, --stdin-commits, or --stdin-packs"
 msgstr "不能同时使用 --reachable、--stdin-commits 或 --stdin-packs"
 
@@ -11470,7 +11832,7 @@ msgstr "不能同时使用 --reachable、--stdin-commits 或 --stdin-packs"
 msgid "git config [<options>]"
 msgstr "git config [<选项>]"
 
-#: builtin/config.c:103
+#: builtin/config.c:103 builtin/env--helper.c:23
 #, c-format
 msgid "unrecognized --type argument, %s"
 msgstr "未能识别的 --type 参数,%s"
@@ -11575,7 +11937,7 @@ msgstr "获得颜色设置:配置 [stdout-is-tty]"
 msgid "Type"
 msgstr "类型"
 
-#: builtin/config.c:147
+#: builtin/config.c:147 builtin/env--helper.c:38
 msgid "value is given this type"
 msgstr "取值为该类型"
 
@@ -11619,7 +11981,7 @@ msgstr "查询时参照 include 指令递归查找"
 msgid "show origin of config (file, standard input, blob, command line)"
 msgstr "显示配置的来源(文件、标准输入、数据对象,或命令行)"
 
-#: builtin/config.c:158
+#: builtin/config.c:158 builtin/env--helper.c:40
 msgid "value"
 msgstr "取值"
 
@@ -11911,7 +12273,7 @@ msgstr "只考虑匹配 <模式> 的标签"
 msgid "do not consider tags matching <pattern>"
 msgstr "不考虑匹配 <模式> 的标签"
 
-#: builtin/describe.c:551 builtin/name-rev.c:426
+#: builtin/describe.c:551 builtin/name-rev.c:422
 msgid "show abbreviated commit object as fallback"
 msgstr "显示简写的提交号作为后备"
 
@@ -12084,252 +12446,313 @@ msgstr "没有为 --tool=<工具> 参数提供 <工具>"
 msgid "no <cmd> given for --extcmd=<cmd>"
 msgstr "没有为 --extcmd=<命令> 参数提供 <命令>"
 
+#: builtin/env--helper.c:6
+msgid "git env--helper --type=[bool|ulong] <options> <env-var>"
+msgstr "git env--helper --type=[bool|ulong] <选项> <环境变量>"
+
+#: builtin/env--helper.c:37 builtin/hash-object.c:98
+msgid "type"
+msgstr "类型"
+
+#: builtin/env--helper.c:41
+msgid "default for git_env_*(...) to fall back on"
+msgstr "git_env_*(...) 的默认值"
+
+#: builtin/env--helper.c:43
+msgid "be quiet only use git_env_*() value as exit code"
+msgstr "安静模式,只使用 git_env_*() 的值作为退出码"
+
+#: builtin/env--helper.c:62
+#, c-format
+msgid "option `--default' expects a boolean value with `--type=bool`, not `%s`"
+msgstr "选项 `--default' 和 `type=bool` 期望一个布尔值,不是 `%s`"
+
+#: builtin/env--helper.c:77
+#, c-format
+msgid ""
+"option `--default' expects an unsigned long value with `--type=ulong`, not `"
+"%s`"
+msgstr "选项 `--default' 和 `type=ulong` 期望一个无符号长整型,不是 `%s`"
+
 #: builtin/fast-export.c:29
 msgid "git fast-export [rev-list-opts]"
 msgstr "git fast-export [rev-list-opts]"
 
-#: builtin/fast-export.c:1084
+#: builtin/fast-export.c:1124
 msgid "show progress after <n> objects"
 msgstr "在 <n> 个对象之后显示进度"
 
-#: builtin/fast-export.c:1086
+#: builtin/fast-export.c:1126
 msgid "select handling of signed tags"
 msgstr "选择如何处理签名标签"
 
-#: builtin/fast-export.c:1089
+#: builtin/fast-export.c:1129
 msgid "select handling of tags that tag filtered objects"
 msgstr "选择当标签指向被过滤对象时该标签的处理方式"
 
-#: builtin/fast-export.c:1092
+#: builtin/fast-export.c:1132
+msgid "select handling of commit messages in an alternate encoding"
+msgstr "选择使用备用编码处理提交说明"
+
+#: builtin/fast-export.c:1135
 msgid "Dump marks to this file"
 msgstr "把标记存储到这个文件"
 
-#: builtin/fast-export.c:1094
+#: builtin/fast-export.c:1137
 msgid "Import marks from this file"
 msgstr "从这个文件导入标记"
 
-#: builtin/fast-export.c:1096
+#: builtin/fast-export.c:1139
 msgid "Fake a tagger when tags lack one"
 msgstr "当标签缺少标记者字段时,假装提供一个"
 
-#: builtin/fast-export.c:1098
+#: builtin/fast-export.c:1141
 msgid "Output full tree for each commit"
 msgstr "每次提交都输出整个树"
 
-#: builtin/fast-export.c:1100
+#: builtin/fast-export.c:1143
 msgid "Use the done feature to terminate the stream"
 msgstr "使用 done 功能来终止流"
 
-#: builtin/fast-export.c:1101
+#: builtin/fast-export.c:1144
 msgid "Skip output of blob data"
 msgstr "跳过数据对象的输出"
 
-#: builtin/fast-export.c:1102 builtin/log.c:1609
+#: builtin/fast-export.c:1145 builtin/log.c:1632
 msgid "refspec"
 msgstr "引用规格"
 
-#: builtin/fast-export.c:1103
+#: builtin/fast-export.c:1146
 msgid "Apply refspec to exported refs"
 msgstr "对导出的引用应用引用规格"
 
-#: builtin/fast-export.c:1104
+#: builtin/fast-export.c:1147
 msgid "anonymize output"
 msgstr "匿名输出"
 
-#: builtin/fast-export.c:1106
+#: builtin/fast-export.c:1149
 msgid "Reference parents which are not in fast-export stream by object id"
 msgstr "引用父对象 ID 不在 fast-export 流中"
 
-#: builtin/fast-export.c:1108
+#: builtin/fast-export.c:1151
 msgid "Show original object ids of blobs/commits"
 msgstr "显示数据对象/提交的原始对象 ID"
 
-#: builtin/fetch.c:28
+#: builtin/fetch.c:30
 msgid "git fetch [<options>] [<repository> [<refspec>...]]"
 msgstr "git fetch [<选项>] [<仓库> [<引用规格>...]]"
 
-#: builtin/fetch.c:29
+#: builtin/fetch.c:31
 msgid "git fetch [<options>] <group>"
 msgstr "git fetch [<选项>] <组>"
 
-#: builtin/fetch.c:30
+#: builtin/fetch.c:32
 msgid "git fetch --multiple [<options>] [(<repository> | <group>)...]"
 msgstr "git fetch --multiple [<选项>] [(<仓库> | <组>)...]"
 
-#: builtin/fetch.c:31
+#: builtin/fetch.c:33
 msgid "git fetch --all [<options>]"
 msgstr "git fetch --all [<选项>]"
 
-#: builtin/fetch.c:115 builtin/pull.c:202
+#: builtin/fetch.c:125 builtin/pull.c:203
 msgid "fetch from all remotes"
 msgstr "从所有的远程抓取"
 
-#: builtin/fetch.c:117 builtin/pull.c:205
+#: builtin/fetch.c:127 builtin/pull.c:206
 msgid "append to .git/FETCH_HEAD instead of overwriting"
 msgstr "追加到 .git/FETCH_HEAD 而不是覆盖它"
 
-#: builtin/fetch.c:119 builtin/pull.c:208
+#: builtin/fetch.c:129 builtin/pull.c:209
 msgid "path to upload pack on remote end"
 msgstr "上传包到远程的路径"
 
-#: builtin/fetch.c:120
+#: builtin/fetch.c:130
 msgid "force overwrite of local reference"
 msgstr "强制覆盖本地引用"
 
-#: builtin/fetch.c:122
+#: builtin/fetch.c:132
 msgid "fetch from multiple remotes"
 msgstr "从多个远程抓取"
 
-#: builtin/fetch.c:124 builtin/pull.c:212
+#: builtin/fetch.c:134 builtin/pull.c:213
 msgid "fetch all tags and associated objects"
 msgstr "抓取所有的标签和关联对象"
 
-#: builtin/fetch.c:126
+#: builtin/fetch.c:136
 msgid "do not fetch all tags (--no-tags)"
 msgstr "不抓取任何标签(--no-tags)"
 
-#: builtin/fetch.c:128
+#: builtin/fetch.c:138
 msgid "number of submodules fetched in parallel"
 msgstr "子模组获取的并发数"
 
-#: builtin/fetch.c:130 builtin/pull.c:215
+#: builtin/fetch.c:140 builtin/pull.c:216
 msgid "prune remote-tracking branches no longer on remote"
 msgstr "清除远程已经不存在的分支的跟踪分支"
 
-#: builtin/fetch.c:132
+#: builtin/fetch.c:142
 msgid "prune local tags no longer on remote and clobber changed tags"
 msgstr "清除远程不存在的本地标签,并且替换变更标签"
 
 #  译者:可选值,不能翻译
-#: builtin/fetch.c:133 builtin/fetch.c:156 builtin/pull.c:139
+#: builtin/fetch.c:143 builtin/fetch.c:166 builtin/pull.c:140
 msgid "on-demand"
 msgstr "on-demand"
 
-#: builtin/fetch.c:134
+#: builtin/fetch.c:144
 msgid "control recursive fetching of submodules"
 msgstr "控制子模组的递归抓取"
 
-#: builtin/fetch.c:138 builtin/pull.c:223
+#: builtin/fetch.c:148 builtin/pull.c:224
 msgid "keep downloaded pack"
 msgstr "保持下载包"
 
-#: builtin/fetch.c:140
+#: builtin/fetch.c:150
 msgid "allow updating of HEAD ref"
 msgstr "允许更新 HEAD 引用"
 
-#: builtin/fetch.c:143 builtin/fetch.c:149 builtin/pull.c:226
+#: builtin/fetch.c:153 builtin/fetch.c:159 builtin/pull.c:227
 msgid "deepen history of shallow clone"
 msgstr "深化浅克隆的历史"
 
-#: builtin/fetch.c:145
+#: builtin/fetch.c:155
 msgid "deepen history of shallow repository based on time"
 msgstr "基于时间来深化浅克隆的历史"
 
-#: builtin/fetch.c:151 builtin/pull.c:229
+#: builtin/fetch.c:161 builtin/pull.c:230
 msgid "convert to a complete repository"
 msgstr "转换为一个完整的仓库"
 
-#: builtin/fetch.c:154
+#: builtin/fetch.c:164
 msgid "prepend this to submodule path output"
 msgstr "在子模组路径输出的前面加上此目录"
 
-#: builtin/fetch.c:157
+#: builtin/fetch.c:167
 msgid ""
 "default for recursive fetching of submodules (lower priority than config "
 "files)"
 msgstr "递归获取子模组的缺省值(比配置文件优先级低)"
 
-#: builtin/fetch.c:161 builtin/pull.c:232
+#: builtin/fetch.c:171 builtin/pull.c:233
 msgid "accept refs that update .git/shallow"
 msgstr "接受更新 .git/shallow 的引用"
 
-#: builtin/fetch.c:162 builtin/pull.c:234
+#: builtin/fetch.c:172 builtin/pull.c:235
 msgid "refmap"
 msgstr "引用映射"
 
-#: builtin/fetch.c:163 builtin/pull.c:235
+#: builtin/fetch.c:173 builtin/pull.c:236
 msgid "specify fetch refmap"
 msgstr "指定获取操作的引用映射"
 
-#: builtin/fetch.c:170
+#: builtin/fetch.c:180
 msgid "report that we have only objects reachable from this object"
 msgstr "报告我们只拥有从该对象开始可达的对象"
 
-#: builtin/fetch.c:469
+#: builtin/fetch.c:183
+msgid "run 'gc --auto' after fetching"
+msgstr "获取后执行 'gc --auto'"
+
+#: builtin/fetch.c:185 builtin/pull.c:245
+msgid "check for forced-updates on all updated branches"
+msgstr "在所有更新分支上检查强制更新"
+
+#: builtin/fetch.c:491
 msgid "Couldn't find remote ref HEAD"
 msgstr "无法发现远程 HEAD 引用"
 
-#: builtin/fetch.c:608
+#: builtin/fetch.c:630
 #, c-format
 msgid "configuration fetch.output contains invalid value %s"
 msgstr "配置变量 fetch.output 包含无效值 %s"
 
-#: builtin/fetch.c:705
+#: builtin/fetch.c:728
 #, c-format
 msgid "object %s not found"
 msgstr "对象 %s 未发现"
 
-#: builtin/fetch.c:709
+#: builtin/fetch.c:732
 msgid "[up to date]"
 msgstr "[最新]"
 
-#: builtin/fetch.c:722 builtin/fetch.c:738 builtin/fetch.c:801
+#: builtin/fetch.c:745 builtin/fetch.c:761 builtin/fetch.c:833
 msgid "[rejected]"
 msgstr "[已拒绝]"
 
-#: builtin/fetch.c:723
+#: builtin/fetch.c:746
 msgid "can't fetch in current branch"
 msgstr "当前分支下不能执行获取操作"
 
-#: builtin/fetch.c:733
+#: builtin/fetch.c:756
 msgid "[tag update]"
 msgstr "[标签更新]"
 
-#: builtin/fetch.c:734 builtin/fetch.c:771 builtin/fetch.c:784
-#: builtin/fetch.c:796
+#: builtin/fetch.c:757 builtin/fetch.c:794 builtin/fetch.c:816
+#: builtin/fetch.c:828
 msgid "unable to update local ref"
 msgstr "不能更新本地引用"
 
-#: builtin/fetch.c:738
+#: builtin/fetch.c:761
 msgid "would clobber existing tag"
 msgstr "会破坏现有的标签"
 
-#: builtin/fetch.c:760
+#: builtin/fetch.c:783
 msgid "[new tag]"
 msgstr "[新标签]"
 
-#: builtin/fetch.c:763
+#: builtin/fetch.c:786
 msgid "[new branch]"
 msgstr "[新分支]"
 
-#: builtin/fetch.c:766
+#: builtin/fetch.c:789
 msgid "[new ref]"
 msgstr "[新引用]"
 
-#: builtin/fetch.c:796
+#: builtin/fetch.c:828
 msgid "forced update"
 msgstr "强制更新"
 
-#: builtin/fetch.c:801
+#: builtin/fetch.c:833
 msgid "non-fast-forward"
 msgstr "非快进"
 
-#: builtin/fetch.c:847
+#: builtin/fetch.c:854
+msgid ""
+"Fetch normally indicates which branches had a forced update,\n"
+"but that check has been disabled. To re-enable, use '--show-forced-updates'\n"
+"flag or run 'git config fetch.showForcedUpdates true'."
+msgstr ""
+"获取操作通常显示哪些分支发生了强制更新,但该检查已被禁用。\n"
+"要重新启用,请使用 '--show-forced-updates' 选项或运行\n"
+"'git config fetch.showForcedUpdates true'。"
+
+#: builtin/fetch.c:858
+#, c-format
+msgid ""
+"It took %.2f seconds to check forced updates. You can use\n"
+"'--no-show-forced-updates' or run 'git config fetch.showForcedUpdates "
+"false'\n"
+" to avoid this check.\n"
+msgstr ""
+"花了 %.2f 秒来检查强制更新。您可以使用 '--no-show-forced-updates'\n"
+"或运行 'git config fetch.showForcedUpdates false' 以避免此项检查。\n"
+
+#: builtin/fetch.c:888
 #, c-format
 msgid "%s did not send all necessary objects\n"
 msgstr "%s 未发送所有必需的对象\n"
 
-#: builtin/fetch.c:868
+#: builtin/fetch.c:909
 #, c-format
 msgid "reject %s because shallow roots are not allowed to be updated"
 msgstr "拒绝 %s 因为浅克隆不允许被更新"
 
-#: builtin/fetch.c:959 builtin/fetch.c:1081
+#: builtin/fetch.c:1000 builtin/fetch.c:1131
 #, c-format
 msgid "From %.*s\n"
 msgstr "来自 %.*s\n"
 
-#: builtin/fetch.c:970
+#: builtin/fetch.c:1011
 #, c-format
 msgid ""
 "some local refs could not be updated; try running\n"
@@ -12339,100 +12762,100 @@ msgstr ""
 " 'git remote prune %s' 来删除旧的、有冲突的分支"
 
 #  译者:注意保持前导空格
-#: builtin/fetch.c:1051
+#: builtin/fetch.c:1101
 #, c-format
 msgid "   (%s will become dangling)"
 msgstr "   (%s 将成为悬空状态)"
 
 #  译者:注意保持前导空格
-#: builtin/fetch.c:1052
+#: builtin/fetch.c:1102
 #, c-format
 msgid "   (%s has become dangling)"
 msgstr "   (%s 已成为悬空状态)"
 
-#: builtin/fetch.c:1084
+#: builtin/fetch.c:1134
 msgid "[deleted]"
 msgstr "[已删除]"
 
-#: builtin/fetch.c:1085 builtin/remote.c:1036
+#: builtin/fetch.c:1135 builtin/remote.c:1036
 msgid "(none)"
 msgstr "(无)"
 
-#: builtin/fetch.c:1108
+#: builtin/fetch.c:1158
 #, c-format
 msgid "Refusing to fetch into current branch %s of non-bare repository"
 msgstr "拒绝获取到非纯仓库的当前分支 %s"
 
-#: builtin/fetch.c:1127
+#: builtin/fetch.c:1177
 #, c-format
 msgid "Option \"%s\" value \"%s\" is not valid for %s"
 msgstr "选项 \"%s\" 的值 \"%s\" 对于 %s 是无效的"
 
-#: builtin/fetch.c:1130
+#: builtin/fetch.c:1180
 #, c-format
 msgid "Option \"%s\" is ignored for %s\n"
 msgstr "选项 \"%s\" 为 %s 所忽略\n"
 
-#: builtin/fetch.c:1434
+#: builtin/fetch.c:1484
 #, c-format
 msgid "Fetching %s\n"
 msgstr "正在获取 %s\n"
 
-#: builtin/fetch.c:1436 builtin/remote.c:100
+#: builtin/fetch.c:1486 builtin/remote.c:100
 #, c-format
 msgid "Could not fetch %s"
 msgstr "不能获取 %s"
 
-#: builtin/fetch.c:1482
+#: builtin/fetch.c:1532
 msgid ""
 "--filter can only be used with the remote configured in extensions."
 "partialClone"
 msgstr "只可以将 --filter 用于在 extensions.partialClone 中配置的远程仓库"
 
-#: builtin/fetch.c:1506
+#: builtin/fetch.c:1556
 msgid ""
 "No remote repository specified.  Please, specify either a URL or a\n"
 "remote name from which new revisions should be fetched."
 msgstr "未指定远程仓库。请通过一个 URL 或远程仓库名指定,用以获取新提交。"
 
-#: builtin/fetch.c:1543
+#: builtin/fetch.c:1593
 msgid "You need to specify a tag name."
 msgstr "您需要指定一个标签名称。"
 
-#: builtin/fetch.c:1594
+#: builtin/fetch.c:1644
 msgid "Negative depth in --deepen is not supported"
 msgstr "--deepen 不支持负数深度"
 
-#: builtin/fetch.c:1596
+#: builtin/fetch.c:1646
 msgid "--deepen and --depth are mutually exclusive"
 msgstr "--deepen 和 --depth 是互斥的"
 
-#: builtin/fetch.c:1601
+#: builtin/fetch.c:1651
 msgid "--depth and --unshallow cannot be used together"
 msgstr "--depth 和 --unshallow 不能同时使用"
 
-#: builtin/fetch.c:1603
+#: builtin/fetch.c:1653
 msgid "--unshallow on a complete repository does not make sense"
 msgstr "对于一个完整的仓库,参数 --unshallow 没有意义"
 
-#: builtin/fetch.c:1619
+#: builtin/fetch.c:1669
 msgid "fetch --all does not take a repository argument"
 msgstr "fetch --all 不能带一个仓库参数"
 
-#: builtin/fetch.c:1621
+#: builtin/fetch.c:1671
 msgid "fetch --all does not make sense with refspecs"
 msgstr "fetch --all 带引用规格没有任何意义"
 
-#: builtin/fetch.c:1630
+#: builtin/fetch.c:1680
 #, c-format
 msgid "No such remote or remote group: %s"
 msgstr "没有这样的远程或远程组:%s"
 
-#: builtin/fetch.c:1637
+#: builtin/fetch.c:1687
 msgid "Fetching a group and specifying refspecs does not make sense"
 msgstr "获取组并指定引用规格没有意义"
 
-#: builtin/fetch.c:1653
+#: builtin/fetch.c:1703
 msgid ""
 "--filter can only be used with the remote configured in extensions."
 "partialclone"
@@ -12499,7 +12922,7 @@ msgstr "引用占位符适用于 Tcl"
 msgid "show only <n> matched refs"
 msgstr "只显示 <n> 个匹配的引用"
 
-#: builtin/for-each-ref.c:39 builtin/tag.c:433
+#: builtin/for-each-ref.c:39 builtin/tag.c:439
 msgid "respect format colors"
 msgstr "遵照格式中的颜色输出"
 
@@ -12667,7 +13090,7 @@ msgstr "正在检查对象目录"
 msgid "Checking %s link"
 msgstr "正在检查 %s 链接"
 
-#: builtin/fsck.c:705 builtin/index-pack.c:841
+#: builtin/fsck.c:705 builtin/index-pack.c:842
 #, c-format
 msgid "invalid %s"
 msgstr "无效的 %s"
@@ -12752,7 +13175,7 @@ msgstr "显示进度"
 msgid "show verbose names for reachable objects"
 msgstr "显示可达对象的详细名称"
 
-#: builtin/fsck.c:859 builtin/index-pack.c:224
+#: builtin/fsck.c:859 builtin/index-pack.c:225
 msgid "Checking objects"
 msgstr "正在检查对象"
 
@@ -12785,7 +13208,7 @@ msgstr "无法解析 '%s' 值 '%s'"
 msgid "cannot stat '%s'"
 msgstr "不能对 '%s' 调用 stat"
 
-#: builtin/gc.c:485 builtin/notes.c:240 builtin/tag.c:519
+#: builtin/gc.c:485 builtin/notes.c:240 builtin/tag.c:529
 #, c-format
 msgid "cannot read '%s'"
 msgstr "不能读取 '%s'"
@@ -12856,7 +13279,7 @@ msgid ""
 msgstr ""
 "已经有一个 gc 正运行在机器 '%s' pid %<PRIuMAX>(如果不是,使用 --force)"
 
-#: builtin/gc.c:693
+#: builtin/gc.c:695
 msgid ""
 "There are too many unreachable loose objects; run 'git prune' to remove them."
 msgstr "有太多不可达的松散对象,运行 'git prune' 删除它们。"
@@ -12879,259 +13302,259 @@ msgstr "为 %2$s 设定的线程数 (%1$d) 无效"
 #. variable for tweaking threads, currently
 #. grep.threads
 #.
-#: builtin/grep.c:287 builtin/index-pack.c:1514 builtin/index-pack.c:1705
-#: builtin/pack-objects.c:2720
+#: builtin/grep.c:287 builtin/index-pack.c:1534 builtin/index-pack.c:1727
+#: builtin/pack-objects.c:2728
 #, c-format
 msgid "no threads support, ignoring %s"
 msgstr "没有线程支持,忽略 %s"
 
-#: builtin/grep.c:466 builtin/grep.c:590 builtin/grep.c:631
+#: builtin/grep.c:467 builtin/grep.c:591 builtin/grep.c:633
 #, c-format
 msgid "unable to read tree (%s)"
 msgstr "无法读取树(%s)"
 
-#: builtin/grep.c:646
+#: builtin/grep.c:648
 #, c-format
 msgid "unable to grep from object of type %s"
 msgstr "无法抓取来自于 %s 类型的对象"
 
-#: builtin/grep.c:712
+#: builtin/grep.c:714
 #, c-format
 msgid "switch `%c' expects a numerical value"
 msgstr "开关 `%c' 期望一个数字值"
 
-#: builtin/grep.c:811
+#: builtin/grep.c:813
 msgid "search in index instead of in the work tree"
 msgstr "在索引区搜索而不是在工作区"
 
-#: builtin/grep.c:813
+#: builtin/grep.c:815
 msgid "find in contents not managed by git"
 msgstr "在未被 git 管理的内容中查找"
 
 #  译者:中文字符串拼接,可删除前导空格
-#: builtin/grep.c:815
+#: builtin/grep.c:817
 msgid "search in both tracked and untracked files"
 msgstr "在跟踪和未跟踪的文件中搜索"
 
-#: builtin/grep.c:817
+#: builtin/grep.c:819
 msgid "ignore files specified via '.gitignore'"
 msgstr "忽略 '.gitignore' 包含的文件"
 
-#: builtin/grep.c:819
+#: builtin/grep.c:821
 msgid "recursively search in each submodule"
 msgstr "在每一个子模组中递归搜索"
 
-#: builtin/grep.c:822
+#: builtin/grep.c:824
 msgid "show non-matching lines"
 msgstr "显示未匹配的行"
 
-#: builtin/grep.c:824
+#: builtin/grep.c:826
 msgid "case insensitive matching"
 msgstr "不区分大小写匹配"
 
-#: builtin/grep.c:826
+#: builtin/grep.c:828
 msgid "match patterns only at word boundaries"
 msgstr "只在单词边界匹配模式"
 
-#: builtin/grep.c:828
+#: builtin/grep.c:830
 msgid "process binary files as text"
 msgstr "把二进制文件当做文本处理"
 
-#: builtin/grep.c:830
+#: builtin/grep.c:832
 msgid "don't match patterns in binary files"
 msgstr "不在二进制文件中匹配模式"
 
-#: builtin/grep.c:833
+#: builtin/grep.c:835
 msgid "process binary files with textconv filters"
 msgstr "用 textconv 过滤器处理二进制文件"
 
-#: builtin/grep.c:835
+#: builtin/grep.c:837
 msgid "search in subdirectories (default)"
 msgstr "在子目录中寻找(默认)"
 
-#: builtin/grep.c:837
+#: builtin/grep.c:839
 msgid "descend at most <depth> levels"
 msgstr "最多以指定的深度向下寻找"
 
-#: builtin/grep.c:841
+#: builtin/grep.c:843
 msgid "use extended POSIX regular expressions"
 msgstr "使用扩展的 POSIX 正则表达式"
 
-#: builtin/grep.c:844
+#: builtin/grep.c:846
 msgid "use basic POSIX regular expressions (default)"
 msgstr "使用基本的 POSIX 正则表达式(默认)"
 
-#: builtin/grep.c:847
+#: builtin/grep.c:849
 msgid "interpret patterns as fixed strings"
 msgstr "把模式解析为固定的字符串"
 
-#: builtin/grep.c:850
+#: builtin/grep.c:852
 msgid "use Perl-compatible regular expressions"
 msgstr "使用 Perl 兼容的正则表达式"
 
-#: builtin/grep.c:853
+#: builtin/grep.c:855
 msgid "show line numbers"
 msgstr "显示行号"
 
-#: builtin/grep.c:854
+#: builtin/grep.c:856
 msgid "show column number of first match"
 msgstr "显示第一个匹配的列号"
 
-#: builtin/grep.c:855
+#: builtin/grep.c:857
 msgid "don't show filenames"
 msgstr "不显示文件名"
 
-#: builtin/grep.c:856
+#: builtin/grep.c:858
 msgid "show filenames"
 msgstr "显示文件名"
 
-#: builtin/grep.c:858
+#: builtin/grep.c:860
 msgid "show filenames relative to top directory"
 msgstr "显示相对于顶级目录的文件名"
 
-#: builtin/grep.c:860
+#: builtin/grep.c:862
 msgid "show only filenames instead of matching lines"
 msgstr "只显示文件名而不显示匹配的行"
 
-#: builtin/grep.c:862
+#: builtin/grep.c:864
 msgid "synonym for --files-with-matches"
 msgstr "和 --files-with-matches 同义"
 
-#: builtin/grep.c:865
+#: builtin/grep.c:867
 msgid "show only the names of files without match"
 msgstr "只显示未匹配的文件名"
 
-#: builtin/grep.c:867
+#: builtin/grep.c:869
 msgid "print NUL after filenames"
 msgstr "在文件名后输出 NUL 字符"
 
-#: builtin/grep.c:870
+#: builtin/grep.c:872
 msgid "show only matching parts of a line"
 msgstr "只显示行中的匹配的部分"
 
-#: builtin/grep.c:872
+#: builtin/grep.c:874
 msgid "show the number of matches instead of matching lines"
 msgstr "显示总匹配行数,而不显示匹配的行"
 
-#: builtin/grep.c:873
+#: builtin/grep.c:875
 msgid "highlight matches"
 msgstr "高亮显示匹配项"
 
-#: builtin/grep.c:875
+#: builtin/grep.c:877
 msgid "print empty line between matches from different files"
 msgstr "在不同文件的匹配项之间打印空行"
 
-#: builtin/grep.c:877
+#: builtin/grep.c:879
 msgid "show filename only once above matches from same file"
 msgstr "只在同一文件的匹配项的上面显示一次文件名"
 
-#: builtin/grep.c:880
+#: builtin/grep.c:882
 msgid "show <n> context lines before and after matches"
 msgstr "显示匹配项前后的 <n> 行上下文"
 
-#: builtin/grep.c:883
+#: builtin/grep.c:885
 msgid "show <n> context lines before matches"
 msgstr "显示匹配项前 <n> 行上下文"
 
-#: builtin/grep.c:885
+#: builtin/grep.c:887
 msgid "show <n> context lines after matches"
 msgstr "显示匹配项后 <n> 行上下文"
 
-#: builtin/grep.c:887
+#: builtin/grep.c:889
 msgid "use <n> worker threads"
 msgstr "使用 <n> 个工作线程"
 
-#: builtin/grep.c:888
+#: builtin/grep.c:890
 msgid "shortcut for -C NUM"
 msgstr "快捷键 -C 数字"
 
-#: builtin/grep.c:891
+#: builtin/grep.c:893
 msgid "show a line with the function name before matches"
 msgstr "在匹配的前面显示一行函数名"
 
-#: builtin/grep.c:893
+#: builtin/grep.c:895
 msgid "show the surrounding function"
 msgstr "显示所在函数的前后内容"
 
-#: builtin/grep.c:896
+#: builtin/grep.c:898
 msgid "read patterns from file"
 msgstr "从文件读取模式"
 
-#: builtin/grep.c:898
+#: builtin/grep.c:900
 msgid "match <pattern>"
 msgstr "匹配 <模式>"
 
-#: builtin/grep.c:900
+#: builtin/grep.c:902
 msgid "combine patterns specified with -e"
 msgstr "组合用 -e 参数设定的模式"
 
-#: builtin/grep.c:912
+#: builtin/grep.c:914
 msgid "indicate hit with exit status without output"
 msgstr "不输出,而用退出码标识命中状态"
 
-#: builtin/grep.c:914
+#: builtin/grep.c:916
 msgid "show only matches from files that match all patterns"
 msgstr "只显示匹配所有模式的文件中的匹配"
 
-#: builtin/grep.c:916
+#: builtin/grep.c:918
 msgid "show parse tree for grep expression"
 msgstr "显示 grep 表达式的解析树"
 
-#: builtin/grep.c:920
+#: builtin/grep.c:922
 msgid "pager"
 msgstr "分页"
 
-#: builtin/grep.c:920
+#: builtin/grep.c:922
 msgid "show matching files in the pager"
 msgstr "分页显示匹配的文件"
 
-#: builtin/grep.c:924
+#: builtin/grep.c:926
 msgid "allow calling of grep(1) (ignored by this build)"
 msgstr "允许调用 grep(1)(本次构建忽略)"
 
-#: builtin/grep.c:988
+#: builtin/grep.c:990
 msgid "no pattern given"
 msgstr "未提供匹配模式"
 
-#: builtin/grep.c:1024
+#: builtin/grep.c:1026
 msgid "--no-index or --untracked cannot be used with revs"
 msgstr "--no-index 或 --untracked 不能和版本同时使用"
 
-#: builtin/grep.c:1032
+#: builtin/grep.c:1034
 #, c-format
 msgid "unable to resolve revision: %s"
 msgstr "不能解析版本:%s"
 
-#: builtin/grep.c:1063
+#: builtin/grep.c:1065
 msgid "invalid option combination, ignoring --threads"
 msgstr "无效的选项组合,忽略 --threads"
 
-#: builtin/grep.c:1066 builtin/pack-objects.c:3403
+#: builtin/grep.c:1068 builtin/pack-objects.c:3416
 msgid "no threads support, ignoring --threads"
 msgstr "没有线程支持,忽略 --threads"
 
-#: builtin/grep.c:1069 builtin/index-pack.c:1511 builtin/pack-objects.c:2717
+#: builtin/grep.c:1071 builtin/index-pack.c:1531 builtin/pack-objects.c:2725
 #, c-format
 msgid "invalid number of threads specified (%d)"
 msgstr "指定的线程数无效(%d)"
 
-#: builtin/grep.c:1092
+#: builtin/grep.c:1094
 msgid "--open-files-in-pager only works on the worktree"
 msgstr "--open-files-in-pager 仅用于工作区"
 
-#: builtin/grep.c:1115
+#: builtin/grep.c:1117
 msgid "option not supported with --recurse-submodules"
 msgstr "选项不支持和 --recurse-submodules 共用"
 
-#: builtin/grep.c:1121
+#: builtin/grep.c:1123
 msgid "--cached or --untracked cannot be used with --no-index"
 msgstr "--cached 或 --untracked 不能与 --no-index 同时使用"
 
-#: builtin/grep.c:1127
+#: builtin/grep.c:1129
 msgid "--[no-]exclude-standard cannot be used for tracked contents"
 msgstr "--[no-]exclude-standard 不能用于已跟踪内容"
 
-#: builtin/grep.c:1135
+#: builtin/grep.c:1137
 msgid "both --cached and trees are given"
 msgstr "同时给出了 --cached 和树对象"
 
@@ -13147,10 +13570,6 @@ msgstr ""
 msgid "git hash-object  --stdin-paths"
 msgstr "git hash-object  --stdin-paths"
 
-#: builtin/hash-object.c:98
-msgid "type"
-msgstr "类型"
-
 #: builtin/hash-object.c:98
 msgid "object type"
 msgstr "对象类型"
@@ -13266,12 +13685,12 @@ msgstr "没有 man 查看器处理此请求"
 msgid "no info viewer handled the request"
 msgstr "没有 info 查看器处理此请求"
 
-#: builtin/help.c:434 builtin/help.c:445 git.c:335
+#: builtin/help.c:434 builtin/help.c:445 git.c:336
 #, c-format
 msgid "'%s' is aliased to '%s'"
 msgstr "'%s' 是 '%s' 的别名"
 
-#: builtin/help.c:448 git.c:364
+#: builtin/help.c:448 git.c:365
 #, c-format
 msgid "bad alias.%s string: %s"
 msgstr "坏的 alias.%s 字符串:%s"
@@ -13285,290 +13704,285 @@ msgstr "用法:%s%s"
 msgid "'git help config' for more information"
 msgstr "'git help config' 获取更多信息"
 
-#: builtin/index-pack.c:184
+#: builtin/index-pack.c:185
 #, c-format
 msgid "object type mismatch at %s"
 msgstr "%s 的对象类型不匹配"
 
-#: builtin/index-pack.c:204
+#: builtin/index-pack.c:205
 #, c-format
 msgid "did not receive expected object %s"
 msgstr "未能获取预期的对象 %s"
 
-#: builtin/index-pack.c:207
+#: builtin/index-pack.c:208
 #, c-format
 msgid "object %s: expected type %s, found %s"
 msgstr "对象 %s:应为类型 %s,却是 %s"
 
-#: builtin/index-pack.c:257
+#: builtin/index-pack.c:258
 #, c-format
 msgid "cannot fill %d byte"
 msgid_plural "cannot fill %d bytes"
 msgstr[0] "无法填充 %d 字节"
 msgstr[1] "无法填充 %d 字节"
 
-#: builtin/index-pack.c:267
+#: builtin/index-pack.c:268
 msgid "early EOF"
 msgstr "过早的文件结束符(EOF)"
 
-#: builtin/index-pack.c:268
+#: builtin/index-pack.c:269
 msgid "read error on input"
 msgstr "输入上的读错误"
 
-#: builtin/index-pack.c:280
+#: builtin/index-pack.c:281
 msgid "used more bytes than were available"
 msgstr "用掉了超过可用的字节"
 
-#: builtin/index-pack.c:287 builtin/pack-objects.c:600
+#: builtin/index-pack.c:288 builtin/pack-objects.c:604
 msgid "pack too large for current definition of off_t"
 msgstr "包太大超过了当前 off_t 的定义"
 
-#: builtin/index-pack.c:290 builtin/unpack-objects.c:94
+#: builtin/index-pack.c:291 builtin/unpack-objects.c:94
 msgid "pack exceeds maximum allowed size"
 msgstr "包超过了最大允许值"
 
-#: builtin/index-pack.c:305 builtin/repack.c:250
-#, c-format
-msgid "unable to create '%s'"
-msgstr "不能创建 '%s'"
-
-#: builtin/index-pack.c:311
+#: builtin/index-pack.c:312
 #, c-format
 msgid "cannot open packfile '%s'"
 msgstr "无法打开包文件 '%s'"
 
-#: builtin/index-pack.c:325
+#: builtin/index-pack.c:326
 msgid "pack signature mismatch"
 msgstr "包签名不匹配"
 
-#: builtin/index-pack.c:327
+#: builtin/index-pack.c:328
 #, c-format
 msgid "pack version %<PRIu32> unsupported"
 msgstr "不支持包版本 %<PRIu32>"
 
-#: builtin/index-pack.c:345
+#: builtin/index-pack.c:346
 #, c-format
 msgid "pack has bad object at offset %<PRIuMAX>: %s"
 msgstr "包中有错误的对象位于偏移量 %<PRIuMAX>:%s"
 
-#: builtin/index-pack.c:465
+#: builtin/index-pack.c:466
 #, c-format
 msgid "inflate returned %d"
 msgstr "解压缩返回 %d"
 
-#: builtin/index-pack.c:514
+#: builtin/index-pack.c:515
 msgid "offset value overflow for delta base object"
 msgstr "偏移值覆盖了 delta 基准对象"
 
-#: builtin/index-pack.c:522
+#: builtin/index-pack.c:523
 msgid "delta base offset is out of bound"
 msgstr "delta 基准偏移越界"
 
-#: builtin/index-pack.c:530
+#: builtin/index-pack.c:531
 #, c-format
 msgid "unknown object type %d"
 msgstr "未知对象类型 %d"
 
-#: builtin/index-pack.c:561
+#: builtin/index-pack.c:562
 msgid "cannot pread pack file"
 msgstr "无法读取包文件"
 
-#: builtin/index-pack.c:563
+#: builtin/index-pack.c:564
 #, c-format
 msgid "premature end of pack file, %<PRIuMAX> byte missing"
 msgid_plural "premature end of pack file, %<PRIuMAX> bytes missing"
 msgstr[0] "包文件过早结束,缺少 %<PRIuMAX> 字节"
 msgstr[1] "包文件过早结束,缺少 %<PRIuMAX> 字节"
 
-#: builtin/index-pack.c:589
+#: builtin/index-pack.c:590
 msgid "serious inflate inconsistency"
 msgstr "解压缩严重的不一致"
 
-#: builtin/index-pack.c:734 builtin/index-pack.c:740 builtin/index-pack.c:763
-#: builtin/index-pack.c:802 builtin/index-pack.c:811
+#: builtin/index-pack.c:735 builtin/index-pack.c:741 builtin/index-pack.c:764
+#: builtin/index-pack.c:803 builtin/index-pack.c:812
 #, c-format
 msgid "SHA1 COLLISION FOUND WITH %s !"
 msgstr "发现 %s 出现 SHA1 冲突!"
 
-#: builtin/index-pack.c:737 builtin/pack-objects.c:153
-#: builtin/pack-objects.c:213 builtin/pack-objects.c:307
+#: builtin/index-pack.c:738 builtin/pack-objects.c:157
+#: builtin/pack-objects.c:217 builtin/pack-objects.c:311
 #, c-format
 msgid "unable to read %s"
 msgstr "不能读 %s"
 
-#: builtin/index-pack.c:800
+#: builtin/index-pack.c:801
 #, c-format
 msgid "cannot read existing object info %s"
 msgstr "不能读取现存对象信息 %s"
 
-#: builtin/index-pack.c:808
+#: builtin/index-pack.c:809
 #, c-format
 msgid "cannot read existing object %s"
 msgstr "不能读取现存对象 %s"
 
-#: builtin/index-pack.c:822
+#: builtin/index-pack.c:823
 #, c-format
 msgid "invalid blob object %s"
 msgstr "无效的数据对象 %s"
 
-#: builtin/index-pack.c:825 builtin/index-pack.c:844
+#: builtin/index-pack.c:826 builtin/index-pack.c:845
 msgid "fsck error in packed object"
 msgstr "对打包对象 fsck 检查出错"
 
-#: builtin/index-pack.c:846
+#: builtin/index-pack.c:847
 #, c-format
 msgid "Not all child objects of %s are reachable"
 msgstr "%s 的所有子对象并非都可达"
 
-#: builtin/index-pack.c:918 builtin/index-pack.c:949
+#: builtin/index-pack.c:919 builtin/index-pack.c:950
 msgid "failed to apply delta"
 msgstr "应用 delta 失败"
 
-#: builtin/index-pack.c:1117
+#: builtin/index-pack.c:1118
 msgid "Receiving objects"
 msgstr "接收对象中"
 
-#: builtin/index-pack.c:1117
+#: builtin/index-pack.c:1118
 msgid "Indexing objects"
 msgstr "索引对象中"
 
-#: builtin/index-pack.c:1151
+#: builtin/index-pack.c:1152
 msgid "pack is corrupted (SHA1 mismatch)"
 msgstr "包冲突(SHA1 不匹配)"
 
-#: builtin/index-pack.c:1156
+#: builtin/index-pack.c:1157
 msgid "cannot fstat packfile"
 msgstr "不能对包文件调用 fstat"
 
-#: builtin/index-pack.c:1159
+#: builtin/index-pack.c:1160
 msgid "pack has junk at the end"
 msgstr "包的结尾有垃圾数据"
 
-#: builtin/index-pack.c:1171
+#: builtin/index-pack.c:1172
 msgid "confusion beyond insanity in parse_pack_objects()"
 msgstr "parse_pack_objects() 中遇到不可理喻的问题"
 
-#: builtin/index-pack.c:1194
+#: builtin/index-pack.c:1195
 msgid "Resolving deltas"
 msgstr "处理 delta 中"
 
-#: builtin/index-pack.c:1204 builtin/pack-objects.c:2489
+#: builtin/index-pack.c:1205 builtin/pack-objects.c:2497
 #, c-format
 msgid "unable to create thread: %s"
 msgstr "不能创建线程:%s"
 
-#: builtin/index-pack.c:1245
+#: builtin/index-pack.c:1246
 msgid "confusion beyond insanity"
 msgstr "不可理喻"
 
-#: builtin/index-pack.c:1251
+#: builtin/index-pack.c:1252
 #, c-format
 msgid "completed with %d local object"
 msgid_plural "completed with %d local objects"
 msgstr[0] "完成 %d 个本地对象"
 msgstr[1] "完成 %d 个本地对象"
 
-#: builtin/index-pack.c:1263
+#: builtin/index-pack.c:1264
 #, c-format
 msgid "Unexpected tail checksum for %s (disk corruption?)"
 msgstr "对 %s 的尾部校验出现意外(磁盘损坏?)"
 
-#: builtin/index-pack.c:1267
+#: builtin/index-pack.c:1268
 #, c-format
 msgid "pack has %d unresolved delta"
 msgid_plural "pack has %d unresolved deltas"
 msgstr[0] "包有 %d 个未解决的 delta"
 msgstr[1] "包有 %d 个未解决的 delta"
 
-#: builtin/index-pack.c:1291
+#: builtin/index-pack.c:1292
 #, c-format
 msgid "unable to deflate appended object (%d)"
 msgstr "不能压缩附加对象(%d)"
 
-#: builtin/index-pack.c:1368
+#: builtin/index-pack.c:1388
 #, c-format
 msgid "local object %s is corrupt"
 msgstr "本地对象 %s 已损坏"
 
-#: builtin/index-pack.c:1382
+#: builtin/index-pack.c:1402
 #, c-format
 msgid "packfile name '%s' does not end with '.pack'"
 msgstr "包文件名 '%s' 没有以 '.pack' 结尾"
 
-#: builtin/index-pack.c:1407
+#: builtin/index-pack.c:1427
 #, c-format
 msgid "cannot write %s file '%s'"
 msgstr "无法写入 %s 文件 '%s'"
 
-#: builtin/index-pack.c:1415
+#: builtin/index-pack.c:1435
 #, c-format
 msgid "cannot close written %s file '%s'"
 msgstr "无法关闭已写入的 %s 文件 '%s'"
 
-#: builtin/index-pack.c:1439
+#: builtin/index-pack.c:1459
 msgid "error while closing pack file"
 msgstr "关闭包文件时出错"
 
-#: builtin/index-pack.c:1453
+#: builtin/index-pack.c:1473
 msgid "cannot store pack file"
 msgstr "无法存储包文件"
 
-#: builtin/index-pack.c:1461
+#: builtin/index-pack.c:1481
 msgid "cannot store index file"
 msgstr "无法存储索引文件"
 
-#: builtin/index-pack.c:1505 builtin/pack-objects.c:2728
+#: builtin/index-pack.c:1525 builtin/pack-objects.c:2736
 #, c-format
 msgid "bad pack.indexversion=%<PRIu32>"
 msgstr "坏的 pack.indexversion=%<PRIu32>"
 
-#: builtin/index-pack.c:1573
+#: builtin/index-pack.c:1593
 #, c-format
 msgid "Cannot open existing pack file '%s'"
 msgstr "无法打开现存包文件 '%s'"
 
-#: builtin/index-pack.c:1575
+#: builtin/index-pack.c:1595
 #, c-format
 msgid "Cannot open existing pack idx file for '%s'"
 msgstr "无法为 %s 打开包索引文件"
 
-#: builtin/index-pack.c:1623
+#: builtin/index-pack.c:1643
 #, c-format
 msgid "non delta: %d object"
 msgid_plural "non delta: %d objects"
 msgstr[0] "非 delta:%d 个对象"
 msgstr[1] "非 delta:%d 个对象"
 
-#: builtin/index-pack.c:1630
+#: builtin/index-pack.c:1650
 #, c-format
 msgid "chain length = %d: %lu object"
 msgid_plural "chain length = %d: %lu objects"
 msgstr[0] "链长 = %d: %lu 对象"
 msgstr[1] "链长 = %d: %lu 对象"
 
-#: builtin/index-pack.c:1667
+#: builtin/index-pack.c:1689
 msgid "Cannot come back to cwd"
 msgstr "无法返回当前工作目录"
 
-#: builtin/index-pack.c:1716 builtin/index-pack.c:1719
-#: builtin/index-pack.c:1735 builtin/index-pack.c:1739
+#: builtin/index-pack.c:1738 builtin/index-pack.c:1741
+#: builtin/index-pack.c:1757 builtin/index-pack.c:1761
 #, c-format
 msgid "bad %s"
 msgstr "错误选项 %s"
 
-#: builtin/index-pack.c:1755
+#: builtin/index-pack.c:1777
 msgid "--fix-thin cannot be used without --stdin"
 msgstr "--fix-thin 不能和 --stdin 同时使用"
 
-#: builtin/index-pack.c:1757
+#: builtin/index-pack.c:1779
 msgid "--stdin requires a git repository"
 msgstr "--stdin 需要一个 git 仓库"
 
-#: builtin/index-pack.c:1763
+#: builtin/index-pack.c:1785
 msgid "--verify with no packfile name given"
 msgstr "--verify 没有提供包文件名参数"
 
-#: builtin/index-pack.c:1811 builtin/unpack-objects.c:580
+#: builtin/index-pack.c:1833 builtin/unpack-objects.c:580
 msgid "fsck error in pack objects"
 msgstr "在打包对象中 fsck 检查出错"
 
@@ -13663,29 +14077,29 @@ msgstr "权限"
 msgid "specify that the git repository is to be shared amongst several users"
 msgstr "指定 git 仓库是多个用户之间共享的"
 
-#: builtin/init-db.c:526 builtin/init-db.c:531
+#: builtin/init-db.c:529 builtin/init-db.c:534
 #, c-format
 msgid "cannot mkdir %s"
 msgstr "不能创建目录 %s"
 
-#: builtin/init-db.c:535
+#: builtin/init-db.c:538
 #, c-format
 msgid "cannot chdir to %s"
 msgstr "不能切换目录到 %s"
 
-#: builtin/init-db.c:556
+#: builtin/init-db.c:559
 #, c-format
 msgid ""
 "%s (or --work-tree=<directory>) not allowed without specifying %s (or --git-"
 "dir=<directory>)"
 msgstr "不允许 %s(或 --work-tree=<目录>)而没有指定 %s(或 --git-dir=<目录>)"
 
-#: builtin/init-db.c:584
+#: builtin/init-db.c:587
 #, c-format
 msgid "Cannot access work tree '%s'"
 msgstr "不能访问工作区 '%s'"
 
-#: builtin/interpret-trailers.c:15
+#: builtin/interpret-trailers.c:16
 msgid ""
 "git interpret-trailers [--in-place] [--trim-empty] [(--trailer "
 "<token>[(=|:)<value>])...] [<file>...]"
@@ -13693,59 +14107,59 @@ msgstr ""
 "git interpret-trailers [--in-place] [--trim-empty] [(--trailer <键>[(=|:)<值"
 ">])...] [<文件>...]"
 
-#: builtin/interpret-trailers.c:94
+#: builtin/interpret-trailers.c:95
 msgid "edit files in place"
 msgstr "在原位编辑文件"
 
-#: builtin/interpret-trailers.c:95
+#: builtin/interpret-trailers.c:96
 msgid "trim empty trailers"
 msgstr "删除空的尾部署名"
 
-#: builtin/interpret-trailers.c:98
+#: builtin/interpret-trailers.c:99
 msgid "where to place the new trailer"
 msgstr "在哪里放置新的尾部署名"
 
-#: builtin/interpret-trailers.c:100
+#: builtin/interpret-trailers.c:101
 msgid "action if trailer already exists"
 msgstr "当尾部署名已经存在时所采取的动作"
 
-#: builtin/interpret-trailers.c:102
+#: builtin/interpret-trailers.c:103
 msgid "action if trailer is missing"
 msgstr "当尾部署名缺失时所采取的动作"
 
-#: builtin/interpret-trailers.c:104
+#: builtin/interpret-trailers.c:105
 msgid "output only the trailers"
 msgstr "只输出尾部署名"
 
-#: builtin/interpret-trailers.c:105
+#: builtin/interpret-trailers.c:106
 msgid "do not apply config rules"
 msgstr "不要应用配置规则"
 
-#: builtin/interpret-trailers.c:106
+#: builtin/interpret-trailers.c:107
 msgid "join whitespace-continued values"
 msgstr "连接空白折行的值"
 
-#: builtin/interpret-trailers.c:107
+#: builtin/interpret-trailers.c:108
 msgid "set parsing options"
 msgstr "设置解析选项"
 
-#: builtin/interpret-trailers.c:109
+#: builtin/interpret-trailers.c:110
 msgid "do not treat --- specially"
 msgstr "不要对 --- 特殊处理"
 
-#: builtin/interpret-trailers.c:110
+#: builtin/interpret-trailers.c:111
 msgid "trailer"
 msgstr "尾部署名"
 
-#: builtin/interpret-trailers.c:111
+#: builtin/interpret-trailers.c:112
 msgid "trailer(s) to add"
 msgstr "要添加的尾部署名"
 
-#: builtin/interpret-trailers.c:120
+#: builtin/interpret-trailers.c:123
 msgid "--trailer with --only-input does not make sense"
 msgstr "--trailer 和 --only-input 同时使用没有意义"
 
-#: builtin/interpret-trailers.c:130
+#: builtin/interpret-trailers.c:133
 msgid "no input file given for in-place editing"
 msgstr "没有给出要原位编辑的文件"
 
@@ -13757,113 +14171,113 @@ msgstr "git log [<选项>] [<版本范围>] [[--] <路径>...]"
 msgid "git show [<options>] <object>..."
 msgstr "git show [<选项>] <对象>..."
 
-#: builtin/log.c:104
+#: builtin/log.c:109
 #, c-format
 msgid "invalid --decorate option: %s"
 msgstr "无效的 --decorate 选项:%s"
 
-#: builtin/log.c:168
+#: builtin/log.c:173
 msgid "show source"
 msgstr "显示源"
 
-#: builtin/log.c:169
+#: builtin/log.c:174
 msgid "Use mail map file"
 msgstr "使用邮件映射文件"
 
-#: builtin/log.c:171
+#: builtin/log.c:176
 msgid "only decorate refs that match <pattern>"
 msgstr "只修饰与 <模式> 匹配的引用"
 
-#: builtin/log.c:173
+#: builtin/log.c:178
 msgid "do not decorate refs that match <pattern>"
 msgstr "不修饰和 <模式> 匹配的引用"
 
-#: builtin/log.c:174
+#: builtin/log.c:179
 msgid "decorate options"
 msgstr "修饰选项"
 
-#: builtin/log.c:177
+#: builtin/log.c:182
 msgid "Process line range n,m in file, counting from 1"
 msgstr "处理文件中第 n 到 m 之间的行,从 1 开始"
 
-#: builtin/log.c:275
+#: builtin/log.c:280
 #, c-format
 msgid "Final output: %d %s\n"
 msgstr "最终输出:%d %s\n"
 
-#: builtin/log.c:529
+#: builtin/log.c:534
 #, c-format
 msgid "git show %s: bad file"
 msgstr "git show %s: 损坏的文件"
 
-#: builtin/log.c:544 builtin/log.c:638
+#: builtin/log.c:549 builtin/log.c:643
 #, c-format
 msgid "could not read object %s"
 msgstr "不能读取对象 %s"
 
-#: builtin/log.c:663
+#: builtin/log.c:668
 #, c-format
 msgid "unknown type: %d"
 msgstr "未知类型:%d"
 
-#: builtin/log.c:784
+#: builtin/log.c:791
 msgid "format.headers without value"
 msgstr "format.headers 没有值"
 
-#: builtin/log.c:885
+#: builtin/log.c:908
 msgid "name of output directory is too long"
 msgstr "输出目录名太长"
 
-#: builtin/log.c:901
+#: builtin/log.c:924
 #, c-format
 msgid "cannot open patch file %s"
 msgstr "无法打开补丁文件 %s"
 
-#: builtin/log.c:918
+#: builtin/log.c:941
 msgid "need exactly one range"
 msgstr "只需要一个范围"
 
-#: builtin/log.c:928
+#: builtin/log.c:951
 msgid "not a range"
 msgstr "不是一个范围"
 
-#: builtin/log.c:1051
+#: builtin/log.c:1074
 msgid "cover letter needs email format"
 msgstr "附函需要邮件地址格式"
 
-#: builtin/log.c:1057
+#: builtin/log.c:1080
 msgid "failed to create cover-letter file"
 msgstr "无法创建附函文件"
 
-#: builtin/log.c:1136
+#: builtin/log.c:1159
 #, c-format
 msgid "insane in-reply-to: %s"
 msgstr "不正常的 in-reply-to:%s"
 
-#: builtin/log.c:1163
+#: builtin/log.c:1186
 msgid "git format-patch [<options>] [<since> | <revision-range>]"
 msgstr "git format-patch [<选项>] [<从> | <版本范围>]"
 
-#: builtin/log.c:1221
+#: builtin/log.c:1244
 msgid "two output directories?"
 msgstr "两个输出目录?"
 
-#: builtin/log.c:1332 builtin/log.c:2076 builtin/log.c:2078 builtin/log.c:2090
+#: builtin/log.c:1355 builtin/log.c:2099 builtin/log.c:2101 builtin/log.c:2113
 #, c-format
 msgid "unknown commit %s"
 msgstr "未知提交 %s"
 
-#: builtin/log.c:1342 builtin/replace.c:58 builtin/replace.c:207
+#: builtin/log.c:1365 builtin/replace.c:58 builtin/replace.c:207
 #: builtin/replace.c:210
 #, c-format
 msgid "failed to resolve '%s' as a valid ref"
 msgstr "无法将 '%s' 解析为一个有效引用"
 
-#: builtin/log.c:1347
+#: builtin/log.c:1370
 msgid "could not find exact merge base"
 msgstr "不能找到准确的合并基线"
 
-#: builtin/log.c:1351
+#: builtin/log.c:1374
 msgid ""
 "failed to get upstream, if you want to record base commit automatically,\n"
 "please use git branch --set-upstream-to to track a remote branch.\n"
@@ -13873,271 +14287,267 @@ msgstr ""
 "git branch --set-upstream-to 来跟踪一个远程分支。或者你可以通过\n"
 "参数 --base=<基线提交> 手动指定一个基线提交"
 
-#: builtin/log.c:1371
+#: builtin/log.c:1394
 msgid "failed to find exact merge base"
 msgstr "无法找到准确的合并基线"
 
-#: builtin/log.c:1382
+#: builtin/log.c:1405
 msgid "base commit should be the ancestor of revision list"
 msgstr "基线提交应该是版本列表的祖先"
 
-#: builtin/log.c:1386
+#: builtin/log.c:1409
 msgid "base commit shouldn't be in revision list"
 msgstr "基线提交不应该出现在版本列表中"
 
-#: builtin/log.c:1439
+#: builtin/log.c:1462
 msgid "cannot get patch id"
 msgstr "无法得到补丁 id"
 
-#: builtin/log.c:1491
+#: builtin/log.c:1514
 msgid "failed to infer range-diff ranges"
 msgstr "无法推断 range-diff 范围"
 
-#: builtin/log.c:1536
+#: builtin/log.c:1559
 msgid "use [PATCH n/m] even with a single patch"
 msgstr "使用 [PATCH n/m],即使只有一个补丁"
 
-#: builtin/log.c:1539
+#: builtin/log.c:1562
 msgid "use [PATCH] even with multiple patches"
 msgstr "使用 [PATCH],即使有多个补丁"
 
-#: builtin/log.c:1543
+#: builtin/log.c:1566
 msgid "print patches to standard out"
 msgstr "打印补丁到标准输出"
 
-#: builtin/log.c:1545
+#: builtin/log.c:1568
 msgid "generate a cover letter"
 msgstr "生成一封附函"
 
-#: builtin/log.c:1547
+#: builtin/log.c:1570
 msgid "use simple number sequence for output file names"
 msgstr "使用简单的数字序列作为输出文件名"
 
-#: builtin/log.c:1548
+#: builtin/log.c:1571
 msgid "sfx"
 msgstr "后缀"
 
-#: builtin/log.c:1549
+#: builtin/log.c:1572
 msgid "use <sfx> instead of '.patch'"
 msgstr "使用 <后缀> 代替 '.patch'"
 
-#: builtin/log.c:1551
+#: builtin/log.c:1574
 msgid "start numbering patches at <n> instead of 1"
 msgstr "补丁以 <n> 开始编号,而不是1"
 
-#: builtin/log.c:1553
+#: builtin/log.c:1576
 msgid "mark the series as Nth re-roll"
 msgstr "标记补丁系列是第几次重制"
 
-#: builtin/log.c:1555
+#: builtin/log.c:1578
 msgid "Use [RFC PATCH] instead of [PATCH]"
 msgstr "使用 [RFC PATCH] 代替 [PATCH]"
 
-#: builtin/log.c:1558
+#: builtin/log.c:1581
 msgid "Use [<prefix>] instead of [PATCH]"
 msgstr "使用 [<前缀>] 代替 [PATCH]"
 
-#: builtin/log.c:1561
+#: builtin/log.c:1584
 msgid "store resulting files in <dir>"
 msgstr "把结果文件存储在 <目录>"
 
-#: builtin/log.c:1564
+#: builtin/log.c:1587
 msgid "don't strip/add [PATCH]"
 msgstr "不删除/添加 [PATCH]"
 
-#: builtin/log.c:1567
+#: builtin/log.c:1590
 msgid "don't output binary diffs"
 msgstr "不输出二进制差异"
 
-#: builtin/log.c:1569
+#: builtin/log.c:1592
 msgid "output all-zero hash in From header"
 msgstr "在 From 头信息中输出全为零的哈希值"
 
-#: builtin/log.c:1571
+#: builtin/log.c:1594
 msgid "don't include a patch matching a commit upstream"
 msgstr "不包含已在上游提交中的补丁"
 
-#: builtin/log.c:1573
+#: builtin/log.c:1596
 msgid "show patch format instead of default (patch + stat)"
 msgstr "显示纯补丁格式而非默认的(补丁+状态)"
 
-#: builtin/log.c:1575
+#: builtin/log.c:1598
 msgid "Messaging"
 msgstr "邮件发送"
 
-#: builtin/log.c:1576
+#: builtin/log.c:1599
 msgid "header"
 msgstr "header"
 
-#: builtin/log.c:1577
+#: builtin/log.c:1600
 msgid "add email header"
 msgstr "添加邮件头"
 
-#: builtin/log.c:1578 builtin/log.c:1580
+#: builtin/log.c:1601 builtin/log.c:1603
 msgid "email"
 msgstr "邮件地址"
 
-#: builtin/log.c:1578
+#: builtin/log.c:1601
 msgid "add To: header"
 msgstr "添加收件人"
 
-#: builtin/log.c:1580
+#: builtin/log.c:1603
 msgid "add Cc: header"
 msgstr "添加抄送"
 
-#: builtin/log.c:1582
+#: builtin/log.c:1605
 msgid "ident"
 msgstr "标识"
 
-#: builtin/log.c:1583
+#: builtin/log.c:1606
 msgid "set From address to <ident> (or committer ident if absent)"
 msgstr "将 From 地址设置为 <标识>(如若不提供,则用提交者 ID 做为地址)"
 
-#: builtin/log.c:1585
+#: builtin/log.c:1608
 msgid "message-id"
 msgstr "邮件标识"
 
-#: builtin/log.c:1586
+#: builtin/log.c:1609
 msgid "make first mail a reply to <message-id>"
 msgstr "使第一封邮件作为对 <邮件标识> 的回复"
 
-#: builtin/log.c:1587 builtin/log.c:1590
+#: builtin/log.c:1610 builtin/log.c:1613
 msgid "boundary"
 msgstr "边界"
 
-#: builtin/log.c:1588
+#: builtin/log.c:1611
 msgid "attach the patch"
 msgstr "附件方式添加补丁"
 
-#: builtin/log.c:1591
+#: builtin/log.c:1614
 msgid "inline the patch"
 msgstr "内联显示补丁"
 
-#: builtin/log.c:1595
+#: builtin/log.c:1618
 msgid "enable message threading, styles: shallow, deep"
 msgstr "启用邮件线索,风格:浅,深"
 
-#: builtin/log.c:1597
+#: builtin/log.c:1620
 msgid "signature"
 msgstr "签名"
 
-#: builtin/log.c:1598
+#: builtin/log.c:1621
 msgid "add a signature"
 msgstr "添加一个签名"
 
-#: builtin/log.c:1599
+#: builtin/log.c:1622
 msgid "base-commit"
 msgstr "基线提交"
 
-#: builtin/log.c:1600
+#: builtin/log.c:1623
 msgid "add prerequisite tree info to the patch series"
 msgstr "为补丁列表添加前置树信息"
 
-#: builtin/log.c:1602
+#: builtin/log.c:1625
 msgid "add a signature from a file"
 msgstr "从文件添加一个签名"
 
-#: builtin/log.c:1603
+#: builtin/log.c:1626
 msgid "don't print the patch filenames"
 msgstr "不要打印补丁文件名"
 
-#: builtin/log.c:1605
+#: builtin/log.c:1628
 msgid "show progress while generating patches"
 msgstr "在生成补丁时显示进度"
 
-#: builtin/log.c:1606
-msgid "rev"
-msgstr "版本"
-
-#: builtin/log.c:1607
+#: builtin/log.c:1630
 msgid "show changes against <rev> in cover letter or single patch"
 msgstr "在附函或单个补丁中显示和 <rev> 的差异"
 
-#: builtin/log.c:1610
+#: builtin/log.c:1633
 msgid "show changes against <refspec> in cover letter or single patch"
 msgstr "在附函或单个补丁中显示和 <refspec> 的差异"
 
-#: builtin/log.c:1612
+#: builtin/log.c:1635
 msgid "percentage by which creation is weighted"
 msgstr "创建权重的百分比"
 
-#: builtin/log.c:1687
+#: builtin/log.c:1710
 #, c-format
 msgid "invalid ident line: %s"
 msgstr "包含无效的身份标识:%s"
 
-#: builtin/log.c:1702
+#: builtin/log.c:1725
 msgid "-n and -k are mutually exclusive"
 msgstr "-n 和 -k 互斥"
 
-#: builtin/log.c:1704
+#: builtin/log.c:1727
 msgid "--subject-prefix/--rfc and -k are mutually exclusive"
 msgstr "--subject-prefix/--rfc 和 -k 互斥"
 
-#: builtin/log.c:1712
+#: builtin/log.c:1735
 msgid "--name-only does not make sense"
 msgstr "--name-only 无意义"
 
-#: builtin/log.c:1714
+#: builtin/log.c:1737
 msgid "--name-status does not make sense"
 msgstr "--name-status 无意义"
 
-#: builtin/log.c:1716
+#: builtin/log.c:1739
 msgid "--check does not make sense"
 msgstr "--check 无意义"
 
-#: builtin/log.c:1748
+#: builtin/log.c:1771
 msgid "standard output, or directory, which one?"
 msgstr "标准输出或目录,哪一个?"
 
-#: builtin/log.c:1837
+#: builtin/log.c:1860
 msgid "--interdiff requires --cover-letter or single patch"
 msgstr "--interdiff 需要 --cover-letter 或单一补丁"
 
-#: builtin/log.c:1841
+#: builtin/log.c:1864
 msgid "Interdiff:"
 msgstr "版本间差异:"
 
-#: builtin/log.c:1842
+#: builtin/log.c:1865
 #, c-format
 msgid "Interdiff against v%d:"
 msgstr "对 v%d 的版本差异:"
 
-#: builtin/log.c:1848
+#: builtin/log.c:1871
 msgid "--creation-factor requires --range-diff"
 msgstr "--creation-factor 需要 --range-diff"
 
-#: builtin/log.c:1852
+#: builtin/log.c:1875
 msgid "--range-diff requires --cover-letter or single patch"
 msgstr "--range-diff 需要 --cover-letter 或单一补丁"
 
-#: builtin/log.c:1860
+#: builtin/log.c:1883
 msgid "Range-diff:"
 msgstr "范围差异:"
 
-#: builtin/log.c:1861
+#: builtin/log.c:1884
 #, c-format
 msgid "Range-diff against v%d:"
 msgstr "对 v%d 的范围差异:"
 
-#: builtin/log.c:1872
+#: builtin/log.c:1895
 #, c-format
 msgid "unable to read signature file '%s'"
 msgstr "无法读取签名文件 '%s'"
 
-#: builtin/log.c:1908
+#: builtin/log.c:1931
 msgid "Generating patches"
 msgstr "生成补丁"
 
-#: builtin/log.c:1952
+#: builtin/log.c:1975
 msgid "failed to create output files"
 msgstr "无法创建输出文件"
 
-#: builtin/log.c:2011
+#: builtin/log.c:2034
 msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
 msgstr "git cherry [-v] [<上游> [<头> [<限制>]]]"
 
-#: builtin/log.c:2065
+#: builtin/log.c:2088
 #, c-format
 msgid ""
 "Could not find a tracked remote branch, please specify <upstream> manually.\n"
@@ -14261,7 +14671,7 @@ msgstr ""
 msgid "do not print remote URL"
 msgstr "不打印远程 URL"
 
-#: builtin/ls-remote.c:60 builtin/ls-remote.c:62 builtin/rebase.c:1458
+#: builtin/ls-remote.c:60 builtin/ls-remote.c:62 builtin/rebase.c:1464
 msgid "exec"
 msgstr "exec"
 
@@ -14334,186 +14744,191 @@ msgstr "列出整个树;不仅仅当前目录(隐含 --full-name)"
 msgid "empty mbox: '%s'"
 msgstr "空的 mbox:'%s'"
 
-#: builtin/merge.c:54
+#: builtin/merge.c:55
 msgid "git merge [<options>] [<commit>...]"
 msgstr "git merge [<选项>] [<提交>...]"
 
-#: builtin/merge.c:55
+#: builtin/merge.c:56
 msgid "git merge --abort"
 msgstr "git merge --abort"
 
-#: builtin/merge.c:56
+#: builtin/merge.c:57
 msgid "git merge --continue"
 msgstr "git merge --continue"
 
-#: builtin/merge.c:116
+#: builtin/merge.c:118
 msgid "switch `m' requires a value"
 msgstr "开关 `m' 需要一个值"
 
-#: builtin/merge.c:139
+#: builtin/merge.c:141
 #, c-format
 msgid "option `%s' requires a value"
 msgstr "选项 `%s' 需要一个值"
 
-#: builtin/merge.c:185
+#: builtin/merge.c:187
 #, c-format
 msgid "Could not find merge strategy '%s'.\n"
 msgstr "不能找到合并策略 '%s'。\n"
 
-#: builtin/merge.c:186
+#: builtin/merge.c:188
 #, c-format
 msgid "Available strategies are:"
 msgstr "可用的策略有:"
 
-#: builtin/merge.c:191
+#: builtin/merge.c:193
 #, c-format
 msgid "Available custom strategies are:"
 msgstr "可用的自定义策略有:"
 
-#: builtin/merge.c:242 builtin/pull.c:150
+#: builtin/merge.c:244 builtin/pull.c:151
 msgid "do not show a diffstat at the end of the merge"
 msgstr "在合并的最后不显示差异统计"
 
-#: builtin/merge.c:245 builtin/pull.c:153
+#: builtin/merge.c:247 builtin/pull.c:154
 msgid "show a diffstat at the end of the merge"
 msgstr "在合并的最后显示差异统计"
 
-#: builtin/merge.c:246 builtin/pull.c:156
+#: builtin/merge.c:248 builtin/pull.c:157
 msgid "(synonym to --stat)"
 msgstr "(和 --stat 同义)"
 
-#: builtin/merge.c:248 builtin/pull.c:159
+#: builtin/merge.c:250 builtin/pull.c:160
 msgid "add (at most <n>) entries from shortlog to merge commit message"
 msgstr "在合并提交信息中添加(最多 <n> 条)精简提交记录"
 
-#: builtin/merge.c:251 builtin/pull.c:165
+#: builtin/merge.c:253 builtin/pull.c:166
 msgid "create a single commit instead of doing a merge"
 msgstr "创建一个单独的提交而不是做一次合并"
 
-#: builtin/merge.c:253 builtin/pull.c:168
+#: builtin/merge.c:255 builtin/pull.c:169
 msgid "perform a commit if the merge succeeds (default)"
 msgstr "如果合并成功,执行一次提交(默认)"
 
-#: builtin/merge.c:255 builtin/pull.c:171
+#: builtin/merge.c:257 builtin/pull.c:172
 msgid "edit message before committing"
 msgstr "在提交前编辑提交说明"
 
-#: builtin/merge.c:257
+#: builtin/merge.c:259
 msgid "allow fast-forward (default)"
 msgstr "允许快进(默认)"
 
-#: builtin/merge.c:259 builtin/pull.c:178
+#: builtin/merge.c:261 builtin/pull.c:179
 msgid "abort if fast-forward is not possible"
 msgstr "如果不能快进就放弃合并"
 
-#: builtin/merge.c:263 builtin/pull.c:181
+#: builtin/merge.c:265 builtin/pull.c:182
 msgid "verify that the named commit has a valid GPG signature"
 msgstr "验证指定的提交是否包含一个有效的 GPG 签名"
 
-#: builtin/merge.c:264 builtin/notes.c:787 builtin/pull.c:185
-#: builtin/rebase.c:492 builtin/rebase.c:1471 builtin/revert.c:113
+#: builtin/merge.c:266 builtin/notes.c:787 builtin/pull.c:186
+#: builtin/rebase.c:492 builtin/rebase.c:1477 builtin/revert.c:114
 msgid "strategy"
 msgstr "策略"
 
-#: builtin/merge.c:265 builtin/pull.c:186
+#: builtin/merge.c:267 builtin/pull.c:187
 msgid "merge strategy to use"
 msgstr "要使用的合并策略"
 
-#: builtin/merge.c:266 builtin/pull.c:189
+#: builtin/merge.c:268 builtin/pull.c:190
 msgid "option=value"
 msgstr "option=value"
 
-#: builtin/merge.c:267 builtin/pull.c:190
+#: builtin/merge.c:269 builtin/pull.c:191
 msgid "option for selected merge strategy"
 msgstr "所选的合并策略的选项"
 
-#: builtin/merge.c:269
+#: builtin/merge.c:271
 msgid "merge commit message (for a non-fast-forward merge)"
 msgstr "合并的提交说明(针对非快进式合并)"
 
-#: builtin/merge.c:276
+#: builtin/merge.c:278
 msgid "abort the current in-progress merge"
 msgstr "放弃当前正在进行的合并"
 
-#: builtin/merge.c:278
+#
+#: builtin/merge.c:280
+msgid "--abort but leave index and working tree alone"
+msgstr "--abort,但是保留索引和工作区"
+
+#: builtin/merge.c:282
 msgid "continue the current in-progress merge"
 msgstr "继续当前正在进行的合并"
 
-#: builtin/merge.c:280 builtin/pull.c:197
+#: builtin/merge.c:284 builtin/pull.c:198
 msgid "allow merging unrelated histories"
 msgstr "允许合并不相关的历史"
 
-#: builtin/merge.c:286
+#: builtin/merge.c:290
 msgid "verify commit-msg hook"
 msgstr "校验 commit-msg 钩子"
 
-#: builtin/merge.c:311
+#: builtin/merge.c:307
 msgid "could not run stash."
 msgstr "不能运行贮藏。"
 
-#: builtin/merge.c:316
+#: builtin/merge.c:312
 msgid "stash failed"
 msgstr "贮藏失败"
 
-#: builtin/merge.c:321
+#: builtin/merge.c:317
 #, c-format
 msgid "not a valid object: %s"
 msgstr "不是一个有效对象:%s"
 
-#: builtin/merge.c:343 builtin/merge.c:360
+#: builtin/merge.c:339 builtin/merge.c:356
 msgid "read-tree failed"
 msgstr "读取树失败"
 
 #  译者:注意保持前导空格
-#: builtin/merge.c:390
+#: builtin/merge.c:386
 msgid " (nothing to squash)"
 msgstr " (无可压缩)"
 
-#: builtin/merge.c:401
+#: builtin/merge.c:397
 #, c-format
 msgid "Squash commit -- not updating HEAD\n"
 msgstr "压缩提交 -- 未更新 HEAD\n"
 
-#: builtin/merge.c:451
+#: builtin/merge.c:447
 #, c-format
 msgid "No merge message -- not updating HEAD\n"
 msgstr "无合并信息 -- 未更新 HEAD\n"
 
-#: builtin/merge.c:502
+#: builtin/merge.c:498
 #, c-format
 msgid "'%s' does not point to a commit"
 msgstr "'%s' 没有指向一个提交"
 
-#: builtin/merge.c:589
+#: builtin/merge.c:585
 #, c-format
 msgid "Bad branch.%s.mergeoptions string: %s"
 msgstr "坏的 branch.%s.mergeoptions 字符串:%s"
 
-#: builtin/merge.c:712
+#: builtin/merge.c:708
 msgid "Not handling anything other than two heads merge."
 msgstr "未处理两个头合并之外的任何操作。"
 
-#: builtin/merge.c:726
+#: builtin/merge.c:722
 #, c-format
 msgid "Unknown option for merge-recursive: -X%s"
 msgstr "merge-recursive 的未知选项:-X%s"
 
-#: builtin/merge.c:741
+#: builtin/merge.c:737
 #, c-format
 msgid "unable to write %s"
 msgstr "不能写 %s"
 
-#: builtin/merge.c:793
+#: builtin/merge.c:789
 #, c-format
 msgid "Could not read from '%s'"
 msgstr "不能从 '%s' 读取"
 
-#: builtin/merge.c:802
+#: builtin/merge.c:798
 #, c-format
 msgid "Not committing merge; use 'git commit' to complete the merge.\n"
 msgstr "未提交合并,使用 'git commit' 完成此次合并。\n"
 
-#: builtin/merge.c:808
+#: builtin/merge.c:804
 msgid ""
 "Please enter a commit message to explain why this merge is necessary,\n"
 "especially if it merges an updated upstream into a topic branch.\n"
@@ -14523,79 +14938,83 @@ msgstr ""
 "合并到主题分支。\n"
 "\n"
 
-#: builtin/merge.c:813
+#: builtin/merge.c:809
 msgid "An empty message aborts the commit.\n"
 msgstr "空的提交说明会终止提交。\n"
 
-#: builtin/merge.c:816
+#: builtin/merge.c:812
 #, c-format
 msgid ""
 "Lines starting with '%c' will be ignored, and an empty message aborts\n"
 "the commit.\n"
 msgstr "以 '%c' 开始的行将被忽略,而空的提交说明将终止提交。\n"
 
-#: builtin/merge.c:857
+#: builtin/merge.c:853
 msgid "Empty commit message."
 msgstr "空提交信息。"
 
-#: builtin/merge.c:876
+#: builtin/merge.c:872
 #, c-format
 msgid "Wonderful.\n"
 msgstr "太棒了。\n"
 
-#: builtin/merge.c:936
+#: builtin/merge.c:933
 #, c-format
 msgid "Automatic merge failed; fix conflicts and then commit the result.\n"
 msgstr "自动合并失败,修正冲突然后提交修正的结果。\n"
 
-#: builtin/merge.c:975
+#: builtin/merge.c:972
 msgid "No current branch."
 msgstr "没有当前分支。"
 
-#: builtin/merge.c:977
+#: builtin/merge.c:974
 msgid "No remote for the current branch."
 msgstr "当前分支没有对应的远程仓库。"
 
-#: builtin/merge.c:979
+#: builtin/merge.c:976
 msgid "No default upstream defined for the current branch."
 msgstr "当前分支没有定义默认的上游分支。"
 
-#: builtin/merge.c:984
+#: builtin/merge.c:981
 #, c-format
 msgid "No remote-tracking branch for %s from %s"
 msgstr "对于 %s 没有来自 %s 的远程跟踪分支"
 
-#: builtin/merge.c:1041
+#: builtin/merge.c:1038
 #, c-format
 msgid "Bad value '%s' in environment '%s'"
 msgstr "环境 '%2$s' 中存在坏的取值 '%1$s'"
 
-#: builtin/merge.c:1144
+#: builtin/merge.c:1141
 #, c-format
 msgid "not something we can merge in %s: %s"
 msgstr "不能在 %s 中合并:%s"
 
-#: builtin/merge.c:1178
+#: builtin/merge.c:1175
 msgid "not something we can merge"
 msgstr "不能合并"
 
-#: builtin/merge.c:1281
+#: builtin/merge.c:1278
 msgid "--abort expects no arguments"
 msgstr "--abort 不带参数"
 
-#: builtin/merge.c:1285
+#: builtin/merge.c:1282
 msgid "There is no merge to abort (MERGE_HEAD missing)."
 msgstr "没有要终止的合并(MERGE_HEAD 丢失)。"
 
-#: builtin/merge.c:1297
+#: builtin/merge.c:1291
+msgid "--quit expects no arguments"
+msgstr "--quit 不带参数"
+
+#: builtin/merge.c:1304
 msgid "--continue expects no arguments"
 msgstr "--continue 不带参数"
 
-#: builtin/merge.c:1301
+#: builtin/merge.c:1308
 msgid "There is no merge in progress (MERGE_HEAD missing)."
 msgstr "没有进行中的合并(MERGE_HEAD 丢失)。"
 
-#: builtin/merge.c:1317
+#: builtin/merge.c:1324
 msgid ""
 "You have not concluded your merge (MERGE_HEAD exists).\n"
 "Please, commit your changes before you merge."
@@ -14603,7 +15022,7 @@ msgstr ""
 "您尚未结束您的合并(存在 MERGE_HEAD)。\n"
 "请在合并前先提交您的修改。"
 
-#: builtin/merge.c:1324
+#: builtin/merge.c:1331
 msgid ""
 "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
 "Please, commit your changes before you merge."
@@ -14611,92 +15030,96 @@ msgstr ""
 "您尚未结束您的拣选(存在 CHERRY_PICK_HEAD)。\n"
 "请在合并前先提交您的修改。"
 
-#: builtin/merge.c:13