]> git.ipfire.org Git - thirdparty/git.git/blobdiff - po/zh_CN.po
Merge branch 'en/ort-perf-batch-9'
[thirdparty/git.git] / po / zh_CN.po
index b30a1e57046d9652a3ffade5f08b267a3a19c1b9..fdaaea81974ee0049f6cac714fe113ffbb813984 100644 (file)
@@ -92,6 +92,7 @@
 #   plumbing                         |  管件(Git 底层核心命令的别称)
 #   porcelain                        |  瓷件(Git 上层封装命令的别称)
 #   precious-objects repo            |  珍品仓库
+#   promisor                         |  承诺者
 #   prune                            |  清除
 #   pull                             |  拉,拉取
 #   push                             |  推,推送
@@ -140,8 +141,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Git\n"
 "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2020-12-21 07:10+0800\n"
-"PO-Revision-Date: 2020-12-26 21:43+0800\n"
+"POT-Creation-Date: 2021-03-04 22:41+0800\n"
+"PO-Revision-Date: 2021-03-14 23:21+0800\n"
 "Last-Translator: Jiang Xin <worldhello.net@gmail.com>\n"
 "Language-Team: GitHub <https://github.com/jiangxin/git/>\n"
 "Language: zh_CN\n"
@@ -155,9 +156,9 @@ msgstr ""
 msgid "Huh (%s)?"
 msgstr "嗯(%s)?"
 
-#: add-interactive.c:529 add-interactive.c:830 reset.c:65 sequencer.c:3284
-#: sequencer.c:3735 sequencer.c:3890 builtin/rebase.c:1532
-#: builtin/rebase.c:1955
+#: add-interactive.c:529 add-interactive.c:830 reset.c:65 sequencer.c:3292
+#: sequencer.c:3743 sequencer.c:3898 builtin/rebase.c:1538
+#: builtin/rebase.c:1963
 msgid "could not read index"
 msgstr "不能读取索引"
 
@@ -185,7 +186,7 @@ msgstr "更新"
 msgid "could not stage '%s'"
 msgstr "不能暂存 '%s'"
 
-#: add-interactive.c:703 add-interactive.c:892 reset.c:89 sequencer.c:3478
+#: add-interactive.c:703 add-interactive.c:892 reset.c:89 sequencer.c:3486
 msgid "could not write index"
 msgstr "不能写入索引"
 
@@ -343,7 +344,7 @@ msgstr "未缓存"
 
 #: add-interactive.c:1144 apply.c:4987 apply.c:4990 builtin/am.c:2257
 #: builtin/am.c:2260 builtin/bugreport.c:134 builtin/clone.c:124
-#: builtin/fetch.c:147 builtin/merge.c:284 builtin/pull.c:190
+#: builtin/fetch.c:150 builtin/merge.c:285 builtin/pull.c:190
 #: builtin/submodule--helper.c:409 builtin/submodule--helper.c:1818
 #: builtin/submodule--helper.c:1821 builtin/submodule--helper.c:2326
 #: builtin/submodule--helper.c:2329 builtin/submodule--helper.c:2572
@@ -904,7 +905,7 @@ msgstr ""
 msgid "Exiting because of an unresolved conflict."
 msgstr "因为存在未解决的冲突而退出。"
 
-#: advice.c:281 builtin/merge.c:1369
+#: advice.c:281 builtin/merge.c:1370
 msgid "You have not concluded your merge (MERGE_HEAD exists)."
 msgstr "您尚未结束您的合并(存在 MERGE_HEAD)。"
 
@@ -1194,7 +1195,8 @@ msgstr "打补丁失败:%s:%ld"
 msgid "cannot checkout %s"
 msgstr "不能检出 %s"
 
-#: apply.c:3405 apply.c:3416 apply.c:3462 midx.c:73 setup.c:308
+#: apply.c:3405 apply.c:3416 apply.c:3462 midx.c:86 pack-revindex.c:213
+#: setup.c:308
 #, c-format
 msgid "failed to read %s"
 msgstr "无法读取 %s"
@@ -1353,7 +1355,7 @@ msgstr "不能为新建文件 %s 创建后端存储"
 msgid "unable to add cache entry for %s"
 msgstr "无法为 %s 添加缓存条目"
 
-#: apply.c:4374 builtin/bisect--helper.c:524
+#: apply.c:4374 builtin/bisect--helper.c:523
 #, c-format
 msgid "failed to write to '%s'"
 msgstr "写入 '%s' 失败"
@@ -1389,7 +1391,7 @@ msgstr[1] "应用 %%s 个补丁,其中 %d 个被拒绝..."
 msgid "truncating .rej filename to %.*s.rej"
 msgstr "截短 .rej 文件名为 %.*s.rej"
 
-#: apply.c:4576 builtin/fetch.c:927 builtin/fetch.c:1228
+#: apply.c:4576 builtin/fetch.c:933 builtin/fetch.c:1334
 #, c-format
 msgid "cannot open %s"
 msgstr "不能打开 %s"
@@ -1443,7 +1445,7 @@ msgid_plural "%d lines applied after fixing whitespace errors."
 msgstr[0] "修复空白错误后,应用了 %d 行。"
 msgstr[1] "修复空白错误后,应用了 %d 行。"
 
-#: apply.c:4960 builtin/add.c:618 builtin/mv.c:304 builtin/rm.c:406
+#: apply.c:4960 builtin/add.c:626 builtin/mv.c:304 builtin/rm.c:406
 msgid "Unable to write new index file"
 msgstr "无法写入新索引文件"
 
@@ -1511,7 +1513,7 @@ msgstr "如果一个补丁不能应用则尝试三方合并"
 msgid "build a temporary index based on embedded index information"
 msgstr "创建一个临时索引基于嵌入的索引信息"
 
-#: apply.c:5025 builtin/checkout-index.c:182 builtin/ls-files.c:525
+#: apply.c:5025 builtin/checkout-index.c:195 builtin/ls-files.c:540
 msgid "paths are separated with NUL character"
 msgstr "路径以 NUL 字符分隔"
 
@@ -1521,7 +1523,7 @@ msgstr "确保至少匹配 <n> 行上下文"
 
 #: apply.c:5028 builtin/am.c:2245 builtin/interpret-trailers.c:98
 #: builtin/interpret-trailers.c:100 builtin/interpret-trailers.c:102
-#: builtin/pack-objects.c:3562 builtin/rebase.c:1346
+#: builtin/pack-objects.c:3577 builtin/rebase.c:1352
 msgid "action"
 msgstr "动作"
 
@@ -1549,9 +1551,9 @@ msgstr "将拒绝的补丁片段保存在对应的 *.rej 文件中"
 msgid "allow overlapping hunks"
 msgstr "允许重叠的补丁片段"
 
-#: apply.c:5045 builtin/add.c:329 builtin/check-ignore.c:22
-#: builtin/commit.c:1364 builtin/count-objects.c:98 builtin/fsck.c:775
-#: builtin/log.c:2287 builtin/mv.c:123 builtin/read-tree.c:128
+#: apply.c:5045 builtin/add.c:337 builtin/check-ignore.c:22
+#: builtin/commit.c:1364 builtin/count-objects.c:98 builtin/fsck.c:757
+#: builtin/log.c:2286 builtin/mv.c:123 builtin/read-tree.c:128
 msgid "be verbose"
 msgstr "冗长输出"
 
@@ -1638,14 +1640,14 @@ msgstr "git archive --remote <仓库> [--exec <命令>] --list"
 msgid "cannot read %s"
 msgstr "不能读取 %s"
 
-#: archive.c:345 sequencer.c:459 sequencer.c:1736 sequencer.c:2886
-#: sequencer.c:3327 sequencer.c:3436 builtin/am.c:249 builtin/commit.c:786
-#: builtin/merge.c:1138
+#: archive.c:345 sequencer.c:459 sequencer.c:1744 sequencer.c:2894
+#: sequencer.c:3335 sequencer.c:3444 builtin/am.c:249 builtin/commit.c:786
+#: builtin/merge.c:1139
 #, c-format
 msgid "could not read '%s'"
 msgstr "不能读取 '%s'"
 
-#: archive.c:430 builtin/add.c:181 builtin/add.c:594 builtin/rm.c:315
+#: archive.c:430 builtin/add.c:189 builtin/add.c:602 builtin/rm.c:315
 #, c-format
 msgid "pathspec '%s' did not match any files"
 msgstr "路径规格 '%s' 未匹配任何文件"
@@ -1687,7 +1689,7 @@ msgstr "格式"
 msgid "archive format"
 msgstr "归档格式"
 
-#: archive.c:556 builtin/log.c:1765
+#: archive.c:556 builtin/log.c:1764
 msgid "prefix"
 msgstr "前缀"
 
@@ -1695,11 +1697,11 @@ msgstr "前缀"
 msgid "prepend prefix to each pathname in the archive"
 msgstr "为归档中每个路径名加上前缀"
 
-#: archive.c:558 archive.c:561 builtin/blame.c:886 builtin/blame.c:890
-#: builtin/blame.c:891 builtin/commit-tree.c:117 builtin/config.c:135
+#: archive.c:558 archive.c:561 builtin/blame.c:884 builtin/blame.c:888
+#: builtin/blame.c:889 builtin/commit-tree.c:117 builtin/config.c:135
 #: builtin/fast-export.c:1207 builtin/fast-export.c:1209
-#: builtin/fast-export.c:1213 builtin/grep.c:919 builtin/hash-object.c:105
-#: builtin/ls-files.c:561 builtin/ls-files.c:564 builtin/notes.c:412
+#: builtin/fast-export.c:1213 builtin/grep.c:920 builtin/hash-object.c:105
+#: builtin/ls-files.c:576 builtin/ls-files.c:579 builtin/notes.c:412
 #: builtin/notes.c:578 builtin/read-tree.c:123 parse-options.h:190
 msgid "file"
 msgstr "文件"
@@ -1864,12 +1866,12 @@ msgstr "二分查找中:合并基线必须是经过测试的\n"
 msgid "a %s revision is needed"
 msgstr "需要一个 %s 版本"
 
-#: bisect.c:941 builtin/notes.c:177 builtin/tag.c:255
+#: bisect.c:941 builtin/notes.c:177 builtin/tag.c:287
 #, c-format
 msgid "could not create file '%s'"
 msgstr "不能创建文件 '%s'"
 
-#: bisect.c:987 builtin/merge.c:152
+#: bisect.c:987 builtin/merge.c:153
 #, c-format
 msgid "could not read file '%s'"
 msgstr "不能读取文件 '%s'"
@@ -1887,7 +1889,7 @@ msgstr "%s 同时为 %s 和 %s\n"
 #, c-format
 msgid ""
 "No testable commit found.\n"
-"Maybe you started with bad path parameters?\n"
+"Maybe you started with bad path arguments?\n"
 msgstr ""
 "没有发现可测试的提交。\n"
 "可能您在运行时使用了错误的路径参数?\n"
@@ -1921,11 +1923,11 @@ msgstr "不能将 --contents 和最终的提交对象名共用"
 msgid "--reverse and --first-parent together require specified latest commit"
 msgstr "--reverse 和 --first-parent 共用,需要指定最新的提交"
 
-#: blame.c:2821 bundle.c:213 ref-filter.c:2272 remote.c:2031 sequencer.c:2138
-#: sequencer.c:4633 submodule.c:855 builtin/commit.c:1045 builtin/log.c:409
-#: builtin/log.c:1023 builtin/log.c:1625 builtin/log.c:2046 builtin/log.c:2336
-#: builtin/merge.c:423 builtin/pack-objects.c:3380 builtin/pack-objects.c:3395
-#: builtin/shortlog.c:267
+#: blame.c:2821 bundle.c:213 ref-filter.c:2206 remote.c:2041 sequencer.c:2146
+#: sequencer.c:4641 submodule.c:856 builtin/commit.c:1045 builtin/log.c:411
+#: builtin/log.c:1016 builtin/log.c:1624 builtin/log.c:2045 builtin/log.c:2335
+#: builtin/merge.c:424 builtin/pack-objects.c:3395 builtin/pack-objects.c:3410
+#: builtin/shortlog.c:255
 msgid "revision walk setup failed"
 msgstr "版本遍历设置失败"
 
@@ -2097,7 +2099,7 @@ msgstr "'%s' 不像是一个 v2 或 v3 版本的归档包文件"
 msgid "unrecognized header: %s%s (%d)"
 msgstr "未能识别的包头:%s%s (%d)"
 
-#: bundle.c:136 rerere.c:480 rerere.c:690 sequencer.c:2390 sequencer.c:3176
+#: bundle.c:136 rerere.c:464 rerere.c:674 sequencer.c:2398 sequencer.c:3184
 #: builtin/commit.c:814
 #, c-format
 msgid "could not open '%s'"
@@ -2141,295 +2143,308 @@ msgstr "不能生成 pack-objects 进程"
 msgid "pack-objects died"
 msgstr "pack-objects 终止"
 
-#: bundle.c:379
-msgid "rev-list died"
-msgstr "rev-list 终止"
-
-#: bundle.c:428
+#: bundle.c:386
 #, c-format
 msgid "ref '%s' is excluded by the rev-list options"
 msgstr "引用 '%s' 被 rev-list 选项排除"
 
-#: bundle.c:498
+#: bundle.c:490
 #, c-format
 msgid "unsupported bundle version %d"
 msgstr "不支持的归档包版本 %d"
 
-#: bundle.c:500
+#: bundle.c:492
 #, c-format
 msgid "cannot write bundle version %d with algorithm %s"
 msgstr "不能写入,归档包版本 %d 不支持算法 %s"
 
-#: bundle.c:522 builtin/log.c:209 builtin/log.c:1927 builtin/shortlog.c:408
+#: bundle.c:510 builtin/log.c:210 builtin/log.c:1926 builtin/shortlog.c:396
 #, c-format
 msgid "unrecognized argument: %s"
 msgstr "未能识别的参数:%s"
 
-#: bundle.c:530
+#: bundle.c:539
 msgid "Refusing to create empty bundle."
 msgstr "不能创建空的归档包。"
 
-#: bundle.c:540
+#: bundle.c:549
 #, c-format
 msgid "cannot create '%s'"
 msgstr "不能创建 '%s'"
 
-#: bundle.c:565
+#: bundle.c:574
 msgid "index-pack died"
 msgstr "index-pack 终止"
 
+#: chunk-format.c:113
+msgid "terminating chunk id appears earlier than expected"
+msgstr "终止块 ID 比预期更早出现"
+
+#: chunk-format.c:122
+#, c-format
+msgid "improper chunk offset(s) %<PRIx64> and %<PRIx64>"
+msgstr "不正确的块偏移 %<PRIx64> 和 %<PRIx64>"
+
+#: chunk-format.c:129
+#, c-format
+msgid "duplicate chunk ID %<PRIx32> found"
+msgstr "发现重复的块ID %<PRIx32>"
+
+#: chunk-format.c:143
+#, c-format
+msgid "final chunk has non-zero id %<PRIx32>"
+msgstr "最终块有非零 ID %<PRIx32>"
+
 #: color.c:329
 #, c-format
 msgid "invalid color value: %.*s"
 msgstr "无效的颜色值:%.*s"
 
-#: commit-graph.c:188 midx.c:47
+#: commit-graph.c:197 midx.c:46
 msgid "invalid hash version"
 msgstr "无效的哈希版本"
 
-#: commit-graph.c:246
+#: commit-graph.c:255
 msgid "commit-graph file is too small"
 msgstr "提交图形文件太小"
 
-#: commit-graph.c:311
+#: commit-graph.c:348
 #, c-format
 msgid "commit-graph signature %X does not match signature %X"
 msgstr "提交图形签名 %X 和签名 %X 不匹配"
 
-#: commit-graph.c:318
+#: commit-graph.c:355
 #, c-format
 msgid "commit-graph version %X does not match version %X"
 msgstr "提交图形版本 %X 和版本 %X 不匹配"
 
-#: commit-graph.c:325
+#: commit-graph.c:362
 #, c-format
 msgid "commit-graph hash version %X does not match version %X"
 msgstr "提交图形哈希版本 %X 和版本 %X 不匹配"
 
-#: commit-graph.c:342
+#: commit-graph.c:379
 #, c-format
 msgid "commit-graph file is too small to hold %u chunks"
 msgstr "提交图形文件太小,容不下 %u 个块"
 
-#: commit-graph.c:361
-#, c-format
-msgid "commit-graph improper chunk offset %08x%08x"
-msgstr "提交图形不正确的块偏移 %08x%08x"
-
-#: commit-graph.c:433
-#, c-format
-msgid "commit-graph chunk id %08x appears multiple times"
-msgstr "提交图形块 id %08x 出现了多次"
-
-#: commit-graph.c:499
+#: commit-graph.c:472
 msgid "commit-graph has no base graphs chunk"
 msgstr "提交图形没有基础图形块"
 
-#: commit-graph.c:509
+#: commit-graph.c:482
 msgid "commit-graph chain does not match"
 msgstr "提交图形链不匹配"
 
-#: commit-graph.c:557
+#: commit-graph.c:530
 #, c-format
 msgid "invalid commit-graph chain: line '%s' not a hash"
 msgstr "无效的提交图形链:行 '%s' 不是一个哈希值"
 
-#: commit-graph.c:581
+#: commit-graph.c:554
 msgid "unable to find all commit-graph files"
 msgstr "无法找到所有提交图形文件"
 
-#: commit-graph.c:721 commit-graph.c:785
+#: commit-graph.c:735 commit-graph.c:772
 msgid "invalid commit position. commit-graph is likely corrupt"
 msgstr "无效的提交位置。提交图形可能已损坏"
 
-#: commit-graph.c:742
+#: commit-graph.c:756
 #, c-format
 msgid "could not find commit %s"
 msgstr "无法找到提交 %s"
 
-#: commit-graph.c:1036 builtin/am.c:1292
+#: commit-graph.c:789
+msgid "commit-graph requires overflow generation data but has none"
+msgstr "提交图需要溢出世代数据,但是没有"
+
+#: commit-graph.c:1065 builtin/am.c:1292
 #, c-format
 msgid "unable to parse commit %s"
 msgstr "不能解析提交 %s"
 
-#: commit-graph.c:1252 builtin/pack-objects.c:2864
+#: commit-graph.c:1327 builtin/pack-objects.c:2872
 #, c-format
 msgid "unable to get type of object %s"
 msgstr "无法获得对象 %s 类型"
 
-#: commit-graph.c:1283
+#: commit-graph.c:1358
 msgid "Loading known commits in commit graph"
 msgstr "正在加载提交图中的已知提交"
 
-#: commit-graph.c:1300
+#: commit-graph.c:1375
 msgid "Expanding reachable commits in commit graph"
 msgstr "正在扩展提交图中的可达提交"
 
-#: commit-graph.c:1320
+#: commit-graph.c:1395
 msgid "Clearing commit marks in commit graph"
 msgstr "正在清除提交图中的提交标记"
 
-#: commit-graph.c:1339
+#: commit-graph.c:1414
+msgid "Computing commit graph topological levels"
+msgstr "正在计算提交图拓扑级别"
+
+#: commit-graph.c:1467
 msgid "Computing commit graph generation numbers"
 msgstr "正在计算提交图世代数字"
 
-#: commit-graph.c:1406
+#: commit-graph.c:1548
 msgid "Computing commit changed paths Bloom filters"
 msgstr "计算提交变更路径的布隆过滤器"
 
-#: commit-graph.c:1483
+#: commit-graph.c:1625
 msgid "Collecting referenced commits"
 msgstr "正在收集引用的提交"
 
-#: commit-graph.c:1508
+#: commit-graph.c:1650
 #, 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:1521
+#: commit-graph.c:1663
 #, c-format
 msgid "error adding pack %s"
 msgstr "添加包 %s 出错"
 
-#: commit-graph.c:1525
+#: commit-graph.c:1667
 #, c-format
 msgid "error opening index for %s"
 msgstr "为 %s 打开索引出错"
 
-#: commit-graph.c:1562
+#: commit-graph.c:1704
 msgid "Finding commits for commit graph among packed objects"
 msgstr "正在打包对象中查找提交图的提交"
 
-#: commit-graph.c:1580
+#: commit-graph.c:1722
 msgid "Finding extra edges in commit graph"
 msgstr "正在查找提交图中额外的边"
 
-#: commit-graph.c:1628
+#: commit-graph.c:1771
 msgid "failed to write correct number of base graph ids"
 msgstr "无法写入正确数量的基础图形 ID"
 
-#: commit-graph.c:1670 midx.c:819
+#: commit-graph.c:1802 midx.c:794
 #, c-format
 msgid "unable to create leading directories of %s"
 msgstr "不能为 %s 创建先导目录"
 
-#: commit-graph.c:1683
+#: commit-graph.c:1815
 msgid "unable to create temporary graph layer"
 msgstr "无法创建临时图层"
 
-#: commit-graph.c:1688
+#: commit-graph.c:1820
 #, c-format
 msgid "unable to adjust shared permissions for '%s'"
 msgstr "无法为 '%s' 调整共享权限"
 
-#: commit-graph.c:1758
+#: commit-graph.c:1879
 #, 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:1803
+#: commit-graph.c:1915
 msgid "unable to open commit-graph chain file"
 msgstr "无法打开提交图形链文件"
 
-#: commit-graph.c:1819
+#: commit-graph.c:1931
 msgid "failed to rename base commit-graph file"
 msgstr "无法重命名基础提交图形文件"
 
-#: commit-graph.c:1839
+#: commit-graph.c:1951
 msgid "failed to rename temporary commit-graph file"
 msgstr "无法重命名临时提交图形文件"
 
-#: commit-graph.c:1965
+#: commit-graph.c:2084
 msgid "Scanning merged commits"
 msgstr "正在扫描合并提交"
 
-#: commit-graph.c:2009
+#: commit-graph.c:2128
 msgid "Merging commit-graph"
 msgstr "正在合并提交图形"
 
-#: commit-graph.c:2115
+#: commit-graph.c:2235
 msgid "attempting to write a commit-graph, but 'core.commitGraph' is disabled"
 msgstr "正尝试写提交图,但是 'core.commitGraph' 被禁用"
 
-#: commit-graph.c:2214
+#: commit-graph.c:2342
 msgid "too many commits to write graph"
 msgstr "提交太多不能画图"
 
-#: commit-graph.c:2307
+#: commit-graph.c:2440
 msgid "the commit-graph file has incorrect checksum and is likely corrupt"
 msgstr "提交图文件的校验码错误,可能已经损坏"
 
-#: commit-graph.c:2317
+#: commit-graph.c:2450
 #, c-format
 msgid "commit-graph has incorrect OID order: %s then %s"
 msgstr "提交图形的对象 ID 顺序不正确:%s 然后 %s"
 
-#: commit-graph.c:2327 commit-graph.c:2342
+#: commit-graph.c:2460 commit-graph.c:2475
 #, c-format
 msgid "commit-graph has incorrect fanout value: fanout[%d] = %u != %u"
 msgstr "提交图形有不正确的扇出值:fanout[%d] = %u != %u"
 
-#: commit-graph.c:2334
+#: commit-graph.c:2467
 #, c-format
 msgid "failed to parse commit %s from commit-graph"
 msgstr "无法从提交图形中解析提交 %s"
 
-#: commit-graph.c:2352
+#: commit-graph.c:2485
 msgid "Verifying commits in commit graph"
 msgstr "正在校验提交图中的提交"
 
-#: commit-graph.c:2367
+#: commit-graph.c:2500
 #, c-format
 msgid "failed to parse commit %s from object database for commit-graph"
 msgstr "无法从提交图形的对象库中解析提交 %s"
 
-#: commit-graph.c:2374
+#: commit-graph.c:2507
 #, c-format
 msgid "root tree OID for commit %s in commit-graph is %s != %s"
 msgstr "提交图形中的提交 %s 的根树对象 ID 是 %s != %s"
 
-#: commit-graph.c:2384
+#: commit-graph.c:2517
 #, c-format
 msgid "commit-graph parent list for commit %s is too long"
 msgstr "提交 %s 的提交图形父提交列表太长了"
 
-#: commit-graph.c:2393
+#: commit-graph.c:2526
 #, c-format
 msgid "commit-graph parent for %s is %s != %s"
 msgstr "%s 的提交图形父提交是 %s != %s"
 
-#: commit-graph.c:2407
+#: commit-graph.c:2540
 #, c-format
 msgid "commit-graph parent list for commit %s terminates early"
 msgstr "提交 %s 的提交图形父提交列表过早终止"
 
-#: commit-graph.c:2412
+#: commit-graph.c:2545
 #, c-format
 msgid ""
 "commit-graph has generation number zero for commit %s, but non-zero elsewhere"
 msgstr "提交图形中提交 %s 的世代号是零,但其它地方非零"
 
-#: commit-graph.c:2416
+#: commit-graph.c:2549
 #, c-format
 msgid ""
 "commit-graph has non-zero generation number for commit %s, but zero elsewhere"
 msgstr "提交图形中提交 %s 的世代号非零,但其它地方是零"
 
-#: commit-graph.c:2432
+#: commit-graph.c:2566
 #, c-format
-msgid "commit-graph generation for commit %s is %u != %u"
-msgstr "提交图形中的提交 %s 的世代号是 %u != %u"
+msgid "commit-graph generation for commit %s is %<PRIuMAX> < %<PRIuMAX>"
+msgstr "提交图形中的提交 %s 的世代号是 %<PRIuMAX> < %<PRIuMAX>"
 
-#: commit-graph.c:2438
+#: commit-graph.c:2572
 #, c-format
 msgid "commit date for commit %s in commit-graph is %<PRIuMAX> != %<PRIuMAX>"
 msgstr "提交图形中提交 %s 的提交日期是 %<PRIuMAX> != %<PRIuMAX>"
 
-#: commit.c:52 sequencer.c:2879 builtin/am.c:359 builtin/am.c:403
+#: commit.c:52 sequencer.c:2887 builtin/am.c:359 builtin/am.c:403
 #: builtin/am.c:1371 builtin/am.c:2018 builtin/replace.c:457
 #, c-format
 msgid "could not parse %s"
@@ -2460,27 +2475,27 @@ msgstr ""
 "设置 \"git config advice.graftFileDeprecated false\"\n"
 "可关闭本消息"
 
-#: commit.c:1172
+#: commit.c:1223
 #, c-format
 msgid "Commit %s has an untrusted GPG signature, allegedly by %s."
 msgstr "提交 %s 有一个非可信的声称来自 %s 的 GPG 签名。"
 
-#: commit.c:1176
+#: commit.c:1227
 #, c-format
 msgid "Commit %s has a bad GPG signature allegedly by %s."
 msgstr "提交 %s 有一个错误的声称来自 %s 的 GPG 签名。"
 
-#: commit.c:1179
+#: commit.c:1230
 #, c-format
 msgid "Commit %s does not have a GPG signature."
 msgstr "提交 %s 没有 GPG 签名。"
 
-#: commit.c:1182
+#: commit.c:1233
 #, c-format
 msgid "Commit %s has a good GPG signature by %s\n"
 msgstr "提交 %s 有一个来自 %s 的好的 GPG 签名。\n"
 
-#: commit.c:1436
+#: commit.c:1487
 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"
@@ -2494,7 +2509,7 @@ msgstr ""
 msgid "memory exhausted"
 msgstr "内存耗尽"
 
-#: config.c:125
+#: config.c:126
 #, c-format
 msgid ""
 "exceeded maximum include depth (%d) while including\n"
@@ -2509,289 +2524,333 @@ msgstr ""
 "\t%2$s\n"
 "这可能是因为循环包含。"
 
-#: config.c:141
+#: config.c:142
 #, c-format
 msgid "could not expand include path '%s'"
 msgstr "无法扩展包含路径 '%s'"
 
-#: config.c:152
+#: config.c:153
 msgid "relative config includes must come from files"
 msgstr "相对路径的配置文件引用必须来自于文件"
 
-#: config.c:198
+#: config.c:199
 msgid "relative config include conditionals must come from files"
 msgstr "相对路径的配置文件条件引用必须来自于文件"
 
-#: config.c:378
+#: config.c:396
+#, c-format
+msgid "invalid config format: %s"
+msgstr "无效的配置格式:%s"
+
+#: config.c:400
+#, c-format
+msgid "missing environment variable name for configuration '%.*s'"
+msgstr "配置 '%.*s' 缺少环境变量名称"
+
+#: config.c:405
+#, c-format
+msgid "missing environment variable '%s' for configuration '%.*s'"
+msgstr "缺少环境变量 '%s' 于配置 '%.*s' "
+
+#: config.c:442
 #, c-format
 msgid "key does not contain a section: %s"
 msgstr "键名没有包含一个小节名称:%s"
 
-#: config.c:384
+#: config.c:448
 #, c-format
 msgid "key does not contain variable name: %s"
 msgstr "键名没有包含变量名:%s"
 
-#: config.c:408 sequencer.c:2580
+#: config.c:472 sequencer.c:2588
 #, c-format
 msgid "invalid key: %s"
 msgstr "无效键名:%s"
 
-#: config.c:414
+#: config.c:478
 #, c-format
 msgid "invalid key (newline): %s"
 msgstr "无效键名(有换行符):%s"
 
-#: config.c:450 config.c:462
+#: config.c:511
+msgid "empty config key"
+msgstr "空的配置键名"
+
+#: config.c:529 config.c:541
 #, c-format
 msgid "bogus config parameter: %s"
 msgstr "伪配置参数:%s"
 
-#: config.c:497
+#: config.c:555 config.c:572 config.c:579 config.c:588
 #, c-format
 msgid "bogus format in %s"
 msgstr "%s 中格式错误"
 
-#: config.c:836
+#: config.c:622
+#, c-format
+msgid "bogus count in %s"
+msgstr "%s 中错误计数"
+
+#: config.c:626
+#, c-format
+msgid "too many entries in %s"
+msgstr "%s 中太多的条目"
+
+#: config.c:636
+#, c-format
+msgid "missing config key %s"
+msgstr "缺失配置键名 %s"
+
+#: config.c:644
+#, c-format
+msgid "missing config value %s"
+msgstr "缺失配置取值 %s"
+
+#: config.c:995
 #, c-format
 msgid "bad config line %d in blob %s"
 msgstr "数据对象 %2$s 中错误的配置行 %1$d"
 
-#: config.c:840
+#: config.c:999
 #, c-format
 msgid "bad config line %d in file %s"
 msgstr "文件 %2$s 中错误的配置行 %1$d"
 
-#: config.c:844
+#: config.c:1003
 #, c-format
 msgid "bad config line %d in standard input"
 msgstr "标准输入中错误的配置行 %d"
 
-#: config.c:848
+#: config.c:1007
 #, c-format
 msgid "bad config line %d in submodule-blob %s"
 msgstr "子模组数据对象 %2$s 中错误的配置行 %1$d"
 
-#: config.c:852
+#: config.c:1011
 #, c-format
 msgid "bad config line %d in command line %s"
 msgstr "命令行 %2$s 中错误的配置行 %1$d"
 
-#: config.c:856
+#: config.c:1015
 #, c-format
 msgid "bad config line %d in %s"
 msgstr "在 %2$s 中错误的配置行 %1$d"
 
-#: config.c:993
+#: config.c:1152
 msgid "out of range"
 msgstr "超出范围"
 
-#: config.c:993
+#: config.c:1152
 msgid "invalid unit"
 msgstr "无效的单位"
 
-#: config.c:994
+#: config.c:1153
 #, c-format
 msgid "bad numeric config value '%s' for '%s': %s"
 msgstr "配置变量 '%2$s' 的数字取值 '%1$s' 设置错误:%3$s"
 
-#: config.c:1013
+#: config.c:1163
 #, 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:1016
+#: config.c:1166
 #, 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:1019
+#: config.c:1169
 #, c-format
 msgid "bad numeric config value '%s' for '%s' in standard input: %s"
 msgstr "标准输入中配置变量 '%2$s' 错误的取值 '%1$s':%3$s"
 
-#: config.c:1022
+#: config.c:1172
 #, 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:1025
+#: config.c:1175
 #, 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:1028
+#: config.c:1178
 #, c-format
 msgid "bad numeric config value '%s' for '%s' in %s: %s"
 msgstr "在 %3$s 中配置变量 '%2$s' 错误的取值 '%1$s':%4$s"
 
-#: config.c:1123
+#: config.c:1194
+#, c-format
+msgid "bad boolean config value '%s' for '%s'"
+msgstr "'%2$s' 的错误的布尔取值 '%1$s'"
+
+#: config.c:1289
 #, c-format
 msgid "failed to expand user dir in: '%s'"
 msgstr "无法扩展用户目录:'%s'"
 
-#: config.c:1132
+#: config.c:1298
 #, c-format
 msgid "'%s' for '%s' is not a valid timestamp"
 msgstr "'%2$s' 的值 '%1$s' 不是一个有效的时间戳"
 
-#: config.c:1223
+#: config.c:1391
 #, c-format
 msgid "abbrev length out of range: %d"
 msgstr "缩写长度超出范围:%d"
 
-#: config.c:1237 config.c:1248
+#: config.c:1405 config.c:1416
 #, c-format
 msgid "bad zlib compression level %d"
 msgstr "错误的 zlib 压缩级别 %d"
 
-#: config.c:1340
+#: config.c:1508
 msgid "core.commentChar should only be one character"
 msgstr "core.commentChar 应该是一个字符"
 
-#: config.c:1373
+#: config.c:1541
 #, c-format
 msgid "invalid mode for object creation: %s"
 msgstr "无效的对象创建模式:%s"
 
-#: config.c:1445
+#: config.c:1613
 #, c-format
 msgid "malformed value for %s"
 msgstr "%s 的取值格式错误"
 
-#: config.c:1471
+#: config.c:1639
 #, c-format
 msgid "malformed value for %s: %s"
 msgstr "%s 的取值格式错误:%s"
 
-#: config.c:1472
+#: config.c:1640
 msgid "must be one of nothing, matching, simple, upstream or current"
 msgstr "必须是其中之一:nothing、matching、simple、upstream 或 current"
 
-#: config.c:1533 builtin/pack-objects.c:3649
+#: config.c:1701 builtin/pack-objects.c:3666
 #, c-format
 msgid "bad pack compression level %d"
 msgstr "错误的打包压缩级别 %d"
 
-#: config.c:1655
+#: config.c:1823
 #, c-format
 msgid "unable to load config blob object '%s'"
 msgstr "无法从数据对象 '%s' 加载配置"
 
-#: config.c:1658
+#: config.c:1826
 #, c-format
 msgid "reference '%s' does not point to a blob"
 msgstr "引用 '%s' 没有指向一个数据对象"
 
-#: config.c:1675
+#: config.c:1843
 #, c-format
 msgid "unable to resolve config blob '%s'"
 msgstr "不能解析配置对象 '%s'"
 
-#: config.c:1705
+#: config.c:1873
 #, c-format
 msgid "failed to parse %s"
 msgstr "解析 %s 失败"
 
-#: config.c:1759
+#: config.c:1927
 msgid "unable to parse command-line config"
 msgstr "无法解析命令行中的配置"
 
-#: config.c:2122
+#: config.c:2290
 msgid "unknown error occurred while reading the configuration files"
 msgstr "在读取配置文件时遇到未知错误"
 
-#: config.c:2296
+#: config.c:2464
 #, c-format
 msgid "Invalid %s: '%s'"
 msgstr "无效 %s:'%s'"
 
-#: config.c:2341
+#: config.c:2509
 #, c-format
 msgid "splitIndex.maxPercentChange value '%d' should be between 0 and 100"
 msgstr "splitIndex.maxPercentChange 的取值 '%d' 应该介于 0 和 100 之间"
 
-#: config.c:2387
+#: config.c:2555
 #, c-format
 msgid "unable to parse '%s' from command-line config"
 msgstr "无法解析命令行配置中的 '%s'"
 
-#: config.c:2389
+#: config.c:2557
 #, c-format
 msgid "bad config variable '%s' in file '%s' at line %d"
 msgstr "在文件 '%2$s' 的第 %3$d 行发现错误的配置变量 '%1$s'"
 
-#: config.c:2473
+#: config.c:2641
 #, c-format
 msgid "invalid section name '%s'"
 msgstr "无效的小节名称 '%s'"
 
-#: config.c:2505
+#: config.c:2673
 #, c-format
 msgid "%s has multiple values"
 msgstr "%s 有多个取值"
 
-#: config.c:2534
+#: config.c:2702
 #, c-format
 msgid "failed to write new configuration file %s"
 msgstr "写入新的配置文件 %s 失败"
 
-#: config.c:2786 config.c:3112
+#: config.c:2954 config.c:3280
 #, c-format
 msgid "could not lock config file %s"
 msgstr "不能锁定配置文件 %s"
 
-#: config.c:2797
+#: config.c:2965
 #, c-format
 msgid "opening %s"
 msgstr "打开 %s"
 
-#: config.c:2834 builtin/config.c:361
+#: config.c:3002 builtin/config.c:361
 #, c-format
 msgid "invalid pattern: %s"
 msgstr "无效模式:%s"
 
-#: config.c:2859
+#: config.c:3027
 #, c-format
 msgid "invalid config file %s"
 msgstr "无效的配置文件 %s"
 
-#: config.c:2872 config.c:3125
+#: config.c:3040 config.c:3293
 #, c-format
 msgid "fstat on %s failed"
 msgstr "对 %s 调用 fstat 失败"
 
-#: config.c:2883
+#: config.c:3051
 #, c-format
 msgid "unable to mmap '%s'"
 msgstr "不能 mmap '%s'"
 
-#: config.c:2892 config.c:3130
+#: config.c:3060 config.c:3298
 #, c-format
 msgid "chmod on %s failed"
 msgstr "对 %s 调用 chmod 失败"
 
-#: config.c:2977 config.c:3227
+#: config.c:3145 config.c:3395
 #, c-format
 msgid "could not write config file %s"
 msgstr "不能写入配置文件 %s"
 
-#: config.c:3011
+#: config.c:3179
 #, c-format
 msgid "could not set '%s' to '%s'"
 msgstr "不能设置 '%s' 为 '%s'"
 
-#: config.c:3013 builtin/remote.c:657 builtin/remote.c:855 builtin/remote.c:863
+#: config.c:3181 builtin/remote.c:657 builtin/remote.c:855 builtin/remote.c:863
 #, c-format
 msgid "could not unset '%s'"
 msgstr "不能取消设置 '%s'"
 
-#: config.c:3103
+#: config.c:3271
 #, c-format
 msgid "invalid section name: %s"
 msgstr "无效的小节名称:%s"
 
-#: config.c:3270
+#: config.c:3438
 #, c-format
 msgid "missing value for '%s'"
 msgstr "%s 的取值缺失"
@@ -2852,45 +2911,45 @@ msgstr "无效数据包"
 msgid "protocol error: unexpected '%s'"
 msgstr "协议错误:意外的 '%s'"
 
-#: connect.c:473
+#: connect.c:497
 #, c-format
 msgid "unknown object format '%s' specified by server"
 msgstr "服务器给出未知的对象格式 '%s'"
 
-#: connect.c:500
+#: connect.c:526
 #, c-format
 msgid "invalid ls-refs response: %s"
 msgstr "无效的 ls-refs 响应:%s"
 
-#: connect.c:504
+#: connect.c:530
 msgid "expected flush after ref listing"
 msgstr "在引用列表之后应该有一个 flush 包"
 
-#: connect.c:507
+#: connect.c:533
 msgid "expected response end packet after ref listing"
 msgstr "在引用列表之后应该有响应结束包"
 
-#: connect.c:640
+#: connect.c:666
 #, c-format
 msgid "protocol '%s' is not supported"
 msgstr "不支持 '%s' 协议"
 
-#: connect.c:691
+#: connect.c:717
 msgid "unable to set SO_KEEPALIVE on socket"
 msgstr "无法为 socket 设置 SO_KEEPALIVE"
 
-#: connect.c:731 connect.c:794
+#: connect.c:757 connect.c:820
 #, c-format
 msgid "Looking up %s ... "
 msgstr "查找 %s ..."
 
-#: connect.c:735
+#: connect.c:761
 #, c-format
 msgid "unable to look up %s (port %s) (%s)"
 msgstr "无法查找 %s(端口 %s)(%s)"
 
 #. TRANSLATORS: this is the end of "Looking up %s ... "
-#: connect.c:739 connect.c:810
+#: connect.c:765 connect.c:836
 #, c-format
 msgid ""
 "done.\n"
@@ -2899,7 +2958,7 @@ msgstr ""
 "完成。\n"
 "连接到 %s(端口 %s)... "
 
-#: connect.c:761 connect.c:838
+#: connect.c:787 connect.c:864
 #, c-format
 msgid ""
 "unable to connect to %s:\n"
@@ -2909,61 +2968,65 @@ msgstr ""
 "%s"
 
 #. TRANSLATORS: this is the end of "Connecting to %s (port %s) ... "
-#: connect.c:767 connect.c:844
+#: connect.c:793 connect.c:870
 msgid "done."
 msgstr "完成。"
 
-#: connect.c:798
+#: connect.c:824
 #, c-format
 msgid "unable to look up %s (%s)"
 msgstr "无法查找 %s(%s)"
 
-#: connect.c:804
+#: connect.c:830
 #, c-format
 msgid "unknown port %s"
 msgstr "未知端口 %s"
 
-#: connect.c:941 connect.c:1271
+#: connect.c:967 connect.c:1299
 #, c-format
 msgid "strange hostname '%s' blocked"
 msgstr "已阻止奇怪的主机名 '%s'"
 
-#: connect.c:943
+#: connect.c:969
 #, c-format
 msgid "strange port '%s' blocked"
 msgstr "已阻止奇怪的端口号 '%s'"
 
-#: connect.c:953
+#: connect.c:979
 #, c-format
 msgid "cannot start proxy %s"
 msgstr "不能启动代理 %s"
 
-#: connect.c:1024
+#: connect.c:1050
 msgid "no path specified; see 'git help pull' for valid url syntax"
 msgstr "未指定路径,执行 'git help pull' 查看有效的 url 语法"
 
-#: connect.c:1219
+#: connect.c:1190
+msgid "newline is forbidden in git:// hosts and repo paths"
+msgstr "在 git:// 主机和仓库路径中禁止使用换行符"
+
+#: connect.c:1247
 msgid "ssh variant 'simple' does not support -4"
 msgstr "ssh 变体 'simple' 不支持 -4"
 
-#: connect.c:1231
+#: connect.c:1259
 msgid "ssh variant 'simple' does not support -6"
 msgstr "ssh 变体 'simple' 不支持 -6"
 
-#: connect.c:1248
+#: connect.c:1276
 msgid "ssh variant 'simple' does not support setting port"
 msgstr "ssh 变体 'simple' 不支持设置端口"
 
-#: connect.c:1360
+#: connect.c:1388
 #, c-format
 msgid "strange pathname '%s' blocked"
 msgstr "已阻止奇怪的路径名 '%s'"
 
-#: connect.c:1408
+#: connect.c:1436
 msgid "unable to fork"
 msgstr "无法 fork"
 
-#: connected.c:108 builtin/fsck.c:209 builtin/prune.c:45
+#: connected.c:108 builtin/fsck.c:191 builtin/prune.c:45
 msgid "Checking connectivity"
 msgstr "正在检查连通性"
 
@@ -3223,6 +3286,11 @@ msgstr "来自 config 的数据岛正则表达式有太多的捕获组(最多
 msgid "Marked %d islands, done.\n"
 msgstr "已标记 %d 个数据岛,结束。\n"
 
+#: diff-merges.c:70
+#, c-format
+msgid "unknown value for --diff-merges: %s"
+msgstr "未知的 --diff-merges 取值:%s"
+
 #: diff-lib.c:534
 msgid "--merge-base does not work with ranges"
 msgstr "--merge-base 不适用于范围"
@@ -3307,30 +3375,30 @@ msgstr ""
 msgid "external diff died, stopping at %s"
 msgstr "外部 diff 退出,停止在 %s"
 
-#: diff.c:4625
+#: diff.c:4628
 msgid "--name-only, --name-status, --check and -s are mutually exclusive"
 msgstr "--name-only、--name-status、--check 和 -s 是互斥的"
 
-#: diff.c:4628
+#: diff.c:4631
 msgid "-G, -S and --find-object are mutually exclusive"
 msgstr "-G、-S 和 --find-object 是互斥的"
 
-#: diff.c:4707
+#: diff.c:4710
 msgid "--follow requires exactly one pathspec"
 msgstr "--follow 明确要求只跟一个路径规格"
 
-#: diff.c:4755
+#: diff.c:4758
 #, c-format
 msgid "invalid --stat value: %s"
 msgstr "无效的 --stat 值:%s"
 
-#: diff.c:4760 diff.c:4765 diff.c:4770 diff.c:4775 diff.c:5303
+#: diff.c:4763 diff.c:4768 diff.c:4773 diff.c:4778 diff.c:5306
 #: parse-options.c:197 parse-options.c:201 builtin/commit-graph.c:180
 #, c-format
 msgid "%s expects a numerical value"
 msgstr "%s 期望一个数字值"
 
-#: diff.c:4792
+#: diff.c:4795
 #, c-format
 msgid ""
 "Failed to parse --dirstat/-X option parameter:\n"
@@ -3339,200 +3407,200 @@ msgstr ""
 "无法解析 --dirstat/-X 选项的参数:\n"
 "%s"
 
-#: diff.c:4877
+#: diff.c:4880
 #, c-format
 msgid "unknown change class '%c' in --diff-filter=%s"
 msgstr "--diff-filter=%2$s 中未知的变更类 '%1$c'"
 
-#: diff.c:4901
+#: diff.c:4904
 #, c-format
 msgid "unknown value after ws-error-highlight=%.*s"
 msgstr "ws-error-highlight=%.*s 之后未知的值"
 
-#: diff.c:4915
+#: diff.c:4918
 #, c-format
 msgid "unable to resolve '%s'"
 msgstr "不能解析 '%s'"
 
-#: diff.c:4965 diff.c:4971
+#: diff.c:4968 diff.c:4974
 #, c-format
 msgid "%s expects <n>/<m> form"
 msgstr "%s 期望 <n>/<m> 格式"
 
-#: diff.c:4983
+#: diff.c:4986
 #, c-format
 msgid "%s expects a character, got '%s'"
 msgstr "%s 期望一个字符,得到 '%s'"
 
-#: diff.c:5004
+#: diff.c:5007
 #, c-format
 msgid "bad --color-moved argument: %s"
 msgstr "坏的 --color-moved 参数:%s"
 
-#: diff.c:5023
+#: diff.c:5026
 #, c-format
 msgid "invalid mode '%s' in --color-moved-ws"
 msgstr "--color-moved-ws 中的无效模式 '%s' "
 
-#: diff.c:5063
+#: diff.c:5066
 msgid ""
 "option diff-algorithm accepts \"myers\", \"minimal\", \"patience\" and "
 "\"histogram\""
 msgstr ""
 "diff-algorithm 选项有 \"myers\"、\"minimal\"、\"patience\" 和 \"histogram\""
 
-#: diff.c:5099 diff.c:5119
+#: diff.c:5102 diff.c:5122
 #, c-format
 msgid "invalid argument to %s"
 msgstr "%s 的参数无效"
 
-#: diff.c:5223
+#: diff.c:5226
 #, c-format
 msgid "invalid regex given to -I: '%s'"
 msgstr "选项 -I 的正则表达式无效:'%s'"
 
-#: diff.c:5272
+#: diff.c:5275
 #, c-format
 msgid "failed to parse --submodule option parameter: '%s'"
 msgstr "无法解析 --submodule 选项的参数:'%s'"
 
-#: diff.c:5328
+#: diff.c:5331
 #, c-format
 msgid "bad --word-diff argument: %s"
 msgstr "坏的 --word-diff 参数:%s"
 
-#: diff.c:5351
+#: diff.c:5367
 msgid "Diff output format options"
 msgstr "差异输出格式化选项"
 
-#: diff.c:5353 diff.c:5359
+#: diff.c:5369 diff.c:5375
 msgid "generate patch"
 msgstr "生成补丁"
 
-#: diff.c:5356 builtin/log.c:178
+#: diff.c:5372 builtin/log.c:179
 msgid "suppress diff output"
 msgstr "不显示差异输出"
 
-#: diff.c:5361 diff.c:5475 diff.c:5482
+#: diff.c:5377 diff.c:5491 diff.c:5498
 msgid "<n>"
 msgstr "<n>"
 
-#: diff.c:5362 diff.c:5365
+#: diff.c:5378 diff.c:5381
 msgid "generate diffs with <n> lines context"
 msgstr "生成含 <n> 行上下文的差异"
 
-#: diff.c:5367
+#: diff.c:5383
 msgid "generate the diff in raw format"
 msgstr "生成原始格式的差异"
 
-#: diff.c:5370
+#: diff.c:5386
 msgid "synonym for '-p --raw'"
 msgstr "和 '-p --raw' 同义"
 
-#: diff.c:5374
+#: diff.c:5390
 msgid "synonym for '-p --stat'"
 msgstr "和 '-p --stat' 同义"
 
-#: diff.c:5378
+#: diff.c:5394
 msgid "machine friendly --stat"
 msgstr "机器友好的 --stat"
 
-#: diff.c:5381
+#: diff.c:5397
 msgid "output only the last line of --stat"
 msgstr "只输出 --stat 的最后一行"
 
-#: diff.c:5383 diff.c:5391
+#: diff.c:5399 diff.c:5407
 msgid "<param1,param2>..."
 msgstr "<参数1,参数2>..."
 
-#: diff.c:5384
+#: diff.c:5400
 msgid ""
 "output the distribution of relative amount of changes for each sub-directory"
 msgstr "输出每个子目录相对变更的分布"
 
-#: diff.c:5388
+#: diff.c:5404
 msgid "synonym for --dirstat=cumulative"
 msgstr "和 --dirstat=cumulative 同义"
 
-#: diff.c:5392
+#: diff.c:5408
 msgid "synonym for --dirstat=files,param1,param2..."
 msgstr "是 --dirstat=files,param1,param2... 的同义词"
 
-#: diff.c:5396
+#: diff.c:5412
 msgid "warn if changes introduce conflict markers or whitespace errors"
 msgstr "如果变更中引入冲突定界符或空白错误,给出警告"
 
-#: diff.c:5399
+#: diff.c:5415
 msgid "condensed summary such as creations, renames and mode changes"
 msgstr "精简摘要,例如创建、重命名和模式变更"
 
-#: diff.c:5402
+#: diff.c:5418
 msgid "show only names of changed files"
 msgstr "只显示变更文件的文件名"
 
-#: diff.c:5405
+#: diff.c:5421
 msgid "show only names and status of changed files"
 msgstr "只显示变更文件的文件名和状态"
 
-#: diff.c:5407
+#: diff.c:5423
 msgid "<width>[,<name-width>[,<count>]]"
 msgstr "<宽度>[,<文件名宽度>[,<次数>]]"
 
-#: diff.c:5408
+#: diff.c:5424
 msgid "generate diffstat"
 msgstr "生成差异统计(diffstat)"
 
-#: diff.c:5410 diff.c:5413 diff.c:5416
+#: diff.c:5426 diff.c:5429 diff.c:5432
 msgid "<width>"
 msgstr "<宽度>"
 
-#: diff.c:5411
+#: diff.c:5427
 msgid "generate diffstat with a given width"
 msgstr "使用给定的长度生成差异统计"
 
-#: diff.c:5414
+#: diff.c:5430
 msgid "generate diffstat with a given name width"
 msgstr "使用给定的文件名长度生成差异统计"
 
-#: diff.c:5417
+#: diff.c:5433
 msgid "generate diffstat with a given graph width"
 msgstr "使用给定的图形长度生成差异统计"
 
-#: diff.c:5419
+#: diff.c:5435
 msgid "<count>"
 msgstr "<次数>"
 
-#: diff.c:5420
+#: diff.c:5436
 msgid "generate diffstat with limited lines"
 msgstr "生成有限行数的差异统计"
 
-#: diff.c:5423
+#: diff.c:5439
 msgid "generate compact summary in diffstat"
 msgstr "生成差异统计的简洁摘要"
 
-#: diff.c:5426
+#: diff.c:5442
 msgid "output a binary diff that can be applied"
 msgstr "输出一个可以应用的二进制差异"
 
-#: diff.c:5429
+#: diff.c:5445
 msgid "show full pre- and post-image object names on the \"index\" lines"
 msgstr "在 \"index\" 行显示完整的前后对象名称"
 
-#: diff.c:5431
+#: diff.c:5447
 msgid "show colored diff"
 msgstr "显示带颜色的差异"
 
-#: diff.c:5432
+#: diff.c:5448
 msgid "<kind>"
 msgstr "<类型>"
 
-#: diff.c:5433
+#: diff.c:5449
 msgid ""
 "highlight whitespace errors in the 'context', 'old' or 'new' lines in the "
 "diff"
 msgstr "对于差异中的上下文、旧的和新的行,加亮显示错误的空白字符"
 
-#: diff.c:5436
+#: diff.c:5452
 msgid ""
 "do not munge pathnames and use NULs as output field terminators in --raw or "
 "--numstat"
@@ -3540,299 +3608,311 @@ msgstr ""
 "在 --raw 或者 --numstat 中,不对路径字符转码并使用 NUL 字符做为输出字段的分隔"
 "符"
 
-#: diff.c:5439 diff.c:5442 diff.c:5445 diff.c:5554
+#: diff.c:5455 diff.c:5458 diff.c:5461 diff.c:5570
 msgid "<prefix>"
 msgstr "<前缀>"
 
-#: diff.c:5440
+#: diff.c:5456
 msgid "show the given source prefix instead of \"a/\""
 msgstr "显示给定的源前缀取代 \"a/\""
 
-#: diff.c:5443
+#: diff.c:5459
 msgid "show the given destination prefix instead of \"b/\""
 msgstr "显示给定的目标前缀取代 \"b/\""
 
-#: diff.c:5446
+#: diff.c:5462
 msgid "prepend an additional prefix to every line of output"
 msgstr "输出的每一行附加前缀"
 
-#: diff.c:5449
+#: diff.c:5465
 msgid "do not show any source or destination prefix"
 msgstr "不显示任何源和目标前缀"
 
-#: diff.c:5452
+#: diff.c:5468
 msgid "show context between diff hunks up to the specified number of lines"
 msgstr "显示指定行数的差异块间的上下文"
 
-#: diff.c:5456 diff.c:5461 diff.c:5466
+#: diff.c:5472 diff.c:5477 diff.c:5482
 msgid "<char>"
 msgstr "<字符>"
 
-#: diff.c:5457
+#: diff.c:5473
 msgid "specify the character to indicate a new line instead of '+'"
 msgstr "指定一个字符取代 '+' 来表示新的一行"
 
-#: diff.c:5462
+#: diff.c:5478
 msgid "specify the character to indicate an old line instead of '-'"
 msgstr "指定一个字符取代 '-' 来表示旧的一行"
 
-#: diff.c:5467
+#: diff.c:5483
 msgid "specify the character to indicate a context instead of ' '"
 msgstr "指定一个字符取代 ' ' 来表示一行上下文"
 
-#: diff.c:5470
+#: diff.c:5486
 msgid "Diff rename options"
 msgstr "差异重命名选项"
 
-#: diff.c:5471
+#: diff.c:5487
 msgid "<n>[/<m>]"
 msgstr "<n>[/<m>]"
 
-#: diff.c:5472
+#: diff.c:5488
 msgid "break complete rewrite changes into pairs of delete and create"
 msgstr "将完全重写的变更打破为成对的删除和创建"
 
-#: diff.c:5476
+#: diff.c:5492
 msgid "detect renames"
 msgstr "检测重命名"
 
-#: diff.c:5480
+#: diff.c:5496
 msgid "omit the preimage for deletes"
 msgstr "省略删除操作的差异输出"
 
-#: diff.c:5483
+#: diff.c:5499
 msgid "detect copies"
 msgstr "检测拷贝"
 
-#: diff.c:5487
+#: diff.c:5503
 msgid "use unmodified files as source to find copies"
 msgstr "使用未修改的文件做为发现拷贝的源"
 
-#: diff.c:5489
+#: diff.c:5505
 msgid "disable rename detection"
 msgstr "禁用重命名探测"
 
-#: diff.c:5492
+#: diff.c:5508
 msgid "use empty blobs as rename source"
 msgstr "使用空的数据对象做为重命名的源"
 
-#: diff.c:5494
+#: diff.c:5510
 msgid "continue listing the history of a file beyond renames"
 msgstr "继续列出文件重命名以外的历史记录"
 
-#: diff.c:5497
+#: diff.c:5513
 msgid ""
 "prevent rename/copy detection if the number of rename/copy targets exceeds "
 "given limit"
 msgstr "如果重命名/拷贝目标超过给定的限制,禁止重命名/拷贝检测"
 
-#: diff.c:5499
+#: diff.c:5515
 msgid "Diff algorithm options"
 msgstr "差异算法选项"
 
-#: diff.c:5501
+#: diff.c:5517
 msgid "produce the smallest possible diff"
 msgstr "生成尽可能小的差异"
 
-#: diff.c:5504
+#: diff.c:5520
 msgid "ignore whitespace when comparing lines"
 msgstr "行比较时忽略空白字符"
 
-#: diff.c:5507
+#: diff.c:5523
 msgid "ignore changes in amount of whitespace"
 msgstr "忽略空白字符的变更"
 
-#: diff.c:5510
+#: diff.c:5526
 msgid "ignore changes in whitespace at EOL"
 msgstr "忽略行尾的空白字符变更"
 
-#: diff.c:5513
+#: diff.c:5529
 msgid "ignore carrier-return at the end of line"
 msgstr "忽略行尾的回车符(CR)"
 
-#: diff.c:5516
+#: diff.c:5532
 msgid "ignore changes whose lines are all blank"
 msgstr "忽略整行都是空白的变更"
 
-#: diff.c:5518 diff.c:5540 diff.c:5543 diff.c:5588
+#: diff.c:5534 diff.c:5556 diff.c:5559 diff.c:5604
 msgid "<regex>"
 msgstr "<正则>"
 
-#: diff.c:5519
+#: diff.c:5535
 msgid "ignore changes whose all lines match <regex>"
 msgstr "忽略所有行都和正则表达式匹配的变更"
 
-#: diff.c:5522
+#: diff.c:5538
 msgid "heuristic to shift diff hunk boundaries for easy reading"
 msgstr "启发式转换差异边界以便阅读"
 
-#: diff.c:5525
+#: diff.c:5541
 msgid "generate diff using the \"patience diff\" algorithm"
 msgstr "使用 \"patience diff\" 算法生成差异"
 
-#: diff.c:5529
+#: diff.c:5545
 msgid "generate diff using the \"histogram diff\" algorithm"
 msgstr "使用 \"histogram diff\" 算法生成差异"
 
-#: diff.c:5531
+#: diff.c:5547
 msgid "<algorithm>"
 msgstr "<算法>"
 
-#: diff.c:5532
+#: diff.c:5548
 msgid "choose a diff algorithm"
 msgstr "选择一个差异算法"
 
-#: diff.c:5534
+#: diff.c:5550
 msgid "<text>"
 msgstr "<文本>"
 
-#: diff.c:5535
+#: diff.c:5551
 msgid "generate diff using the \"anchored diff\" algorithm"
 msgstr "使用 \"anchored diff\" 算法生成差异"
 
-#: diff.c:5537 diff.c:5546 diff.c:5549
+#: diff.c:5553 diff.c:5562 diff.c:5565
 msgid "<mode>"
 msgstr "<模式>"
 
-#: diff.c:5538
+#: diff.c:5554
 msgid "show word diff, using <mode> to delimit changed words"
 msgstr "显示单词差异,使用 <模式> 分隔变更的单词"
 
-#: diff.c:5541
+#: diff.c:5557
 msgid "use <regex> to decide what a word is"
 msgstr "使用 <正则表达式> 确定何为一个词"
 
-#: diff.c:5544
+#: diff.c:5560
 msgid "equivalent to --word-diff=color --word-diff-regex=<regex>"
 msgstr "相当于 --word-diff=color --word-diff-regex=<正则>"
 
-#: diff.c:5547
+#: diff.c:5563
 msgid "moved lines of code are colored differently"
 msgstr "移动的代码行用不同方式着色"
 
-#: diff.c:5550
+#: diff.c:5566
 msgid "how white spaces are ignored in --color-moved"
 msgstr "在 --color-moved 下如何忽略空白字符"
 
-#: diff.c:5553
+#: diff.c:5569
 msgid "Other diff options"
 msgstr "其它差异选项"
 
-#: diff.c:5555
+#: diff.c:5571
 msgid "when run from subdir, exclude changes outside and show relative paths"
 msgstr "当从子目录运行,排除目录之外的变更并显示相对路径"
 
-#: diff.c:5559
+#: diff.c:5575
 msgid "treat all files as text"
 msgstr "把所有文件当做文本处理"
 
-#: diff.c:5561
+#: diff.c:5577
 msgid "swap two inputs, reverse the diff"
 msgstr "交换两个输入,反转差异"
 
-#: diff.c:5563
+#: diff.c:5579
 msgid "exit with 1 if there were differences, 0 otherwise"
 msgstr "有差异时退出码为 1,否则为 0"
 
-#: diff.c:5565
+#: diff.c:5581
 msgid "disable all output of the program"
 msgstr "禁用本程序的所有输出"
 
-#: diff.c:5567
+#: diff.c:5583
 msgid "allow an external diff helper to be executed"
 msgstr "允许执行一个外置的差异助手"
 
-#: diff.c:5569
+#: diff.c:5585
 msgid "run external text conversion filters when comparing binary files"
 msgstr "当比较二进制文件时,运行外部的文本转换过滤器"
 
-#: diff.c:5571
+#: diff.c:5587
 msgid "<when>"
 msgstr "<何时>"
 
-#: diff.c:5572
+#: diff.c:5588
 msgid "ignore changes to submodules in the diff generation"
 msgstr "在生成差异时,忽略子模组的更改"
 
-#: diff.c:5575
+#: diff.c:5591
 msgid "<format>"
 msgstr "<格式>"
 
-#: diff.c:5576
+#: diff.c:5592
 msgid "specify how differences in submodules are shown"
 msgstr "指定子模组的差异如何显示"
 
-#: diff.c:5580
+#: diff.c:5596
 msgid "hide 'git add -N' entries from the index"
 msgstr "隐藏索引中 'git add -N' 条目"
 
-#: diff.c:5583
+#: diff.c:5599
 msgid "treat 'git add -N' entries as real in the index"
 msgstr "将索引中 'git add -N' 条目当做真实的"
 
-#: diff.c:5585
+#: diff.c:5601
 msgid "<string>"
 msgstr "<字符串>"
 
-#: diff.c:5586
+#: diff.c:5602
 msgid ""
 "look for differences that change the number of occurrences of the specified "
 "string"
 msgstr "查找改变了指定字符串出现次数的差异"
 
-#: diff.c:5589
+#: diff.c:5605
 msgid ""
 "look for differences that change the number of occurrences of the specified "
 "regex"
 msgstr "查找改变指定正则匹配出现次数的差异"
 
-#: diff.c:5592
+#: diff.c:5608
 msgid "show all changes in the changeset with -S or -G"
 msgstr "显示使用 -S 或 -G 的变更集的所有变更"
 
-#: diff.c:5595
+#: diff.c:5611
 msgid "treat <string> in -S as extended POSIX regular expression"
 msgstr "将 -S 的 <string> 当做扩展的 POSIX 正则表达式"
 
-#: diff.c:5598
+#: diff.c:5614
 msgid "control the order in which files appear in the output"
 msgstr "控制输出中的文件显示顺序"
 
-#: diff.c:5599
+#: diff.c:5615 diff.c:5618
+msgid "<path>"
+msgstr "<路径>"
+
+#: diff.c:5616
+msgid "show the change in the specified path first"
+msgstr "先显示指定路径的变更"
+
+#: diff.c:5619
+msgid "skip the output to the specified path"
+msgstr "跳过指定路径的输出"
+
+#: diff.c:5621
 msgid "<object-id>"
 msgstr "<对象 ID>"
 
-#: diff.c:5600
+#: diff.c:5622
 msgid ""
 "look for differences that change the number of occurrences of the specified "
 "object"
 msgstr "查找改变指定对象出现次数的差异"
 
-#: diff.c:5602
+#: diff.c:5624
 msgid "[(A|C|D|M|R|T|U|X|B)...[*]]"
 msgstr "[(A|C|D|M|R|T|U|X|B)...[*]]"
 
-#: diff.c:5603
+#: diff.c:5625
 msgid "select files by diff type"
 msgstr "通过差异类型选择文件"
 
-#: diff.c:5605
+#: diff.c:5627
 msgid "<file>"
 msgstr "<文件>"
 
-#: diff.c:5606
+#: diff.c:5628
 msgid "Output to a specific file"
 msgstr "输出到一个指定的文件"
 
-#: diff.c:6263
+#: diff.c:6285
 msgid "inexact rename detection was skipped due to too many files."
 msgstr "因为文件太多,略过不严格的重命名检查。"
 
-#: diff.c:6266
+#: diff.c:6288
 msgid "only found copies from modified paths due to too many files."
 msgstr "因为文件太多,只在修改的路径中查找拷贝。"
 
-#: diff.c:6269
+#: diff.c:6291
 #, c-format
 msgid ""
 "you may want to set your %s variable to at least %d and retry the command."
@@ -3843,10 +3923,15 @@ msgstr "您可能想要将变量 %s 设置为至少 %d 并再次执行此命令
 msgid "failed to read orderfile '%s'"
 msgstr "读取排序文件 '%s' 失败"
 
-#: diffcore-rename.c:592
+#: diffcore-rename.c:786
 msgid "Performing inexact rename detection"
 msgstr "正在进行非精确的重命名探测"
 
+#: diffcore-rotate.c:29
+#, c-format
+msgid "No such path '%s' in the diff"
+msgstr "在差异中无此路径 '%s'"
+
 #: dir.c:578
 #, c-format
 msgid "pathspec '%s' did not match any file(s) known to git"
@@ -3889,17 +3974,17 @@ msgstr "无法获得内核名称和信息"
 msgid "untracked cache is disabled on this system or location"
 msgstr "缓存未跟踪文件在本系统或位置中被禁用"
 
-#: dir.c:3520
+#: dir.c:3534
 #, c-format
 msgid "index file corrupt in repo %s"
 msgstr "仓库 %s 中的索引文件损坏"
 
-#: dir.c:3565 dir.c:3570
+#: dir.c:3579 dir.c:3584
 #, c-format
 msgid "could not create directories for %s"
 msgstr "不能为 %s 创建目录"
 
-#: dir.c:3599
+#: dir.c:3613
 #, c-format
 msgid "could not migrate git directory from '%s' to '%s'"
 msgstr "不能从 '%s' 迁移 git 目录到 '%s'"
@@ -3918,12 +4003,12 @@ msgstr "过滤内容"
 msgid "could not stat file '%s'"
 msgstr "不能对文件 '%s' 调用 stat"
 
-#: environment.c:150
+#: environment.c:152
 #, c-format
 msgid "bad git namespace path \"%s\""
 msgstr "错误的 git 名字空间路径 \"%s\""
 
-#: environment.c:337
+#: environment.c:335
 #, c-format
 msgid "could not set GIT_DIR to '%s'"
 msgstr "不能设置 GIT_DIR 为 '%s'"
@@ -3958,32 +4043,32 @@ msgstr "无法写到远程"
 msgid "--stateless-rpc requires multi_ack_detailed"
 msgstr "--stateless-rpc 需要 multi_ack_detailed"
 
-#: fetch-pack.c:378 fetch-pack.c:1406
+#: fetch-pack.c:378 fetch-pack.c:1457
 #, c-format
 msgid "invalid shallow line: %s"
 msgstr "无效的 shallow 信息:%s"
 
-#: fetch-pack.c:384 fetch-pack.c:1412
+#: fetch-pack.c:384 fetch-pack.c:1463
 #, c-format
 msgid "invalid unshallow line: %s"
 msgstr "无效的 unshallow 信息:%s"
 
-#: fetch-pack.c:386 fetch-pack.c:1414
+#: fetch-pack.c:386 fetch-pack.c:1465
 #, c-format
 msgid "object not found: %s"
 msgstr "对象未找到:%s"
 
-#: fetch-pack.c:389 fetch-pack.c:1417
+#: fetch-pack.c:389 fetch-pack.c:1468
 #, c-format
 msgid "error in object: %s"
 msgstr "对象中出错:%s"
 
-#: fetch-pack.c:391 fetch-pack.c:1419
+#: fetch-pack.c:391 fetch-pack.c:1470
 #, c-format
 msgid "no shallow found: %s"
 msgstr "未发现 shallow:%s"
 
-#: fetch-pack.c:394 fetch-pack.c:1423
+#: fetch-pack.c:394 fetch-pack.c:1474
 #, c-format
 msgid "expected shallow/unshallow, got %s"
 msgstr "应为 shallow/unshallow,却得到 %s"
@@ -4021,171 +4106,175 @@ msgstr "标记 %s 为完成"
 msgid "already have %s (%s)"
 msgstr "已经有 %s(%s)"
 
-#: fetch-pack.c:827
+#: fetch-pack.c:844
 msgid "fetch-pack: unable to fork off sideband demultiplexer"
 msgstr "fetch-pack:无法派生 sideband 多路输出"
 
-#: fetch-pack.c:835
+#: fetch-pack.c:852
 msgid "protocol error: bad pack header"
 msgstr "协议错误:坏的包头"
 
-#: fetch-pack.c:919
+#: fetch-pack.c:946
 #, c-format
 msgid "fetch-pack: unable to fork off %s"
 msgstr "fetch-pack:无法派生进程 %s"
 
-#: fetch-pack.c:937
+#: fetch-pack.c:952
+msgid "fetch-pack: invalid index-pack output"
+msgstr "fetch-pack:无效的 index-pack 输出"
+
+#: fetch-pack.c:969
 #, c-format
 msgid "%s failed"
 msgstr "%s 失败"
 
-#: fetch-pack.c:939
+#: fetch-pack.c:971
 msgid "error in sideband demultiplexer"
 msgstr "sideband 多路输出出错"
 
-#: fetch-pack.c:982
+#: fetch-pack.c:1031
 #, c-format
 msgid "Server version is %.*s"
 msgstr "服务器版本 %.*s"
 
-#: fetch-pack.c:990 fetch-pack.c:996 fetch-pack.c:999 fetch-pack.c:1005
-#: fetch-pack.c:1009 fetch-pack.c:1013 fetch-pack.c:1017 fetch-pack.c:1021
-#: fetch-pack.c:1025 fetch-pack.c:1029 fetch-pack.c:1033 fetch-pack.c:1037
-#: fetch-pack.c:1043 fetch-pack.c:1049 fetch-pack.c:1054 fetch-pack.c:1059
+#: fetch-pack.c:1039 fetch-pack.c:1045 fetch-pack.c:1048 fetch-pack.c:1054
+#: fetch-pack.c:1058 fetch-pack.c:1062 fetch-pack.c:1066 fetch-pack.c:1070
+#: fetch-pack.c:1074 fetch-pack.c:1078 fetch-pack.c:1082 fetch-pack.c:1086
+#: fetch-pack.c:1092 fetch-pack.c:1098 fetch-pack.c:1103 fetch-pack.c:1108
 #, c-format
 msgid "Server supports %s"
 msgstr "服务器支持 %s"
 
-#: fetch-pack.c:992
+#: fetch-pack.c:1041
 msgid "Server does not support shallow clients"
 msgstr "服务器不支持 shalllow 客户端"
 
-#: fetch-pack.c:1052
+#: fetch-pack.c:1101
 msgid "Server does not support --shallow-since"
 msgstr "服务器不支持 --shallow-since"
 
-#: fetch-pack.c:1057
+#: fetch-pack.c:1106
 msgid "Server does not support --shallow-exclude"
 msgstr "服务器不支持 --shallow-exclude"
 
-#: fetch-pack.c:1061
+#: fetch-pack.c:1110
 msgid "Server does not support --deepen"
 msgstr "服务器不支持 --deepen"
 
-#: fetch-pack.c:1063
+#: fetch-pack.c:1112
 msgid "Server does not support this repository's object format"
 msgstr "服务器不支持这个仓库的对象格式"
 
-#: fetch-pack.c:1076
+#: fetch-pack.c:1125
 msgid "no common commits"
 msgstr "没有共同的提交"
 
-#: fetch-pack.c:1088 fetch-pack.c:1628
+#: fetch-pack.c:1138 fetch-pack.c:1682
 msgid "git fetch-pack: fetch failed."
 msgstr "git fetch-pack:获取失败。"
 
-#: fetch-pack.c:1214
+#: fetch-pack.c:1265
 #, c-format
 msgid "mismatched algorithms: client %s; server %s"
 msgstr "不匹配的算法:客户端 %s,服务端 %s"
 
-#: fetch-pack.c:1218
+#: fetch-pack.c:1269
 #, c-format
 msgid "the server does not support algorithm '%s'"
 msgstr "服务器不支持算法 '%s'"
 
-#: fetch-pack.c:1238
+#: fetch-pack.c:1289
 msgid "Server does not support shallow requests"
 msgstr "服务器不支持 shalllow 请求"
 
-#: fetch-pack.c:1245
+#: fetch-pack.c:1296
 msgid "Server supports filter"
 msgstr "服务器支持 filter"
 
-#: fetch-pack.c:1284
+#: fetch-pack.c:1335
 msgid "unable to write request to remote"
 msgstr "无法将请求写到远程"
 
-#: fetch-pack.c:1302
+#: fetch-pack.c:1353
 #, c-format
 msgid "error reading section header '%s'"
 msgstr "读取节标题 '%s' 出错"
 
-#: fetch-pack.c:1308
+#: fetch-pack.c:1359
 #, c-format
 msgid "expected '%s', received '%s'"
 msgstr "预期 '%s',得到 '%s'"
 
-#: fetch-pack.c:1369
+#: fetch-pack.c:1420
 #, c-format
 msgid "unexpected acknowledgment line: '%s'"
 msgstr "意外的确认行:'%s'"
 
-#: fetch-pack.c:1374
+#: fetch-pack.c:1425
 #, c-format
 msgid "error processing acks: %d"
 msgstr "处理 ack 出错:%d"
 
-#: fetch-pack.c:1384
+#: fetch-pack.c:1435
 msgid "expected packfile to be sent after 'ready'"
 msgstr "预期在 'ready' 之后发送 packfile"
 
-#: fetch-pack.c:1386
+#: fetch-pack.c:1437
 msgid "expected no other sections to be sent after no 'ready'"
 msgstr "在没有 'ready' 不应该发送其它小节"
 
-#: fetch-pack.c:1428
+#: fetch-pack.c:1479
 #, c-format
 msgid "error processing shallow info: %d"
 msgstr "处理浅克隆信息出错:%d"
 
-#: fetch-pack.c:1475
+#: fetch-pack.c:1526
 #, c-format
 msgid "expected wanted-ref, got '%s'"
 msgstr "预期 wanted-ref,得到 '%s'"
 
-#: fetch-pack.c:1480
+#: fetch-pack.c:1531
 #, c-format
 msgid "unexpected wanted-ref: '%s'"
 msgstr "意外的 wanted-ref:'%s'"
 
-#: fetch-pack.c:1485
+#: fetch-pack.c:1536
 #, c-format
 msgid "error processing wanted refs: %d"
 msgstr "处理要获取的引用出错:%d"
 
-#: fetch-pack.c:1515
+#: fetch-pack.c:1566
 msgid "git fetch-pack: expected response end packet"
 msgstr "git fetch-pack:预期响应结束包"
 
-#: fetch-pack.c:1897
+#: fetch-pack.c:1960
 msgid "no matching remote head"
 msgstr "没有匹配的远程分支"
 
-#: fetch-pack.c:1920 builtin/clone.c:693
+#: fetch-pack.c:1983 builtin/clone.c:693
 msgid "remote did not send all necessary objects"
 msgstr "远程没有发送所有必需的对象"
 
-#: fetch-pack.c:1947
+#: fetch-pack.c:2010
 #, c-format
 msgid "no such remote ref %s"
 msgstr "没有这样的远程引用 %s"
 
-#: fetch-pack.c:1950
+#: fetch-pack.c:2013
 #, c-format
 msgid "Server does not allow request for unadvertised object %s"
 msgstr "服务器不允许请求未公开的对象 %s"
 
-#: gpg-interface.c:272
+#: gpg-interface.c:273
 msgid "could not create temporary file"
 msgstr "不能创建临时文件"
 
-#: gpg-interface.c:275
+#: gpg-interface.c:276
 #, c-format
 msgid "failed writing detached signature to '%s'"
 msgstr "无法将分离式签名写入 '%s'"
 
-#: gpg-interface.c:457
+#: gpg-interface.c:470
 msgid "gpg failed to sign the data"
 msgstr "gpg 数据签名失败"
 
@@ -4194,7 +4283,7 @@ msgstr "gpg 数据签名失败"
 msgid "ignore invalid color '%.*s' in log.graphColors"
 msgstr "忽略 log.graphColors 中无效的颜色 '%.*s'"
 
-#: grep.c:640
+#: grep.c:543
 msgid ""
 "given pattern contains NULL byte (via -f <file>). This is only supported "
 "with -P under PCRE v2"
@@ -4202,18 +4291,18 @@ msgstr ""
 "给定的模式包含 NULL 字符(通过 -f <文件> 参数)。只有 PCRE v2 下的 -P 支持此"
 "功能"
 
-#: grep.c:2100
+#: grep.c:1906
 #, c-format
 msgid "'%s': unable to read %s"
 msgstr "'%s':无法读取 %s"
 
-#: grep.c:2117 setup.c:176 builtin/clone.c:412 builtin/diff.c:89
+#: grep.c:1923 setup.c:176 builtin/clone.c:412 builtin/diff.c:90
 #: builtin/rm.c:135
 #, c-format
 msgid "failed to stat '%s'"
 msgstr "对 '%s' 调用 stat 失败"
 
-#: grep.c:2128
+#: grep.c:1934
 #, c-format
 msgid "'%s': short read"
 msgstr "'%s':读取不完整"
@@ -4283,7 +4372,7 @@ msgstr "在 $PATH 路径中的其他地方可用的 git 命令"
 msgid "These are common Git commands used in various situations:"
 msgstr "这些是各种场合常见的 Git 命令:"
 
-#: help.c:365 git.c:99
+#: help.c:365 git.c:100
 #, c-format
 msgid "unsupported command listing type '%s'"
 msgstr "不支持的命令列表类型 '%s'"
@@ -4518,11 +4607,229 @@ msgstr ""
 msgid "Unable to create '%s.lock': %s"
 msgstr "不能创建 '%s.lock':%s"
 
-#: ls-refs.c:109
+#: ls-refs.c:37
+#, c-format
+msgid "invalid value '%s' for lsrefs.unborn"
+msgstr "lsrefs.unborn 的取值 '%s' 无效"
+
+#: ls-refs.c:167
 msgid "expected flush after ls-refs arguments"
 msgstr "在 ls-refs 参数后应该有一个 flush 包"
 
-#: merge-ort-wrappers.c:13 merge-recursive.c:3672
+#: merge-ort.c:888 merge-recursive.c:1191
+#, c-format
+msgid "Failed to merge submodule %s (not checked out)"
+msgstr "无法合并子模组 %s (没有检出)"
+
+#: merge-ort.c:897 merge-recursive.c:1198
+#, c-format
+msgid "Failed to merge submodule %s (commits not present)"
+msgstr "无法合并子模组 %s(提交不存在)"
+
+#: merge-ort.c:906 merge-recursive.c:1205
+#, c-format
+msgid "Failed to merge submodule %s (commits don't follow merge-base)"
+msgstr "无法合并子模组 %s (提交未跟随合并基线)"
+
+#: merge-ort.c:916 merge-ort.c:923
+#, c-format
+msgid "Note: Fast-forwarding submodule %s to %s"
+msgstr "注意:快进子模组 %s 到 %s"
+
+#: merge-ort.c:944
+#, c-format
+msgid "Failed to merge submodule %s"
+msgstr "无法合并子模组 %s"
+
+#: merge-ort.c:951
+#, c-format
+msgid ""
+"Failed to merge submodule %s, but a possible merge resolution exists:\n"
+"%s\n"
+msgstr ""
+"无法合并子模组 %s,但是存在一个可能的合并方案:\n"
+"%s\n"
+
+#: merge-ort.c:955 merge-recursive.c:1259
+#, c-format
+msgid ""
+"If this is correct simply add it to the index for example\n"
+"by using:\n"
+"\n"
+"  git update-index --cacheinfo 160000 %s \"%s\"\n"
+"\n"
+"which will accept this suggestion.\n"
+msgstr ""
+"如果这个正确,将其添加到索引,例如使用命令:\n"
+"\n"
+"  git update-index --cacheinfo 160000 %s \"%s\"\n"
+"\n"
+"以接受此建议。\n"
+
+#: merge-ort.c:968
+#, c-format
+msgid ""
+"Failed to merge submodule %s, but multiple possible merges exist:\n"
+"%s"
+msgstr ""
+"无法合并子模组 %s,但是存在多个可能的合并:\n"
+"%s"
+
+#: merge-ort.c:1127 merge-recursive.c:1341
+msgid "Failed to execute internal merge"
+msgstr "无法执行内部合并"
+
+#: merge-ort.c:1132 merge-recursive.c:1346
+#, c-format
+msgid "Unable to add %s to database"
+msgstr "不能添加 %s 至对象库"
+
+#: merge-ort.c:1139 merge-recursive.c:1378
+#, c-format
+msgid "Auto-merging %s"
+msgstr "自动合并 %s"
+
+#: merge-ort.c:1278 merge-recursive.c:2100
+#, c-format
+msgid ""
+"CONFLICT (implicit dir rename): Existing file/dir at %s in the way of "
+"implicit directory rename(s) putting the following path(s) there: %s."
+msgstr ""
+"冲突(隐式目录重命名):处于隐式目录重命名的现存文件/目录 %s,将以下路径放"
+"在:%s。"
+
+#: merge-ort.c:1288 merge-recursive.c:2110
+#, c-format
+msgid ""
+"CONFLICT (implicit dir rename): Cannot map more than one path to %s; "
+"implicit directory renames tried to put these paths there: %s"
+msgstr ""
+"冲突(隐式目录重命名):无法映射一个以上路径到 %s,隐式目录重命名尝试将这些路"
+"径放置于此:%s"
+
+#: merge-ort.c:1471
+#, c-format
+msgid ""
+"CONFLICT (directory rename split): Unclear where to rename %s to; it was "
+"renamed to multiple other directories, with no destination getting a "
+"majority of the files."
+msgstr "冲突(分割的目录重命名):不清楚重命名 %s 到哪里,因为它被重命名到多个其他目录中,没有一个目标目录中包含多数文件。"
+
+#: merge-ort.c:1637 merge-recursive.c:2447
+#, c-format
+msgid ""
+"WARNING: Avoiding applying %s -> %s rename to %s, because %s itself was "
+"renamed."
+msgstr "警告:避免应用 %s -> %s 的重命名到 %s,因为 %s 本身已被重命名。"
+
+#: merge-ort.c:1781 merge-recursive.c:3215
+#, c-format
+msgid ""
+"Path updated: %s added in %s inside a directory that was renamed in %s; "
+"moving it to %s."
+msgstr ""
+"路径已更新:%s 添加到 %s,位于一个被重命名到 %s 的目录中,将其移动到 %s。"
+
+#: merge-ort.c:1788 merge-recursive.c:3222
+#, c-format
+msgid ""
+"Path updated: %s renamed to %s in %s, inside a directory that was renamed in "
+"%s; moving it to %s."
+msgstr ""
+"路径已更新:%1$s 重命名为 %3$s 中的 %2$s,而该目录被重命名到 %4$s 中,将其移"
+"动到 %5$s。"
+
+#: merge-ort.c:1801 merge-recursive.c:3218
+#, c-format
+msgid ""
+"CONFLICT (file location): %s added in %s inside a directory that was renamed "
+"in %s, suggesting it should perhaps be moved to %s."
+msgstr ""
+"冲突(文件位置):%s 添加到 %s,位于一个被重命名为 %s 的目录中,建议将其移动"
+"到 %s。"
+
+#: merge-ort.c:1809 merge-recursive.c:3225
+#, c-format
+msgid ""
+"CONFLICT (file location): %s renamed to %s in %s, inside a directory that "
+"was renamed in %s, suggesting it should perhaps be moved to %s."
+msgstr ""
+"冲突(文件位置):%1$s 重命名为 %3$s 中的 %2$s,而该目录被重命名到 %4$s 中,"
+"建议将其移动到 %5$s。"
+
+#: merge-ort.c:1952
+#, c-format
+msgid "CONFLICT (rename/rename): %s renamed to %s in %s and to %s in %s."
+msgstr "冲突(重命名/重命名):%1$s 重命名为 %3$s 中的 %2$s,以及在 %5$s 中的 %4$s。"
+
+#: merge-ort.c:2047
+#, c-format
+msgid ""
+"CONFLICT (rename involved in collision): rename of %s -> %s has content "
+"conflicts AND collides with another path; this may result in nested conflict "
+"markers."
+msgstr "冲突(重命名卷入冲突):重命名 %s -> %s 有内容冲突并且和另外一个路径碰撞,这可能导致嵌套的冲突标签。"
+
+#: merge-ort.c:2066 merge-ort.c:2090
+#, c-format
+msgid "CONFLICT (rename/delete): %s renamed to %s in %s, but deleted in %s."
+msgstr "冲突(重命名/删除):%1$s 在 %3$s 中重命名为 %2$s,但在 %4$s 中删除。"
+
+#: merge-ort.c:2735
+#, c-format
+msgid ""
+"CONFLICT (file/directory): directory in the way of %s from %s; moving it to "
+"%s instead."
+msgstr "冲突(文件/目录):目录已存在于 %2$s 中的 %1$s,将其移动到 %3$s。"
+
+#: merge-ort.c:2808
+#, c-format
+msgid ""
+"CONFLICT (distinct types): %s had different types on each side; renamed %s "
+"of them so each can be recorded somewhere."
+msgstr "冲突(不同类型):%s 在每一侧有不同的类型,重命名它们中的%s以便每个被记录在不同位置。"
+
+#: merge-ort.c:2812
+msgid "both"
+msgstr "双方"
+
+#: merge-ort.c:2812
+msgid "one"
+msgstr "一个"
+
+#: merge-ort.c:2907 merge-recursive.c:3052
+msgid "content"
+msgstr "内容"
+
+#: merge-ort.c:2909 merge-recursive.c:3056
+msgid "add/add"
+msgstr "添加/添加"
+
+#: merge-ort.c:2911 merge-recursive.c:3101
+msgid "submodule"
+msgstr "子模组"
+
+#: merge-ort.c:2913 merge-recursive.c:3102
+#, c-format
+msgid "CONFLICT (%s): Merge conflict in %s"
+msgstr "冲突(%s):合并冲突于 %s"
+
+#: merge-ort.c:2938
+#, c-format
+msgid ""
+"CONFLICT (modify/delete): %s deleted in %s and modified in %s.  Version %s "
+"of %s left in tree."
+msgstr "冲突(修改/删除):%1$s 在 %2$s 中被删除,在 %3$s 中被修改。%5$s 的 %4$s 版本在树中被保留。"
+
+#. TRANSLATORS: The %s arguments are: 1) tree hash of a merge
+#. base, and 2-3) the trees for the two trees we're merging.
+#.
+#: merge-ort.c:3406
+#, c-format
+msgid "collecting merge info failed for trees %s, %s, %s"
+msgstr "无法收集树 %s、%s、%s 的合并信息"
+
+#: merge-ort-wrappers.c:13 merge-recursive.c:3661
 #, c-format
 msgid ""
 "Your local changes to the following files would be overwritten by merge:\n"
@@ -4594,22 +4901,7 @@ msgstr "创建符号链接 '%s' 失败:%s"
 msgid "do not know what to do with %06o %s '%s'"
 msgstr "不知道如何处理 %06o %s '%s'"
 
-#: merge-recursive.c:1191
-#, c-format
-msgid "Failed to merge submodule %s (not checked out)"
-msgstr "无法合并子模组 %s (没有检出)"
-
-#: merge-recursive.c:1198
-#, c-format
-msgid "Failed to merge submodule %s (commits not present)"
-msgstr "无法合并子模组 %s(提交不存在)"
-
-#: merge-recursive.c:1205
-#, c-format
-msgid "Failed to merge submodule %s (commits don't follow merge-base)"
-msgstr "无法合并子模组 %s (提交未跟随合并基线)"
-
-#: merge-recursive.c:1213 merge-recursive.c:1225
+#: merge-recursive.c:1213 merge-recursive.c:1225
 #, c-format
 msgid "Fast-forwarding submodule %s to the following commit:"
 msgstr "子模组 %s 快进到如下提交:"
@@ -4633,41 +4925,11 @@ msgstr "无法合并子模组 %s(非快进)"
 msgid "Found a possible merge resolution for the submodule:\n"
 msgstr "找到子模组的一个可能的合并方案:\n"
 
-#: merge-recursive.c:1259
-#, c-format
-msgid ""
-"If this is correct simply add it to the index for example\n"
-"by using:\n"
-"\n"
-"  git update-index --cacheinfo 160000 %s \"%s\"\n"
-"\n"
-"which will accept this suggestion.\n"
-msgstr ""
-"如果这个正确,将其添加到索引,例如使用命令:\n"
-"\n"
-"  git update-index --cacheinfo 160000 %s \"%s\"\n"
-"\n"
-"以接受此建议。\n"
-
 #: merge-recursive.c:1268
 #, c-format
 msgid "Failed to merge submodule %s (multiple merges found)"
 msgstr "无法合并子模组 %s (发现多个合并)"
 
-#: merge-recursive.c:1341
-msgid "Failed to execute internal merge"
-msgstr "无法执行内部合并"
-
-#: merge-recursive.c:1346
-#, c-format
-msgid "Unable to add %s to database"
-msgstr "不能添加 %s 至对象库"
-
-#: merge-recursive.c:1378
-#, c-format
-msgid "Auto-merging %s"
-msgstr "自动合并 %s"
-
 #: merge-recursive.c:1402
 #, c-format
 msgid "Error: Refusing to lose untracked file at %s; writing to %s instead."
@@ -4772,24 +5034,6 @@ msgstr ""
 "冲突(分割的目录重命名):不清楚 %s 应该放在哪里,因为目录 %s 被重命名到多个"
 "其它目录,没有目录包含大部分文件。"
 
-#: merge-recursive.c:2100
-#, c-format
-msgid ""
-"CONFLICT (implicit dir rename): Existing file/dir at %s in the way of "
-"implicit directory rename(s) putting the following path(s) there: %s."
-msgstr ""
-"冲突(隐式目录重命名):处于隐式目录重命名的现存文件/目录 %s,将以下路径放"
-"在:%s。"
-
-#: merge-recursive.c:2110
-#, c-format
-msgid ""
-"CONFLICT (implicit dir rename): Cannot map more than one path to %s; "
-"implicit directory renames tried to put these paths there: %s"
-msgstr ""
-"冲突(隐式目录重命名):无法映射一个以上路径到 %s,隐式目录重命名尝试将这些路"
-"径放置于此:%s"
-
 #: merge-recursive.c:2202
 #, c-format
 msgid ""
@@ -4799,13 +5043,6 @@ msgstr ""
 "冲突(重命名/重命名):在 %3$s 中重命名目录 %1$s->%2$s,在 %6$s 中重命名目录 "
 "%4$s->%5$s"
 
-#: merge-recursive.c:2447
-#, c-format
-msgid ""
-"WARNING: Avoiding applying %s -> %s rename to %s, because %s itself was "
-"renamed."
-msgstr "警告:避免应用 %s -> %s 的重命名到 %s,因为 %s 本身已被重命名。"
-
 #: merge-recursive.c:2973
 #, c-format
 msgid "cannot read object %s"
@@ -4824,68 +5061,16 @@ msgstr "修改"
 msgid "modified"
 msgstr "修改"
 
-#: merge-recursive.c:3052
-msgid "content"
-msgstr "内容"
-
-#: merge-recursive.c:3056
-msgid "add/add"
-msgstr "添加/添加"
-
 #: merge-recursive.c:3079
 #, c-format
 msgid "Skipped %s (merged same as existing)"
 msgstr "略过 %s(已经做过相同合并)"
 
-#: merge-recursive.c:3101
-msgid "submodule"
-msgstr "子模组"
-
-#: merge-recursive.c:3102
-#, c-format
-msgid "CONFLICT (%s): Merge conflict in %s"
-msgstr "冲突(%s):合并冲突于 %s"
-
 #: merge-recursive.c:3132
 #, c-format
 msgid "Adding as %s instead"
 msgstr "而是以 %s 为名添加"
 
-#: merge-recursive.c:3215
-#, c-format
-msgid ""
-"Path updated: %s added in %s inside a directory that was renamed in %s; "
-"moving it to %s."
-msgstr ""
-"路径已更新:%s 添加到 %s,位于一个被重命名到 %s 的目录中,将其移动到 %s。"
-
-#: merge-recursive.c:3218
-#, c-format
-msgid ""
-"CONFLICT (file location): %s added in %s inside a directory that was renamed "
-"in %s, suggesting it should perhaps be moved to %s."
-msgstr ""
-"冲突(文件位置):%s 添加到 %s,位于一个被重命名为 %s 的目录中,建议将其移动"
-"到 %s。"
-
-#: merge-recursive.c:3222
-#, c-format
-msgid ""
-"Path updated: %s renamed to %s in %s, inside a directory that was renamed in "
-"%s; moving it to %s."
-msgstr ""
-"路径已更新:%1$s 重命名为 %3$s 中的 %2$s,而该目录被重命名到 %4$s 中,将其移"
-"动到 %5$s。"
-
-#: merge-recursive.c:3225
-#, c-format
-msgid ""
-"CONFLICT (file location): %s renamed to %s in %s, inside a directory that "
-"was renamed in %s, suggesting it should perhaps be moved to %s."
-msgstr ""
-"冲突(文件位置):%1$s 重命名为 %3$s 中的 %2$s,而该目录被重命名到 %4$s 中,"
-"建议将其移动到 %5$s。"
-
 #: merge-recursive.c:3339
 #, c-format
 msgid "Removing %s"
@@ -4919,27 +5104,28 @@ msgstr "冲突(add/add):合并冲突于 %s"
 msgid "merging of trees %s and %s failed"
 msgstr "无法合并树 %s 和 %s"
 
-#: merge-recursive.c:3550
+#: merge-recursive.c:3539
 msgid "Merging:"
 msgstr "合并:"
 
-#: merge-recursive.c:3563
+#: merge-recursive.c:3552
 #, c-format
 msgid "found %u common ancestor:"
 msgid_plural "found %u common ancestors:"
 msgstr[0] "发现 %u 个共同祖先:"
 msgstr[1] "发现 %u 个共同祖先:"
 
-#: merge-recursive.c:3613
+#: merge-recursive.c:3602
 msgid "merge returned no commit"
 msgstr "合并未返回提交"
 
-#: merge-recursive.c:3769
+#: merge-recursive.c:3758
 #, c-format
 msgid "Could not parse object '%s'"
 msgstr "不能解析对象 '%s'"
 
-#: merge-recursive.c:3787 builtin/merge.c:711 builtin/merge.c:895
+#: merge-recursive.c:3776 builtin/merge.c:712 builtin/merge.c:896
+#: builtin/stash.c:471
 msgid "Unable to write index."
 msgstr "不能写入索引。"
 
@@ -4947,184 +5133,176 @@ msgstr "不能写入索引。"
 msgid "failed to read the cache"
 msgstr "读取缓存失败"
 
-#: merge.c:109 rerere.c:720 builtin/am.c:1883 builtin/am.c:1917
-#: builtin/checkout.c:573 builtin/checkout.c:829 builtin/clone.c:817
+#: merge.c:109 rerere.c:704 builtin/am.c:1883 builtin/am.c:1917
+#: builtin/checkout.c:575 builtin/checkout.c:828 builtin/clone.c:817
 #: builtin/stash.c:265
 msgid "unable to write new index file"
 msgstr "无法写新的索引文件"
 
-#: midx.c:80
+#: midx.c:62
+msgid "multi-pack-index OID fanout is of the wrong size"
+msgstr "多包索引的对象ID扇出表大小错误"
+
+#: midx.c:93
 #, c-format
 msgid "multi-pack-index file %s is too small"
 msgstr "多包索引文件 %s 太小"
 
-#: midx.c:96
+#: midx.c:109
 #, c-format
 msgid "multi-pack-index signature 0x%08x does not match signature 0x%08x"
 msgstr "多包索引签名 0x%08x 和签名 0x%08x 不匹配"
 
-#: midx.c:101
+#: midx.c:114
 #, c-format
 msgid "multi-pack-index version %d not recognized"
 msgstr "multi-pack-index 版本 %d 不能被识别"
 
-#: midx.c:106
+#: midx.c:119
 #, c-format
 msgid "multi-pack-index hash version %u does not match version %u"
 msgstr "多包索引哈希版本 %u 和版本 %u 不匹配"
 
-#: midx.c:123
-msgid "invalid chunk offset (too large)"
-msgstr "无效的块偏移(太大)"
-
-#: midx.c:147
-msgid "terminating multi-pack-index chunk id appears earlier than expected"
-msgstr "终止多包索引块 id 出现时间早于预期"
-
-#: midx.c:160
+#: midx.c:136
 msgid "multi-pack-index missing required pack-name chunk"
 msgstr "多包索引缺少必需的包名块"
 
-#: midx.c:162
+#: midx.c:138
 msgid "multi-pack-index missing required OID fanout chunk"
 msgstr "多包索引缺少必需的对象 ID 扇出块"
 
-#: midx.c:164
+#: midx.c:140
 msgid "multi-pack-index missing required OID lookup chunk"
 msgstr "多包索引缺少必需的对象 ID 查询块"
 
-#: midx.c:166
+#: midx.c:142
 msgid "multi-pack-index missing required object offsets chunk"
 msgstr "多包索引缺少必需的对象偏移块"
 
-#: midx.c:180
+#: midx.c:158
 #, c-format
 msgid "multi-pack-index pack names out of order: '%s' before '%s'"
 msgstr "多包索引包名无序:'%s' 在 '%s' 之前"
 
-#: midx.c:223
+#: midx.c:202
 #, c-format
 msgid "bad pack-int-id: %u (%u total packs)"
 msgstr "错的 pack-int-id:%u(共有 %u 个包)"
 
-#: midx.c:273
+#: midx.c:252
 msgid "multi-pack-index stores a 64-bit offset, but off_t is too small"
 msgstr "多包索引存储一个64位偏移,但是 off_t 太小"
 
-#: midx.c:480
+#: midx.c:467
 #, c-format
 msgid "failed to add packfile '%s'"
 msgstr "添加包文件 '%s' 失败"
 
-#: midx.c:486
+#: midx.c:473
 #, c-format
 msgid "failed to open pack-index '%s'"
 msgstr "打开包索引 '%s' 失败"
 
-#: midx.c:546
+#: midx.c:533
 #, c-format
 msgid "failed to locate object %d in packfile"
 msgstr "在包文件中定位对象 %d 失败"
 
-#: midx.c:846
+#: midx.c:821
 msgid "Adding packfiles to multi-pack-index"
 msgstr "添加包文件到多包索引"
 
-#: midx.c:879
+#: midx.c:855
 #, c-format
 msgid "did not see pack-file %s to drop"
 msgstr "没有看到要丢弃的包文件 %s"
 
-#: midx.c:931
+#: midx.c:904
 msgid "no pack files to index."
 msgstr "没有要索引的包文件。"
 
-#: midx.c:982
-msgid "Writing chunks to multi-pack-index"
-msgstr "写入块到多包索引"
-
-#: midx.c:1060
+#: midx.c:965
 #, c-format
 msgid "failed to clear multi-pack-index at %s"
 msgstr "清理位于 %s 的多包索引失败"
 
-#: midx.c:1116
+#: midx.c:1021
 msgid "multi-pack-index file exists, but failed to parse"
 msgstr "多包索引文件存在,但无法解析"
 
-#: midx.c:1124
+#: midx.c:1029
 msgid "Looking for referenced packfiles"
 msgstr "正在查找引用的包文件"
 
-#: midx.c:1139
+#: midx.c:1044
 #, c-format
 msgid ""
 "oid fanout out of order: fanout[%d] = %<PRIx32> > %<PRIx32> = fanout[%d]"
 msgstr "对象 ID 扇出无序:fanout[%d] = %<PRIx32> > %<PRIx32> = fanout[%d]"
 
-#: midx.c:1144
+#: midx.c:1049
 msgid "the midx contains no oid"
 msgstr "midx 不包含 oid"
 
-#: midx.c:1153
+#: midx.c:1058
 msgid "Verifying OID order in multi-pack-index"
 msgstr "校验多包索引中的 OID 顺序"
 
-#: midx.c:1162
+#: midx.c:1067
 #, c-format
 msgid "oid lookup out of order: oid[%d] = %s >= %s = oid[%d]"
 msgstr "对象 ID 查询无序:oid[%d] = %s >= %s = oid[%d]"
 
-#: midx.c:1182
+#: midx.c:1087
 msgid "Sorting objects by packfile"
 msgstr "通过包文件为对象排序"
 
-#: midx.c:1189
+#: midx.c:1094
 msgid "Verifying object offsets"
 msgstr "校验对象偏移"
 
-#: midx.c:1205
+#: midx.c:1110
 #, c-format
 msgid "failed to load pack entry for oid[%d] = %s"
 msgstr "为 oid[%d] = %s 加载包条目失败"
 
-#: midx.c:1211
+#: midx.c:1116
 #, c-format
 msgid "failed to load pack-index for packfile %s"
 msgstr "为包文件 %s 加载包索引失败"
 
-#: midx.c:1220
+#: midx.c:1125
 #, c-format
 msgid "incorrect object offset for oid[%d] = %s: %<PRIx64> != %<PRIx64>"
 msgstr "oid[%d] = %s 错误的对象偏移:%<PRIx64> != %<PRIx64>"
 
-#: midx.c:1245
+#: midx.c:1150
 msgid "Counting referenced objects"
 msgstr "正在对引用对象计数"
 
-#: midx.c:1255
+#: midx.c:1160
 msgid "Finding and deleting unreferenced packfiles"
 msgstr "正在查找和删除未引用的包文件"
 
-#: midx.c:1446
+#: midx.c:1351
 msgid "could not start pack-objects"
 msgstr "不能开始 pack-objects"
 
-#: midx.c:1466
+#: midx.c:1371
 msgid "could not finish pack-objects"
 msgstr "不能结束 pack-objects"
 
-#: name-hash.c:537
+#: name-hash.c:538
 #, c-format
 msgid "unable to create lazy_dir thread: %s"
 msgstr "不能创建 lazy_dir 线程:%s"
 
-#: name-hash.c:559
+#: name-hash.c:560
 #, c-format
 msgid "unable to create lazy_name thread: %s"
 msgstr "不能创建 lazy_name 线程:%s"
 
-#: name-hash.c:565
+#: name-hash.c:566
 #, c-format
 msgid "unable to join lazy_name thread: %s"
 msgstr "不能加入 lasy_name 线程:%s"
@@ -5168,2933 +5346,2996 @@ msgstr "拒绝向 %s(在 refs/notes/ 之外)写入注解"
 msgid "Bad %s value: '%s'"
 msgstr "坏的 %s 值:'%s'"
 
-#: object.c:53
+#: object-file.c:480
 #, c-format
-msgid "invalid object type \"%s\""
-msgstr "无效的对象类型 \"%s\""
+msgid "object directory %s does not exist; check .git/objects/info/alternates"
+msgstr "对象目录 %s 不存在,检查 .git/objects/info/alternates"
 
-#: object.c:173
+#: object-file.c:531
 #, c-format
-msgid "object %s is a %s, not a %s"
-msgstr "对象 %s 是一个 %s,不是一个 %s"
+msgid "unable to normalize alternate object path: %s"
+msgstr "无法规范化备用对象路径:%s"
 
-#: object.c:233
+#: object-file.c:603
 #, c-format
-msgid "object %s has unknown type id %d"
-msgstr "对象 %s 有未知的类型 id %d"
+msgid "%s: ignoring alternate object stores, nesting too deep"
+msgstr "%s:忽略备用对象库,嵌套太深"
 
-#: object.c:246
+#: object-file.c:610
 #, c-format
-msgid "unable to parse object: %s"
-msgstr "不能解析对象:%s"
+msgid "unable to normalize object directory: %s"
+msgstr "无法规范化对象目录: %s"
 
-#: object.c:266 object.c:278
-#, c-format
-msgid "hash mismatch %s"
-msgstr "哈希值与 %s 不匹配"
+#: object-file.c:653
+msgid "unable to fdopen alternates lockfile"
+msgstr "无法 fdopen 替换锁文件"
 
-#: pack-bitmap.c:815 pack-bitmap.c:821 builtin/pack-objects.c:2216
-#, c-format
-msgid "unable to get size of %s"
-msgstr "无法得到 %s 的大小"
+#: object-file.c:671
+msgid "unable to read alternates file"
+msgstr "无法读取替代文件"
 
-#: packfile.c:615
-msgid "offset before end of packfile (broken .idx?)"
-msgstr "偏移量在包文件结束之前(损坏的 .idx?)"
+#: object-file.c:678
+msgid "unable to move new alternates file into place"
+msgstr "无法将新的替代文件移动到位"
 
-#: packfile.c:1907
+#: object-file.c:713
 #, c-format
-msgid "offset before start of pack index for %s (corrupt index?)"
-msgstr "偏移量在 %s 的包索引开始之前(损坏的索引?)"
+msgid "path '%s' does not exist"
+msgstr "路径 '%s' 不存在"
 
-#: packfile.c:1911
+#: object-file.c:734
 #, c-format
-msgid "offset beyond end of pack index for %s (truncated index?)"
-msgstr "å\81\8f移é\87\8fè¶\8aè¿\87äº\86 %s ç\9a\84å\8c\85ç´¢å¼\95ç\9a\84ç»\93å°¾ï¼\88被æ\88ªæ\96­ç\9a\84ç´¢å¼\95ï¼\9fï¼\89"
+msgid "reference repository '%s' as a linked checkout is not supported yet."
+msgstr "å°\9aä¸\8dæ\94¯æ\8c\81å°\86å\8f\82è\80\83ä»\93åº\93 '%s' ä½\9c为ä¸\80个é\93¾æ\8e¥æ£\80å\87ºã\80\82"
 
-#: parse-options-cb.c:20 parse-options-cb.c:24
+#: object-file.c:740
 #, c-format
-msgid "option `%s' expects a numerical value"
-msgstr "选项 `%s' 期望一个数字值"
+msgid "reference repository '%s' is not a local repository."
+msgstr "参考仓库 '%s' 不是一个本地仓库。"
 
-#: parse-options-cb.c:41
+#: object-file.c:746
 #, c-format
-msgid "malformed expiration date '%s'"
-msgstr "格式错误的到期时间:'%s'"
+msgid "reference repository '%s' is shallow"
+msgstr "参考仓库 '%s' 是一个浅克隆"
 
-#: parse-options-cb.c:54
+#: object-file.c:754
 #, c-format
-msgid "option `%s' expects \"always\", \"auto\", or \"never\""
-msgstr "选项 `%s' 期望 \"always\"、\"auto\" 或 \"never\""
+msgid "reference repository '%s' is grafted"
+msgstr "参考仓库 '%s' 已被移植"
 
-#: parse-options-cb.c:132 parse-options-cb.c:149
+#: object-file.c:814
 #, c-format
-msgid "malformed object name '%s'"
-msgstr "格式错误的对象名 '%s'"
+msgid "invalid line while parsing alternate refs: %s"
+msgstr "解析备用引用时无效的行:%s"
 
-#: parse-options.c:38
+#: object-file.c:964
 #, c-format
-msgid "%s requires a value"
-msgstr "%s 需要一个值"
+msgid "attempting to mmap %<PRIuMAX> over limit %<PRIuMAX>"
+msgstr "尝试 mmap %<PRIuMAX>,超过了最大值 %<PRIuMAX>"
 
-#: parse-options.c:73
-#, c-format
-msgid "%s is incompatible with %s"
-msgstr "%s 与 %s 不兼容"
+#: object-file.c:985
+msgid "mmap failed"
+msgstr "mmap 失败"
 
-#: parse-options.c:78
+#: object-file.c:1149
 #, c-format
-msgid "%s : incompatible with something else"
-msgstr "%s:和其它的不兼容"
+msgid "object file %s is empty"
+msgstr "对象文件 %s 为空"
 
-#: parse-options.c:92 parse-options.c:96 parse-options.c:317
+#: object-file.c:1284 object-file.c:2477
 #, c-format
-msgid "%s takes no value"
-msgstr "%s 不取值"
+msgid "corrupt loose object '%s'"
+msgstr "损坏的松散对象 '%s'"
 
-#: parse-options.c:94
+#: object-file.c:1286 object-file.c:2481
 #, c-format
-msgid "%s isn't available"
-msgstr "%s 不可用"
+msgid "garbage at end of loose object '%s'"
+msgstr "松散对象 '%s' 后面有垃圾数据"
 
-#: parse-options.c:217
-#, c-format
-msgid "%s expects a non-negative integer value with an optional k/m/g suffix"
-msgstr "%s 期望一个非负整数和一个可选的 k/m/g 后缀"
+#: object-file.c:1328
+msgid "invalid object type"
+msgstr "无效的对象类型"
 
-#: parse-options.c:386
+#: object-file.c:1412
 #, c-format
-msgid "ambiguous option: %s (could be --%s%s or --%s%s)"
-msgstr "æ\9c\89æ­§ä¹\89ç\9a\84é\80\89项ï¼\9a%sï¼\88å\8f¯ä»¥æ\98¯ --%s%s æ\88\96 --%s%sï¼\89"
+msgid "unable to unpack %s header with --allow-unknown-type"
+msgstr "æ\97 æ³\95ç\94¨ --allow-unknown-type å\8f\82æ\95°è§£å¼\80 %s å¤´ä¿¡æ\81¯"
 
-#: parse-options.c:420 parse-options.c:428
+#: object-file.c:1415
 #, c-format
-msgid "did you mean `--%s` (with two dashes)?"
-msgstr "你的意思是 `--%s`(有两个短线)?"
+msgid "unable to unpack %s header"
+msgstr "无法解开 %s 头部"
 
-#: parse-options.c:666 parse-options.c:971
+#: object-file.c:1421
 #, c-format
-msgid "alias of --%s"
-msgstr "--%s 的别名"
+msgid "unable to parse %s header with --allow-unknown-type"
+msgstr "无法用 --allow-unknown-type 参数解析 %s 头信息"
 
-#: parse-options.c:862
+#: object-file.c:1424
 #, c-format
-msgid "unknown option `%s'"
-msgstr "æ\9cªç\9f¥é\80\89项 `%s'"
+msgid "unable to parse %s header"
+msgstr "æ\97 æ³\95解æ\9e\90 %s å¤´é\83¨"
 
-#: parse-options.c:864
+#: object-file.c:1651
 #, c-format
-msgid "unknown switch `%c'"
-msgstr "未知开关 `%c'"
+msgid "failed to read object %s"
+msgstr "读取对象 %s 失败"
 
-#: parse-options.c:866
+#: object-file.c:1655
 #, c-format
-msgid "unknown non-ascii option in string: `%s'"
-msgstr "字符串中未知的非 ascii 字符选项:`%s'"
+msgid "replacement %s not found for %s"
+msgstr "找不到 %2$s 的替代 %1$s"
 
-#: parse-options.c:890
-msgid "..."
-msgstr "..."
+#: object-file.c:1659
+#, c-format
+msgid "loose object %s (stored in %s) is corrupt"
+msgstr "松散对象 %s(保存在 %s)已损坏"
 
-#: parse-options.c:909
+#: object-file.c:1663
 #, c-format
-msgid "usage: %s"
-msgstr "用法:%s"
+msgid "packed object %s (stored in %s) is corrupt"
+msgstr "打包对象 %s(保存在 %s)已损坏"
 
-#. TRANSLATORS: the colon here should align with the
-#. one in "usage: %s" translation.
-#.
-#: parse-options.c:915
+#: object-file.c:1768
 #, c-format
-msgid "   or: %s"
-msgstr "  或:%s"
+msgid "unable to write file %s"
+msgstr "无法写文件 %s"
 
-#  译者:为保证在输出中对齐,注意调整句中空格!
-#: parse-options.c:918
+#: object-file.c:1775
 #, c-format
-msgid "    %s"
-msgstr "    %s"
+msgid "unable to set permission to '%s'"
+msgstr "无法为 '%s' 设置权限"
 
-#: parse-options.c:957
-msgid "-NUM"
-msgstr "-数字"
+#: object-file.c:1782
+msgid "file write error"
+msgstr "文件写错误"
 
-#: path.c:915
+#: object-file.c:1802
+msgid "error when closing loose object file"
+msgstr "关闭松散对象文件时出错"
+
+#: object-file.c:1867
 #, c-format
-msgid "Could not make %s writable by group"
-msgstr "不能设置 %s 为组可写"
+msgid "insufficient permission for adding an object to repository database %s"
+msgstr "权限不足,无法在仓库对象库 %s 中添加对象"
 
-#: pathspec.c:130
-msgid "Escape character '\\' not allowed as last character in attr value"
-msgstr "转义字符 '\\' 不能作为属性值的最后一个字符"
+#: object-file.c:1869
+msgid "unable to create temporary file"
+msgstr "无法创建临时文件"
 
-#: pathspec.c:148
-msgid "Only one 'attr:' specification is allowed."
-msgstr "只允许一个 'attr:' 规格。"
+#: object-file.c:1893
+msgid "unable to write loose object file"
+msgstr "不能写松散对象文件"
 
-#: pathspec.c:151
-msgid "attr spec must not be empty"
-msgstr "属性规格不能为空"
+#: object-file.c:1899
+#, c-format
+msgid "unable to deflate new object %s (%d)"
+msgstr "不能压缩新对象 %s(%d)"
 
-#: pathspec.c:194
+#: object-file.c:1903
 #, c-format
-msgid "invalid attribute name %s"
-msgstr "无效的属性名 %s"
+msgid "deflateEnd on object %s failed (%d)"
+msgstr "在对象 %s 上调用 deflateEnd 失败(%d)"
 
-#: pathspec.c:259
-msgid "global 'glob' and 'noglob' pathspec settings are incompatible"
-msgstr "全局的 'glob' 和 'noglob' 路径规格设置不兼容"
+#: object-file.c:1907
+#, c-format
+msgid "confused by unstable object source data for %s"
+msgstr "被 %s 的不稳定对象源数据搞糊涂了"
 
-#: pathspec.c:266
-msgid ""
-"global 'literal' pathspec setting is incompatible with all other global "
-"pathspec settings"
-msgstr "全局的 'literal' 路径规格设置和其它的全局路径规格设置不兼容"
+#: object-file.c:1917 builtin/pack-objects.c:1097
+#, c-format
+msgid "failed utime() on %s"
+msgstr "在 %s 上调用 utime() 失败"
 
-#: pathspec.c:306
-msgid "invalid parameter for pathspec magic 'prefix'"
-msgstr "路径规格包含无效的神奇前缀"
+#: object-file.c:1994
+#, c-format
+msgid "cannot read object for %s"
+msgstr "不能读取对象 %s"
 
-#: pathspec.c:327
+#: object-file.c:2045
+msgid "corrupt commit"
+msgstr "损坏的提交"
+
+#: object-file.c:2053
+msgid "corrupt tag"
+msgstr "损坏的标签"
+
+#: object-file.c:2153
 #, c-format
-msgid "Invalid pathspec magic '%.*s' in '%s'"
-msgstr "在路径规格 '%3$s' 中无效的神奇前缀 '%2$.*1$s'"
+msgid "read error while indexing %s"
+msgstr "索引 %s 时读取错误"
 
-#: pathspec.c:332
+#: object-file.c:2156
 #, c-format
-msgid "Missing ')' at the end of pathspec magic in '%s'"
-msgstr "路径规格 '%s' 的神奇前缀结尾少了一个 ')'"
+msgid "short read while indexing %s"
+msgstr "索引 %s 时读入不完整"
 
-#: pathspec.c:370
+#: object-file.c:2229 object-file.c:2239
 #, c-format
-msgid "Unimplemented pathspec magic '%c' in '%s'"
-msgstr "路径规格 '%2$s' 中包含未实现的神奇前缀 '%1$c'"
+msgid "%s: failed to insert into database"
+msgstr "%s:插入数据库失败"
 
-#: pathspec.c:429
+#: object-file.c:2245
 #, c-format
-msgid "%s: 'literal' and 'glob' are incompatible"
-msgstr "%s:'literal' 和 'glob' 不兼容"
+msgid "%s: unsupported file type"
+msgstr "%s:不支持的文件类型"
 
-#: pathspec.c:445
+#: object-file.c:2269
 #, c-format
-msgid "%s: '%s' is outside repository at '%s'"
-msgstr "%s:'%s' 在位于 '%s' 的仓库之外"
+msgid "%s is not a valid object"
+msgstr "%s 不是一个有效的对象"
 
-#: pathspec.c:521
+#: object-file.c:2271
 #, c-format
-msgid "'%s' (mnemonic: '%c')"
-msgstr "'%s'(助记符:'%c')"
+msgid "%s is not a valid '%s' object"
+msgstr "%s 不是一个有效的 '%s' 对象"
 
-#: pathspec.c:531
+#: object-file.c:2298 builtin/index-pack.c:192
 #, c-format
-msgid "%s: pathspec magic not supported by this command: %s"
-msgstr "%s:路径规格神奇前缀不被此命令支持:%s"
+msgid "unable to open %s"
+msgstr "不能打开 %s"
 
-#: pathspec.c:598
+#: object-file.c:2488 object-file.c:2541
 #, c-format
-msgid "pathspec '%s' is beyond a symbolic link"
-msgstr "路径规格 '%s' 位于符号链接中"
+msgid "hash mismatch for %s (expected %s)"
+msgstr "%s 的哈希值不匹配(预期 %s)"
 
-#: pathspec.c:643
+#: object-file.c:2512
 #, c-format
-msgid "line is badly quoted: %s"
-msgstr "行被错误地引用:%s"
+msgid "unable to mmap %s"
+msgstr "不能 mmap %s"
 
-#: pkt-line.c:92
-msgid "unable to write flush packet"
-msgstr "无法写 flush 包"
+#: object-file.c:2517
+#, c-format
+msgid "unable to unpack header of %s"
+msgstr "无法解压缩 %s 的头部"
 
-#: pkt-line.c:99
-msgid "unable to write delim packet"
-msgstr "无法写 delim 包"
+#: object-file.c:2523
+#, c-format
+msgid "unable to parse header of %s"
+msgstr "无法解析 %s 的头部"
 
-#: pkt-line.c:106
-msgid "unable to write stateless separator packet"
-msgstr "无法写入无状态分隔符数据包"
+#: object-file.c:2534
+#, c-format
+msgid "unable to unpack contents of %s"
+msgstr "无法解压缩 %s 的内容"
 
-#: pkt-line.c:113
-msgid "flush packet write failed"
-msgstr "flush 包写错误"
+#: object-name.c:486
+#, c-format
+msgid "short object ID %s is ambiguous"
+msgstr "短对象ID %s 存在歧义"
 
-#: pkt-line.c:153 pkt-line.c:239
-msgid "protocol error: impossibly long line"
-msgstr "å\8d\8fè®®é\94\99误ï¼\9aä¸\8då\8f¯è\83½ç\9a\84é\95¿è¡\8c"
+#: object-name.c:497
+msgid "The candidates are:"
+msgstr "å\80\99é\80\89è\80\85æ\9c\89ï¼\9a"
 
-#: pkt-line.c:169 pkt-line.c:171
-msgid "packet write with format failed"
-msgstr "格式化包写入错误"
+#: object-name.c:796
+msgid ""
+"Git normally never creates a ref that ends with 40 hex characters\n"
+"because it will be ignored when you just specify 40-hex. These refs\n"
+"may be created by mistake. For example,\n"
+"\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 通常不会创建一个以40个十六进制字符结尾的引用,因为当您只提供40\n"
+"个十六进制字符时将被忽略。这些引用可能被错误地创建。例如:\n"
+"\n"
+"  git switch -c $br $(git rev-parse ...)\n"
+"\n"
+"当 \"$br\" 某种原因空白时,一个40位十六进制的引用将被创建。请检查这些\n"
+"引用,可能需要删除它们。运行 \"git config advice.objectNameWarning\n"
+"false\" 命令关闭本消息通知。"
 
-#: pkt-line.c:203
-msgid "packet write failed - data exceeds max packet size"
-msgstr "写数据包失败:数据超过了包的最大长度"
+#: object-name.c:916
+#, c-format
+msgid "log for '%.*s' only goes back to %s"
+msgstr "'%.*s' 的日志仅能回到 %s"
 
-#: pkt-line.c:210 pkt-line.c:217
-msgid "packet write failed"
-msgstr "数据包写入失败"
+#: object-name.c:924
+#, c-format
+msgid "log for '%.*s' only has %d entries"
+msgstr "'%.*s' 的日志仅有 %d 个条目"
 
-#: pkt-line.c:302
-msgid "read error"
-msgstr "读取错误"
+#: object-name.c:1702
+#, c-format
+msgid "path '%s' exists on disk, but not in '%.*s'"
+msgstr "路径 '%s' 在磁盘上,但是不在 '%.*s' 中"
 
-#: pkt-line.c:310
-msgid "the remote end hung up unexpectedly"
-msgstr "远端意外挂断了"
+#: object-name.c:1708
+#, c-format
+msgid ""
+"path '%s' exists, but not '%s'\n"
+"hint: Did you mean '%.*s:%s' aka '%.*s:./%s'?"
+msgstr ""
+"路径 '%s' 存在,而 '%s' 不存在\n"
+"提示:您的意思是 '%.*s:%s' 亦即 '%.*s:./%s'?"
 
-#: pkt-line.c:338
+#: object-name.c:1717
 #, c-format
-msgid "protocol error: bad line length character: %.4s"
-msgstr "协议错误:错误的行长度字符串:%.4s"
+msgid "path '%s' does not exist in '%.*s'"
+msgstr "路径 '%s' 不在 '%.*s' 中"
 
-#: pkt-line.c:352 pkt-line.c:357
+#: object-name.c:1745
 #, c-format
-msgid "protocol error: bad line length %d"
-msgstr "协议错误:错误的行长度 %d"
+msgid ""
+"path '%s' is in the index, but not at stage %d\n"
+"hint: Did you mean ':%d:%s'?"
+msgstr ""
+"路径 '%s' 在索引中,但不在暂存区 %d 中\n"
+"提示:您的意思是 ':%d:%s'?"
 
-#: pkt-line.c:373 sideband.c:165
+#: object-name.c:1761
 #, c-format
-msgid "remote error: %s"
-msgstr "远程错误:%s"
+msgid ""
+"path '%s' is in the index, but not '%s'\n"
+"hint: Did you mean ':%d:%s' aka ':%d:./%s'?"
+msgstr ""
+"路径 '%s' 在索引中,但 '%s' 不在\n"
+"提示:您的意思是 ':%d:%s' 亦即 ':%d:./%s'?"
 
-#: preload-index.c:119
-msgid "Refreshing index"
-msgstr "正在刷新索引"
+#: object-name.c:1769
+#, c-format
+msgid "path '%s' exists on disk, but not in the index"
+msgstr "路径 '%s' 在磁盘上,但不在索引里"
 
-#: preload-index.c:138
+#: object-name.c:1771
 #, c-format
-msgid "unable to create threaded lstat: %s"
-msgstr "无法创建线程 lstat:%s"
+msgid "path '%s' does not exist (neither on disk nor in the index)"
+msgstr "路径 '%s' 不存在(既不在磁盘上,也不在索引中)"
 
-#: pretty.c:983
-msgid "unable to parse --pretty format"
-msgstr "不能解析 --pretty 格式"
+#: object-name.c:1784
+msgid "relative path syntax can't be used outside working tree"
+msgstr "不能在工作区之外使用相对路径语法"
 
-#: promisor-remote.c:30
-msgid "promisor-remote: unable to fork off fetch subprocess"
-msgstr "promisor-remote:无法派生 fetch 子进程"
+#: object-name.c:1922
+#, c-format
+msgid "invalid object name '%.*s'."
+msgstr "无效的对象名 '%.*s'。"
 
-#: promisor-remote.c:35 promisor-remote.c:37
-msgid "promisor-remote: could not write to fetch subprocess"
-msgstr "promisor-remote:无法向 fetch 子进程写入"
+#: object.c:53
+#, c-format
+msgid "invalid object type \"%s\""
+msgstr "无效的对象类型 \"%s\""
 
-#: promisor-remote.c:41
-msgid "promisor-remote: could not close stdin to fetch subprocess"
-msgstr "promisor-remote:无法关闭至 fetch 子进程的标准输入"
+#: object.c:173
+#, c-format
+msgid "object %s is a %s, not a %s"
+msgstr "对象 %s 是一个 %s,不是一个 %s"
 
-#: promisor-remote.c:53
+#: object.c:233
 #, c-format
-msgid "promisor remote name cannot begin with '/': %s"
-msgstr "promisor 远程名称不能以 '/' 开始:%s"
+msgid "object %s has unknown type id %d"
+msgstr "对象 %s 有未知的类型 id %d"
 
-#: prune-packed.c:35
-msgid "Removing duplicate objects"
-msgstr "正在删除重复对象"
+#: object.c:246
+#, c-format
+msgid "unable to parse object: %s"
+msgstr "不能解析对象:%s"
 
-#: range-diff.c:77
-msgid "could not start `log`"
-msgstr "不能启动 `log`"
+#: object.c:266 object.c:278
+#, c-format
+msgid "hash mismatch %s"
+msgstr "哈希值与 %s 不匹配"
 
-#: range-diff.c:79
-msgid "could not read `log` output"
-msgstr "不能读取 `log` 的输出"
+#: pack-bitmap.c:843 pack-bitmap.c:849 builtin/pack-objects.c:2226
+#, c-format
+msgid "unable to get size of %s"
+msgstr "无法得到 %s 的大小"
 
-#: range-diff.c:98 sequencer.c:5310
+#: pack-bitmap.c:1489 builtin/rev-list.c:92
 #, c-format
-msgid "could not parse commit '%s'"
-msgstr "不能解析提交 '%s'"
+msgid "unable to get disk usage of %s"
+msgstr "无法得到 %s 的磁盘使用量"
 
-#: range-diff.c:112
+#: pack-revindex.c:220
 #, c-format
-msgid ""
-"could not parse first line of `log` output: did not start with 'commit ': "
-"'%s'"
-msgstr "无法解析 `log` 输出的首行:不是以 'commit ' 开头:'%s'"
+msgid "reverse-index file %s is too small"
+msgstr "反向索引文件 %s 太小"
 
-#: range-diff.c:137
+#: pack-revindex.c:225
 #, c-format
-msgid "could not parse git header '%.*s'"
-msgstr "无法解析 git 头 '%.*s'"
+msgid "reverse-index file %s is corrupt"
+msgstr "反向索引文件 %s 损坏"
 
-#: range-diff.c:299
-msgid "failed to generate diff"
-msgstr "生成 diff 失败"
+#: pack-revindex.c:233
+#, c-format
+msgid "reverse-index file %s has unknown signature"
+msgstr "反向索引文件 %s 有错误的签名"
 
-#: range-diff.c:532 range-diff.c:534
+#: pack-revindex.c:237
 #, c-format
-msgid "could not parse log for '%s'"
-msgstr "不能解析 '%s' 的日志"
+msgid "reverse-index file %s has unsupported version %<PRIu32>"
+msgstr "反向索引文件 %s 不支持的版本 %<PRIu32>"
 
-#: read-cache.c:682
+#: pack-revindex.c:242
 #, c-format
-msgid "will not add file alias '%s' ('%s' already exists in index)"
-msgstr "å°\86ä¸\8dä¼\9aæ·»å\8a æ\96\87件å\88«å\90\8d '%s'ï¼\88'%s' å·²ç»\8få­\98å\9c¨äº\8eç´¢å¼\95中ï¼\89"
+msgid "reverse-index file %s has unsupported hash id %<PRIu32>"
+msgstr "å\8f\8då\90\91ç´¢å¼\95æ\96\87件 %s æ\9c\89ä¸\8dæ\94¯æ\8c\81ç\9a\84å\93\88å¸\8c ID %<PRIu32>"
 
-#: read-cache.c:698
-msgid "cannot create an empty blob in the object database"
-msgstr "不能在对象数据库中创建空的数据对象"
+#: pack-write.c:236
+msgid "cannot both write and verify reverse index"
+msgstr "无法同时写入和校验反向索引"
 
-#: read-cache.c:720
+#: pack-write.c:257
 #, c-format
-msgid "%s: can only add regular files, symbolic links or git-directories"
-msgstr "%s:只能添加常规文件、符号链接或 git 目录"
+msgid "could not stat: %s"
+msgstr "不能调用 stat:%s"
 
-#: read-cache.c:725
+#: pack-write.c:269
 #, c-format
-msgid "'%s' does not have a commit checked out"
-msgstr "'%s' 没有检出一个提交"
+msgid "failed to make %s readable"
+msgstr "无法设置 %s 为可读"
 
-#: read-cache.c:777
+#: pack-write.c:508
 #, c-format
-msgid "unable to index file '%s'"
-msgstr "无法索引文件 '%s'"
+msgid "could not write '%s' promisor file"
+msgstr "无法写入 '%s' 承诺者文件"
 
-#: read-cache.c:796
-#, c-format
-msgid "unable to add '%s' to index"
-msgstr "无法在索引中添加 '%s'"
+#: packfile.c:625
+msgid "offset before end of packfile (broken .idx?)"
+msgstr "偏移量在包文件结束之前(损坏的 .idx?)"
 
-#: read-cache.c:807
+#: packfile.c:1934
 #, c-format
-msgid "unable to stat '%s'"
-msgstr "无法对 %s 执行 stat"
+msgid "offset before start of pack index for %s (corrupt index?)"
+msgstr "偏移量在 %s 的包索引开始之前(损坏的索引?)"
 
-#: read-cache.c:1318
+#: packfile.c:1938
 #, c-format
-msgid "'%s' appears as both a file and as a directory"
-msgstr "'%s' 看起来既是文件又是目录"
+msgid "offset beyond end of pack index for %s (truncated index?)"
+msgstr "偏移量越过了 %s 的包索引的结尾(被截断的索引?)"
 
-#: read-cache.c:1524
-msgid "Refresh index"
-msgstr "刷新索引"
+#: parse-options-cb.c:20 parse-options-cb.c:24
+#, c-format
+msgid "option `%s' expects a numerical value"
+msgstr "选项 `%s' 期望一个数字值"
 
-#: read-cache.c:1639
+#: parse-options-cb.c:41
 #, c-format
-msgid ""
-"index.version set, but the value is invalid.\n"
-"Using version %i"
-msgstr ""
-"设置了 index.version,但是取值无效。\n"
-"使用版本 %i"
+msgid "malformed expiration date '%s'"
+msgstr "格式错误的到期时间:'%s'"
 
-#: read-cache.c:1649
+#: parse-options-cb.c:54
 #, c-format
-msgid ""
-"GIT_INDEX_VERSION set, but the value is invalid.\n"
-"Using version %i"
-msgstr ""
-"设置了 GIT_INDEX_VERSION,但是取值无效。\n"
-"使用版本 %i"
+msgid "option `%s' expects \"always\", \"auto\", or \"never\""
+msgstr "选项 `%s' 期望 \"always\"、\"auto\" 或 \"never\""
 
-#: read-cache.c:1705
+#: parse-options-cb.c:132 parse-options-cb.c:149
 #, c-format
-msgid "bad signature 0x%08x"
-msgstr "坏的签名 0x%08x"
+msgid "malformed object name '%s'"
+msgstr "格式错误的对象名 '%s'"
 
-#: read-cache.c:1708
+#: parse-options.c:38
 #, c-format
-msgid "bad index version %d"
-msgstr "坏的索引版本 %d"
+msgid "%s requires a value"
+msgstr "%s 需要一个值"
 
-#: read-cache.c:1717
-msgid "bad index file sha1 signature"
-msgstr "坏的索引文件 sha1 签名"
+#: parse-options.c:73
+#, c-format
+msgid "%s is incompatible with %s"
+msgstr "%s 与 %s 不兼容"
 
-#: read-cache.c:1747
+#: parse-options.c:78
 #, c-format
-msgid "index uses %.4s extension, which we do not understand"
-msgstr "索引使用不被支持的 %.4s 扩展"
+msgid "%s : incompatible with something else"
+msgstr "%s:和其它的不兼容"
 
-#      
-#: read-cache.c:1749
+#: parse-options.c:92 parse-options.c:96 parse-options.c:317
 #, c-format
-msgid "ignoring %.4s extension"
-msgstr "忽略 %.4s 扩展"
+msgid "%s takes no value"
+msgstr "%s 不取值"
 
-#: read-cache.c:1786
+#: parse-options.c:94
 #, c-format
-msgid "unknown index entry format 0x%08x"
-msgstr "未知的索引条目格式 0x%08x"
+msgid "%s isn't available"
+msgstr "%s 不可用"
 
-#: read-cache.c:1802
+#: parse-options.c:217
 #, c-format
-msgid "malformed name field in the index, near path '%s'"
-msgstr "索引中靠近路径 '%s' 有错误的名称字段"
+msgid "%s expects a non-negative integer value with an optional k/m/g suffix"
+msgstr "%s 期望一个非负整数和一个可选的 k/m/g 后缀"
 
-#: read-cache.c:1859
-msgid "unordered stage entries in index"
-msgstr "索引中有未排序的暂存条目"
+#: parse-options.c:386
+#, c-format
+msgid "ambiguous option: %s (could be --%s%s or --%s%s)"
+msgstr "有歧义的选项:%s(可以是 --%s%s 或 --%s%s)"
 
-#: read-cache.c:1862
+#: parse-options.c:420 parse-options.c:428
 #, c-format
-msgid "multiple stage entries for merged file '%s'"
-msgstr "合并文件 '%s' 有多个暂存条目"
+msgid "did you mean `--%s` (with two dashes)?"
+msgstr "你的意思是 `--%s`(有两个短线)?"
 
-#: read-cache.c:1865
+#: parse-options.c:666 parse-options.c:971
 #, c-format
-msgid "unordered stage entries for '%s'"
-msgstr "'%s' 的未排序暂存条目"
+msgid "alias of --%s"
+msgstr "--%s 的别名"
 
-#: read-cache.c:1971 read-cache.c:2262 rerere.c:565 rerere.c:599 rerere.c:1111
-#: submodule.c:1628 builtin/add.c:538 builtin/check-ignore.c:181
-#: builtin/checkout.c:502 builtin/checkout.c:688 builtin/clean.c:991
-#: builtin/commit.c:364 builtin/diff-tree.c:122 builtin/grep.c:507
-#: builtin/mv.c:146 builtin/reset.c:247 builtin/rm.c:290
-#: builtin/submodule--helper.c:332
-msgid "index file corrupt"
-msgstr "索引文件损坏"
+#: parse-options.c:862
+#, c-format
+msgid "unknown option `%s'"
+msgstr "未知选项 `%s'"
 
-#: read-cache.c:2115
+#: parse-options.c:864
 #, c-format
-msgid "unable to create load_cache_entries thread: %s"
-msgstr "æ\97 æ³\95å\88\9b建 load_cache_entries çº¿ç¨\8bï¼\9a%s"
+msgid "unknown switch `%c'"
+msgstr "æ\9cªç\9f¥å¼\80å\85³ `%c'"
 
-#: read-cache.c:2128
+#: parse-options.c:866
 #, c-format
-msgid "unable to join load_cache_entries thread: %s"
-msgstr "无法加入 load_cache_entries 线程:%s"
+msgid "unknown non-ascii option in string: `%s'"
+msgstr "字符串中未知的非 ascii 字符选项:`%s'"
+
+#: parse-options.c:890
+msgid "..."
+msgstr "..."
 
-#: read-cache.c:2161
+#: parse-options.c:909
 #, c-format
-msgid "%s: index file open failed"
-msgstr "%s:打开索引文件失败"
+msgid "usage: %s"
+msgstr "用法:%s"
 
-#: read-cache.c:2165
+#. TRANSLATORS: the colon here should align with the
+#. one in "usage: %s" translation.
+#.
+#: parse-options.c:915
 #, c-format
-msgid "%s: cannot stat the open index"
-msgstr "%s:不能对打开的索引执行 stat 操作"
+msgid "   or: %s"
+msgstr "  或:%s"
 
-#: read-cache.c:2169
+#  译者:为保证在输出中对齐,注意调整句中空格!
+#: parse-options.c:918
 #, c-format
-msgid "%s: index file smaller than expected"
-msgstr "%s:索引文件比预期的小"
+msgid "    %s"
+msgstr "    %s"
+
+#: parse-options.c:957
+msgid "-NUM"
+msgstr "-数字"
 
-#: read-cache.c:2173
+#: path.c:915
 #, c-format
-msgid "%s: unable to map index file"
-msgstr "%s:无法对索引文件执行 map 操作"
+msgid "Could not make %s writable by group"
+msgstr "不能设置 %s 为组可写"
+
+#: pathspec.c:130
+msgid "Escape character '\\' not allowed as last character in attr value"
+msgstr "转义字符 '\\' 不能作为属性值的最后一个字符"
+
+#: pathspec.c:148
+msgid "Only one 'attr:' specification is allowed."
+msgstr "只允许一个 'attr:' 规格。"
+
+#: pathspec.c:151
+msgid "attr spec must not be empty"
+msgstr "属性规格不能为空"
 
-#: read-cache.c:2215
+#: pathspec.c:194
 #, c-format
-msgid "unable to create load_index_extensions thread: %s"
-msgstr "无法创建 load_index_extensions 线程:%s"
+msgid "invalid attribute name %s"
+msgstr "无效的属性名 %s"
+
+#: pathspec.c:259
+msgid "global 'glob' and 'noglob' pathspec settings are incompatible"
+msgstr "全局的 'glob' 和 'noglob' 路径规格设置不兼容"
+
+#: pathspec.c:266
+msgid ""
+"global 'literal' pathspec setting is incompatible with all other global "
+"pathspec settings"
+msgstr "全局的 'literal' 路径规格设置和其它的全局路径规格设置不兼容"
+
+#: pathspec.c:306
+msgid "invalid parameter for pathspec magic 'prefix'"
+msgstr "路径规格包含无效的神奇前缀"
 
-#: read-cache.c:2242
+#: pathspec.c:327
 #, c-format
-msgid "unable to join load_index_extensions thread: %s"
-msgstr "无法加入 load_index_extensions 线程:%s"
+msgid "Invalid pathspec magic '%.*s' in '%s'"
+msgstr "在路径规格 '%3$s' 中无效的神奇前缀 '%2$.*1$s'"
 
-#: read-cache.c:2274
+#: pathspec.c:332
 #, c-format
-msgid "could not freshen shared index '%s'"
-msgstr "无法刷新共享索引 '%s'"
+msgid "Missing ')' at the end of pathspec magic in '%s'"
+msgstr "路径规格 '%s' 的神奇前缀结尾少了一个 ')'"
 
-#: read-cache.c:2321
+#: pathspec.c:370
 #, c-format
-msgid "broken index, expect %s in %s, got %s"
-msgstr "损坏的索引,期望在 %2$s 中的 %1$s,得到 %3$s"
+msgid "Unimplemented pathspec magic '%c' in '%s'"
+msgstr "路径规格 '%2$s' 中包含未实现的神奇前缀 '%1$c'"
 
-#: read-cache.c:3017 strbuf.c:1171 wrapper.c:633 builtin/merge.c:1140
+#: pathspec.c:429
 #, c-format
-msgid "could not close '%s'"
-msgstr "不能关闭 '%s'"
+msgid "%s: 'literal' and 'glob' are incompatible"
+msgstr "%s:'literal' 和 'glob' 不兼容"
 
-#: read-cache.c:3120 sequencer.c:2479 sequencer.c:4231
+#: pathspec.c:445
 #, c-format
-msgid "could not stat '%s'"
-msgstr "不能对 '%s' 调用 stat"
+msgid "%s: '%s' is outside repository at '%s'"
+msgstr "%s:'%s' 在位于 '%s' 的仓库之外"
 
-#: read-cache.c:3133
+#: pathspec.c:521
 #, c-format
-msgid "unable to open git dir: %s"
-msgstr "不能打开 git 目录:%s"
+msgid "'%s' (mnemonic: '%c')"
+msgstr "'%s'(助记符:'%c')"
 
-#: read-cache.c:3145
+#: pathspec.c:531
 #, c-format
-msgid "unable to unlink: %s"
-msgstr "无法删除:%s"
+msgid "%s: pathspec magic not supported by this command: %s"
+msgstr "%s:路径规格神奇前缀不被此命令支持:%s"
 
-#: read-cache.c:3170
+#: pathspec.c:598
 #, c-format
-msgid "cannot fix permission bits on '%s'"
-msgstr "不能修复 '%s' 的权限位"
+msgid "pathspec '%s' is beyond a symbolic link"
+msgstr "路径规格 '%s' 位于符号链接中"
 
-#: read-cache.c:3319
+#: pathspec.c:643
 #, c-format
-msgid "%s: cannot drop to stage #0"
-msgstr "%s:不能落到暂存区 #0"
+msgid "line is badly quoted: %s"
+msgstr "行被错误地引用:%s"
 
-#: rebase-interactive.c:11
-msgid ""
-"You can fix this with 'git rebase --edit-todo' and then run 'git rebase --"
-"continue'.\n"
-"Or you can abort the rebase with 'git rebase --abort'.\n"
-msgstr ""
-"您可以用 'git rebase --edit-todo' 修正,然后执行 'git rebase --continue'。\n"
-"或者您可以用 'git rebase --abort' 终止变基。\n"
+#: pkt-line.c:92
+msgid "unable to write flush packet"
+msgstr "无法写 flush 包"
 
-#: rebase-interactive.c:33
-#, c-format
-msgid ""
-"unrecognized setting %s for option rebase.missingCommitsCheck. Ignoring."
-msgstr "选项 rebase.missingCommitsCheck 的值 %s 无法识别。已忽略。"
+#: pkt-line.c:99
+msgid "unable to write delim packet"
+msgstr "无法写 delim 包"
 
-#: rebase-interactive.c:42
-msgid ""
-"\n"
-"Commands:\n"
-"p, pick <commit> = use commit\n"
-"r, reword <commit> = use commit, but edit the commit message\n"
-"e, edit <commit> = use commit, but stop for amending\n"
-"s, squash <commit> = use commit, but meld into previous commit\n"
-"f, fixup <commit> = like \"squash\", but discard this commit's log message\n"
-"x, exec <command> = run command (the rest of the line) using shell\n"
-"b, break = stop here (continue rebase later with 'git rebase --continue')\n"
-"d, drop <commit> = remove commit\n"
-"l, label <label> = label current HEAD with a name\n"
-"t, reset <label> = reset HEAD to a label\n"
-"m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]\n"
-".       create a merge commit using the original merge commit's\n"
-".       message (or the oneline, if no original merge commit was\n"
-".       specified). Use -c <commit> to reword the commit message.\n"
-"\n"
-"These lines can be re-ordered; they are executed from top to bottom.\n"
-msgstr ""
-"\n"
-"命令:\n"
-"p, pick <提交> = 使用提交\n"
-"r, reword <提交> = 使用提交,但修改提交说明\n"
-"e, edit <提交> = 使用提交,进入 shell 以便进行提交修补\n"
-"s, squash <提交> = 使用提交,但融合到前一个提交\n"
-"f, fixup <提交> = 类似于 \"squash\",但丢弃提交说明日志\n"
-"x, exec <命令> = 使用 shell 运行命令(此行剩余部分)\n"
-"b, break = 在此处停止(使用 'git rebase --continue' 继续变基)\n"
-"d, drop <提交> = 删除提交\n"
-"l, label <label> = 为当前 HEAD 打上标记\n"
-"t, reset <label> = 重置 HEAD 到该标记\n"
-"m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]\n"
-".       创建一个合并提交,并使用原始的合并提交说明(如果没有指定\n"
-".       原始提交,使用注释部分的 oneline 作为提交说明)。使用\n"
-".       -c <提交> 可以编辑提交说明。\n"
-"\n"
-"可以对这些行重新排序,将从上至下执行。\n"
+#: pkt-line.c:106
+msgid "unable to write stateless separator packet"
+msgstr "无法写入无状态分隔符数据包"
 
-#: rebase-interactive.c:63
-#, c-format
-msgid "Rebase %s onto %s (%d command)"
-msgid_plural "Rebase %s onto %s (%d commands)"
-msgstr[0] "变基 %s 到 %s(%d 个提交)"
-msgstr[1] "变基 %s 到 %s(%d 个提交)"
+#: pkt-line.c:113
+msgid "flush packet write failed"
+msgstr "flush 包写错误"
 
-#: rebase-interactive.c:72 git-rebase--preserve-merges.sh:218
-msgid ""
-"\n"
-"Do not remove any line. Use 'drop' explicitly to remove a commit.\n"
-msgstr ""
-"\n"
-"不要删除任意一行。使用 'drop' 显式地删除一个提交。\n"
+#: pkt-line.c:153 pkt-line.c:239
+msgid "protocol error: impossibly long line"
+msgstr "协议错误:不可能的长行"
 
-#: rebase-interactive.c:75 git-rebase--preserve-merges.sh:222
-msgid ""
-"\n"
-"If you remove a line here THAT COMMIT WILL BE LOST.\n"
-msgstr ""
-"\n"
-"如果您在这里删除一行,对应的提交将会丢失。\n"
+#: pkt-line.c:169 pkt-line.c:171
+msgid "packet write with format failed"
+msgstr "格式化包写入错误"
 
-#: rebase-interactive.c:81 git-rebase--preserve-merges.sh:861
-msgid ""
-"\n"
-"You are editing the todo file of an ongoing interactive rebase.\n"
-"To continue rebase after editing, run:\n"
-"    git rebase --continue\n"
-"\n"
-msgstr ""
-"\n"
-"您正在修改进行中的交互式变基待办列表。若要在编辑结束后继续变基,\n"
-"请执行:\n"
-"    git rebase --continue\n"
-"\n"
+#: pkt-line.c:203
+msgid "packet write failed - data exceeds max packet size"
+msgstr "写数据包失败:数据超过了包的最大长度"
 
-#: rebase-interactive.c:86 git-rebase--preserve-merges.sh:938
-msgid ""
-"\n"
-"However, if you remove everything, the rebase will be aborted.\n"
-"\n"
-msgstr ""
-"\n"
-"然而,如果您删除全部内容,变基操作将会终止。\n"
-"\n"
+#: pkt-line.c:210 pkt-line.c:217
+msgid "packet write failed"
+msgstr "数据包写入失败"
 
-#: rebase-interactive.c:110 rerere.c:485 rerere.c:692 sequencer.c:3607
-#: sequencer.c:3633 sequencer.c:5416 builtin/fsck.c:347 builtin/rebase.c:270
-#, c-format
-msgid "could not write '%s'"
-msgstr "不能写入 '%s'"
+#: pkt-line.c:302
+msgid "read error"
+msgstr "读取错误"
 
-#: rebase-interactive.c:116 builtin/rebase.c:202 builtin/rebase.c:228
-#: builtin/rebase.c:252
-#, c-format
-msgid "could not write '%s'."
-msgstr "不能写入 '%s'。"
+#: pkt-line.c:310
+msgid "the remote end hung up unexpectedly"
+msgstr "远端意外挂断了"
 
-#: rebase-interactive.c:193
+#: pkt-line.c:338
 #, c-format
-msgid ""
-"Warning: some commits may have been dropped accidentally.\n"
-"Dropped commits (newer to older):\n"
-msgstr ""
-"警告:一些提交可能被意外丢弃。\n"
-"丢弃的提交(从新到旧):\n"
+msgid "protocol error: bad line length character: %.4s"
+msgstr "协议错误:错误的行长度字符串:%.4s"
 
-#: rebase-interactive.c:200
+#: pkt-line.c:352 pkt-line.c:357
 #, c-format
-msgid ""
-"To avoid this message, use \"drop\" to explicitly remove a commit.\n"
-"\n"
-"Use 'git config rebase.missingCommitsCheck' to change the level of "
-"warnings.\n"
-"The possible behaviours are: ignore, warn, error.\n"
-"\n"
-msgstr ""
-"为避免这条信息,使用 \"drop\" 指令显式地删除一个提交。\n"
-"\n"
-"使用 'git config rebase.missingCommitsCheck' 来修改警告级别。\n"
-"可选值有:ignore、warn、error。\n"
-"\n"
+msgid "protocol error: bad line length %d"
+msgstr "协议错误:错误的行长度 %d"
 
-#: rebase-interactive.c:233 rebase-interactive.c:238 sequencer.c:2394
-#: builtin/rebase.c:188 builtin/rebase.c:213 builtin/rebase.c:239
-#: builtin/rebase.c:264
+#: pkt-line.c:373 sideband.c:165
 #, c-format
-msgid "could not read '%s'."
-msgstr "不能读取 '%s'。"
+msgid "remote error: %s"
+msgstr "远程错误:%s"
 
-#: ref-filter.c:42 wt-status.c:1973
-msgid "gone"
-msgstr "丢失"
+#: preload-index.c:125
+msgid "Refreshing index"
+msgstr "正在刷新索引"
 
-#: ref-filter.c:43
+#: preload-index.c:144
 #, c-format
-msgid "ahead %d"
-msgstr "领先 %d"
+msgid "unable to create threaded lstat: %s"
+msgstr "无法创建线程 lstat:%s"
 
-#: ref-filter.c:44
-#, c-format
-msgid "behind %d"
-msgstr "落后 %d"
+#: pretty.c:984
+msgid "unable to parse --pretty format"
+msgstr "不能解析 --pretty 格式"
 
-#: ref-filter.c:45
-#, c-format
-msgid "ahead %d, behind %d"
-msgstr "领先 %d,落后 %d"
+#: promisor-remote.c:30
+msgid "promisor-remote: unable to fork off fetch subprocess"
+msgstr "promisor-remote:无法派生 fetch 子进程"
 
-#: ref-filter.c:169
-#, c-format
-msgid "expected format: %%(color:<color>)"
-msgstr "期望的格式:%%(color:<颜色>)"
+#: promisor-remote.c:35 promisor-remote.c:37
+msgid "promisor-remote: could not write to fetch subprocess"
+msgstr "promisor-remote:无法向 fetch 子进程写入"
 
-#: ref-filter.c:171
-#, c-format
-msgid "unrecognized color: %%(color:%s)"
-msgstr "未能识别的颜色:%%(color:%s)"
+#: promisor-remote.c:41
+msgid "promisor-remote: could not close stdin to fetch subprocess"
+msgstr "promisor-remote:无法关闭至 fetch 子进程的标准输入"
 
-#: ref-filter.c:193
+#: promisor-remote.c:53
 #, c-format
-msgid "Integer value expected refname:lstrip=%s"
-msgstr "期望整数值 refname:lstrip=%s"
+msgid "promisor remote name cannot begin with '/': %s"
+msgstr "promisor 远程名称不能以 '/' 开始:%s"
 
-#: ref-filter.c:197
-#, c-format
-msgid "Integer value expected refname:rstrip=%s"
-msgstr "期望整数值 refname:rstrip=%s"
+#: prune-packed.c:35
+msgid "Removing duplicate objects"
+msgstr "正在删除重复对象"
 
-#: ref-filter.c:199
-#, c-format
-msgid "unrecognized %%(%s) argument: %s"
-msgstr "未能识别的 %%(%s) 参数:%s"
+#: range-diff.c:78
+msgid "could not start `log`"
+msgstr "不能启动 `log`"
 
-#: ref-filter.c:254
-#, c-format
-msgid "%%(objecttype) does not take arguments"
-msgstr "%%(objecttype) 不带参数"
+#: range-diff.c:80
+msgid "could not read `log` output"
+msgstr "不能读取 `log` 的输出"
 
-#: ref-filter.c:276
+#: range-diff.c:101 sequencer.c:5318
 #, c-format
-msgid "unrecognized %%(objectsize) argument: %s"
-msgstr "未能识别的 %%(objectsize) 参数:%s"
+msgid "could not parse commit '%s'"
+msgstr "不能解析提交 '%s'"
 
-#: ref-filter.c:284
+#: range-diff.c:115
 #, c-format
-msgid "%%(deltabase) does not take arguments"
-msgstr "%%(deltabase) 不带参数"
+msgid ""
+"could not parse first line of `log` output: did not start with 'commit ': "
+"'%s'"
+msgstr "无法解析 `log` 输出的首行:不是以 'commit ' 开头:'%s'"
 
-#: ref-filter.c:296
+#: range-diff.c:140
 #, c-format
-msgid "%%(body) does not take arguments"
-msgstr "%%(body) 不带参数"
+msgid "could not parse git header '%.*s'"
+msgstr "无法解析 git 头 '%.*s'"
 
-#: ref-filter.c:309
-#, c-format
-msgid "unrecognized %%(subject) argument: %s"
-msgstr "未能识别的 %%(subject) 参数:%s"
+#: range-diff.c:306
+msgid "failed to generate diff"
+msgstr "生成 diff 失败"
 
-#: ref-filter.c:330
-#, c-format
-msgid "unknown %%(trailers) argument: %s"
-msgstr "未知的 %%(trailers) 参数:%s"
+#: range-diff.c:558
+msgid "--left-only and --right-only are mutually exclusive"
+msgstr "--left-only 和 --right-only 互斥"
 
-#: ref-filter.c:363
+#: range-diff.c:561 range-diff.c:563
 #, c-format
-msgid "positive value expected contents:lines=%s"
-msgstr "期望一个正数 contents:lines=%s"
+msgid "could not parse log for '%s'"
+msgstr "不能解析 '%s' 的日志"
 
-#: ref-filter.c:365
+#: read-cache.c:682
 #, c-format
-msgid "unrecognized %%(contents) argument: %s"
-msgstr "未能识别的 %%(contents) 参数:%s"
+msgid "will not add file alias '%s' ('%s' already exists in index)"
+msgstr "将不会添加文件别名 '%s'('%s' 已经存在于索引中)"
+
+#: read-cache.c:698
+msgid "cannot create an empty blob in the object database"
+msgstr "不能在对象数据库中创建空的数据对象"
 
-#: ref-filter.c:380
+#: read-cache.c:720
 #, c-format
-msgid "positive value expected '%s' in %%(%s)"
-msgstr "期望 %%(%2$s) 中的 '%1$s' 是一个正数"
+msgid "%s: can only add regular files, symbolic links or git-directories"
+msgstr "%s:只能添加常规文件、符号链接或 git 目录"
 
-#: ref-filter.c:384
+#: read-cache.c:725
 #, c-format
-msgid "unrecognized argument '%s' in %%(%s)"
-msgstr "未能识别 %%(%2$s) 中的参数 '%1$s'"
+msgid "'%s' does not have a commit checked out"
+msgstr "'%s' 没有检出一个提交"
 
-#: ref-filter.c:398
+#: read-cache.c:777
 #, c-format
-msgid "unrecognized email option: %s"
-msgstr "æ\9cªè¯\86å\88«ç\9a\84é\82®ä»¶é\80\89项ï¼\9a%s"
+msgid "unable to index file '%s'"
+msgstr "æ\97 æ³\95ç´¢å¼\95æ\96\87件 '%s'"
 
-#: ref-filter.c:428
+#: read-cache.c:796
 #, c-format
-msgid "expected format: %%(align:<width>,<position>)"
-msgstr "æ\9c\9fæ\9c\9bç\9a\84æ ¼å¼\8fï¼\9a%%(align:<宽度>,<ä½\8dç½®>)"
+msgid "unable to add '%s' to index"
+msgstr "æ\97 æ³\95å\9c¨ç´¢å¼\95中添å\8a  '%s'"
 
-#: ref-filter.c:440
+#: read-cache.c:807
 #, c-format
-msgid "unrecognized position:%s"
-msgstr "æ\9cªè\83½è¯\86å\88«ç\9a\84ä½\8dç½®ï¼\9a%s"
+msgid "unable to stat '%s'"
+msgstr "æ\97 æ³\95对 %s æ\89§è¡\8c stat"
 
-#: ref-filter.c:447
+#: read-cache.c:1318
 #, c-format
-msgid "unrecognized width:%s"
-msgstr "未能识别的宽度:%s"
+msgid "'%s' appears as both a file and as a directory"
+msgstr "'%s' 看起来既是文件又是目录"
 
-#: ref-filter.c:456
-#, c-format
-msgid "unrecognized %%(align) argument: %s"
-msgstr "未能识别的 %%(align) 参数:%s"
+#: read-cache.c:1532
+msgid "Refresh index"
+msgstr "刷新索引"
 
-#: ref-filter.c:464
+#: read-cache.c:1657
 #, c-format
-msgid "positive width expected with the %%(align) atom"
-msgstr "元素 %%(align) 需要一个正数的宽度"
+msgid ""
+"index.version set, but the value is invalid.\n"
+"Using version %i"
+msgstr ""
+"设置了 index.version,但是取值无效。\n"
+"使用版本 %i"
 
-#: ref-filter.c:482
+#: read-cache.c:1667
 #, c-format
-msgid "unrecognized %%(if) argument: %s"
-msgstr "未能识别的 %%(if) 参数:%s"
+msgid ""
+"GIT_INDEX_VERSION set, but the value is invalid.\n"
+"Using version %i"
+msgstr ""
+"设置了 GIT_INDEX_VERSION,但是取值无效。\n"
+"使用版本 %i"
 
-#: ref-filter.c:584
+#: read-cache.c:1723
 #, c-format
-msgid "malformed field name: %.*s"
-msgstr "格式错误的字段名:%.*s"
+msgid "bad signature 0x%08x"
+msgstr "坏的签名 0x%08x"
 
-#: ref-filter.c:611
+#: read-cache.c:1726
 #, c-format
-msgid "unknown field name: %.*s"
-msgstr "未知的字段名:%.*s"
+msgid "bad index version %d"
+msgstr "坏的索引版本 %d"
 
-#: ref-filter.c:615
-#, c-format
-msgid ""
-"not a git repository, but the field '%.*s' requires access to object data"
-msgstr "不是 git 仓库,但是字段 '%.*s' 需要访问对象数据"
+#: read-cache.c:1735
+msgid "bad index file sha1 signature"
+msgstr "坏的索引文件 sha1 签名"
 
-#: ref-filter.c:739
+#: read-cache.c:1765
 #, c-format
-msgid "format: %%(if) atom used without a %%(then) atom"
-msgstr "格式:使用了 %%(if) 元素而没有 %%(then) 元素"
+msgid "index uses %.4s extension, which we do not understand"
+msgstr "索引使用不被支持的 %.4s 扩展"
 
-#: ref-filter.c:802
+#      
+#: read-cache.c:1767
 #, c-format
-msgid "format: %%(then) atom used without an %%(if) atom"
-msgstr "格式:使用了 %%(then) 元素而没有 %%(if) 元素"
+msgid "ignoring %.4s extension"
+msgstr "忽略 %.4s 扩展"
 
-#: ref-filter.c:804
+#: read-cache.c:1804
 #, c-format
-msgid "format: %%(then) atom used more than once"
-msgstr "æ ¼å¼\8fï¼\9a%%(then) å\85\83ç´ ç\94¨äº\86å¤\9a次"
+msgid "unknown index entry format 0x%08x"
+msgstr "æ\9cªç\9f¥ç\9a\84ç´¢å¼\95æ\9d¡ç\9b®æ ¼å¼\8f 0x%08x"
 
-#: ref-filter.c:806
+#: read-cache.c:1820
 #, c-format
-msgid "format: %%(then) atom used after %%(else)"
-msgstr "格式:%%(then) 元素用在了 %%(else) 之后"
+msgid "malformed name field in the index, near path '%s'"
+msgstr "索引中靠近路径 '%s' 有错误的名称字段"
+
+#: read-cache.c:1877
+msgid "unordered stage entries in index"
+msgstr "索引中有未排序的暂存条目"
 
-#: ref-filter.c:834
+#: read-cache.c:1880
 #, c-format
-msgid "format: %%(else) atom used without an %%(if) atom"
-msgstr "格式:使用了 %%(else) 元素而没有 %%(if) 元素"
+msgid "multiple stage entries for merged file '%s'"
+msgstr "合并文件 '%s' 有多个暂存条目"
 
-#: ref-filter.c:836
+#: read-cache.c:1883
 #, c-format
-msgid "format: %%(else) atom used without a %%(then) atom"
-msgstr "格式:使用了 %%(else) 元素而没有 %%(then) 元素"
+msgid "unordered stage entries for '%s'"
+msgstr "'%s' 的未排序暂存条目"
 
-#: ref-filter.c:838
+#: read-cache.c:1989 read-cache.c:2280 rerere.c:549 rerere.c:583 rerere.c:1095
+#: submodule.c:1634 builtin/add.c:546 builtin/check-ignore.c:181
+#: builtin/checkout.c:504 builtin/checkout.c:690 builtin/clean.c:991
+#: builtin/commit.c:364 builtin/diff-tree.c:122 builtin/grep.c:505
+#: builtin/mv.c:146 builtin/reset.c:247 builtin/rm.c:290
+#: builtin/submodule--helper.c:332
+msgid "index file corrupt"
+msgstr "索引文件损坏"
+
+#: read-cache.c:2133
 #, c-format
-msgid "format: %%(else) atom used more than once"
-msgstr "æ ¼å¼\8fï¼\9a%%(else) å\85\83ç´ ç\94¨äº\86å¤\9a次"
+msgid "unable to create load_cache_entries thread: %s"
+msgstr "æ\97 æ³\95å\88\9b建 load_cache_entries çº¿ç¨\8bï¼\9a%s"
 
-#: ref-filter.c:853
+#: read-cache.c:2146
 #, c-format
-msgid "format: %%(end) atom used without corresponding atom"
-msgstr "æ ¼å¼\8fï¼\9a使ç\94¨äº\86 %%(end) å\85\83ç´ å\8d´æ²¡æ\9c\89å®\83ç\9a\84对åº\94å\85\83ç´ "
+msgid "unable to join load_cache_entries thread: %s"
+msgstr "æ\97 æ³\95å\8a å\85¥ load_cache_entries çº¿ç¨\8bï¼\9a%s"
 
-#: ref-filter.c:910
+#: read-cache.c:2179
 #, c-format
-msgid "malformed format string %s"
-msgstr "错误的格式化字符串 %s"
+msgid "%s: index file open failed"
+msgstr "%s:打开索引文件失败"
 
-#: ref-filter.c:1549
+#: read-cache.c:2183
 #, c-format
-msgid "no branch, rebasing %s"
-msgstr "非分支,正变基 %s"
+msgid "%s: cannot stat the open index"
+msgstr "%s:不能对打开的索引执行 stat 操作"
 
-#: ref-filter.c:1552
+#: read-cache.c:2187
 #, c-format
-msgid "no branch, rebasing detached HEAD %s"
-msgstr "非分支,正变基分离头指针 %s"
+msgid "%s: index file smaller than expected"
+msgstr "%s:索引文件比预期的小"
 
-#: ref-filter.c:1555
+#: read-cache.c:2191
 #, c-format
-msgid "no branch, bisect started on %s"
-msgstr "非分支,二分查找开始于 %s"
+msgid "%s: unable to map index file"
+msgstr "%s:无法对索引文件执行 map 操作"
 
-#: ref-filter.c:1565
-msgid "no branch"
-msgstr "非分支"
+#: read-cache.c:2233
+#, c-format
+msgid "unable to create load_index_extensions thread: %s"
+msgstr "无法创建 load_index_extensions 线程:%s"
 
-#: ref-filter.c:1599 ref-filter.c:1808
+#: read-cache.c:2260
 #, c-format
-msgid "missing object %s for %s"
-msgstr "缺失 %2$s 的对象 %1$s"
+msgid "unable to join load_index_extensions thread: %s"
+msgstr "无法加入 load_index_extensions 线程:%s"
 
-#: ref-filter.c:1609
+#: read-cache.c:2292
 #, c-format
-msgid "parse_object_buffer failed on %s for %s"
-msgstr "parse_object_buffer 失败于 %2$s 的 %1$s"
+msgid "could not freshen shared index '%s'"
+msgstr "无法刷新共享索引 '%s'"
 
-#: ref-filter.c:2062
+#: read-cache.c:2339
 #, c-format
-msgid "malformed object at '%s'"
-msgstr "æ ¼å¼\8fé\94\99误ç\9a\84对象 '%s'"
+msgid "broken index, expect %s in %s, got %s"
+msgstr "æ\8d\9få\9d\8fç\9a\84ç´¢å¼\95ï¼\8cæ\9c\9fæ\9c\9bå\9c¨ %2$s ä¸­ç\9a\84 %1$sï¼\8cå¾\97å\88° %3$s"
 
-#: ref-filter.c:2151
+#: read-cache.c:3035 strbuf.c:1171 wrapper.c:633 builtin/merge.c:1141
 #, c-format
-msgid "ignoring ref with broken name %s"
-msgstr "忽略带有错误名称 %s 的引用"
+msgid "could not close '%s'"
+msgstr "不能关闭 '%s'"
 
-#: ref-filter.c:2156 refs.c:676
+#: read-cache.c:3138 sequencer.c:2487 sequencer.c:4239
 #, c-format
-msgid "ignoring broken ref %s"
-msgstr "忽略损坏的引用 %s"
+msgid "could not stat '%s'"
+msgstr "不能对 '%s' 调用 stat"
 
-#: ref-filter.c:2472
+#: read-cache.c:3151
 #, c-format
-msgid "format: %%(end) atom missing"
-msgstr "格式:缺少 %%(end) 元素"
+msgid "unable to open git dir: %s"
+msgstr "不能打开 git 目录:%s"
 
-#: ref-filter.c:2571
+#: read-cache.c:3163
 #, c-format
-msgid "malformed object name %s"
-msgstr "æ ¼å¼\8fé\94\99误ç\9a\84对象å\90\8d %s"
+msgid "unable to unlink: %s"
+msgstr "æ\97 æ³\95å\88 é\99¤ï¼\9a%s"
 
-#: ref-filter.c:2576
+#: read-cache.c:3188
 #, c-format
-msgid "option `%s' must point to a commit"
-msgstr "选项 `%s' 必须指向一个提交"
+msgid "cannot fix permission bits on '%s'"
+msgstr "不能修复 '%s' 的权限位"
 
-#: refs.c:264
+#: read-cache.c:3337
 #, c-format
-msgid "%s does not point to a valid object!"
-msgstr "%s 没有指向一个有效的对象!"
+msgid "%s: cannot drop to stage #0"
+msgstr "%s:不能落到暂存区 #0"
 
-#: refs.c:566
+#: rebase-interactive.c:11
+msgid ""
+"You can fix this with 'git rebase --edit-todo' and then run 'git rebase --"
+"continue'.\n"
+"Or you can abort the rebase with 'git rebase --abort'.\n"
+msgstr ""
+"您可以用 'git rebase --edit-todo' 修正,然后执行 'git rebase --continue'。\n"
+"或者您可以用 'git rebase --abort' 终止变基。\n"
+
+#: rebase-interactive.c:33
 #, c-format
 msgid ""
-"Using '%s' as the name for the initial branch. This default branch name\n"
-"is subject to change. To configure the initial branch name to use in all\n"
-"of your new repositories, which will suppress this warning, call:\n"
-"\n"
-"\tgit config --global init.defaultBranch <name>\n"
+"unrecognized setting %s for option rebase.missingCommitsCheck. Ignoring."
+msgstr "选项 rebase.missingCommitsCheck 的值 %s 无法识别。已忽略。"
+
+#: rebase-interactive.c:42
+msgid ""
 "\n"
-"Names commonly chosen instead of 'master' are 'main', 'trunk' and\n"
-"'development'. The just-created branch can be renamed via this command:\n"
+"Commands:\n"
+"p, pick <commit> = use commit\n"
+"r, reword <commit> = use commit, but edit the commit message\n"
+"e, edit <commit> = use commit, but stop for amending\n"
+"s, squash <commit> = use commit, but meld into previous commit\n"
+"f, fixup <commit> = like \"squash\", but discard this commit's log message\n"
+"x, exec <command> = run command (the rest of the line) using shell\n"
+"b, break = stop here (continue rebase later with 'git rebase --continue')\n"
+"d, drop <commit> = remove commit\n"
+"l, label <label> = label current HEAD with a name\n"
+"t, reset <label> = reset HEAD to a label\n"
+"m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]\n"
+".       create a merge commit using the original merge commit's\n"
+".       message (or the oneline, if no original merge commit was\n"
+".       specified). Use -c <commit> to reword the commit message.\n"
 "\n"
-"\tgit branch -m <name>\n"
+"These lines can be re-ordered; they are executed from top to bottom.\n"
 msgstr ""
-"使用 '%s' 作为初始分支的名称。这个默认分支名称可能会更改。要在新仓库中\n"
-"配置使用初始分支名,并消除这条警告,请执行:\n"
 "\n"
-"\tgit config --global init.defaultBranch <名称>\n"
-"\n"
-"除了 'master' 之外,通常选定的名字有 'main'、'trunk' 和 'development'。\n"
-"可以通过以下命令重命名刚创建的分支:\n"
+"命令:\n"
+"p, pick <提交> = 使用提交\n"
+"r, reword <提交> = 使用提交,但修改提交说明\n"
+"e, edit <提交> = 使用提交,进入 shell 以便进行提交修补\n"
+"s, squash <提交> = 使用提交,但融合到前一个提交\n"
+"f, fixup <提交> = 类似于 \"squash\",但丢弃提交说明日志\n"
+"x, exec <命令> = 使用 shell 运行命令(此行剩余部分)\n"
+"b, break = 在此处停止(使用 'git rebase --continue' 继续变基)\n"
+"d, drop <提交> = 删除提交\n"
+"l, label <label> = 为当前 HEAD 打上标记\n"
+"t, reset <label> = 重置 HEAD 到该标记\n"
+"m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]\n"
+".       创建一个合并提交,并使用原始的合并提交说明(如果没有指定\n"
+".       原始提交,使用注释部分的 oneline 作为提交说明)。使用\n"
+".       -c <提交> 可以编辑提交说明。\n"
 "\n"
-"\tgit branch -m <name>\n"
-
-#: refs.c:588
-#, c-format
-msgid "could not retrieve `%s`"
-msgstr "无法获取 `%s`"
+"可以对这些行重新排序,将从上至下执行。\n"
 
-#: refs.c:598
+#: rebase-interactive.c:63
 #, c-format
-msgid "invalid branch name: %s = %s"
-msgstr "无效的分支名:%s = %s"
+msgid "Rebase %s onto %s (%d command)"
+msgid_plural "Rebase %s onto %s (%d commands)"
+msgstr[0] "变基 %s 到 %s(%d 个提交)"
+msgstr[1] "变基 %s 到 %s(%d 个提交)"
 
-#: refs.c:674
-#, c-format
-msgid "ignoring dangling symref %s"
-msgstr "忽略悬空符号引用 %s"
+#: rebase-interactive.c:72 git-rebase--preserve-merges.sh:218
+msgid ""
+"\n"
+"Do not remove any line. Use 'drop' explicitly to remove a commit.\n"
+msgstr ""
+"\n"
+"不要删除任意一行。使用 'drop' 显式地删除一个提交。\n"
 
-#: refs.c:911
-#, c-format
-msgid "log for ref %s has gap after %s"
-msgstr "引用 %s 的日志在 %s 之后有缺口"
+#: rebase-interactive.c:75 git-rebase--preserve-merges.sh:222
+msgid ""
+"\n"
+"If you remove a line here THAT COMMIT WILL BE LOST.\n"
+msgstr ""
+"\n"
+"如果您在这里删除一行,对应的提交将会丢失。\n"
 
-#: refs.c:917
-#, c-format
-msgid "log for ref %s unexpectedly ended on %s"
-msgstr "引用 %s 的日志意外终止于 %s "
+#: rebase-interactive.c:81 git-rebase--preserve-merges.sh:861
+msgid ""
+"\n"
+"You are editing the todo file of an ongoing interactive rebase.\n"
+"To continue rebase after editing, run:\n"
+"    git rebase --continue\n"
+"\n"
+msgstr ""
+"\n"
+"您正在修改进行中的交互式变基待办列表。若要在编辑结束后继续变基,\n"
+"请执行:\n"
+"    git rebase --continue\n"
+"\n"
 
-#: refs.c:976
-#, c-format
-msgid "log for %s is empty"
-msgstr "%s 的日志为空"
+#: rebase-interactive.c:86 git-rebase--preserve-merges.sh:938
+msgid ""
+"\n"
+"However, if you remove everything, the rebase will be aborted.\n"
+"\n"
+msgstr ""
+"\n"
+"然而,如果您删除全部内容,变基操作将会终止。\n"
+"\n"
 
-#: refs.c:1068
+#: rebase-interactive.c:110 rerere.c:469 rerere.c:676 sequencer.c:3615
+#: sequencer.c:3641 sequencer.c:5424 builtin/fsck.c:329 builtin/rebase.c:272
 #, c-format
-msgid "refusing to update ref with bad name '%s'"
-msgstr "拒绝更新有错误名称 '%s' 的引用"
+msgid "could not write '%s'"
+msgstr "不能写入 '%s'"
 
-#: refs.c:1139
+#: rebase-interactive.c:116 builtin/rebase.c:204 builtin/rebase.c:230
+#: builtin/rebase.c:254
 #, c-format
-msgid "update_ref failed for ref '%s': %s"
-msgstr "对引用 '%s' 执行 update_ref 失败:%s"
+msgid "could not write '%s'."
+msgstr "不能写入 '%s'。"
 
-#: refs.c:1963
+#: rebase-interactive.c:193
 #, c-format
-msgid "multiple updates for ref '%s' not allowed"
-msgstr "不允许对引用 '%s' 多次更新"
-
-#: refs.c:2043
-msgid "ref updates forbidden inside quarantine environment"
-msgstr "在隔离环境中禁止更新引用"
-
-#: refs.c:2054
-msgid "ref updates aborted by hook"
-msgstr "引用更新被钩子中止"
+msgid ""
+"Warning: some commits may have been dropped accidentally.\n"
+"Dropped commits (newer to older):\n"
+msgstr ""
+"警告:一些提交可能被意外丢弃。\n"
+"丢弃的提交(从新到旧):\n"
 
-#: refs.c:2154 refs.c:2184
+#: rebase-interactive.c:200
 #, c-format
-msgid "'%s' exists; cannot create '%s'"
-msgstr "'%s' 已存在,无法创建 '%s'"
+msgid ""
+"To avoid this message, use \"drop\" to explicitly remove a commit.\n"
+"\n"
+"Use 'git config rebase.missingCommitsCheck' to change the level of "
+"warnings.\n"
+"The possible behaviours are: ignore, warn, error.\n"
+"\n"
+msgstr ""
+"为避免这条信息,使用 \"drop\" 指令显式地删除一个提交。\n"
+"\n"
+"使用 'git config rebase.missingCommitsCheck' 来修改警告级别。\n"
+"可选值有:ignore、warn、error。\n"
+"\n"
 
-#: refs.c:2160 refs.c:2195
+#: rebase-interactive.c:233 rebase-interactive.c:238 sequencer.c:2402
+#: builtin/rebase.c:190 builtin/rebase.c:215 builtin/rebase.c:241
+#: builtin/rebase.c:266
 #, c-format
-msgid "cannot process '%s' and '%s' at the same time"
-msgstr "无法同时处理 '%s' 和 '%s'"
+msgid "could not read '%s'."
+msgstr "不能读取 '%s'。"
 
-#: refs/files-backend.c:1228
-#, c-format
-msgid "could not remove reference %s"
-msgstr "无法删除引用 %s"
+#: ref-filter.c:42 wt-status.c:1975
+msgid "gone"
+msgstr "丢失"
 
-#: refs/files-backend.c:1242 refs/packed-backend.c:1542
-#: refs/packed-backend.c:1552
+#: ref-filter.c:43
 #, c-format
-msgid "could not delete reference %s: %s"
-msgstr "无法删除引用 %s:%s"
+msgid "ahead %d"
+msgstr "领先 %d"
 
-#: refs/files-backend.c:1245 refs/packed-backend.c:1555
+#: ref-filter.c:44
 #, c-format
-msgid "could not delete references: %s"
-msgstr "无法删除引用:%s"
+msgid "behind %d"
+msgstr "落后 %d"
 
-#: refspec.c:170
+#: ref-filter.c:45
 #, c-format
-msgid "invalid refspec '%s'"
-msgstr "无效的引用表达式:'%s'"
+msgid "ahead %d, behind %d"
+msgstr "领先 %d,落后 %d"
 
-#: remote.c:351
+#: ref-filter.c:175
 #, c-format
-msgid "config remote shorthand cannot begin with '/': %s"
-msgstr "配置的远程短名称不能以 '/' 开始:%s"
-
-#: remote.c:399
-msgid "more than one receivepack given, using the first"
-msgstr "提供了一个以上的 receivepack,使用第一个"
-
-#: remote.c:407
-msgid "more than one uploadpack given, using the first"
-msgstr "提供了一个以上的 uploadpack,使用第一个"
+msgid "expected format: %%(color:<color>)"
+msgstr "期望的格式:%%(color:<颜色>)"
 
-#: remote.c:590
+#: ref-filter.c:177
 #, c-format
-msgid "Cannot fetch both %s and %s to %s"
-msgstr "不能同时获取 %s 和 %s 至 %s"
+msgid "unrecognized color: %%(color:%s)"
+msgstr "未能识别的颜色:%%(color:%s)"
 
-#: remote.c:594
+#: ref-filter.c:199
 #, c-format
-msgid "%s usually tracks %s, not %s"
-msgstr "%s 通常跟踪 %s,而非 %s"
+msgid "Integer value expected refname:lstrip=%s"
+msgstr "期望整数值 refname:lstrip=%s"
 
-#: remote.c:598
+#: ref-filter.c:203
 #, c-format
-msgid "%s tracks both %s and %s"
-msgstr "%s 同时跟踪 %s 和 %s"
+msgid "Integer value expected refname:rstrip=%s"
+msgstr "期望整数值 refname:rstrip=%s"
 
-#: remote.c:666
+#: ref-filter.c:205
 #, c-format
-msgid "key '%s' of pattern had no '*'"
-msgstr "模å¼\8fç\9a\84é\94® '%s' æ²¡æ\9c\89 '*'"
+msgid "unrecognized %%(%s) argument: %s"
+msgstr "æ\9cªè\83½è¯\86å\88«ç\9a\84 %%(%s) å\8f\82æ\95°ï¼\9a%s"
 
-#: remote.c:676
+#: ref-filter.c:260
 #, c-format
-msgid "value '%s' of pattern has no '*'"
-msgstr "模式的值 '%s' 没有 '*'"
+msgid "%%(objecttype) does not take arguments"
+msgstr "%%(objecttype) 不带参数"
 
-#: remote.c:1073
+#: ref-filter.c:282
 #, c-format
-msgid "src refspec %s does not match any"
-msgstr "æº\90å¼\95ç\94¨è¡¨è¾¾å¼\8f %s æ²¡æ\9c\89å\8c¹é\85\8d"
+msgid "unrecognized %%(objectsize) argument: %s"
+msgstr "æ\9cªè\83½è¯\86å\88«ç\9a\84 %%(objectsize) å\8f\82æ\95°ï¼\9a%s"
 
-#: remote.c:1078
+#: ref-filter.c:290
 #, c-format
-msgid "src refspec %s matches more than one"
-msgstr "源引用表达式 %s 匹配超过一个"
+msgid "%%(deltabase) does not take arguments"
+msgstr "%%(deltabase) 不带参数"
 
-#. TRANSLATORS: "matches '%s'%" is the <dst> part of "git push
-#. <remote> <src>:<dst>" push, and "being pushed ('%s')" is
-#. the <src>.
-#.
-#: remote.c:1093
+#: ref-filter.c:302
 #, c-format
-msgid ""
-"The destination you provided is not a full refname (i.e.,\n"
-"starting with \"refs/\"). We tried to guess what you meant by:\n"
-"\n"
-"- Looking for a ref that matches '%s' on the remote side.\n"
-"- Checking if the <src> being pushed ('%s')\n"
-"  is a ref in \"refs/{heads,tags}/\". If so we add a corresponding\n"
-"  refs/{heads,tags}/ prefix on the remote side.\n"
-"\n"
-"Neither worked, so we gave up. You must fully qualify the ref."
-msgstr ""
-"您提供的目标不是一个完整的引用名称(即以 \"refs/\" 开头)。我们\n"
-"试着猜测您的想法:\n"
-"\n"
-"- 在远端查询和 '%s' 匹配的引用。\n"
-"- 检查要推送的 <src>('%s')是不是在 \"refs/{heads,tags}/\" 中的\n"
-"  引用。如果是,我们会在对应的远端添加 refs/{heads,tags}/ 前缀。\n"
-"\n"
-"都不行,所以我们已放弃。您必须给出完整的引用。"
+msgid "%%(body) does not take arguments"
+msgstr "%%(body) 不带参数"
 
-#: remote.c:1113
+#: ref-filter.c:315
 #, c-format
-msgid ""
-"The <src> part of the refspec is a commit object.\n"
-"Did you mean to create a new branch by pushing to\n"
-"'%s:refs/heads/%s'?"
-msgstr ""
-"引用表达式的 <src> 是一个提交对象。您是想创建一个新的分支而向\n"
-"'%s:refs/heads/%s' 推送么?"
+msgid "unrecognized %%(subject) argument: %s"
+msgstr "未能识别的 %%(subject) 参数:%s"
 
-#: remote.c:1118
+#: ref-filter.c:334
 #, c-format
-msgid ""
-"The <src> part of the refspec is a tag object.\n"
-"Did you mean to create a new tag by pushing to\n"
-"'%s:refs/tags/%s'?"
-msgstr ""
-"引用表达式的 <src> 是一个标签对象。您是想创建一个新的标签而向\n"
-"'%s:refs/tags/%s' 推送么?"
+msgid "expected %%(trailers:key=<value>)"
+msgstr "预期 %%(trailers:key=<值>)"
 
-#: remote.c:1123
+#: ref-filter.c:336
 #, c-format
-msgid ""
-"The <src> part of the refspec is a tree object.\n"
-"Did you mean to tag a new tree by pushing to\n"
-"'%s:refs/tags/%s'?"
-msgstr ""
-"引用表达式的 <src> 是一个树对象。您是想为这个树对象创建标签而向\n"
-"'%s:refs/tags/%s' 推送么?"
+msgid "unknown %%(trailers) argument: %s"
+msgstr "未知的 %%(trailers) 参数:%s"
 
-#: remote.c:1128
+#: ref-filter.c:367
 #, c-format
-msgid ""
-"The <src> part of the refspec is a blob object.\n"
-"Did you mean to tag a new blob by pushing to\n"
-"'%s:refs/tags/%s'?"
-msgstr ""
-"引用表达式的 <src> 是一个数据对象。您是想为这个数据对象创建标签而向\n"
-"'%s:refs/tags/%s' 推送么?"
+msgid "positive value expected contents:lines=%s"
+msgstr "期望一个正数 contents:lines=%s"
 
-#: remote.c:1164
+#: ref-filter.c:369
 #, c-format
-msgid "%s cannot be resolved to branch"
-msgstr "%s 无法被解析为分支"
+msgid "unrecognized %%(contents) argument: %s"
+msgstr "未能识别的 %%(contents) 参数:%s"
 
-#: remote.c:1175
+#: ref-filter.c:384
 #, c-format
-msgid "unable to delete '%s': remote ref does not exist"
-msgstr "æ\97 æ³\95å\88 é\99¤ '%s'ï¼\9aè¿\9cç¨\8bå¼\95ç\94¨ä¸\8då­\98å\9c¨"
+msgid "positive value expected '%s' in %%(%s)"
+msgstr "æ\9c\9fæ\9c\9b %%(%2$s) ä¸­ç\9a\84 '%1$s' æ\98¯ä¸\80个正æ\95°"
 
-#: remote.c:1187
+#: ref-filter.c:388
 #, c-format
-msgid "dst refspec %s matches more than one"
-msgstr "目标引用表达式 %s 匹配超过一个"
+msgid "unrecognized argument '%s' in %%(%s)"
+msgstr "未能识别 %%(%2$s) 中的参数 '%1$s'"
 
-#: remote.c:1194
+#: ref-filter.c:402
 #, c-format
-msgid "dst ref %s receives from more than one src"
-msgstr "目标引用 %s 接收超过一个源"
-
-#: remote.c:1714 remote.c:1815
-msgid "HEAD does not point to a branch"
-msgstr "HEAD 没有指向一个分支"
+msgid "unrecognized email option: %s"
+msgstr "未识别的邮件选项:%s"
 
-#: remote.c:1723
+#: ref-filter.c:432
 #, c-format
-msgid "no such branch: '%s'"
-msgstr "没æ\9c\89æ­¤å\88\86æ\94¯ï¼\9a'%s'"
+msgid "expected format: %%(align:<width>,<position>)"
+msgstr "æ\9c\9fæ\9c\9bç\9a\84æ ¼å¼\8fï¼\9a%%(align:<宽度>,<ä½\8dç½®>)"
 
-#: remote.c:1726
+#: ref-filter.c:444
 #, c-format
-msgid "no upstream configured for branch '%s'"
-msgstr "尚未给分支 '%s' 设置上游"
+msgid "unrecognized position:%s"
+msgstr "未能识别的位置:%s"
 
-#: remote.c:1732
+#: ref-filter.c:451
 #, c-format
-msgid "upstream branch '%s' not stored as a remote-tracking branch"
-msgstr "上游分支 '%s' 没有存储为一个远程跟踪分支"
+msgid "unrecognized width:%s"
+msgstr "未能识别的宽度:%s"
 
-#: remote.c:1747
+#: ref-filter.c:460
 #, c-format
-msgid "push destination '%s' on remote '%s' has no local tracking branch"
-msgstr "æ\8e¨é\80\81ç\9b®æ \87 '%s' è\87³è¿\9cç¨\8b '%s' æ²¡æ\9c\89æ\9c¬å\9c°è·\9f踪å\88\86æ\94¯"
+msgid "unrecognized %%(align) argument: %s"
+msgstr "æ\9cªè\83½è¯\86å\88«ç\9a\84 %%(align) å\8f\82æ\95°ï¼\9a%s"
 
-#: remote.c:1759
+#: ref-filter.c:468
 #, c-format
-msgid "branch '%s' has no remote for pushing"
-msgstr "å\88\86æ\94¯ '%s' æ²¡æ\9c\89设置è¦\81æ\8e¨é\80\81ç\9a\84è¿\9cç¨\8bæ\9c\8då\8a¡å\99¨"
+msgid "positive width expected with the %%(align) atom"
+msgstr "å\85\83ç´  %%(align) é\9c\80è¦\81ä¸\80个正æ\95°ç\9a\84宽度"
 
-#: remote.c:1769
+#: ref-filter.c:486
 #, c-format
-msgid "push refspecs for '%s' do not include '%s'"
-msgstr "向 '%s' 推送引用规格未包含 '%s'"
-
-#: remote.c:1782
-msgid "push has no destination (push.default is 'nothing')"
-msgstr "推送无目标(push.default 是 'nothing')"
-
-#: remote.c:1804
-msgid "cannot resolve 'simple' push to a single destination"
-msgstr "无法解析 'simple' 推送至一个单独的目标"
+msgid "unrecognized %%(if) argument: %s"
+msgstr "未能识别的 %%(if) 参数:%s"
 
-#: remote.c:1933
+#: ref-filter.c:588
 #, c-format
-msgid "couldn't find remote ref %s"
-msgstr "æ\97 æ³\95æ\89¾å\88°è¿\9cç¨\8bå¼\95ç\94¨ %s"
+msgid "malformed field name: %.*s"
+msgstr "æ ¼å¼\8fé\94\99误ç\9a\84å­\97段å\90\8dï¼\9a%.*s"
 
-#: remote.c:1946
+#: ref-filter.c:615
 #, c-format
-msgid "* Ignoring funny ref '%s' locally"
-msgstr "* 在本地忽略可笑的引用 '%s'"
+msgid "unknown field name: %.*s"
+msgstr "未知的字段名:%.*s"
 
-#: remote.c:2109
+#: ref-filter.c:619
 #, c-format
-msgid "Your branch is based on '%s', but the upstream is gone.\n"
-msgstr "您的分支基于 '%s',但此上游分支已经不存在。\n"
-
-#: remote.c:2113
-msgid "  (use \"git branch --unset-upstream\" to fixup)\n"
-msgstr "  (使用 \"git branch --unset-upstream\" 来修复)\n"
+msgid ""
+"not a git repository, but the field '%.*s' requires access to object data"
+msgstr "不是 git 仓库,但是字段 '%.*s' 需要访问对象数据"
 
-#: remote.c:2116
+#: ref-filter.c:743
 #, c-format
-msgid "Your branch is up to date with '%s'.\n"
-msgstr "æ\82¨ç\9a\84å\88\86æ\94¯ä¸\8eä¸\8a游å\88\86æ\94¯ '%s' ä¸\80è\87´ã\80\82\n"
+msgid "format: %%(if) atom used without a %%(then) atom"
+msgstr "æ ¼å¼\8fï¼\9a使ç\94¨äº\86 %%(if) å\85\83ç´ è\80\8c没æ\9c\89 %%(then) å\85\83ç´ "
 
-#: remote.c:2120
+#: ref-filter.c:806
 #, c-format
-msgid "Your branch and '%s' refer to different commits.\n"
-msgstr "æ\82¨ç\9a\84å\88\86æ\94¯å\92\8c '%s' æ\8c\87å\90\91ä¸\8då\90\8cç\9a\84æ\8f\90交ã\80\82\n"
+msgid "format: %%(then) atom used without an %%(if) atom"
+msgstr "æ ¼å¼\8fï¼\9a使ç\94¨äº\86 %%(then) å\85\83ç´ è\80\8c没æ\9c\89 %%(if) å\85\83ç´ "
 
-#: remote.c:2123
+#: ref-filter.c:808
 #, c-format
-msgid "  (use \"%s\" for details)\n"
-msgstr "  (使用 \"%s\" 查看详情)\n"
+msgid "format: %%(then) atom used more than once"
+msgstr "格式:%%(then) 元素用了多次"
 
-#: remote.c:2127
+#: ref-filter.c:810
 #, c-format
-msgid "Your branch is ahead of '%s' by %d commit.\n"
-msgid_plural "Your branch is ahead of '%s' by %d commits.\n"
-msgstr[0] "您的分支领先 '%s' 共 %d 个提交。\n"
-msgstr[1] "您的分支领先 '%s' 共 %d 个提交。\n"
+msgid "format: %%(then) atom used after %%(else)"
+msgstr "格式:%%(then) 元素用在了 %%(else) 之后"
 
-#: remote.c:2133
-msgid "  (use \"git push\" to publish your local commits)\n"
-msgstr "  (使用 \"git push\" 来发布您的本地提交)\n"
+#: ref-filter.c:838
+#, c-format
+msgid "format: %%(else) atom used without an %%(if) atom"
+msgstr "格式:使用了 %%(else) 元素而没有 %%(if) 元素"
 
-#: remote.c:2136
+#: ref-filter.c:840
 #, c-format
-msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
-msgid_plural ""
-"Your branch is behind '%s' by %d commits, and can be fast-forwarded.\n"
-msgstr[0] "您的分支落后 '%s' 共 %d 个提交,并且可以快进。\n"
-msgstr[1] "您的分支落后 '%s' 共 %d 个提交,并且可以快进。\n"
+msgid "format: %%(else) atom used without a %%(then) atom"
+msgstr "格式:使用了 %%(else) 元素而没有 %%(then) 元素"
 
-#  译者:注意保持前导空格
-#: remote.c:2144
-msgid "  (use \"git pull\" to update your local branch)\n"
-msgstr "  (使用 \"git pull\" 来更新您的本地分支)\n"
+#: ref-filter.c:842
+#, c-format
+msgid "format: %%(else) atom used more than once"
+msgstr "格式:%%(else) 元素用了多次"
 
-#: remote.c:2147
+#: ref-filter.c:857
 #, c-format
-msgid ""
-"Your branch and '%s' have diverged,\n"
-"and have %d and %d different commit each, respectively.\n"
-msgid_plural ""
-"Your branch and '%s' have diverged,\n"
-"and have %d and %d different commits each, respectively.\n"
-msgstr[0] ""
-"您的分支和 '%s' 出现了偏离,\n"
-"并且分别有 %d 和 %d 处不同的提交。\n"
-msgstr[1] ""
-"您的分支和 '%s' 出现了偏离,\n"
-"并且分别有 %d 和 %d 处不同的提交。\n"
+msgid "format: %%(end) atom used without corresponding atom"
+msgstr "格式:使用了 %%(end) 元素却没有它的对应元素"
 
-#  译者:注意保持前导空格
-#: remote.c:2157
-msgid "  (use \"git pull\" to merge the remote branch into yours)\n"
-msgstr "  (使用 \"git pull\" 来合并远程分支)\n"
+#: ref-filter.c:914
+#, c-format
+msgid "malformed format string %s"
+msgstr "错误的格式化字符串 %s"
 
-#: remote.c:2349
+#: ref-filter.c:1555
 #, c-format
-msgid "cannot parse expected object name '%s'"
-msgstr "无法解析期望的对象名 '%s'"
+msgid "(no branch, rebasing %s)"
+msgstr "(非分支,正变基 %s)"
 
-#: replace-object.c:21
+#: ref-filter.c:1558
 #, c-format
-msgid "bad replace ref name: %s"
-msgstr "错误的替换引用名称:%s"
+msgid "(no branch, rebasing detached HEAD %s)"
+msgstr "(非分支,正变基分离头指针 %s)"
 
-#: replace-object.c:30
+#: ref-filter.c:1561
 #, c-format
-msgid "duplicate replace ref: %s"
-msgstr "重复的替换引用:%s"
+msgid "(no branch, bisect started on %s)"
+msgstr "(非分支,二分查找开始于 %s)"
 
-#: replace-object.c:82
+#: ref-filter.c:1565
 #, c-format
-msgid "replace depth too high for object %s"
-msgstr "对象 %s 的替换层级太深"
+msgid "(HEAD detached at %s)"
+msgstr "(头指针在 %s 分离)"
 
-#: rerere.c:217 rerere.c:226 rerere.c:229
-msgid "corrupt MERGE_RR"
-msgstr "损坏的 MERGE_RR"
+#: ref-filter.c:1568
+#, c-format
+msgid "(HEAD detached from %s)"
+msgstr "(头指针自 %s 分离)"
 
-#: rerere.c:264 rerere.c:269
-msgid "unable to write rerere record"
-msgstr "无法写入 rerere 记录"
+#: ref-filter.c:1571
+msgid "(no branch)"
+msgstr "(非分支)"
 
-#: rerere.c:495
+#: ref-filter.c:1603 ref-filter.c:1812
 #, c-format
-msgid "there were errors while writing '%s' (%s)"
-msgstr "写入 '%s' (%s) 时出错"
+msgid "missing object %s for %s"
+msgstr "缺失 %2$s 的对象 %1$s"
 
-#: rerere.c:498
+#: ref-filter.c:1613
 #, c-format
-msgid "failed to flush '%s'"
-msgstr "刷新 '%s' 失败"
+msgid "parse_object_buffer failed on %s for %s"
+msgstr "parse_object_buffer 失败于 %2$s 的 %1$s"
 
-#: rerere.c:503 rerere.c:1039
+#: ref-filter.c:1996
 #, c-format
-msgid "could not parse conflict hunks in '%s'"
-msgstr "不能解析 '%s' 中的冲突块"
+msgid "malformed object at '%s'"
+msgstr "格式错误的对象 '%s'"
 
-#: rerere.c:684
+#: ref-filter.c:2085
 #, c-format
-msgid "failed utime() on '%s'"
-msgstr "å\9c¨ '%s' ä¸\8aè°\83ç\94¨ utime() å¤±è´¥"
+msgid "ignoring ref with broken name %s"
+msgstr "忽ç\95¥å¸¦æ\9c\89é\94\99误å\90\8d称 %s ç\9a\84å¼\95ç\94¨"
 
-#: rerere.c:694
+#: ref-filter.c:2090 refs.c:676
 #, c-format
-msgid "writing '%s' failed"
-msgstr "å\86\99å\85¥ '%s' å¤±è´¥"
+msgid "ignoring broken ref %s"
+msgstr "忽ç\95¥æ\8d\9få\9d\8fç\9a\84å¼\95ç\94¨ %s"
 
-#: rerere.c:714
+#: ref-filter.c:2430
 #, c-format
-msgid "Staged '%s' using previous resolution."
-msgstr "使用之前的解决方案暂存 '%s'。"
+msgid "format: %%(end) atom missing"
+msgstr "格式:缺少 %%(end) 元素"
 
-#: rerere.c:753
+#: ref-filter.c:2529
 #, c-format
-msgid "Recorded resolution for '%s'."
-msgstr "已记录 '%s' 的解决方案。"
+msgid "malformed object name %s"
+msgstr "格式错误的对象名 %s"
 
-#: rerere.c:788
+#: ref-filter.c:2534
 #, c-format
-msgid "Resolved '%s' using previous resolution."
-msgstr "使用之前的解决方案解决 '%s'。"
+msgid "option `%s' must point to a commit"
+msgstr "选项 `%s' 必须指向一个提交"
 
-#: rerere.c:803
+#: refs.c:264
 #, c-format
-msgid "cannot unlink stray '%s'"
-msgstr "不能删除 stray '%s'"
+msgid "%s does not point to a valid object!"
+msgstr "%s 没有指向一个有效的对象!"
 
-#: rerere.c:807
+#: refs.c:566
 #, c-format
-msgid "Recorded preimage for '%s'"
-msgstr "为 '%s' 记录 preimage"
+msgid ""
+"Using '%s' as the name for the initial branch. This default branch name\n"
+"is subject to change. To configure the initial branch name to use in all\n"
+"of your new repositories, which will suppress this warning, call:\n"
+"\n"
+"\tgit config --global init.defaultBranch <name>\n"
+"\n"
+"Names commonly chosen instead of 'master' are 'main', 'trunk' and\n"
+"'development'. The just-created branch can be renamed via this command:\n"
+"\n"
+"\tgit branch -m <name>\n"
+msgstr ""
+"使用 '%s' 作为初始分支的名称。这个默认分支名称可能会更改。要在新仓库中\n"
+"配置使用初始分支名,并消除这条警告,请执行:\n"
+"\n"
+"\tgit config --global init.defaultBranch <名称>\n"
+"\n"
+"除了 'master' 之外,通常选定的名字有 'main'、'trunk' 和 'development'。\n"
+"可以通过以下命令重命名刚创建的分支:\n"
+"\n"
+"\tgit branch -m <name>\n"
 
-#: rerere.c:881 submodule.c:2082 builtin/log.c:1992
-#: builtin/submodule--helper.c:1878 builtin/submodule--helper.c:1890
+#: refs.c:588
 #, c-format
-msgid "could not create directory '%s'"
-msgstr "不能创建目录 '%s'"
+msgid "could not retrieve `%s`"
+msgstr "无法获取 `%s`"
 
-#: rerere.c:1057
+#: refs.c:598
 #, c-format
-msgid "failed to update conflicted state in '%s'"
-msgstr "æ\9b´æ\96° '%s' ä¸­ç\9a\84å\86²çª\81ç\8a¶æ\80\81失败"
+msgid "invalid branch name: %s = %s"
+msgstr "æ\97 æ\95\88ç\9a\84å\88\86æ\94¯å\90\8dï¼\9a%s = %s"
 
-#: rerere.c:1068 rerere.c:1075
+#: refs.c:674
 #, c-format
-msgid "no remembered resolution for '%s'"
-msgstr "没有为 '%s' 记忆的解决方案"
+msgid "ignoring dangling symref %s"
+msgstr "忽略悬空符号引用 %s"
 
-#: rerere.c:1077
+#: refs.c:922
 #, c-format
-msgid "cannot unlink '%s'"
-msgstr "不能删除 '%s'"
+msgid "log for ref %s has gap after %s"
+msgstr "引用 %s 的日志在 %s 之后有缺口"
 
-#: rerere.c:1087
+#: refs.c:929
 #, c-format
-msgid "Updated preimage for '%s'"
-msgstr "已为 '%s' æ\9b´æ\96° preimage"
+msgid "log for ref %s unexpectedly ended on %s"
+msgstr "å¼\95ç\94¨ %s ç\9a\84æ\97¥å¿\97æ\84\8få¤\96ç»\88æ­¢äº\8e %s "
 
-#: rerere.c:1096
+#: refs.c:994
 #, c-format
-msgid "Forgot resolution for '%s'\n"
-msgstr "忘记 '%s' 的解决方案\n"
-
-#: rerere.c:1199
-msgid "unable to open rr-cache directory"
-msgstr "不能打开 rr-cache 目录"
-
-#: reset.c:42
-msgid "could not determine HEAD revision"
-msgstr "不能确定 HEAD 版本"
+msgid "log for %s is empty"
+msgstr "%s 的日志为空"
 
-#: reset.c:70 reset.c:76 sequencer.c:3460
+#: refs.c:1086
 #, c-format
-msgid "failed to find tree of %s"
-msgstr "无法找到 %s 指向的树。"
-
-#: revision.c:2336
-msgid "--unpacked=<packfile> no longer supported"
-msgstr "不再支持 --unpacked=<packfile>"
+msgid "refusing to update ref with bad name '%s'"
+msgstr "拒绝更新有错误名称 '%s' 的引用"
 
-#: revision.c:2356
+#: refs.c:1157
 #, c-format
-msgid "unknown value for --diff-merges: %s"
-msgstr "未知的 --diff-merges 取值:%s"
-
-#: revision.c:2694
-msgid "your current branch appears to be broken"
-msgstr "您的当前分支好像被损坏"
+msgid "update_ref failed for ref '%s': %s"
+msgstr "对引用 '%s' 执行 update_ref 失败:%s"
 
-#: revision.c:2697
+#: refs.c:2051
 #, c-format
-msgid "your current branch '%s' does not have any commits yet"
-msgstr "您的当前分支 '%s' 尚无任何提交"
+msgid "multiple updates for ref '%s' not allowed"
+msgstr "不允许对引用 '%s' 多次更新"
 
-#: revision.c:2907
-msgid "-L does not yet support diff formats besides -p and -s"
-msgstr "-L 尚不支持 -p 和 -s 之外的差异格式"
+#: refs.c:2131
+msgid "ref updates forbidden inside quarantine environment"
+msgstr "在隔离环境中禁止更新引用"
 
-#: run-command.c:764
-msgid "open /dev/null failed"
-msgstr "不能打开 /dev/null"
+#: refs.c:2142
+msgid "ref updates aborted by hook"
+msgstr "引用更新被钩子中止"
 
-#: run-command.c:1271
+#: refs.c:2242 refs.c:2272
 #, c-format
-msgid "cannot create async thread: %s"
-msgstr "不能创建 async 线程:%s"
+msgid "'%s' exists; cannot create '%s'"
+msgstr "'%s' 已存在,无法创建 '%s'"
 
-#: run-command.c:1335
+#: refs.c:2248 refs.c:2283
 #, c-format
-msgid ""
-"The '%s' hook was ignored because it's not set as executable.\n"
-"You can disable this warning with `git config advice.ignoredHook false`."
-msgstr ""
-"因为没有将钩子 '%s' 设置为可执行,钩子被忽略。您可以通过\n"
-"配置 `git config advice.ignoredHook false` 来关闭这条警告。"
-
-#: send-pack.c:146
-msgid "unexpected flush packet while reading remote unpack status"
-msgstr "读取远程解包状态时收到意外的 flush 包"
+msgid "cannot process '%s' and '%s' at the same time"
+msgstr "无法同时处理 '%s' 和 '%s'"
 
-#: send-pack.c:148
+#: refs/files-backend.c:1228
 #, c-format
-msgid "unable to parse remote unpack status: %s"
-msgstr "不能解析远程解包状态:%s"
+msgid "could not remove reference %s"
+msgstr "无法删除引用 %s"
 
-#: send-pack.c:150
+#: refs/files-backend.c:1242 refs/packed-backend.c:1542
+#: refs/packed-backend.c:1552
 #, c-format
-msgid "remote unpack failed: %s"
-msgstr "远程解包失败:%s"
-
-#: send-pack.c:374
-msgid "failed to sign the push certificate"
-msgstr "为推送证书签名失败"
+msgid "could not delete reference %s: %s"
+msgstr "无法删除引用 %s:%s"
 
-#: send-pack.c:467
-msgid "the receiving end does not support this repository's hash algorithm"
-msgstr "接收端不支持这个仓库的哈希算法"
+#: refs/files-backend.c:1245 refs/packed-backend.c:1555
+#, c-format
+msgid "could not delete references: %s"
+msgstr "无法删除引用:%s"
 
-#: send-pack.c:476
-msgid "the receiving end does not support --signed push"
-msgstr "接收端不支持签名推送"
+#: refspec.c:170
+#, c-format
+msgid "invalid refspec '%s'"
+msgstr "无效的引用表达式:'%s'"
 
-#: send-pack.c:478
-msgid ""
-"not sending a push certificate since the receiving end does not support --"
-"signed push"
-msgstr "未发送推送证书,因为接收端不支持签名推送"
+#: remote.c:351
+#, c-format
+msgid "config remote shorthand cannot begin with '/': %s"
+msgstr "配置的远程短名称不能以 '/' 开始:%s"
 
-#: send-pack.c:490
-msgid "the receiving end does not support --atomic push"
-msgstr "æ\8e¥æ\94¶ç«¯ä¸\8dæ\94¯æ\8c\81å\8e\9få­\90æ\8e¨é\80\81"
+#: remote.c:399
+msgid "more than one receivepack given, using the first"
+msgstr "æ\8f\90ä¾\9bäº\86ä¸\80个以ä¸\8aç\9a\84 receivepackï¼\8c使ç\94¨ç¬¬ä¸\80个"
 
-#: send-pack.c:495
-msgid "the receiving end does not support push options"
-msgstr "æ\8e¥æ\94¶ç«¯ä¸\8dæ\94¯æ\8c\81æ\8e¨é\80\81é\80\89项"
+#: remote.c:407
+msgid "more than one uploadpack given, using the first"
+msgstr "æ\8f\90ä¾\9bäº\86ä¸\80个以ä¸\8aç\9a\84 uploadpackï¼\8c使ç\94¨ç¬¬ä¸\80个"
 
-#: sequencer.c:195
+#: remote.c:590
 #, c-format
-msgid "invalid commit message cleanup mode '%s'"
-msgstr "无效的提交信息清理模式 '%s'"
+msgid "Cannot fetch both %s and %s to %s"
+msgstr "不能同时获取 %s 和 %s 至 %s"
 
-#: sequencer.c:323
+#: remote.c:594
 #, c-format
-msgid "could not delete '%s'"
-msgstr "无法删除 '%s'"
+msgid "%s usually tracks %s, not %s"
+msgstr "%s 通常跟踪 %s,而非 %s"
 
-#: sequencer.c:343 builtin/rebase.c:755 builtin/rebase.c:1596 builtin/rm.c:385
+#: remote.c:598
 #, c-format
-msgid "could not remove '%s'"
-msgstr "无法删除 '%s'"
+msgid "%s tracks both %s and %s"
+msgstr "%s 同时跟踪 %s 和 %s"
 
-#: sequencer.c:353
-msgid "revert"
-msgstr "还原"
+#: remote.c:666
+#, c-format
+msgid "key '%s' of pattern had no '*'"
+msgstr "模式的键 '%s' 没有 '*'"
 
-#: sequencer.c:355
-msgid "cherry-pick"
-msgstr "拣选"
+#: remote.c:676
+#, c-format
+msgid "value '%s' of pattern has no '*'"
+msgstr "模式的值 '%s' 没有 '*'"
 
-#: sequencer.c:357
-msgid "rebase"
-msgstr "变基"
+#: remote.c:1083
+#, c-format
+msgid "src refspec %s does not match any"
+msgstr "源引用表达式 %s 没有匹配"
 
-#: sequencer.c:359
+#: remote.c:1088
 #, c-format
-msgid "unknown action: %d"
-msgstr "æ\9cªç\9f¥å\8a¨ä½\9cï¼\9a%d"
+msgid "src refspec %s matches more than one"
+msgstr "æº\90å¼\95ç\94¨è¡¨è¾¾å¼\8f %s å\8c¹é\85\8dè¶\85è¿\87ä¸\80个"
 
-#: sequencer.c:418
+#. TRANSLATORS: "matches '%s'%" is the <dst> part of "git push
+#. <remote> <src>:<dst>" push, and "being pushed ('%s')" is
+#. the <src>.
+#.
+#: remote.c:1103
+#, c-format
 msgid ""
-"after resolving the conflicts, mark the corrected paths\n"
-"with 'git add <paths>' or 'git rm <paths>'"
+"The destination you provided is not a full refname (i.e.,\n"
+"starting with \"refs/\"). We tried to guess what you meant by:\n"
+"\n"
+"- Looking for a ref that matches '%s' on the remote side.\n"
+"- Checking if the <src> being pushed ('%s')\n"
+"  is a ref in \"refs/{heads,tags}/\". If so we add a corresponding\n"
+"  refs/{heads,tags}/ prefix on the remote side.\n"
+"\n"
+"Neither worked, so we gave up. You must fully qualify the ref."
 msgstr ""
-"冲突解决完毕后,用 'git add <路径>' 或 'git rm <路径>'\n"
-"命令标记修正后的文件"
+"您提供的目标不是一个完整的引用名称(即以 \"refs/\" 开头)。我们\n"
+"试着猜测您的想法:\n"
+"\n"
+"- 在远端查询和 '%s' 匹配的引用。\n"
+"- 检查要推送的 <src>('%s')是不是在 \"refs/{heads,tags}/\" 中的\n"
+"  引用。如果是,我们会在对应的远端添加 refs/{heads,tags}/ 前缀。\n"
+"\n"
+"都不行,所以我们已放弃。您必须给出完整的引用。"
 
-#: sequencer.c:421
+#: remote.c:1123
+#, c-format
 msgid ""
-"after resolving the conflicts, mark the corrected paths\n"
-"with 'git add <paths>' or 'git rm <paths>'\n"
-"and commit the result with 'git commit'"
+"The <src> part of the refspec is a commit object.\n"
+"Did you mean to create a new branch by pushing to\n"
+"'%s:refs/heads/%s'?"
 msgstr ""
-"冲突解决完毕后,用 'git add <路径>' 或 'git rm <路径>'\n"
-"对修正后的文件做标记,然后用 'git commit' 提交"
-
-#: sequencer.c:434 sequencer.c:3062
-#, c-format
-msgid "could not lock '%s'"
-msgstr "不能锁定 '%s'"
+"引用表达式的 <src> 是一个提交对象。您是想创建一个新的分支而向\n"
+"'%s:refs/heads/%s' 推送么?"
 
-#: sequencer.c:436 sequencer.c:2861 sequencer.c:3066 sequencer.c:3080
-#: sequencer.c:3337 sequencer.c:5326 strbuf.c:1168 wrapper.c:631
+#: remote.c:1128
 #, c-format
-msgid "could not write to '%s'"
-msgstr "不能写入 '%s'"
+msgid ""
+"The <src> part of the refspec is a tag object.\n"
+"Did you mean to create a new tag by pushing to\n"
+"'%s:refs/tags/%s'?"
+msgstr ""
+"引用表达式的 <src> 是一个标签对象。您是想创建一个新的标签而向\n"
+"'%s:refs/tags/%s' 推送么?"
 
-#: sequencer.c:441
+#: remote.c:1133
 #, c-format
-msgid "could not write eol to '%s'"
-msgstr "不能将换行符写入 '%s'"
+msgid ""
+"The <src> part of the refspec is a tree object.\n"
+"Did you mean to tag a new tree by pushing to\n"
+"'%s:refs/tags/%s'?"
+msgstr ""
+"引用表达式的 <src> 是一个树对象。您是想为这个树对象创建标签而向\n"
+"'%s:refs/tags/%s' 推送么?"
 
-#: sequencer.c:446 sequencer.c:2866 sequencer.c:3068 sequencer.c:3082
-#: sequencer.c:3345
+#: remote.c:1138
 #, c-format
-msgid "failed to finalize '%s'"
-msgstr "无法完成 '%s'"
+msgid ""
+"The <src> part of the refspec is a blob object.\n"
+"Did you mean to tag a new blob by pushing to\n"
+"'%s:refs/tags/%s'?"
+msgstr ""
+"引用表达式的 <src> 是一个数据对象。您是想为这个数据对象创建标签而向\n"
+"'%s:refs/tags/%s' 推送么?"
 
-#: sequencer.c:485
+#: remote.c:1174
 #, c-format
-msgid "your local changes would be overwritten by %s."
-msgstr "您的本地修改将被%s覆盖。"
-
-#: sequencer.c:489
-msgid "commit your changes or stash them to proceed."
-msgstr "提交您的修改或贮藏后再继续。"
+msgid "%s cannot be resolved to branch"
+msgstr "%s 无法被解析为分支"
 
-#: sequencer.c:521
+#: remote.c:1185
 #, c-format
-msgid "%s: fast-forward"
-msgstr "%s:快进"
+msgid "unable to delete '%s': remote ref does not exist"
+msgstr "无法删除 '%s':远程引用不存在"
 
-#: sequencer.c:560 builtin/tag.c:566
+#: remote.c:1197
 #, c-format
-msgid "Invalid cleanup mode %s"
-msgstr "无效的清理模式 %s"
+msgid "dst refspec %s matches more than one"
+msgstr "目标引用表达式 %s 匹配超过一个"
 
-#. TRANSLATORS: %s will be "revert", "cherry-pick" or
-#. "rebase".
-#.
-#: sequencer.c:670
+#: remote.c:1204
 #, c-format
-msgid "%s: Unable to write new index file"
-msgstr "%s:无法写入新索引文件"
-
-#: sequencer.c:687
-msgid "unable to update cache tree"
-msgstr "不能更新缓存树"
+msgid "dst ref %s receives from more than one src"
+msgstr "目标引用 %s 接收超过一个源"
 
-#: sequencer.c:701
-msgid "could not resolve HEAD commit"
-msgstr "不能解析 HEAD 提交"
+#: remote.c:1724 remote.c:1825
+msgid "HEAD does not point to a branch"
+msgstr "HEAD 没有指向一个分支"
 
-#: sequencer.c:781
+#: remote.c:1733
 #, c-format
-msgid "no key present in '%.*s'"
-msgstr "在 '%.*s' 中没有 key"
+msgid "no such branch: '%s'"
+msgstr "没有此分支:'%s'"
 
-#: sequencer.c:792
+#: remote.c:1736
 #, c-format
-msgid "unable to dequote value of '%s'"
-msgstr "无法为 '%s' 的值去引号"
+msgid "no upstream configured for branch '%s'"
+msgstr "尚未给分支 '%s' 设置上游"
 
-#: sequencer.c:829 wrapper.c:201 wrapper.c:371 builtin/am.c:710
-#: builtin/am.c:802 builtin/merge.c:1135 builtin/rebase.c:908
+#: remote.c:1742
 #, c-format
-msgid "could not open '%s' for reading"
-msgstr "无法打开 '%s' 进行读取"
-
-#: sequencer.c:839
-msgid "'GIT_AUTHOR_NAME' already given"
-msgstr "已经给出 'GIT_AUTHOR_NAME'"
-
-#: sequencer.c:844
-msgid "'GIT_AUTHOR_EMAIL' already given"
-msgstr "已经给出 'GIT_AUTHOR_EMAIL'"
-
-#: sequencer.c:849
-msgid "'GIT_AUTHOR_DATE' already given"
-msgstr "已经给出 'GIT_AUTHOR_DATE'"
+msgid "upstream branch '%s' not stored as a remote-tracking branch"
+msgstr "上游分支 '%s' 没有存储为一个远程跟踪分支"
 
-#: sequencer.c:853
+#: remote.c:1757
 #, c-format
-msgid "unknown variable '%s'"
-msgstr "未知变量 '%s'"
-
-#: sequencer.c:858
-msgid "missing 'GIT_AUTHOR_NAME'"
-msgstr "缺少 'GIT_AUTHOR_NAME'"
-
-#: sequencer.c:860
-msgid "missing 'GIT_AUTHOR_EMAIL'"
-msgstr "缺少 'GIT_AUTHOR_EMAIL'"
+msgid "push destination '%s' on remote '%s' has no local tracking branch"
+msgstr "推送目标 '%s' 至远程 '%s' 没有本地跟踪分支"
 
-#: sequencer.c:862
-msgid "missing 'GIT_AUTHOR_DATE'"
-msgstr "缺少 'GIT_AUTHOR_DATE'"
+#: remote.c:1769
+#, c-format
+msgid "branch '%s' has no remote for pushing"
+msgstr "分支 '%s' 没有设置要推送的远程服务器"
 
-#: sequencer.c:927
+#: remote.c:1779
 #, c-format
-msgid ""
-"you have staged changes in your working tree\n"
-"If these changes are meant to be squashed into the previous commit, run:\n"
-"\n"
-"  git commit --amend %s\n"
-"\n"
-"If they are meant to go into a new commit, run:\n"
-"\n"
-"  git commit %s\n"
-"\n"
-"In both cases, once you're done, continue with:\n"
-"\n"
-"  git rebase --continue\n"
-msgstr ""
-"您的工作区中存在已暂存的修改\n"
-"如果这些修改需要被并入前一个提交,执行:\n"
-"\n"
-"  git commit --amend %s\n"
-"\n"
-"如果这些修改要形成一个新提交,执行:\n"
-"\n"
-"  git commit %s\n"
-"\n"
-"无论哪种情况,当您完成提交,继续执行:\n"
-"\n"
-"  git rebase --continue\n"
+msgid "push refspecs for '%s' do not include '%s'"
+msgstr "向 '%s' 推送引用规格未包含 '%s'"
 
-#: sequencer.c:1208
-msgid "'prepare-commit-msg' hook failed"
-msgstr "'prepare-commit-msg' 钩子失败"
+#: remote.c:1792
+msgid "push has no destination (push.default is 'nothing')"
+msgstr "推送无目标(push.default 是 'nothing')"
 
-#: sequencer.c:1214
-msgid ""
-"Your name and email address were configured automatically based\n"
-"on your username and hostname. Please check that they are accurate.\n"
-"You can suppress this message by setting them explicitly. Run the\n"
-"following command and follow the instructions in your editor to edit\n"
-"your configuration file:\n"
-"\n"
-"    git config --global --edit\n"
-"\n"
-"After doing this, you may fix the identity used for this commit with:\n"
-"\n"
-"    git commit --amend --reset-author\n"
-msgstr ""
-"您的姓名和邮件地址基于登录名和主机名进行了自动设置。请检查它们正确\n"
-"与否。您可以对其进行设置以免再出现本提示信息。运行如下命令在编辑器\n"
-"中编辑您的配置文件:\n"
-"\n"
-"    git config --global --edit\n"
-"\n"
-"设置完毕后,您可以用下面的命令来修正本次提交所使用的用户身份:\n"
-"\n"
-"    git commit --amend --reset-author\n"
+#: remote.c:1814
+msgid "cannot resolve 'simple' push to a single destination"
+msgstr "无法解析 'simple' 推送至一个单独的目标"
 
-#: sequencer.c:1227
-msgid ""
-"Your name and email address were configured automatically based\n"
-"on your username and hostname. Please check that they are accurate.\n"
-"You can suppress this message by setting them explicitly:\n"
-"\n"
-"    git config --global user.name \"Your Name\"\n"
-"    git config --global user.email you@example.com\n"
-"\n"
-"After doing this, you may fix the identity used for this commit with:\n"
-"\n"
-"    git commit --amend --reset-author\n"
-msgstr ""
-"您的姓名和邮件地址基于登录名和主机名进行了自动设置。请检查它们正确\n"
-"与否。您可以对其进行设置以免再出现本提示信息:\n"
-"\n"
-"    git config --global user.name \"Your Name\"\n"
-"    git config --global user.email you@example.com\n"
-"\n"
-"设置完毕后,您可以用下面的命令来修正本次提交所使用的用户身份:\n"
-"\n"
-"    git commit --amend --reset-author\n"
+#: remote.c:1943
+#, c-format
+msgid "couldn't find remote ref %s"
+msgstr "无法找到远程引用 %s"
 
-#: sequencer.c:1269
-msgid "couldn't look up newly created commit"
-msgstr "无法找到新创建的提交"
+#: remote.c:1956
+#, c-format
+msgid "* Ignoring funny ref '%s' locally"
+msgstr "* 在本地忽略可笑的引用 '%s'"
 
-#: sequencer.c:1271
-msgid "could not parse newly created commit"
-msgstr "不能解析新创建的提交"
+#: remote.c:2119
+#, c-format
+msgid "Your branch is based on '%s', but the upstream is gone.\n"
+msgstr "您的分支基于 '%s',但此上游分支已经不存在。\n"
 
-#: sequencer.c:1317
-msgid "unable to resolve HEAD after creating commit"
-msgstr "创建提交后,不能解析 HEAD"
+#: remote.c:2123
+msgid "  (use \"git branch --unset-upstream\" to fixup)\n"
+msgstr "  (使用 \"git branch --unset-upstream\" 来修复)\n"
 
-#: sequencer.c:1319
-msgid "detached HEAD"
-msgstr "分离头指针"
+#: remote.c:2126
+#, c-format
+msgid "Your branch is up to date with '%s'.\n"
+msgstr "您的分支与上游分支 '%s' 一致。\n"
 
-#  译者:中文字符串拼接,可删除前导空格
-#: sequencer.c:1323
-msgid " (root-commit)"
-msgstr "(根提交)"
+#: remote.c:2130
+#, c-format
+msgid "Your branch and '%s' refer to different commits.\n"
+msgstr "您的分支和 '%s' 指向不同的提交。\n"
 
-#: sequencer.c:1344
-msgid "could not parse HEAD"
-msgstr "不能解析 HEAD"
+#: remote.c:2133
+#, c-format
+msgid "  (use \"%s\" for details)\n"
+msgstr "  (使用 \"%s\" 查看详情)\n"
 
-#: sequencer.c:1346
+#: remote.c:2137
 #, c-format
-msgid "HEAD %s is not a commit!"
-msgstr "HEAD %s 不是一个提交!"
+msgid "Your branch is ahead of '%s' by %d commit.\n"
+msgid_plural "Your branch is ahead of '%s' by %d commits.\n"
+msgstr[0] "您的分支领先 '%s' 共 %d 个提交。\n"
+msgstr[1] "您的分支领先 '%s' 共 %d 个提交。\n"
 
-#: sequencer.c:1350 sequencer.c:1425 builtin/commit.c:1577
-msgid "could not parse HEAD commit"
-msgstr "不能解析 HEAD 提交"
+#: remote.c:2143
+msgid "  (use \"git push\" to publish your local commits)\n"
+msgstr "  (使用 \"git push\" 来发布您的本地提交)\n"
 
-#: sequencer.c:1403 sequencer.c:2100
-msgid "unable to parse commit author"
-msgstr "不能解析提交作者"
+#: remote.c:2146
+#, c-format
+msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
+msgid_plural ""
+"Your branch is behind '%s' by %d commits, and can be fast-forwarded.\n"
+msgstr[0] "您的分支落后 '%s' 共 %d 个提交,并且可以快进。\n"
+msgstr[1] "您的分支落后 '%s' 共 %d 个提交,并且可以快进。\n"
 
-#: sequencer.c:1414 builtin/am.c:1566 builtin/merge.c:701
-msgid "git write-tree failed to write a tree"
-msgstr "git write-tree 无法写入树对象"
+#  译者:注意保持前导空格
+#: remote.c:2154
+msgid "  (use \"git pull\" to update your local branch)\n"
+msgstr "  (使用 \"git pull\" 来更新您的本地分支)\n"
 
-#: sequencer.c:1447 sequencer.c:1565
+#: remote.c:2157
 #, c-format
-msgid "unable to read commit message from '%s'"
-msgstr "不能从 '%s' 读取提交说明"
+msgid ""
+"Your branch and '%s' have diverged,\n"
+"and have %d and %d different commit each, respectively.\n"
+msgid_plural ""
+"Your branch and '%s' have diverged,\n"
+"and have %d and %d different commits each, respectively.\n"
+msgstr[0] ""
+"您的分支和 '%s' 出现了偏离,\n"
+"并且分别有 %d 和 %d 处不同的提交。\n"
+msgstr[1] ""
+"您的分支和 '%s' 出现了偏离,\n"
+"并且分别有 %d 和 %d 处不同的提交。\n"
+
+#  译者:注意保持前导空格
+#: remote.c:2167
+msgid "  (use \"git pull\" to merge the remote branch into yours)\n"
+msgstr "  (使用 \"git pull\" 来合并远程分支)\n"
 
-#: sequencer.c:1476 sequencer.c:1508
+#: remote.c:2359
 #, c-format
-msgid "invalid author identity '%s'"
-msgstr "æ\97 æ\95\88ç\9a\84ä½\9cè\80\85身份 '%s'"
+msgid "cannot parse expected object name '%s'"
+msgstr "æ\97 æ³\95解æ\9e\90æ\9c\9fæ\9c\9bç\9a\84对象å\90\8d '%s'"
 
-#: sequencer.c:1482
-msgid "corrupt author: missing date information"
-msgstr "损坏的作者:缺失日期信息"
+#: replace-object.c:21
+#, c-format
+msgid "bad replace ref name: %s"
+msgstr "错误的替换引用名称:%s"
 
-#: sequencer.c:1521 builtin/am.c:1593 builtin/commit.c:1678 builtin/merge.c:904
-#: builtin/merge.c:929 t/helper/test-fast-rebase.c:78
-msgid "failed to write commit object"
-msgstr "写提交对象失败"
+#: replace-object.c:30
+#, c-format
+msgid "duplicate replace ref: %s"
+msgstr "重复的替换引用:%s"
 
-#: sequencer.c:1548 sequencer.c:4283 t/helper/test-fast-rebase.c:198
+#: replace-object.c:82
 #, c-format
-msgid "could not update %s"
-msgstr "不能更新 %s"
+msgid "replace depth too high for object %s"
+msgstr "对象 %s 的替换层级太深"
 
-#: sequencer.c:1597
+#: rerere.c:201 rerere.c:210 rerere.c:213
+msgid "corrupt MERGE_RR"
+msgstr "损坏的 MERGE_RR"
+
+#: rerere.c:248 rerere.c:253
+msgid "unable to write rerere record"
+msgstr "无法写入 rerere 记录"
+
+#: rerere.c:479
 #, c-format
-msgid "could not parse commit %s"
-msgstr "不能解析提交 %s"
+msgid "there were errors while writing '%s' (%s)"
+msgstr "写入 '%s' (%s) 时出错"
 
-#: sequencer.c:1602
+#: rerere.c:482
 #, c-format
-msgid "could not parse parent commit %s"
-msgstr "不能解析父提交 %s"
+msgid "failed to flush '%s'"
+msgstr "刷新 '%s' 失败"
 
-#: sequencer.c:1685 sequencer.c:1796
+#: rerere.c:487 rerere.c:1023
 #, c-format
-msgid "unknown command: %d"
-msgstr "未知命令:%d"
+msgid "could not parse conflict hunks in '%s'"
+msgstr "不能解析 '%s' 中的冲突块"
 
-#: sequencer.c:1743 sequencer.c:1768
+#: rerere.c:668
 #, c-format
-msgid "This is a combination of %d commits."
-msgstr "这是一个 %d 个提交的组合。"
+msgid "failed utime() on '%s'"
+msgstr "在 '%s' 上调用 utime() 失败"
 
-#: sequencer.c:1753
-msgid "need a HEAD to fixup"
-msgstr "需要一个 HEAD 来修复"
+#: rerere.c:678
+#, c-format
+msgid "writing '%s' failed"
+msgstr "写入 '%s' 失败"
 
-#: sequencer.c:1755 sequencer.c:3372
-msgid "could not read HEAD"
-msgstr "不能读取 HEAD"
+#: rerere.c:698
+#, c-format
+msgid "Staged '%s' using previous resolution."
+msgstr "使用之前的解决方案暂存 '%s'。"
 
-#: sequencer.c:1757
-msgid "could not read HEAD's commit message"
-msgstr "不能读取 HEAD 的提交说明"
+#: rerere.c:737
+#, c-format
+msgid "Recorded resolution for '%s'."
+msgstr "已记录 '%s' 的解决方案。"
 
-#: sequencer.c:1763
+#: rerere.c:772
 #, c-format
-msgid "cannot write '%s'"
-msgstr "ä¸\8dè\83½å\86\99 '%s'"
+msgid "Resolved '%s' using previous resolution."
+msgstr "使ç\94¨ä¹\8bå\89\8dç\9a\84解å\86³æ\96¹æ¡\88解å\86³ '%s'ã\80\82"
 
-#: sequencer.c:1770 git-rebase--preserve-merges.sh:486
-msgid "This is the 1st commit message:"
-msgstr "这是第一个提交说明:"
+#: rerere.c:787
+#, c-format
+msgid "cannot unlink stray '%s'"
+msgstr "不能删除 stray '%s'"
 
-#: sequencer.c:1778
+#: rerere.c:791
 #, c-format
-msgid "could not read commit message of %s"
-msgstr "ä¸\8dè\83½è¯»å\8f\96 %s ç\9a\84æ\8f\90交说æ\98\8e"
+msgid "Recorded preimage for '%s'"
+msgstr "为 '%s' è®°å½\95 preimage"
 
-#: sequencer.c:1785
+#: rerere.c:865 submodule.c:2088 builtin/log.c:1991
+#: builtin/submodule--helper.c:1878 builtin/submodule--helper.c:1890
 #, c-format
-msgid "This is the commit message #%d:"
-msgstr "这是提交说明 #%d:"
+msgid "could not create directory '%s'"
+msgstr "不能创建目录 '%s'"
 
-#: sequencer.c:1791
+#: rerere.c:1041
 #, c-format
-msgid "The commit message #%d will be skipped:"
-msgstr "æ\8f\90交说æ\98\8e #%d å°\86被跳è¿\87ï¼\9a"
+msgid "failed to update conflicted state in '%s'"
+msgstr "æ\9b´æ\96° '%s' ä¸­ç\9a\84å\86²çª\81ç\8a¶æ\80\81失败"
 
-#: sequencer.c:1879
-msgid "your index file is unmerged."
-msgstr "您的索引文件未完成合并。"
+#: rerere.c:1052 rerere.c:1059
+#, c-format
+msgid "no remembered resolution for '%s'"
+msgstr "没有为 '%s' 记忆的解决方案"
 
-#: sequencer.c:1886
-msgid "cannot fixup root commit"
-msgstr "不能修复根提交"
+#: rerere.c:1061
+#, c-format
+msgid "cannot unlink '%s'"
+msgstr "不能删除 '%s'"
 
-#: sequencer.c:1905
+#: rerere.c:1071
 #, c-format
-msgid "commit %s is a merge but no -m option was given."
-msgstr "提交 %s 是一个合并提交但未提供 -m 选项。"
+msgid "Updated preimage for '%s'"
+msgstr "已为 '%s' 更新 preimage"
 
-#: sequencer.c:1913 sequencer.c:1921
+#: rerere.c:1080
 #, c-format
-msgid "commit %s does not have parent %d"
-msgstr "提交 %s 没有第 %d 个父提交"
+msgid "Forgot resolution for '%s'\n"
+msgstr "忘记 '%s' 的解决方案\n"
+
+#: rerere.c:1191
+msgid "unable to open rr-cache directory"
+msgstr "不能打开 rr-cache 目录"
 
-#: sequencer.c:1927
+#: reset.c:42
+msgid "could not determine HEAD revision"
+msgstr "不能确定 HEAD 版本"
+
+#: reset.c:70 reset.c:76 sequencer.c:3468
 #, c-format
-msgid "cannot get commit message for %s"
-msgstr "不能得到 %s 的提交说明"
+msgid "failed to find tree of %s"
+msgstr "无法找到 %s 指向的树。"
 
-#. TRANSLATORS: The first %s will be a "todo" command like
-#. "revert" or "pick", the second %s a SHA1.
-#: sequencer.c:1946
+#: revision.c:2338
+msgid "--unpacked=<packfile> no longer supported"
+msgstr "不再支持 --unpacked=<packfile>"
+
+#: revision.c:2668
+msgid "your current branch appears to be broken"
+msgstr "您的当前分支好像被损坏"
+
+#: revision.c:2671
 #, c-format
-msgid "%s: cannot parse parent commit %s"
-msgstr "%s:不能解析父提交 %s"
+msgid "your current branch '%s' does not have any commits yet"
+msgstr "您的当前分支 '%s' 尚无任何提交"
+
+#: revision.c:2877
+msgid "-L does not yet support diff formats besides -p and -s"
+msgstr "-L 尚不支持 -p 和 -s 之外的差异格式"
+
+#: run-command.c:767
+msgid "open /dev/null failed"
+msgstr "不能打开 /dev/null"
 
-#: sequencer.c:2011
+#: run-command.c:1274
 #, c-format
-msgid "could not rename '%s' to '%s'"
-msgstr "ä¸\8dè\83½å°\86 '%s' é\87\8då\91½å\90\8d为 '%s'"
+msgid "cannot create async thread: %s"
+msgstr "ä¸\8dè\83½å\88\9b建 async çº¿ç¨\8bï¼\9a%s"
 
-#: sequencer.c:2071
+#: run-command.c:1338
 #, c-format
-msgid "could not revert %s... %s"
-msgstr "不能还原 %s... %s"
+msgid ""
+"The '%s' hook was ignored because it's not set as executable.\n"
+"You can disable this warning with `git config advice.ignoredHook false`."
+msgstr ""
+"因为没有将钩子 '%s' 设置为可执行,钩子被忽略。您可以通过\n"
+"配置 `git config advice.ignoredHook false` 来关闭这条警告。"
+
+#: send-pack.c:146
+msgid "unexpected flush packet while reading remote unpack status"
+msgstr "读取远程解包状态时收到意外的 flush 包"
 
-#: sequencer.c:2072
+#: send-pack.c:148
 #, c-format
-msgid "could not apply %s... %s"
-msgstr "不能应用 %s... %s"
+msgid "unable to parse remote unpack status: %s"
+msgstr "不能解析远程解包状态:%s"
+
+#: send-pack.c:150
+#, c-format
+msgid "remote unpack failed: %s"
+msgstr "远程解包失败:%s"
+
+#: send-pack.c:374
+msgid "failed to sign the push certificate"
+msgstr "为推送证书签名失败"
 
-#: sequencer.c:2092
-#, c-format
-msgid "dropping %s %s -- patch contents already upstream\n"
-msgstr "丢弃 %s %s -- 补丁内容已在上游\n"
+#: send-pack.c:467
+msgid "the receiving end does not support this repository's hash algorithm"
+msgstr "接收端不支持这个仓库的哈希算法"
 
-#: sequencer.c:2150
-#, c-format
-msgid "git %s: failed to read the index"
-msgstr "git %s:无法读取索引"
+#: send-pack.c:476
+msgid "the receiving end does not support --signed push"
+msgstr "接收端不支持签名推送"
 
-#: sequencer.c:2157
-#, c-format
-msgid "git %s: failed to refresh the index"
-msgstr "git %s:无法刷新索引"
+#: send-pack.c:478
+msgid ""
+"not sending a push certificate since the receiving end does not support --"
+"signed push"
+msgstr "未发送推送证书,因为接收端不支持签名推送"
 
-#: sequencer.c:2234
-#, c-format
-msgid "%s does not accept arguments: '%s'"
-msgstr "%s 不接受参数:'%s'"
+#: send-pack.c:490
+msgid "the receiving end does not support --atomic push"
+msgstr "接收端不支持原子推送"
 
-#: sequencer.c:2243
-#, c-format
-msgid "missing arguments for %s"
-msgstr "缺少 %s 的参数"
+#: send-pack.c:495
+msgid "the receiving end does not support push options"
+msgstr "接收端不支持推送选项"
 
-#: sequencer.c:2274
+#: sequencer.c:195
 #, c-format
-msgid "could not parse '%s'"
-msgstr "æ\97 æ³\95解æ\9e\90 '%s'"
+msgid "invalid commit message cleanup mode '%s'"
+msgstr "æ\97 æ\95\88ç\9a\84æ\8f\90交信æ\81¯æ¸\85ç\90\86模å¼\8f '%s'"
 
-#: sequencer.c:2335
+#: sequencer.c:323
 #, c-format
-msgid "invalid line %d: %.*s"
-msgstr "æ\97 æ\95\88è¡\8c %dï¼\9a%.*s"
+msgid "could not delete '%s'"
+msgstr "æ\97 æ³\95å\88 é\99¤ '%s'"
 
-#: sequencer.c:2346
+#: sequencer.c:343 builtin/rebase.c:757 builtin/rebase.c:1602 builtin/rm.c:385
 #, c-format
-msgid "cannot '%s' without a previous commit"
-msgstr "没æ\9c\89ç\88¶æ\8f\90交ç\9a\84æ\83\85å\86µä¸\8bä¸\8dè\83½ '%s'"
+msgid "could not remove '%s'"
+msgstr "æ\97 æ³\95å\88 é\99¤ '%s'"
 
-#: sequencer.c:2432
-msgid "cancelling a cherry picking in progress"
-msgstr "正在取消一个进行中的拣选"
+#: sequencer.c:353
+msgid "revert"
+msgstr "还原"
 
-#: sequencer.c:2441
-msgid "cancelling a revert in progress"
-msgstr "æ­£å\9c¨å\8f\96æ¶\88ä¸\80个è¿\9bè¡\8c中ç\9a\84è¿\98å\8e\9f"
+#: sequencer.c:355
+msgid "cherry-pick"
+msgstr "æ\8b£é\80\89"
 
-#: sequencer.c:2485
-msgid "please fix this using 'git rebase --edit-todo'."
-msgstr "请用 'git rebase --edit-todo' 来修改。"
+#: sequencer.c:357
+msgid "rebase"
+msgstr "变基"
 
-#: sequencer.c:2487
+#: sequencer.c:359
 #, c-format
-msgid "unusable instruction sheet: '%s'"
-msgstr "不可用的指令清单:'%s'"
-
-#: sequencer.c:2492
-msgid "no commits parsed."
-msgstr "没有解析提交。"
+msgid "unknown action: %d"
+msgstr "未知动作:%d"
 
-#: sequencer.c:2503
-msgid "cannot cherry-pick during a revert."
-msgstr "不能在回退中执行拣选。"
+#: sequencer.c:418
+msgid ""
+"after resolving the conflicts, mark the corrected paths\n"
+"with 'git add <paths>' or 'git rm <paths>'"
+msgstr ""
+"冲突解决完毕后,用 'git add <路径>' 或 'git rm <路径>'\n"
+"命令标记修正后的文件"
 
-#: sequencer.c:2505
-msgid "cannot revert during a cherry-pick."
-msgstr "不能在拣选中执行回退。"
+#: sequencer.c:421
+msgid ""
+"after resolving the conflicts, mark the corrected paths\n"
+"with 'git add <paths>' or 'git rm <paths>'\n"
+"and commit the result with 'git commit'"
+msgstr ""
+"冲突解决完毕后,用 'git add <路径>' 或 'git rm <路径>'\n"
+"对修正后的文件做标记,然后用 'git commit' 提交"
 
-#: sequencer.c:2583
+#: sequencer.c:434 sequencer.c:3070
 #, c-format
-msgid "invalid value for %s: %s"
-msgstr "%s 的值无效:%s"
-
-#: sequencer.c:2690
-msgid "unusable squash-onto"
-msgstr "不可用的 squash-onto"
+msgid "could not lock '%s'"
+msgstr "不能锁定 '%s'"
 
-#: sequencer.c:2710
+#: sequencer.c:436 sequencer.c:2869 sequencer.c:3074 sequencer.c:3088
+#: sequencer.c:3345 sequencer.c:5334 strbuf.c:1168 wrapper.c:631
 #, c-format
-msgid "malformed options sheet: '%s'"
-msgstr "格式错误的选项清单:'%s'"
+msgid "could not write to '%s'"
+msgstr "不能写入 '%s'"
 
-#: sequencer.c:2803 sequencer.c:4636
-msgid "empty commit set passed"
-msgstr "提供了空的提交集"
+#: sequencer.c:441
+#, c-format
+msgid "could not write eol to '%s'"
+msgstr "不能将换行符写入 '%s'"
 
-#: sequencer.c:2820
-msgid "revert is already in progress"
-msgstr "一个还原操作已在进行"
+#: sequencer.c:446 sequencer.c:2874 sequencer.c:3076 sequencer.c:3090
+#: sequencer.c:3353
+#, c-format
+msgid "failed to finalize '%s'"
+msgstr "无法完成 '%s'"
 
-#: sequencer.c:2822
+#: sequencer.c:485
 #, c-format
-msgid "try \"git revert (--continue | %s--abort | --quit)\""
-msgstr "尝试 \"git revert (--continue | %s--abort | --quit)\""
+msgid "your local changes would be overwritten by %s."
+msgstr "您的本地修改将被%s覆盖。"
 
-#: sequencer.c:2825
-msgid "cherry-pick is already in progress"
-msgstr "æ\8b£é\80\89æ\93\8dä½\9cå·²å\9c¨è¿\9bè¡\8c"
+#: sequencer.c:489
+msgid "commit your changes or stash them to proceed."
+msgstr "æ\8f\90交æ\82¨ç\9a\84ä¿®æ\94¹æ\88\96è´®è\97\8få\90\8eå\86\8d继续ã\80\82"
 
-#: sequencer.c:2827
+#: sequencer.c:521
 #, c-format
-msgid "try \"git cherry-pick (--continue | %s--abort | --quit)\""
-msgstr "尝试 \"git cherry-pick (--continue | %s--abort | --quit)\""
+msgid "%s: fast-forward"
+msgstr "%s:快进"
 
-#: sequencer.c:2841
+#: sequencer.c:560 builtin/tag.c:598
 #, c-format
-msgid "could not create sequencer directory '%s'"
-msgstr "不能创建序列目录 '%s'"
-
-#: sequencer.c:2856
-msgid "could not lock HEAD"
-msgstr "不能锁定 HEAD"
+msgid "Invalid cleanup mode %s"
+msgstr "无效的清理模式 %s"
 
-#: sequencer.c:2916 sequencer.c:4371
-msgid "no cherry-pick or revert in progress"
-msgstr "拣选或还原操作并未进行"
+#. TRANSLATORS: %s will be "revert", "cherry-pick" or
+#. "rebase".
+#.
+#: sequencer.c:670
+#, c-format
+msgid "%s: Unable to write new index file"
+msgstr "%s:无法写入新索引文件"
 
-#: sequencer.c:2918 sequencer.c:2929
-msgid "cannot resolve HEAD"
-msgstr "不能解析 HEAD"
+#: sequencer.c:684
+msgid "unable to update cache tree"
+msgstr "不能更新缓存树"
 
-#: sequencer.c:2920 sequencer.c:2964
-msgid "cannot abort from a branch yet to be born"
-msgstr "不能从尚未建立的分支终止"
+#: sequencer.c:698
+msgid "could not resolve HEAD commit"
+msgstr "不能解析 HEAD 提交"
 
-#: sequencer.c:2950 builtin/grep.c:756
+#: sequencer.c:778
 #, c-format
-msgid "cannot open '%s'"
-msgstr "不能打开 '%s'"
+msgid "no key present in '%.*s'"
+msgstr "在 '%.*s' 中没有 key"
 
-#: sequencer.c:2952
+#: sequencer.c:789
 #, c-format
-msgid "cannot read '%s': %s"
-msgstr "不能读取 '%s':%s"
-
-#: sequencer.c:2953
-msgid "unexpected end of file"
-msgstr "意外的文件结束"
+msgid "unable to dequote value of '%s'"
+msgstr "无法为 '%s' 的值去引号"
 
-#: sequencer.c:2959
+#: sequencer.c:826 wrapper.c:201 wrapper.c:371 builtin/am.c:710
+#: builtin/am.c:802 builtin/merge.c:1136 builtin/rebase.c:910
 #, c-format
-msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
-msgstr "保存拣选提交前的 HEAD 文件 '%s' 损坏"
-
-#: sequencer.c:2970
-msgid "You seem to have moved HEAD. Not rewinding, check your HEAD!"
-msgstr "您好像移动了 HEAD。未能回退,检查您的 HEAD!"
-
-#: sequencer.c:3011
-msgid "no revert in progress"
-msgstr "没有正在进行的还原"
+msgid "could not open '%s' for reading"
+msgstr "无法打开 '%s' 进行读取"
 
-#: sequencer.c:3020
-msgid "no cherry-pick in progress"
-msgstr "没有正在进行的拣选"
+#: sequencer.c:836
+msgid "'GIT_AUTHOR_NAME' already given"
+msgstr "已经给出 'GIT_AUTHOR_NAME'"
 
-#: sequencer.c:3030
-msgid "failed to skip the commit"
-msgstr "无法跳过这个提交"
+#: sequencer.c:841
+msgid "'GIT_AUTHOR_EMAIL' already given"
+msgstr "已经给出 'GIT_AUTHOR_EMAIL'"
 
-#: sequencer.c:3037
-msgid "there is nothing to skip"
-msgstr "没有要跳过的"
+#: sequencer.c:846
+msgid "'GIT_AUTHOR_DATE' already given"
+msgstr "已经给出 'GIT_AUTHOR_DATE'"
 
-#: sequencer.c:3040
+#: sequencer.c:850
 #, c-format
-msgid ""
-"have you committed already?\n"
-"try \"git %s --continue\""
-msgstr ""
-"您已经提交了么?\n"
-"试试 \"git %s --continue\""
+msgid "unknown variable '%s'"
+msgstr "未知变量 '%s'"
 
-#: sequencer.c:3202 sequencer.c:4263
-msgid "cannot read HEAD"
-msgstr "不能读取 HEAD"
+#: sequencer.c:855
+msgid "missing 'GIT_AUTHOR_NAME'"
+msgstr "缺少 'GIT_AUTHOR_NAME'"
 
-#: sequencer.c:3219
-#, c-format
-msgid "unable to copy '%s' to '%s'"
-msgstr "无法拷贝 '%s' 至 '%s'"
+#: sequencer.c:857
+msgid "missing 'GIT_AUTHOR_EMAIL'"
+msgstr "缺少 'GIT_AUTHOR_EMAIL'"
 
-#: sequencer.c:3227
+#: sequencer.c:859
+msgid "missing 'GIT_AUTHOR_DATE'"
+msgstr "缺少 'GIT_AUTHOR_DATE'"
+
+#: sequencer.c:924
 #, c-format
 msgid ""
-"You can amend the commit now, with\n"
+"you have staged changes in your working tree\n"
+"If these changes are meant to be squashed into the previous commit, run:\n"
 "\n"
 "  git commit --amend %s\n"
 "\n"
-"Once you are satisfied with your changes, run\n"
+"If they are meant to go into a new commit, run:\n"
+"\n"
+"  git commit %s\n"
+"\n"
+"In both cases, once you're done, continue with:\n"
 "\n"
 "  git rebase --continue\n"
 msgstr ""
-"您现在可以修补这个提交,使用\n"
+"您的工作区中存在已暂存的修改\n"
+"如果这些修改需要被并入前一个提交,执行:\n"
 "\n"
 "  git commit --amend %s\n"
 "\n"
-"当您对变更感到满意,执行\n"
+"如果这些修改要形成一个新提交,执行:\n"
+"\n"
+"  git commit %s\n"
+"\n"
+"无论哪种情况,当您完成提交,继续执行:\n"
 "\n"
 "  git rebase --continue\n"
 
-#: sequencer.c:3237
-#, c-format
-msgid "Could not apply %s... %.*s"
-msgstr "不能应用 %s... %.*s"
-
-#: sequencer.c:3244
-#, c-format
-msgid "Could not merge %.*s"
-msgstr "不能合并 %.*s"
-
-#: sequencer.c:3258 sequencer.c:3262 builtin/difftool.c:640
-#, c-format
-msgid "could not copy '%s' to '%s'"
-msgstr "不能拷贝 '%s' 至 '%s'"
-
-#: sequencer.c:3274
-#, c-format
-msgid "Executing: %s\n"
-msgstr "正在执行:%s\n"
+#: sequencer.c:1211
+msgid "'prepare-commit-msg' hook failed"
+msgstr "'prepare-commit-msg' 钩子失败"
 
-#  译者:注意保持前导空格
-#: sequencer.c:3289
-#, c-format
+#: sequencer.c:1217
 msgid ""
-"execution failed: %s\n"
-"%sYou can fix the problem, and then run\n"
+"Your name and email address were configured automatically based\n"
+"on your username and hostname. Please check that they are accurate.\n"
+"You can suppress this message by setting them explicitly. Run the\n"
+"following command and follow the instructions in your editor to edit\n"
+"your configuration file:\n"
 "\n"
-"  git rebase --continue\n"
+"    git config --global --edit\n"
+"\n"
+"After doing this, you may fix the identity used for this commit with:\n"
+"\n"
+"    git commit --amend --reset-author\n"
+msgstr ""
+"您的姓名和邮件地址基于登录名和主机名进行了自动设置。请检查它们正确\n"
+"与否。您可以对其进行设置以免再出现本提示信息。运行如下命令在编辑器\n"
+"中编辑您的配置文件:\n"
 "\n"
-msgstr ""
-"执行失败:%s\n"
-"%s您可以改正该问题,然后运行\n"
+"    git config --global --edit\n"
 "\n"
-"  git rebase --continue\n"
+"设置完毕后,您可以用下面的命令来修正本次提交所使用的用户身份:\n"
 "\n"
+"    git commit --amend --reset-author\n"
 
-#: sequencer.c:3295
-msgid "and made changes to the index and/or the working tree\n"
-msgstr "并且修改索引和/或工作区\n"
-
-#: sequencer.c:3301
-#, c-format
+#: sequencer.c:1230
 msgid ""
-"execution succeeded: %s\n"
-"but left changes to the index and/or the working tree\n"
-"Commit or stash your changes, and then run\n"
+"Your name and email address were configured automatically based\n"
+"on your username and hostname. Please check that they are accurate.\n"
+"You can suppress this message by setting them explicitly:\n"
 "\n"
-"  git rebase --continue\n"
+"    git config --global user.name \"Your Name\"\n"
+"    git config --global user.email you@example.com\n"
+"\n"
+"After doing this, you may fix the identity used for this commit with:\n"
 "\n"
+"    git commit --amend --reset-author\n"
 msgstr ""
-"执行成功:%s\n"
-"但是在索引和/或工作区中存在变更\n"
-"提交或贮藏修改,然后运行\n"
+"您的姓名和邮件地址基于登录名和主机名进行了自动设置。请检查它们正确\n"
+"与否。您可以对其进行设置以免再出现本提示信息:\n"
 "\n"
-"  git rebase --continue\n"
+"    git config --global user.name \"Your Name\"\n"
+"    git config --global user.email you@example.com\n"
 "\n"
+"设置完毕后,您可以用下面的命令来修正本次提交所使用的用户身份:\n"
+"\n"
+"    git commit --amend --reset-author\n"
 
-#: sequencer.c:3362
-#, c-format
-msgid "illegal label name: '%.*s'"
-msgstr "非法的标签名称:'%.*s'"
+#: sequencer.c:1272
+msgid "couldn't look up newly created commit"
+msgstr "无法找到新创建的提交"
 
-#: sequencer.c:3416
-msgid "writing fake root commit"
-msgstr "写伪根提交"
+#: sequencer.c:1274
+msgid "could not parse newly created commit"
+msgstr "不能解析新创建的提交"
 
-#: sequencer.c:3421
-msgid "writing squash-onto"
-msgstr "å\86\99å\85¥ squash-onto"
+#: sequencer.c:1320
+msgid "unable to resolve HEAD after creating commit"
+msgstr "å\88\9b建æ\8f\90交å\90\8eï¼\8cä¸\8dè\83½è§£æ\9e\90 HEAD"
 
-#: sequencer.c:3505
-#, c-format
-msgid "could not resolve '%s'"
-msgstr "无法解析 '%s'"
+#: sequencer.c:1322
+msgid "detached HEAD"
+msgstr "分离头指针"
 
-#: sequencer.c:3538
-msgid "cannot merge without a current revision"
-msgstr "没有当前版本不能合并"
+#  译者:中文字符串拼接,可删除前导空格
+#: sequencer.c:1326
+msgid " (root-commit)"
+msgstr "(根提交)"
 
-#: sequencer.c:3560
-#, c-format
-msgid "unable to parse '%.*s'"
-msgstr "无法解析 '%.*s'"
+#: sequencer.c:1347
+msgid "could not parse HEAD"
+msgstr "不能解析 HEAD"
 
-#: sequencer.c:3569
+#: sequencer.c:1349
 #, c-format
-msgid "nothing to merge: '%.*s'"
-msgstr "无可用合并:'%.*s'"
+msgid "HEAD %s is not a commit!"
+msgstr "HEAD %s 不是一个提交!"
 
-#: sequencer.c:3581
-msgid "octopus merge cannot be executed on top of a [new root]"
-msgstr "章鱼合并不能在一个新的根提交上执行"
+#: sequencer.c:1353 sequencer.c:1431 builtin/commit.c:1577
+msgid "could not parse HEAD commit"
+msgstr "不能解析 HEAD 提交"
+
+#: sequencer.c:1409 sequencer.c:2108
+msgid "unable to parse commit author"
+msgstr "不能解析提交作者"
+
+#: sequencer.c:1420 builtin/am.c:1566 builtin/merge.c:702
+msgid "git write-tree failed to write a tree"
+msgstr "git write-tree 无法写入树对象"
 
-#: sequencer.c:3597
+#: sequencer.c:1453 sequencer.c:1573
 #, c-format
-msgid "could not get commit message of '%s'"
-msgstr "不能获取 '%s' 的提交说明"
+msgid "unable to read commit message from '%s'"
+msgstr "不能从 '%s' 读取提交说明"
 
-#: sequencer.c:3780
+#: sequencer.c:1484 sequencer.c:1516
 #, c-format
-msgid "could not even attempt to merge '%.*s'"
-msgstr "甚至不能尝试合并 '%.*s'"
+msgid "invalid author identity '%s'"
+msgstr "无效的作者身份 '%s'"
 
-#: sequencer.c:3796
-msgid "merge: Unable to write new index file"
-msgstr "合并:无法写入新索引文件"
+#: sequencer.c:1490
+msgid "corrupt author: missing date information"
+msgstr "损坏的作者:缺失日期信息"
 
-#: sequencer.c:3870
-msgid "Cannot autostash"
-msgstr "无法 autostash"
+#: sequencer.c:1529 builtin/am.c:1593 builtin/commit.c:1678 builtin/merge.c:905
+#: builtin/merge.c:930 t/helper/test-fast-rebase.c:78
+msgid "failed to write commit object"
+msgstr "写提交对象失败"
 
-#: sequencer.c:3873
+#: sequencer.c:1556 sequencer.c:4291 t/helper/test-fast-rebase.c:198
 #, c-format
-msgid "Unexpected stash response: '%s'"
-msgstr "意外的 stash 响应:'%s'"
+msgid "could not update %s"
+msgstr "不能更新 %s"
 
-#: sequencer.c:3879
+#: sequencer.c:1605
 #, c-format
-msgid "Could not create directory for '%s'"
-msgstr "不能为 '%s' 创建目录"
+msgid "could not parse commit %s"
+msgstr "不能解析提交 %s"
 
-#: sequencer.c:3882
+#: sequencer.c:1610
 #, c-format
-msgid "Created autostash: %s\n"
-msgstr "创建了 autostash:%s\n"
-
-#: sequencer.c:3886
-msgid "could not reset --hard"
-msgstr "无法 reset --hard"
+msgid "could not parse parent commit %s"
+msgstr "不能解析父提交 %s"
 
-#: sequencer.c:3911
+#: sequencer.c:1693 sequencer.c:1804
 #, c-format
-msgid "Applied autostash.\n"
-msgstr "已应用 autostash。\n"
+msgid "unknown command: %d"
+msgstr "未知命令:%d"
 
-#: sequencer.c:3923
+#: sequencer.c:1751 sequencer.c:1776
 #, c-format
-msgid "cannot store %s"
-msgstr "不能存储 %s"
+msgid "This is a combination of %d commits."
+msgstr "这是一个 %d 个提交的组合。"
+
+#: sequencer.c:1761
+msgid "need a HEAD to fixup"
+msgstr "需要一个 HEAD 来修复"
+
+#: sequencer.c:1763 sequencer.c:3380
+msgid "could not read HEAD"
+msgstr "不能读取 HEAD"
+
+#: sequencer.c:1765
+msgid "could not read HEAD's commit message"
+msgstr "不能读取 HEAD 的提交说明"
 
-#: sequencer.c:3926
+#: sequencer.c:1771
 #, c-format
-msgid ""
-"%s\n"
-"Your changes are safe in the stash.\n"
-"You can run \"git stash pop\" or \"git stash drop\" at any time.\n"
-msgstr ""
-"%s\n"
-"您的修改在贮藏区中很安全。\n"
-"您可以在任何时候运行 \"git stash pop\" 或 \"git stash drop\"。\n"
+msgid "cannot write '%s'"
+msgstr "不能写 '%s'"
 
-#: sequencer.c:3931
-msgid "Applying autostash resulted in conflicts."
-msgstr "应用自动贮藏导致冲突。"
+#: sequencer.c:1778 git-rebase--preserve-merges.sh:486
+msgid "This is the 1st commit message:"
+msgstr "这是第一个提交说明:"
 
-#: sequencer.c:3932
-msgid "Autostash exists; creating a new stash entry."
-msgstr "自动贮藏已经存在;正在创建一个新的贮藏条目。"
+#: sequencer.c:1786
+#, c-format
+msgid "could not read commit message of %s"
+msgstr "不能读取 %s 的提交说明"
 
-#: sequencer.c:4025 git-rebase--preserve-merges.sh:769
-msgid "could not detach HEAD"
-msgstr "不能分离头指针"
+#: sequencer.c:1793
+#, c-format
+msgid "This is the commit message #%d:"
+msgstr "这是提交说明 #%d:"
 
-#: sequencer.c:4040
+#: sequencer.c:1799
 #, c-format
-msgid "Stopped at HEAD\n"
-msgstr "停止在 HEAD\n"
+msgid "The commit message #%d will be skipped:"
+msgstr "提交说明 #%d 将被跳过:"
+
+#: sequencer.c:1887
+msgid "your index file is unmerged."
+msgstr "您的索引文件未完成合并。"
+
+#: sequencer.c:1894
+msgid "cannot fixup root commit"
+msgstr "不能修复根提交"
 
-#: sequencer.c:4042
+#: sequencer.c:1913
 #, c-format
-msgid "Stopped at %s\n"
-msgstr "停止在 %s\n"
+msgid "commit %s is a merge but no -m option was given."
+msgstr "提交 %s 是一个合并提交但未提供 -m 选项。"
 
-#: sequencer.c:4050
+#: sequencer.c:1921 sequencer.c:1929
 #, c-format
-msgid ""
-"Could not execute the todo command\n"
-"\n"
-"    %.*s\n"
-"It has been rescheduled; To edit the command before continuing, please\n"
-"edit the todo list first:\n"
-"\n"
-"    git rebase --edit-todo\n"
-"    git rebase --continue\n"
-msgstr ""
-"无法执行待办命令\n"
-"\n"
-"    %.*s\n"
-"已被重新安排,在继续之前编辑命令,请先编辑待办列表:\n"
-"\n"
-"    git rebase --edit-todo\n"
-"    git rebase --continue\n"
+msgid "commit %s does not have parent %d"
+msgstr "提交 %s 没有第 %d 个父提交"
 
-#: sequencer.c:4096
+#: sequencer.c:1935
 #, c-format
-msgid "Rebasing (%d/%d)%s"
-msgstr "正在变基(%d/%d)%s"
+msgid "cannot get commit message for %s"
+msgstr "不能得到 %s 的提交说明"
 
-#: sequencer.c:4141
+#. TRANSLATORS: The first %s will be a "todo" command like
+#. "revert" or "pick", the second %s a SHA1.
+#: sequencer.c:1954
 #, c-format
-msgid "Stopped at %s...  %.*s\n"
-msgstr "停止在 %s... %.*s\n"
+msgid "%s: cannot parse parent commit %s"
+msgstr "%s:不能解析父提交 %s"
 
-#: sequencer.c:4212
+#: sequencer.c:2019
 #, c-format
-msgid "unknown command %d"
-msgstr "未知命令 %d"
+msgid "could not rename '%s' to '%s'"
+msgstr "不能将 '%s' 重命名为 '%s'"
 
-#: sequencer.c:4271
-msgid "could not read orig-head"
-msgstr "不能读取 orig-head"
+#: sequencer.c:2079
+#, c-format
+msgid "could not revert %s... %s"
+msgstr "不能还原 %s... %s"
 
-#: sequencer.c:4276
-msgid "could not read 'onto'"
-msgstr "不能读取 'onto'"
+#: sequencer.c:2080
+#, c-format
+msgid "could not apply %s... %s"
+msgstr "不能应用 %s... %s"
 
-#: sequencer.c:4290
+#: sequencer.c:2100
 #, c-format
-msgid "could not update HEAD to %s"
-msgstr "ä¸\8dè\83½æ\9b´æ\96° HEAD ä¸º %s"
+msgid "dropping %s %s -- patch contents already upstream\n"
+msgstr "丢å¼\83 %s %s -- è¡¥ä¸\81å\86\85容已å\9c¨ä¸\8a游\n"
 
-#: sequencer.c:4350
+#: sequencer.c:2158
 #, c-format
-msgid "Successfully rebased and updated %s.\n"
-msgstr "成功变基并更新 %s。\n"
+msgid "git %s: failed to read the index"
+msgstr "git %s:无法读取索引"
 
-#: sequencer.c:4383
-msgid "cannot rebase: You have unstaged changes."
-msgstr "不能变基:您有未暂存的变更。"
+#: sequencer.c:2165
+#, c-format
+msgid "git %s: failed to refresh the index"
+msgstr "git %s:无法刷新索引"
 
-#: sequencer.c:4392
-msgid "cannot amend non-existing commit"
-msgstr "不能修补不存在的提交"
+#: sequencer.c:2242
+#, c-format
+msgid "%s does not accept arguments: '%s'"
+msgstr "%s 不接受参数:'%s'"
 
-#: sequencer.c:4394
+#: sequencer.c:2251
 #, c-format
-msgid "invalid file: '%s'"
-msgstr "无效文件:'%s'"
+msgid "missing arguments for %s"
+msgstr "缺少 %s 的参数"
 
-#: sequencer.c:4396
+#: sequencer.c:2282
 #, c-format
-msgid "invalid contents: '%s'"
-msgstr "æ\97 æ\95\88å\86\85容ï¼\9a'%s'"
+msgid "could not parse '%s'"
+msgstr "æ\97 æ³\95解æ\9e\90 '%s'"
 
-#: sequencer.c:4399
-msgid ""
-"\n"
-"You have uncommitted changes in your working tree. Please, commit them\n"
-"first and then run 'git rebase --continue' again."
-msgstr ""
-"\n"
-"您的工作区中有未提交的变更。请先提交然后再次运行 'git rebase --continue'。"
+#: sequencer.c:2343
+#, c-format
+msgid "invalid line %d: %.*s"
+msgstr "无效行 %d:%.*s"
 
-#: sequencer.c:4435 sequencer.c:4474
+#: sequencer.c:2354
 #, c-format
-msgid "could not write file: '%s'"
-msgstr "不能写入文件:'%s'"
+msgid "cannot '%s' without a previous commit"
+msgstr "没有父提交的情况下不能 '%s'"
 
-#: sequencer.c:4490
-msgid "could not remove CHERRY_PICK_HEAD"
-msgstr "不能删除 CHERRY_PICK_HEAD"
+#: sequencer.c:2440
+msgid "cancelling a cherry picking in progress"
+msgstr "正在取消一个进行中的拣选"
 
-#: sequencer.c:4497
-msgid "could not commit staged changes."
-msgstr "不能提交暂存的修改。"
+#: sequencer.c:2449
+msgid "cancelling a revert in progress"
+msgstr "正在取消一个进行中的还原"
 
-#: sequencer.c:4613
-#, c-format
-msgid "%s: can't cherry-pick a %s"
-msgstr "%s:不能拣选一个%s"
+#: sequencer.c:2493
+msgid "please fix this using 'git rebase --edit-todo'."
+msgstr "请用 'git rebase --edit-todo' 来修改。"
 
-#: sequencer.c:4617
+#: sequencer.c:2495
 #, c-format
-msgid "%s: bad revision"
-msgstr "%s:错误的版本"
-
-#: sequencer.c:4652
-msgid "can't revert as initial commit"
-msgstr "不能作为初始提交回退"
+msgid "unusable instruction sheet: '%s'"
+msgstr "不可用的指令清单:'%s'"
 
-#: sequencer.c:5129
-msgid "make_script: unhandled options"
-msgstr "make_script:有未能处理的选项"
+#: sequencer.c:2500
+msgid "no commits parsed."
+msgstr "没有解析提交。"
 
-#: sequencer.c:5132
-msgid "make_script: error preparing revisions"
-msgstr "make_script:准备版本时错误"
+#: sequencer.c:2511
+msgid "cannot cherry-pick during a revert."
+msgstr "不能在回退中执行拣选。"
 
-#: sequencer.c:5374 sequencer.c:5391
-msgid "nothing to do"
-msgstr "无事可做"
+#: sequencer.c:2513
+msgid "cannot revert during a cherry-pick."
+msgstr "不能在拣选中执行回退。"
 
-#: sequencer.c:5410
-msgid "could not skip unnecessary pick commands"
-msgstr "无法跳过不必要的拣选"
+#: sequencer.c:2591
+#, c-format
+msgid "invalid value for %s: %s"
+msgstr "%s 的值无效:%s"
 
-#: sequencer.c:5504
-msgid "the script was already rearranged."
-msgstr "脚本已经重新编排。"
+#: sequencer.c:2698
+msgid "unusable squash-onto"
+msgstr "不可用的 squash-onto"
 
-#: setup.c:133
+#: sequencer.c:2718
 #, c-format
-msgid "'%s' is outside repository at '%s'"
-msgstr "'%s' 在位于 '%s' 的仓库之外"
+msgid "malformed options sheet: '%s'"
+msgstr "格式错误的选项清单:'%s'"
 
-#: setup.c:185
-#, c-format
-msgid ""
-"%s: no such path in the working tree.\n"
-"Use 'git <command> -- <path>...' to specify paths that do not exist locally."
-msgstr ""
-"%s:工作区中无此路径。\n"
-"使用命令 'git <命令> -- <路径>...' 来指定本地不存在的路径。"
+#: sequencer.c:2811 sequencer.c:4644
+msgid "empty commit set passed"
+msgstr "提供了空的提交集"
 
-#: setup.c:198
-#, c-format
-msgid ""
-"ambiguous argument '%s': unknown revision or path not in the working tree.\n"
-"Use '--' to separate paths from revisions, like this:\n"
-"'git <command> [<revision>...] -- [<file>...]'"
-msgstr ""
-"有歧义的参数 '%s':未知的版本或路径不存在于工作区中。\n"
-"使用 '--' 来分隔版本和路径,例如:\n"
-"'git <命令> [<版本>...] -- [<文件>...]'"
+#: sequencer.c:2828
+msgid "revert is already in progress"
+msgstr "一个还原操作已在进行"
 
-#: setup.c:264
+#: sequencer.c:2830
 #, c-format
-msgid "option '%s' must come before non-option arguments"
-msgstr "选项 '%s' 必须在其他非选项参数之前"
+msgid "try \"git revert (--continue | %s--abort | --quit)\""
+msgstr "尝试 \"git revert (--continue | %s--abort | --quit)\""
 
-#: setup.c:283
+#: sequencer.c:2833
+msgid "cherry-pick is already in progress"
+msgstr "拣选操作已在进行"
+
+#: sequencer.c:2835
 #, c-format
-msgid ""
-"ambiguous argument '%s': both revision and filename\n"
-"Use '--' to separate paths from revisions, like this:\n"
-"'git <command> [<revision>...] -- [<file>...]'"
-msgstr ""
-"有歧义的参数 '%s':可同时是版本和文件\n"
-"使用 '--' 来分隔版本和路径,例如:\n"
-"'git <命令> [<版本>...] -- [<文件>...]'"
+msgid "try \"git cherry-pick (--continue | %s--abort | --quit)\""
+msgstr "尝试 \"git cherry-pick (--continue | %s--abort | --quit)\""
 
-#: setup.c:419
-msgid "unable to set up work tree using invalid config"
-msgstr "无法使用无效配置来创建工作区"
+#: sequencer.c:2849
+#, c-format
+msgid "could not create sequencer directory '%s'"
+msgstr "不能创建序列目录 '%s'"
 
-#: setup.c:423
-msgid "this operation must be run in a work tree"
-msgstr "该操作必须在一个工作区中运行"
+#: sequencer.c:2864
+msgid "could not lock HEAD"
+msgstr "不能锁定 HEAD"
 
-#: setup.c:661
-#, c-format
-msgid "Expected git repo version <= %d, found %d"
-msgstr "期望 git 仓库版本 <= %d,却得到 %d"
+#: sequencer.c:2924 sequencer.c:4379
+msgid "no cherry-pick or revert in progress"
+msgstr "拣选或还原操作并未进行"
 
-#: setup.c:669
-msgid "unknown repository extensions found:"
-msgstr "发现未知的仓库扩展:"
+#: sequencer.c:2926 sequencer.c:2937
+msgid "cannot resolve HEAD"
+msgstr "不能解析 HEAD"
 
-#: setup.c:681
-msgid "repo version is 0, but v1-only extensions found:"
-msgstr "ä»\93åº\93ç\9a\84ç\89\88æ\9c¬æ\98¯ 0ï¼\8cä½\86æ\98¯å\8f\91ç\8e°ä»\85ç\94¨äº\8e v1 ç\9a\84æ\89©å±\95ï¼\9a"
+#: sequencer.c:2928 sequencer.c:2972
+msgid "cannot abort from a branch yet to be born"
+msgstr "ä¸\8dè\83½ä»\8eå°\9aæ\9cªå»ºç«\8bç\9a\84å\88\86æ\94¯ç»\88æ­¢"
 
-#: setup.c:700
+#: sequencer.c:2958 builtin/grep.c:757
 #, c-format
-msgid "error opening '%s'"
-msgstr "打开 '%s' 出错"
+msgid "cannot open '%s'"
+msgstr "不能打开 '%s'"
 
-#: setup.c:702
+#: sequencer.c:2960
 #, c-format
-msgid "too large to be a .git file: '%s'"
-msgstr "文件太大,无法作为 .git 文件:'%s'"
+msgid "cannot read '%s': %s"
+msgstr "不能读取 '%s':%s"
 
-#: setup.c:704
-#, c-format
-msgid "error reading %s"
-msgstr "读取 %s 出错"
+#: sequencer.c:2961
+msgid "unexpected end of file"
+msgstr "意外的文件结束"
 
-#: setup.c:706
+#: sequencer.c:2967
 #, c-format
-msgid "invalid gitfile format: %s"
-msgstr "无效的 gitfile 格式:%s"
+msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
+msgstr "保存拣选提交前的 HEAD 文件 '%s' 损坏"
 
-#: setup.c:708
-#, c-format
-msgid "no path in gitfile: %s"
-msgstr "在 gitfile 中没有路径:%s"
+#: sequencer.c:2978
+msgid "You seem to have moved HEAD. Not rewinding, check your HEAD!"
+msgstr "您好像移动了 HEAD。未能回退,检查您的 HEAD!"
 
-#: setup.c:710
-#, c-format
-msgid "not a git repository: %s"
-msgstr "不是 git 仓库:%s"
+#: sequencer.c:3019
+msgid "no revert in progress"
+msgstr "没有正在进行的还原"
 
-#: setup.c:812
-#, c-format
-msgid "'$%s' too big"
-msgstr "'$%s' 太大"
+#: sequencer.c:3028
+msgid "no cherry-pick in progress"
+msgstr "没有正在进行的拣选"
 
-#: setup.c:826
+#: sequencer.c:3038
+msgid "failed to skip the commit"
+msgstr "无法跳过这个提交"
+
+#: sequencer.c:3045
+msgid "there is nothing to skip"
+msgstr "没有要跳过的"
+
+#: sequencer.c:3048
 #, c-format
-msgid "not a git repository: '%s'"
-msgstr "不是 git 仓库:'%s'"
+msgid ""
+"have you committed already?\n"
+"try \"git %s --continue\""
+msgstr ""
+"您已经提交了么?\n"
+"试试 \"git %s --continue\""
 
-#: setup.c:855 setup.c:857 setup.c:888
+#: sequencer.c:3210 sequencer.c:4271
+msgid "cannot read HEAD"
+msgstr "不能读取 HEAD"
+
+#: sequencer.c:3227
 #, c-format
-msgid "cannot chdir to '%s'"
-msgstr "不能切换目录到 '%s'"
+msgid "unable to copy '%s' to '%s'"
+msgstr "无法拷贝 '%s' 至 '%s'"
 
-#: setup.c:860 setup.c:916 setup.c:926 setup.c:965 setup.c:973
-msgid "cannot come back to cwd"
-msgstr "无法返回当前工作目录"
+#: sequencer.c:3235
+#, c-format
+msgid ""
+"You can amend the commit now, with\n"
+"\n"
+"  git commit --amend %s\n"
+"\n"
+"Once you are satisfied with your changes, run\n"
+"\n"
+"  git rebase --continue\n"
+msgstr ""
+"您现在可以修补这个提交,使用\n"
+"\n"
+"  git commit --amend %s\n"
+"\n"
+"当您对变更感到满意,执行\n"
+"\n"
+"  git rebase --continue\n"
 
-#: setup.c:987
+#: sequencer.c:3245
 #, c-format
-msgid "failed to stat '%*s%s%s'"
-msgstr "获取 '%*s%s%s' 状态(stat)失败"
+msgid "Could not apply %s... %.*s"
+msgstr "不能应用 %s... %.*s"
 
-#: setup.c:1225
-msgid "Unable to read current working directory"
-msgstr "不能读取当前工作目录"
+#: sequencer.c:3252
+#, c-format
+msgid "Could not merge %.*s"
+msgstr "不能合并 %.*s"
 
-#: setup.c:1234 setup.c:1240
+#: sequencer.c:3266 sequencer.c:3270 builtin/difftool.c:640
 #, c-format
-msgid "cannot change to '%s'"
-msgstr "不能切换到 '%s'"
+msgid "could not copy '%s' to '%s'"
+msgstr "不能拷贝 '%s' 至 '%s'"
 
-#: setup.c:1245
+#: sequencer.c:3282
 #, c-format
-msgid "not a git repository (or any of the parent directories): %s"
-msgstr "不是 git 仓库(或者任何父目录):%s"
+msgid "Executing: %s\n"
+msgstr "正在执行:%s\n"
 
-#: setup.c:1251
+#  译者:注意保持前导空格
+#: sequencer.c:3297
 #, c-format
 msgid ""
-"not a git repository (or any parent up to mount point %s)\n"
-"Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set)."
+"execution failed: %s\n"
+"%sYou can fix the problem, and then run\n"
+"\n"
+"  git rebase --continue\n"
+"\n"
 msgstr ""
-"不是 git 仓库(或者直至挂载点 %s 的任何父目录)\n"
-"停止在文件系统边界(未设置 GIT_DISCOVERY_ACROSS_FILESYSTEM)。"
+"执行失败:%s\n"
+"%s您可以改正该问题,然后运行\n"
+"\n"
+"  git rebase --continue\n"
+"\n"
 
-#: setup.c:1362
+#: sequencer.c:3303
+msgid "and made changes to the index and/or the working tree\n"
+msgstr "并且修改索引和/或工作区\n"
+
+#: sequencer.c:3309
 #, c-format
 msgid ""
-"problem with core.sharedRepository filemode value (0%.3o).\n"
-"The owner of files must always have read and write permissions."
+"execution succeeded: %s\n"
+"but left changes to the index and/or the working tree\n"
+"Commit or stash your changes, and then run\n"
+"\n"
+"  git rebase --continue\n"
+"\n"
 msgstr ""
-"参数 core.sharedRepository 的文件属性值有问题(0%.3o)。\n"
-"文件属主必须始终拥有读写权限。"
+"执行成功:%s\n"
+"但是在索引和/或工作区中存在变更\n"
+"提交或贮藏修改,然后运行\n"
+"\n"
+"  git rebase --continue\n"
+"\n"
 
-#: setup.c:1409
-msgid "open /dev/null or dup failed"
-msgstr "不能打开或者复制 /dev/null"
+#: sequencer.c:3370
+#, c-format
+msgid "illegal label name: '%.*s'"
+msgstr "非法的标签名称:'%.*s'"
 
-#: setup.c:1424
-msgid "fork failed"
-msgstr "fork 失败"
+#: sequencer.c:3424
+msgid "writing fake root commit"
+msgstr "写伪根提交"
 
-#: setup.c:1429
-msgid "setsid failed"
-msgstr "setsid 失败"
+#: sequencer.c:3429
+msgid "writing squash-onto"
+msgstr "写入 squash-onto"
 
-#: sha1-file.c:480
+#: sequencer.c:3513
 #, c-format
-msgid "object directory %s does not exist; check .git/objects/info/alternates"
-msgstr "对象目录 %s 不存在,检查 .git/objects/info/alternates"
+msgid "could not resolve '%s'"
+msgstr "无法解析 '%s'"
+
+#: sequencer.c:3546
+msgid "cannot merge without a current revision"
+msgstr "没有当前版本不能合并"
 
-#: sha1-file.c:531
+#: sequencer.c:3568
 #, c-format
-msgid "unable to normalize alternate object path: %s"
-msgstr "æ\97 æ³\95è§\84è\8c\83å\8c\96å¤\87ç\94¨å¯¹è±¡è·¯å¾\84ï¼\9a%s"
+msgid "unable to parse '%.*s'"
+msgstr "æ\97 æ³\95解æ\9e\90 '%.*s'"
 
-#: sha1-file.c:603
+#: sequencer.c:3577
 #, c-format
-msgid "%s: ignoring alternate object stores, nesting too deep"
-msgstr "%s:忽略备用对象库,嵌套太深"
+msgid "nothing to merge: '%.*s'"
+msgstr "无可用合并:'%.*s'"
+
+#: sequencer.c:3589
+msgid "octopus merge cannot be executed on top of a [new root]"
+msgstr "章鱼合并不能在一个新的根提交上执行"
 
-#: sha1-file.c:610
+#: sequencer.c:3605
 #, c-format
-msgid "unable to normalize object directory: %s"
-msgstr "无法规范化对象目录: %s"
+msgid "could not get commit message of '%s'"
+msgstr "不能获取 '%s' 的提交说明"
 
-#: sha1-file.c:653
-msgid "unable to fdopen alternates lockfile"
-msgstr "无法 fdopen 替换锁文件"
+#: sequencer.c:3788
+#, c-format
+msgid "could not even attempt to merge '%.*s'"
+msgstr "甚至不能尝试合并 '%.*s'"
 
-#: sha1-file.c:671
-msgid "unable to read alternates file"
-msgstr "无法读取替代文件"
+#: sequencer.c:3804
+msgid "merge: Unable to write new index file"
+msgstr "合并:无法写入新索引文件"
 
-#: sha1-file.c:678
-msgid "unable to move new alternates file into place"
-msgstr "无法将新的替代文件移动到位"
+#: sequencer.c:3878
+msgid "Cannot autostash"
+msgstr "无法 autostash"
 
-#: sha1-file.c:713
+#: sequencer.c:3881
 #, c-format
-msgid "path '%s' does not exist"
-msgstr "路径 '%s' 不存在"
+msgid "Unexpected stash response: '%s'"
+msgstr "意外的 stash 响应:'%s'"
 
-#: sha1-file.c:734
+#: sequencer.c:3887
 #, c-format
-msgid "reference repository '%s' as a linked checkout is not supported yet."
-msgstr "尚不支持将参考仓库 '%s' 作为一个链接检出。"
+msgid "Could not create directory for '%s'"
+msgstr "不能为 '%s' 创建目录"
 
-#: sha1-file.c:740
+#: sequencer.c:3890
 #, c-format
-msgid "reference repository '%s' is not a local repository."
-msgstr "å\8f\82è\80\83ä»\93åº\93 '%s' ä¸\8dæ\98¯ä¸\80个æ\9c¬å\9c°ä»\93åº\93ã\80\82"
+msgid "Created autostash: %s\n"
+msgstr "å\88\9b建äº\86 autostashï¼\9a%s\n"
 
-#: sha1-file.c:746
-#, c-format
-msgid "reference repository '%s' is shallow"
-msgstr "参考仓库 '%s' 是一个浅克隆"
+#: sequencer.c:3894
+msgid "could not reset --hard"
+msgstr "无法 reset --hard"
 
-#: sha1-file.c:754
+#: sequencer.c:3919
 #, c-format
-msgid "reference repository '%s' is grafted"
-msgstr "å\8f\82è\80\83ä»\93åº\93 '%s' å·²è¢«ç§»æ¤\8d"
+msgid "Applied autostash.\n"
+msgstr "å·²åº\94ç\94¨ autostashã\80\82\n"
 
-#: sha1-file.c:814
+#: sequencer.c:3931
 #, c-format
-msgid "invalid line while parsing alternate refs: %s"
-msgstr "解析备用引用时无效的行:%s"
+msgid "cannot store %s"
+msgstr "不能存储 %s"
 
-#: sha1-file.c:964
+#: sequencer.c:3934
 #, c-format
-msgid "attempting to mmap %<PRIuMAX> over limit %<PRIuMAX>"
-msgstr "尝试 mmap %<PRIuMAX>,超过了最大值 %<PRIuMAX>"
+msgid ""
+"%s\n"
+"Your changes are safe in the stash.\n"
+"You can run \"git stash pop\" or \"git stash drop\" at any time.\n"
+msgstr ""
+"%s\n"
+"您的修改在贮藏区中很安全。\n"
+"您可以在任何时候运行 \"git stash pop\" 或 \"git stash drop\"。\n"
 
-#: sha1-file.c:985
-msgid "mmap failed"
-msgstr "mmap 失败"
+#: sequencer.c:3939
+msgid "Applying autostash resulted in conflicts."
+msgstr "应用自动贮藏导致冲突。"
 
-#: sha1-file.c:1149
-#, c-format
-msgid "object file %s is empty"
-msgstr "对象文件 %s 为空"
+#: sequencer.c:3940
+msgid "Autostash exists; creating a new stash entry."
+msgstr "自动贮藏已经存在;正在创建一个新的贮藏条目。"
+
+#: sequencer.c:4033 git-rebase--preserve-merges.sh:769
+msgid "could not detach HEAD"
+msgstr "不能分离头指针"
 
-#: sha1-file.c:1284 sha1-file.c:2477
+#: sequencer.c:4048
 #, c-format
-msgid "corrupt loose object '%s'"
-msgstr "损坏的松散对象 '%s'"
+msgid "Stopped at HEAD\n"
+msgstr "停止在 HEAD\n"
 
-#: sha1-file.c:1286 sha1-file.c:2481
+#: sequencer.c:4050
 #, c-format
-msgid "garbage at end of loose object '%s'"
-msgstr "松散对象 '%s' 后面有垃圾数据"
+msgid "Stopped at %s\n"
+msgstr "停止在 %s\n"
 
-#: sha1-file.c:1328
-msgid "invalid object type"
-msgstr "无效的对象类型"
+#: sequencer.c:4058
+#, c-format
+msgid ""
+"Could not execute the todo command\n"
+"\n"
+"    %.*s\n"
+"It has been rescheduled; To edit the command before continuing, please\n"
+"edit the todo list first:\n"
+"\n"
+"    git rebase --edit-todo\n"
+"    git rebase --continue\n"
+msgstr ""
+"无法执行待办命令\n"
+"\n"
+"    %.*s\n"
+"已被重新安排,在继续之前编辑命令,请先编辑待办列表:\n"
+"\n"
+"    git rebase --edit-todo\n"
+"    git rebase --continue\n"
 
-#: sha1-file.c:1412
+#: sequencer.c:4104
 #, c-format
-msgid "unable to unpack %s header with --allow-unknown-type"
-msgstr "æ\97 æ³\95ç\94¨ --allow-unknown-type å\8f\82æ\95°è§£å¼\80 %s å¤´ä¿¡æ\81¯"
+msgid "Rebasing (%d/%d)%s"
+msgstr "æ­£å\9c¨å\8f\98å\9fºï¼\88%d/%dï¼\89%s"
 
-#: sha1-file.c:1415
+#: sequencer.c:4149
 #, c-format
-msgid "unable to unpack %s header"
-msgstr "无法解开 %s 头部"
+msgid "Stopped at %s...  %.*s\n"
+msgstr "停止在 %s... %.*s\n"
 
-#: sha1-file.c:1421
+#: sequencer.c:4220
 #, c-format
-msgid "unable to parse %s header with --allow-unknown-type"
-msgstr "无法用 --allow-unknown-type 参数解析 %s 头信息"
+msgid "unknown command %d"
+msgstr "未知命令 %d"
+
+#: sequencer.c:4279
+msgid "could not read orig-head"
+msgstr "不能读取 orig-head"
+
+#: sequencer.c:4284
+msgid "could not read 'onto'"
+msgstr "不能读取 'onto'"
 
-#: sha1-file.c:1424
+#: sequencer.c:4298
 #, c-format
-msgid "unable to parse %s header"
-msgstr "无法解析 %s 头部"
+msgid "could not update HEAD to %s"
+msgstr "不能更新 HEAD 为 %s"
 
-#: sha1-file.c:1651
+#: sequencer.c:4358
 #, c-format
-msgid "failed to read object %s"
-msgstr "读取对象 %s 失败"
+msgid "Successfully rebased and updated %s.\n"
+msgstr "成功变基并更新 %s。\n"
 
-#: sha1-file.c:1655
+#: sequencer.c:4391
+msgid "cannot rebase: You have unstaged changes."
+msgstr "不能变基:您有未暂存的变更。"
+
+#: sequencer.c:4400
+msgid "cannot amend non-existing commit"
+msgstr "不能修补不存在的提交"
+
+#: sequencer.c:4402
 #, c-format
-msgid "replacement %s not found for %s"
-msgstr "æ\89¾ä¸\8då\88° %2$s ç\9a\84æ\9b¿ä»£ %1$s"
+msgid "invalid file: '%s'"
+msgstr "æ\97 æ\95\88æ\96\87件ï¼\9a'%s'"
 
-#: sha1-file.c:1659
+#: sequencer.c:4404
 #, c-format
-msgid "loose object %s (stored in %s) is corrupt"
-msgstr "松散对象 %s(保存在 %s)已损坏"
+msgid "invalid contents: '%s'"
+msgstr "无效内容:'%s'"
+
+#: sequencer.c:4407
+msgid ""
+"\n"
+"You have uncommitted changes in your working tree. Please, commit them\n"
+"first and then run 'git rebase --continue' again."
+msgstr ""
+"\n"
+"您的工作区中有未提交的变更。请先提交然后再次运行 'git rebase --continue'。"
 
-#: sha1-file.c:1663
+#: sequencer.c:4443 sequencer.c:4482
 #, c-format
-msgid "packed object %s (stored in %s) is corrupt"
-msgstr "打包对象 %s(保存在 %s)已损坏"
+msgid "could not write file: '%s'"
+msgstr "不能写入文件:'%s'"
+
+#: sequencer.c:4498
+msgid "could not remove CHERRY_PICK_HEAD"
+msgstr "不能删除 CHERRY_PICK_HEAD"
+
+#: sequencer.c:4505
+msgid "could not commit staged changes."
+msgstr "不能提交暂存的修改。"
 
-#: sha1-file.c:1768
+#: sequencer.c:4621
 #, c-format
-msgid "unable to write file %s"
-msgstr "无法写文件 %s"
+msgid "%s: can't cherry-pick a %s"
+msgstr "%s:不能拣选一个%s"
 
-#: sha1-file.c:1775
+#: sequencer.c:4625
 #, c-format
-msgid "unable to set permission to '%s'"
-msgstr "无法为 '%s' 设置权限"
+msgid "%s: bad revision"
+msgstr "%s:错误的版本"
 
-#: sha1-file.c:1782
-msgid "file write error"
-msgstr "文件写错误"
+#: sequencer.c:4660
+msgid "can't revert as initial commit"
+msgstr "不能作为初始提交回退"
 
-#: sha1-file.c:1802
-msgid "error when closing loose object file"
-msgstr "关闭松散对象文件时出错"
+#: sequencer.c:5137
+msgid "make_script: unhandled options"
+msgstr "make_script:有未能处理的选项"
 
-#: sha1-file.c:1867
-#, c-format
-msgid "insufficient permission for adding an object to repository database %s"
-msgstr "权限不足,无法在仓库对象库 %s 中添加对象"
+#: sequencer.c:5140
+msgid "make_script: error preparing revisions"
+msgstr "make_script:准备版本时错误"
 
-#: sha1-file.c:1869
-msgid "unable to create temporary file"
-msgstr "无法创建临时文件"
+#: sequencer.c:5382 sequencer.c:5399
+msgid "nothing to do"
+msgstr "无事可做"
 
-#: sha1-file.c:1893
-msgid "unable to write loose object file"
-msgstr "不能写松散对象文件"
+#: sequencer.c:5418
+msgid "could not skip unnecessary pick commands"
+msgstr "无法跳过不必要的拣选"
 
-#: sha1-file.c:1899
-#, c-format
-msgid "unable to deflate new object %s (%d)"
-msgstr "不能压缩新对象 %s(%d)"
+#: sequencer.c:5512
+msgid "the script was already rearranged."
+msgstr "脚本已经重新编排。"
 
-#: sha1-file.c:1903
+#: setup.c:133
 #, c-format
-msgid "deflateEnd on object %s failed (%d)"
-msgstr "在对象 %s 上调用 deflateEnd 失败(%d)"
+msgid "'%s' is outside repository at '%s'"
+msgstr "'%s' 在位于 '%s' 的仓库之外"
 
-#: sha1-file.c:1907
+#: setup.c:185
 #, c-format
-msgid "confused by unstable object source data for %s"
-msgstr "被 %s 的不稳定对象源数据搞糊涂了"
+msgid ""
+"%s: no such path in the working tree.\n"
+"Use 'git <command> -- <path>...' to specify paths that do not exist locally."
+msgstr ""
+"%s:工作区中无此路径。\n"
+"使用命令 'git <命令> -- <路径>...' 来指定本地不存在的路径。"
 
-#: sha1-file.c:1917 builtin/pack-objects.c:1086
+#: setup.c:198
 #, c-format
-msgid "failed utime() on %s"
-msgstr "在 %s 上调用 utime() 失败"
+msgid ""
+"ambiguous argument '%s': unknown revision or path not in the working tree.\n"
+"Use '--' to separate paths from revisions, like this:\n"
+"'git <command> [<revision>...] -- [<file>...]'"
+msgstr ""
+"有歧义的参数 '%s':未知的版本或路径不存在于工作区中。\n"
+"使用 '--' 来分隔版本和路径,例如:\n"
+"'git <命令> [<版本>...] -- [<文件>...]'"
 
-#: sha1-file.c:1994
+#: setup.c:264
 #, c-format
-msgid "cannot read object for %s"
-msgstr "不能读取对象 %s"
+msgid "option '%s' must come before non-option arguments"
+msgstr "选项 '%s' 必须在其他非选项参数之前"
 
-#: sha1-file.c:2045
-msgid "corrupt commit"
-msgstr "损坏的提交"
+#: setup.c:283
+#, c-format
+msgid ""
+"ambiguous argument '%s': both revision and filename\n"
+"Use '--' to separate paths from revisions, like this:\n"
+"'git <command> [<revision>...] -- [<file>...]'"
+msgstr ""
+"有歧义的参数 '%s':可同时是版本和文件\n"
+"使用 '--' 来分隔版本和路径,例如:\n"
+"'git <命令> [<版本>...] -- [<文件>...]'"
 
-#: sha1-file.c:2053
-msgid "corrupt tag"
-msgstr "æ\8d\9få\9d\8fç\9a\84æ \87ç­¾"
+#: setup.c:419
+msgid "unable to set up work tree using invalid config"
+msgstr "æ\97 æ³\95使ç\94¨æ\97 æ\95\88é\85\8dç½®æ\9d¥å\88\9b建工ä½\9cå\8cº"
 
-#: sha1-file.c:2153
-#, c-format
-msgid "read error while indexing %s"
-msgstr "索引 %s 时读取错误"
+#: setup.c:423
+msgid "this operation must be run in a work tree"
+msgstr "该操作必须在一个工作区中运行"
 
-#: sha1-file.c:2156
+#: setup.c:661
 #, c-format
-msgid "short read while indexing %s"
-msgstr "索引 %s 时读入不完整"
+msgid "Expected git repo version <= %d, found %d"
+msgstr "期望 git 仓库版本 <= %d,却得到 %d"
 
-#: sha1-file.c:2229 sha1-file.c:2239
-#, c-format
-msgid "%s: failed to insert into database"
-msgstr "%s:插入数据库失败"
+#: setup.c:669
+msgid "unknown repository extensions found:"
+msgstr "发现未知的仓库扩展:"
 
-#: sha1-file.c:2245
-#, c-format
-msgid "%s: unsupported file type"
-msgstr "%s:不支持的文件类型"
+#: setup.c:681
+msgid "repo version is 0, but v1-only extensions found:"
+msgstr "仓库的版本是 0,但是发现仅用于 v1 的扩展:"
 
-#: sha1-file.c:2269
+#: setup.c:700
 #, c-format
-msgid "%s is not a valid object"
-msgstr "%s 不是一个有效的对象"
+msgid "error opening '%s'"
+msgstr "打开 '%s' 出错"
 
-#: sha1-file.c:2271
+#: setup.c:702
 #, c-format
-msgid "%s is not a valid '%s' object"
-msgstr "%s 不是一个有效的 '%s' 对象"
+msgid "too large to be a .git file: '%s'"
+msgstr "文件太大,无法作为 .git 文件:'%s'"
 
-#: sha1-file.c:2298 builtin/index-pack.c:192
+#: setup.c:704
 #, c-format
-msgid "unable to open %s"
-msgstr "不能打开 %s"
+msgid "error reading %s"
+msgstr "读取 %s 出错"
 
-#: sha1-file.c:2488 sha1-file.c:2541
+#: setup.c:706
 #, c-format
-msgid "hash mismatch for %s (expected %s)"
-msgstr "%s 的哈希值不匹配(预期 %s)"
+msgid "invalid gitfile format: %s"
+msgstr "无效的 gitfile 格式:%s"
 
-#: sha1-file.c:2512
+#: setup.c:708
 #, c-format
-msgid "unable to mmap %s"
-msgstr "不能 mmap %s"
+msgid "no path in gitfile: %s"
+msgstr "在 gitfile 中没有路径:%s"
 
-#: sha1-file.c:2517
+#: setup.c:710
 #, c-format
-msgid "unable to unpack header of %s"
-msgstr "无法解压缩 %s 的头部"
+msgid "not a git repository: %s"
+msgstr "不是 git 仓库:%s"
 
-#: sha1-file.c:2523
+#: setup.c:812
 #, c-format
-msgid "unable to parse header of %s"
-msgstr "无法解析 %s 的头部"
+msgid "'$%s' too big"
+msgstr "'$%s' 太大"
 
-#: sha1-file.c:2534
+#: setup.c:826
 #, c-format
-msgid "unable to unpack contents of %s"
-msgstr "无法解压缩 %s 的内容"
+msgid "not a git repository: '%s'"
+msgstr "不是 git 仓库:'%s'"
 
-#: sha1-name.c:486
+#: setup.c:855 setup.c:857 setup.c:888
 #, c-format
-msgid "short SHA1 %s is ambiguous"
-msgstr "短 SHA1 %s 存在歧义"
-
-#: sha1-name.c:497
-msgid "The candidates are:"
-msgstr "候选者有:"
-
-#: sha1-name.c:796
-msgid ""
-"Git normally never creates a ref that ends with 40 hex characters\n"
-"because it will be ignored when you just specify 40-hex. These refs\n"
-"may be created by mistake. For example,\n"
-"\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 通常不会创建一个以40个十六进制字符结尾的引用,因为当您只提供40\n"
-"个十六进制字符时将被忽略。这些引用可能被错误地创建。例如:\n"
-"\n"
-"  git switch -c $br $(git rev-parse ...)\n"
-"\n"
-"当 \"$br\" 某种原因空白时,一个40位十六进制的引用将被创建。请检查这些\n"
-"引用,可能需要删除它们。运行 \"git config advice.objectNameWarning\n"
-"false\" 命令关闭本消息通知。"
+msgid "cannot chdir to '%s'"
+msgstr "不能切换目录到 '%s'"
 
-#: sha1-name.c:916
-#, c-format
-msgid "log for '%.*s' only goes back to %s"
-msgstr "'%.*s' 的日志仅能回到 %s"
+#: setup.c:860 setup.c:916 setup.c:926 setup.c:965 setup.c:973
+msgid "cannot come back to cwd"
+msgstr "无法返回当前工作目录"
 
-#: sha1-name.c:924
+#: setup.c:987
 #, c-format
-msgid "log for '%.*s' only has %d entries"
-msgstr "'%.*s' 的日志仅有 %d 个条目"
+msgid "failed to stat '%*s%s%s'"
+msgstr "获取 '%*s%s%s' 状态(stat)失败"
 
-#: sha1-name.c:1702
-#, c-format
-msgid "path '%s' exists on disk, but not in '%.*s'"
-msgstr "路径 '%s' 在磁盘上,但是不在 '%.*s' 中"
+#: setup.c:1225
+msgid "Unable to read current working directory"
+msgstr "不能读取当前工作目录"
 
-#: sha1-name.c:1708
+#: setup.c:1234 setup.c:1240
 #, c-format
-msgid ""
-"path '%s' exists, but not '%s'\n"
-"hint: Did you mean '%.*s:%s' aka '%.*s:./%s'?"
-msgstr ""
-"路径 '%s' 存在,而 '%s' 不存在\n"
-"提示:您的意思是 '%.*s:%s' 亦即 '%.*s:./%s'?"
+msgid "cannot change to '%s'"
+msgstr "不能切换到 '%s'"
 
-#: sha1-name.c:1717
+#: setup.c:1245
 #, c-format
-msgid "path '%s' does not exist in '%.*s'"
-msgstr "路径 '%s' 不在 '%.*s' 中"
+msgid "not a git repository (or any of the parent directories): %s"
+msgstr "不是 git 仓库(或者任何父目录):%s"
 
-#: sha1-name.c:1745
+#: setup.c:1251
 #, c-format
 msgid ""
-"path '%s' is in the index, but not at stage %d\n"
-"hint: Did you mean ':%d:%s'?"
+"not a git repository (or any parent up to mount point %s)\n"
+"Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set)."
 msgstr ""
-"路径 '%s' 在索引中,但不在暂存区 %d 中\n"
-"提示:您的意思是 ':%d:%s'?"
+"不是 git 仓库(或者直至挂载点 %s 的任何父目录)\n"
+"停止在文件系统边界(未设置 GIT_DISCOVERY_ACROSS_FILESYSTEM)。"
 
-#: sha1-name.c:1761
+#: setup.c:1362
 #, c-format
 msgid ""
-"path '%s' is in the index, but not '%s'\n"
-"hint: Did you mean ':%d:%s' aka ':%d:./%s'?"
+"problem with core.sharedRepository filemode value (0%.3o).\n"
+"The owner of files must always have read and write permissions."
 msgstr ""
-"路径 '%s' 在索引中,但 '%s' 不在\n"
-"提示:您的意思是 ':%d:%s' 亦即 ':%d:./%s'?"
-
-#: sha1-name.c:1769
-#, c-format
-msgid "path '%s' exists on disk, but not in the index"
-msgstr "路径 '%s' 在磁盘上,但不在索引里"
+"参数 core.sharedRepository 的文件属性值有问题(0%.3o)。\n"
+"文件属主必须始终拥有读写权限。"
 
-#: sha1-name.c:1771
-#, c-format
-msgid "path '%s' does not exist (neither on disk nor in the index)"
-msgstr "路径 '%s' 不存在(既不在磁盘上,也不在索引中)"
+#: setup.c:1409
+msgid "open /dev/null or dup failed"
+msgstr "不能打开或者复制 /dev/null"
 
-#: sha1-name.c:1784
-msgid "relative path syntax can't be used outside working tree"
-msgstr "不能在工作区之外使用相对路径语法"
+#: setup.c:1424
+msgid "fork failed"
+msgstr "fork 失败"
 
-#: sha1-name.c:1922
-#, c-format
-msgid "invalid object name '%.*s'."
-msgstr "无效的对象名 '%.*s'。"
+#: setup.c:1429
+msgid "setsid failed"
+msgstr "setsid 失败"
 
 #. TRANSLATORS: IEC 80000-13:2008 gibibyte
 #: strbuf.c:848
@@ -8149,7 +8390,7 @@ msgstr[0] "%u 字节/秒"
 msgstr[1] "%u 字节/秒"
 
 #: strbuf.c:1166 wrapper.c:199 wrapper.c:369 builtin/am.c:719
-#: builtin/rebase.c:864
+#: builtin/rebase.c:866
 #, c-format
 msgid "could not open '%s' for writing"
 msgstr "无法打开 '%s' 进行写入"
@@ -8211,60 +8452,60 @@ msgstr "位于未检出的子模组 '%s'"
 msgid "Pathspec '%s' is in submodule '%.*s'"
 msgstr "路径规格 '%s' 在子模组 '%.*s' 中"
 
-#: submodule.c:434
+#: submodule.c:435
 #, c-format
 msgid "bad --ignore-submodules argument: %s"
 msgstr "坏的 --ignore-submodules 参数:%s"
 
-#: submodule.c:816
+#: submodule.c:817
 #, c-format
 msgid ""
 "Submodule in commit %s at path: '%s' collides with a submodule named the "
 "same. Skipping it."
 msgstr "提交 %s 中位于路径 '%s' 的子模组和同名的子模组冲突。 跳过它。"
 
-#: submodule.c:919
+#: submodule.c:920
 #, c-format
 msgid "submodule entry '%s' (%s) is a %s, not a commit"
 msgstr "子模组条目 '%s'(%s)是一个 %s,不是一个提交"
 
-#: submodule.c:1004
+#: submodule.c:1005
 #, c-format
 msgid ""
 "Could not run 'git rev-list <commits> --not --remotes -n 1' command in "
 "submodule %s"
 msgstr "无法在子模组 %s 中执行 'git rev-list <提交> --not --remotes -n 1'"
 
-#: submodule.c:1127
+#: submodule.c:1128
 #, c-format
 msgid "process for submodule '%s' failed"
 msgstr "处理子模组 '%s' 失败"
 
-#: submodule.c:1156 builtin/branch.c:680 builtin/submodule--helper.c:2469
+#: submodule.c:1157 builtin/branch.c:689 builtin/submodule--helper.c:2469
 msgid "Failed to resolve HEAD as a valid ref."
 msgstr "无法将 HEAD 解析为有效引用。"
 
-#: submodule.c:1167
+#: submodule.c:1168
 #, c-format
 msgid "Pushing submodule '%s'\n"
 msgstr "正在推送子模组 '%s'\n"
 
-#: submodule.c:1170
+#: submodule.c:1171
 #, c-format
 msgid "Unable to push submodule '%s'\n"
 msgstr "无法推送子模组 '%s'\n"
 
-#: submodule.c:1462
+#: submodule.c:1463
 #, c-format
 msgid "Fetching submodule %s%s\n"
 msgstr "正在获取子模组 %s%s\n"
 
-#: submodule.c:1492
+#: submodule.c:1497
 #, c-format
 msgid "Could not access submodule '%s'\n"
 msgstr "无法访问子模组 '%s'\n"
 
-#: submodule.c:1646
+#: submodule.c:1652
 #, c-format
 msgid ""
 "Errors during submodule fetch:\n"
@@ -8273,77 +8514,77 @@ msgstr ""
 "获取子模组时的错误:\n"
 "%s"
 
-#: submodule.c:1671
+#: submodule.c:1677
 #, c-format
 msgid "'%s' not recognized as a git repository"
 msgstr "无法将 '%s' 识别为 git 仓库"
 
-#: submodule.c:1688
+#: submodule.c:1694
 #, c-format
 msgid "Could not run 'git status --porcelain=2' in submodule %s"
 msgstr "无法在子模组 %s 中执行 'git status --porcelain=2'"
 
-#: submodule.c:1729
+#: submodule.c:1735
 #, c-format
 msgid "'git status --porcelain=2' failed in submodule %s"
 msgstr "在子模组 %s 中执行 'git status --porcelain=2' 失败"
 
-#: submodule.c:1804
+#: submodule.c:1810
 #, c-format
 msgid "could not start 'git status' in submodule '%s'"
 msgstr "无法在子模组 '%s' 中启动 'git status'"
 
-#: submodule.c:1817
+#: submodule.c:1823
 #, c-format
 msgid "could not run 'git status' in submodule '%s'"
 msgstr "无法在子模组 '%s' 中执行 'git status'"
 
-#: submodule.c:1832
+#: submodule.c:1838
 #, c-format
 msgid "Could not unset core.worktree setting in submodule '%s'"
 msgstr "无法在子模组 '%s' 中取消 core.worktree 的设置"
 
-#: submodule.c:1859 submodule.c:2169
+#: submodule.c:1865 submodule.c:2175
 #, c-format
 msgid "could not recurse into submodule '%s'"
 msgstr "无法递归进子模组路径 '%s'"
 
-#: submodule.c:1880
+#: submodule.c:1886
 msgid "could not reset submodule index"
 msgstr "无法重置子模组索引"
 
-#: submodule.c:1922
+#: submodule.c:1928
 #, c-format
 msgid "submodule '%s' has dirty index"
 msgstr "子模组 '%s' 中有脏索引"
 
-#: submodule.c:1974
+#: submodule.c:1980
 #, c-format
 msgid "Submodule '%s' could not be updated."
 msgstr "子模组 '%s' 无法被更新。"
 
-#: submodule.c:2042
+#: submodule.c:2048
 #, c-format
 msgid "submodule git dir '%s' is inside git dir '%.*s'"
 msgstr "子模组 git 目录 '%s' 位于 git 目录 '%.*s' 中"
 
-#: submodule.c:2063
+#: submodule.c:2069
 #, c-format
 msgid ""
 "relocate_gitdir for submodule '%s' with more than one worktree not supported"
 msgstr "不支持对有多个工作区的子模组 '%s' 执行 relocate_gitdir"
 
-#: submodule.c:2075 submodule.c:2134
+#: submodule.c:2081 submodule.c:2140
 #, c-format
 msgid "could not lookup name for submodule '%s'"
 msgstr "不能查询子模组 '%s' 的名称"
 
-#: submodule.c:2079
+#: submodule.c:2085
 #, c-format
 msgid "refusing to move '%s' into an existing git dir"
 msgstr "禁止移动 '%s' 到现存 git 目录中"
 
-#: submodule.c:2086
+#: submodule.c:2092
 #, c-format
 msgid ""
 "Migrating git directory of '%s%s' from\n"
@@ -8354,11 +8595,11 @@ msgstr ""
 "'%s' 迁移至\n"
 "'%s'\n"
 
-#: submodule.c:2214
+#: submodule.c:2220
 msgid "could not start ls-files in .."
 msgstr "无法在 .. 中启动 ls-files"
 
-#: submodule.c:2254
+#: submodule.c:2260
 #, c-format
 msgid "ls-tree returned unexpected return code %d"
 msgstr "ls-tree 返回未知返回值 %d"
@@ -8389,7 +8630,7 @@ msgstr "尾注 '%.*s' 的键为空"
 msgid "could not read input file '%s'"
 msgstr "不能读取输入文件 '%s'"
 
-#: trailer.c:751
+#: trailer.c:751 builtin/mktag.c:91
 msgid "could not read from stdin"
 msgstr "不能自标准输入读取"
 
@@ -8459,7 +8700,7 @@ msgstr "不能执行 fast-import"
 msgid "error while running fast-import"
 msgstr "执行 fast-import 出错"
 
-#: transport-helper.c:549 transport-helper.c:1236
+#: transport-helper.c:549 transport-helper.c:1237
 #, c-format
 msgid "could not read ref %s"
 msgstr "无法读取引用 %s"
@@ -8477,7 +8718,7 @@ msgstr "协议不支持设置远程服务路径"
 msgid "invalid remote service path"
 msgstr "无效的远程服务路径"
 
-#: transport-helper.c:661 transport.c:1446
+#: transport-helper.c:661 transport.c:1447
 msgid "operation not supported by protocol"
 msgstr "协议不支持该操作"
 
@@ -8556,52 +8797,52 @@ msgstr ""
 "没有共同的引用并且也没有指定,什么也不会做。\n"
 "也许您应该指定一个分支。\n"
 
-#: transport-helper.c:1213
+#: transport-helper.c:1214
 #, c-format
 msgid "unsupported object format '%s'"
 msgstr "不支持的对象格式 '%s'"
 
-#: transport-helper.c:1222
+#: transport-helper.c:1223
 #, c-format
 msgid "malformed response in ref list: %s"
 msgstr "引用列表中格式错误的响应:%s"
 
-#: transport-helper.c:1374
+#: transport-helper.c:1375
 #, c-format
 msgid "read(%s) failed"
 msgstr "读取(%s)失败"
 
-#: transport-helper.c:1401
+#: transport-helper.c:1402
 #, c-format
 msgid "write(%s) failed"
 msgstr "写(%s)失败"
 
-#: transport-helper.c:1450
+#: transport-helper.c:1451
 #, c-format
 msgid "%s thread failed"
 msgstr "%s 线程失败"
 
-#: transport-helper.c:1454
+#: transport-helper.c:1455
 #, c-format
 msgid "%s thread failed to join: %s"
 msgstr "%s 线程等待失败:%s"
 
-#: transport-helper.c:1473 transport-helper.c:1477
+#: transport-helper.c:1474 transport-helper.c:1478
 #, c-format
 msgid "can't start thread for copying data: %s"
 msgstr "不能启动线程来拷贝数据:%s"
 
-#: transport-helper.c:1514
+#: transport-helper.c:1515
 #, c-format
 msgid "%s process failed to wait"
 msgstr "%s 进程等待失败"
 
-#: transport-helper.c:1518
+#: transport-helper.c:1519
 #, c-format
 msgid "%s process failed"
 msgstr "%s 进程失败"
 
-#: transport-helper.c:1536 transport-helper.c:1545
+#: transport-helper.c:1537 transport-helper.c:1546
 msgid "can't start thread for copying data"
 msgstr "不能启动线程来拷贝数据"
 
@@ -8688,23 +8929,23 @@ msgstr ""
 msgid "Aborting."
 msgstr "正在终止。"
 
-#: transport.c:1315
+#: transport.c:1316
 msgid "failed to push all needed submodules"
 msgstr "不能推送全部需要的子模组"
 
-#: tree-walk.c:32
+#: tree-walk.c:33
 msgid "too-short tree object"
 msgstr "太短的树对象"
 
-#: tree-walk.c:38
+#: tree-walk.c:39
 msgid "malformed mode in tree entry"
 msgstr "树对象中的条目模式错误"
 
-#: tree-walk.c:42
+#: tree-walk.c:43
 msgid "empty filename in tree entry"
 msgstr "树对象条目中空的文件名"
 
-#: tree-walk.c:117
+#: tree-walk.c:118
 msgid "too-short tree file"
 msgstr "太短的树文件"
 
@@ -8953,7 +9194,7 @@ msgstr ""
 msgid "Updating index flags"
 msgstr "正在更新索引标志"
 
-#: upload-pack.c:1550
+#: upload-pack.c:1543
 msgid "expected flush after fetch arguments"
 msgstr "在 fetch 参数之后应该有一个 flush 包"
 
@@ -8990,72 +9231,102 @@ msgstr "无效的 '..' 路径片段"
 msgid "Fetching objects"
 msgstr "正在获取对象"
 
-#: worktree.c:236 builtin/am.c:2103
+#: worktree.c:238 builtin/am.c:2103
 #, c-format
 msgid "failed to read '%s'"
 msgstr "读取 '%s' 失败"
 
-#: worktree.c:283
+#: worktree.c:304
 #, c-format
 msgid "'%s' at main working tree is not the repository directory"
 msgstr "在主工作区的 '%s' 不是仓库目录"
 
-#: worktree.c:294
+#: worktree.c:315
 #, c-format
 msgid "'%s' file does not contain absolute path to the working tree location"
 msgstr "文件 '%s' 不包含工作区的绝对路径"
 
-#: worktree.c:306
+#: worktree.c:327
 #, c-format
 msgid "'%s' does not exist"
 msgstr "'%s' 不存在"
 
-#: worktree.c:312
+#: worktree.c:333
 #, c-format
 msgid "'%s' is not a .git file, error code %d"
 msgstr "'%s' 不是一个 .git 文件,错误码 %d"
 
-#: worktree.c:321
+#: worktree.c:342
 #, c-format
 msgid "'%s' does not point back to '%s'"
 msgstr "'%s' 没有指回到 '%s'"
 
-#: worktree.c:587
+#: worktree.c:608
 msgid "not a directory"
 msgstr "不是一个目录"
 
-#: worktree.c:596
+#: worktree.c:617
 msgid ".git is not a file"
 msgstr ".git 不是一个文件"
 
-#: worktree.c:598
+#: worktree.c:619
 msgid ".git file broken"
 msgstr ".git 文件损坏"
 
-#: worktree.c:600
+#: worktree.c:621
 msgid ".git file incorrect"
 msgstr ".git 文件不正确"
 
-#: worktree.c:670
+#: worktree.c:727
 msgid "not a valid path"
 msgstr "不是一个有效的路径"
 
-#: worktree.c:676
+#: worktree.c:733
 msgid "unable to locate repository; .git is not a file"
 msgstr "无法定位仓库,.git 不是一个文件"
 
-#: worktree.c:679
+#: worktree.c:737
+msgid "unable to locate repository; .git file does not reference a repository"
+msgstr "无法定位仓库,.git 文件没有指向一个仓库"
+
+#: worktree.c:741
 msgid "unable to locate repository; .git file broken"
 msgstr "无法定位仓库,.git 文件损坏"
 
-#: worktree.c:685
+#: worktree.c:747
 msgid "gitdir unreadable"
 msgstr "gitdir 不可读"
 
-#: worktree.c:689
+#: worktree.c:751
 msgid "gitdir incorrect"
 msgstr "gitdir 不正确"
 
+#: worktree.c:776
+msgid "not a valid directory"
+msgstr "不是一个有效的目录"
+
+#: worktree.c:782
+msgid "gitdir file does not exist"
+msgstr "gitdir 文件不存在"
+
+#: worktree.c:787 worktree.c:796
+#, c-format
+msgid "unable to read gitdir file (%s)"
+msgstr "无法读取 gitdir 文件(%s)"
+
+#: worktree.c:806
+#, c-format
+msgid "short read (expected %<PRIuMAX> bytes, read %<PRIuMAX>)"
+msgstr "读取过短(期望 %<PRIuMAX> 字节,读取 %<PRIuMAX>)"
+
+#: worktree.c:814
+msgid "invalid gitdir file"
+msgstr "无效的 gitdir 文件"
+
+#: worktree.c:822
+msgid "gitdir file points to non-existent location"
+msgstr "gitdir 文件指向一个不存在的位置"
+
 #: wrapper.c:197 wrapper.c:367
 #, c-format
 msgid "could not open '%s' for reading and writing"
@@ -9105,11 +9376,11 @@ msgstr "  (酌情使用 \"git add/rm <文件>...\" 标记解决方案)"
 msgid "  (use \"git rm <file>...\" to mark resolution)"
 msgstr "  (使用 \"git rm <文件>...\" 标记解决方案)"
 
-#: wt-status.c:211 wt-status.c:1070
+#: wt-status.c:211 wt-status.c:1072
 msgid "Changes to be committed:"
 msgstr "要提交的变更:"
 
-#: wt-status.c:234 wt-status.c:1079
+#: wt-status.c:234 wt-status.c:1081
 msgid "Changes not staged for commit:"
 msgstr "尚未暂存以备提交的变更:"
 
@@ -9215,22 +9486,22 @@ msgstr "修改的内容, "
 msgid "untracked content, "
 msgstr "未跟踪的内容, "
 
-#: wt-status.c:903
+#: wt-status.c:905
 #, 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:934
+#: wt-status.c:936
 msgid "Submodules changed but not updated:"
 msgstr "子模组已修改但尚未更新:"
 
-#: wt-status.c:936
+#: wt-status.c:938
 msgid "Submodule changes to be committed:"
 msgstr "要提交的子模组变更:"
 
-#: wt-status.c:1018
+#: wt-status.c:1020
 msgid ""
 "Do not modify or remove the line above.\n"
 "Everything below it will be ignored."
@@ -9238,7 +9509,7 @@ msgstr ""
 "不要改动或删除上面的一行。\n"
 "其下所有内容都将被忽略。"
 
-#: wt-status.c:1110
+#: wt-status.c:1112
 #, c-format
 msgid ""
 "\n"
@@ -9249,77 +9520,77 @@ msgstr ""
 "花了 %.2f 秒才计算出分支的领先/落后范围。\n"
 "为避免,您可以使用 '--no-ahead-behind'。\n"
 
-#: wt-status.c:1140
+#: wt-status.c:1142
 msgid "You have unmerged paths."
 msgstr "您有尚未合并的路径。"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1143
+#: wt-status.c:1145
 msgid "  (fix conflicts and run \"git commit\")"
 msgstr "  (解决冲突并运行 \"git commit\")"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1145
+#: wt-status.c:1147
 msgid "  (use \"git merge --abort\" to abort the merge)"
 msgstr "  (使用 \"git merge --abort\" 终止合并)"
 
-#: wt-status.c:1149
+#: wt-status.c:1151
 msgid "All conflicts fixed but you are still merging."
 msgstr "所有冲突已解决但您仍处于合并中。"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1152
+#: wt-status.c:1154
 msgid "  (use \"git commit\" to conclude merge)"
 msgstr "  (使用 \"git commit\" 结束合并)"
 
-#: wt-status.c:1161
+#: wt-status.c:1163
 msgid "You are in the middle of an am session."
 msgstr "您正处于 am 操作过程中。"
 
-#: wt-status.c:1164
+#: wt-status.c:1166
 msgid "The current patch is empty."
 msgstr "当前的补丁为空。"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1168
+#: wt-status.c:1170
 msgid "  (fix conflicts and then run \"git am --continue\")"
 msgstr "  (解决冲突,然后运行 \"git am --continue\")"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1170
+#: wt-status.c:1172
 msgid "  (use \"git am --skip\" to skip this patch)"
 msgstr "  (使用 \"git am --skip\" 跳过此补丁)"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1172
+#: wt-status.c:1174
 msgid "  (use \"git am --abort\" to restore the original branch)"
 msgstr "  (使用 \"git am --abort\" 恢复原有分支)"
 
-#: wt-status.c:1305
+#: wt-status.c:1307
 msgid "git-rebase-todo is missing."
 msgstr "git-rebase-todo 丢失。"
 
-#: wt-status.c:1307
+#: wt-status.c:1309
 msgid "No commands done."
 msgstr "没有命令被执行。"
 
-#: wt-status.c:1310
+#: wt-status.c:1312
 #, 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:1321
+#: wt-status.c:1323
 #, c-format
 msgid "  (see more in file %s)"
 msgstr "  (更多参见文件 %s)"
 
-#: wt-status.c:1326
+#: wt-status.c:1328
 msgid "No commands remaining."
 msgstr "未剩下任何命令。"
 
-#: wt-status.c:1329
+#: wt-status.c:1331
 #, c-format
 msgid "Next command to do (%d remaining command):"
 msgid_plural "Next commands to do (%d remaining commands):"
@@ -9327,194 +9598,202 @@ msgstr[0] "接下来要执行的命令(剩余 %d 条命令):"
 msgstr[1] "接下来要执行的命令(剩余 %d 条命令):"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1337
+#: wt-status.c:1339
 msgid "  (use \"git rebase --edit-todo\" to view and edit)"
 msgstr "  (使用 \"git rebase --edit-todo\" 来查看和编辑)"
 
-#: wt-status.c:1349
+#: wt-status.c:1351
 #, c-format
 msgid "You are currently rebasing branch '%s' on '%s'."
 msgstr "您在执行将分支 '%s' 变基到 '%s' 的操作。"
 
-#: wt-status.c:1354
+#: wt-status.c:1356
 msgid "You are currently rebasing."
 msgstr "您在执行变基操作。"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1367
+#: wt-status.c:1369
 msgid "  (fix conflicts and then run \"git rebase --continue\")"
 msgstr "  (解决冲突,然后运行 \"git rebase --continue\")"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1369
+#: wt-status.c:1371
 msgid "  (use \"git rebase --skip\" to skip this patch)"
 msgstr "  (使用 \"git rebase --skip\" 跳过此补丁)"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1371
+#: wt-status.c:1373
 msgid "  (use \"git rebase --abort\" to check out the original branch)"
 msgstr "  (使用 \"git rebase --abort\" 以检出原有分支)"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1378
+#: wt-status.c:1380
 msgid "  (all conflicts fixed: run \"git rebase --continue\")"
 msgstr "  (所有冲突已解决:运行 \"git rebase --continue\")"
 
-#: wt-status.c:1382
+#: wt-status.c:1384
 #, c-format
 msgid ""
 "You are currently splitting a commit while rebasing branch '%s' on '%s'."
 msgstr "您在执行将分支 '%s' 变基到 '%s' 的操作时拆分提交。"
 
-#: wt-status.c:1387
+#: wt-status.c:1389
 msgid "You are currently splitting a commit during a rebase."
 msgstr "您在执行变基操作时拆分提交。"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1390
+#: wt-status.c:1392
 msgid "  (Once your working directory is clean, run \"git rebase --continue\")"
 msgstr "  (一旦您工作目录提交干净后,运行 \"git rebase --continue\")"
 
-#: wt-status.c:1394
+#: wt-status.c:1396
 #, c-format
 msgid "You are currently editing a commit while rebasing branch '%s' on '%s'."
 msgstr "您在执行将分支 '%s' 变基到 '%s' 的操作时编辑提交。"
 
-#: wt-status.c:1399
+#: wt-status.c:1401
 msgid "You are currently editing a commit during a rebase."
 msgstr "您在执行变基操作时编辑提交。"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1402
+#: wt-status.c:1404
 msgid "  (use \"git commit --amend\" to amend the current commit)"
 msgstr "  (使用 \"git commit --amend\" 修补当前提交)"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1404
+#: wt-status.c:1406
 msgid ""
 "  (use \"git rebase --continue\" once you are satisfied with your changes)"
 msgstr "  (当您对您的修改满意后执行 \"git rebase --continue\")"
 
-#: wt-status.c:1415
+#: wt-status.c:1417
 msgid "Cherry-pick currently in progress."
 msgstr "拣选操作正在进行中。"
 
-#: wt-status.c:1418
+#: wt-status.c:1420
 #, c-format
 msgid "You are currently cherry-picking commit %s."
 msgstr "您在执行拣选提交 %s 的操作。"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1425
+#: wt-status.c:1427
 msgid "  (fix conflicts and run \"git cherry-pick --continue\")"
 msgstr "  (解决冲突并运行 \"git cherry-pick --continue\")"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1428
+#: wt-status.c:1430
 msgid "  (run \"git cherry-pick --continue\" to continue)"
 msgstr "  (执行 \"git cherry-pick --continue\" 以继续)"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1431
+#: wt-status.c:1433
 msgid "  (all conflicts fixed: run \"git cherry-pick --continue\")"
 msgstr "  (所有冲突已解决:运行 \"git cherry-pick --continue\")"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1433
+#: wt-status.c:1435
 msgid "  (use \"git cherry-pick --skip\" to skip this patch)"
 msgstr "  (使用 \"git cherry-pick --skip\" 跳过此补丁)"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1435
+#: wt-status.c:1437
 msgid "  (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)"
 msgstr "  (使用 \"git cherry-pick --abort\" 以取消拣选操作)"
 
-#: wt-status.c:1445
+#: wt-status.c:1447
 msgid "Revert currently in progress."
 msgstr "还原操作正在行中。"
 
-#: wt-status.c:1448
+#: wt-status.c:1450
 #, c-format
 msgid "You are currently reverting commit %s."
 msgstr "您在执行反转提交 %s 的操作。"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1454
+#: wt-status.c:1456
 msgid "  (fix conflicts and run \"git revert --continue\")"
 msgstr "  (解决冲突并执行 \"git revert --continue\")"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1457
+#: wt-status.c:1459
 msgid "  (run \"git revert --continue\" to continue)"
 msgstr "  (执行 \"git revert --continue\" 以继续)"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1460
+#: wt-status.c:1462
 msgid "  (all conflicts fixed: run \"git revert --continue\")"
 msgstr "  (所有冲突已解决:执行 \"git revert --continue\")"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1462
+#: wt-status.c:1464
 msgid "  (use \"git revert --skip\" to skip this patch)"
 msgstr "  (使用 \"git revert --skip\" 跳过此补丁)"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1464
+#: wt-status.c:1466
 msgid "  (use \"git revert --abort\" to cancel the revert operation)"
 msgstr "  (使用 \"git revert --abort\" 以取消反转提交操作)"
 
-#: wt-status.c:1474
+#: wt-status.c:1476
 #, c-format
 msgid "You are currently bisecting, started from branch '%s'."
 msgstr "您在执行从分支 '%s' 开始的二分查找操作。"
 
-#: wt-status.c:1478
+#: wt-status.c:1480
 msgid "You are currently bisecting."
 msgstr "您在执行二分查找操作。"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1481
+#: wt-status.c:1483
 msgid "  (use \"git bisect reset\" to get back to the original branch)"
 msgstr "  (使用 \"git bisect reset\" 以回到原有分支)"
 
-#: wt-status.c:1492
+#: wt-status.c:1494
 #, c-format
 msgid "You are in a sparse checkout with %d%% of tracked files present."
 msgstr "您处于稀疏签出状态,包含 %d%% 的跟踪文件"
 
-#: wt-status.c:1731
+#: wt-status.c:1733
 msgid "On branch "
 msgstr "位于分支 "
 
-#: wt-status.c:1738
+#: wt-status.c:1740
 msgid "interactive rebase in progress; onto "
 msgstr "交互式变基操作正在进行中;至 "
 
-#: wt-status.c:1740
+#: wt-status.c:1742
 msgid "rebase in progress; onto "
 msgstr "变基操作正在进行中;至 "
 
-#: wt-status.c:1750
+#: wt-status.c:1747
+msgid "HEAD detached at "
+msgstr "头指针分离于 "
+
+#: wt-status.c:1749
+msgid "HEAD detached from "
+msgstr "头指针分离自 "
+
+#: wt-status.c:1752
 msgid "Not currently on any branch."
 msgstr "当前不在任何分支上。"
 
-#: wt-status.c:1767
+#: wt-status.c:1769
 msgid "Initial commit"
 msgstr "初始提交"
 
-#: wt-status.c:1768
+#: wt-status.c:1770
 msgid "No commits yet"
 msgstr "尚无提交"
 
-#: wt-status.c:1782
+#: wt-status.c:1784
 msgid "Untracked files"
 msgstr "未跟踪的文件"
 
-#: wt-status.c:1784
+#: wt-status.c:1786
 msgid "Ignored files"
 msgstr "忽略的文件"
 
-#: wt-status.c:1788
+#: wt-status.c:1790
 #, c-format
 msgid ""
 "It took %.2f seconds to enumerate untracked files. 'status -uno'\n"
@@ -9524,97 +9803,97 @@ msgstr ""
 "耗费了 %.2f 秒以枚举未跟踪的文件。'status -uno' 也许能提高速度,\n"
 "但您需要小心不要忘了添加新文件(参见 'git help status')。"
 
-#: wt-status.c:1794
+#: wt-status.c:1796
 #, c-format
 msgid "Untracked files not listed%s"
 msgstr "未跟踪的文件没有列出%s"
 
 #  译者:中文字符串拼接,可删除前导空格
-#: wt-status.c:1796
+#: wt-status.c:1798
 msgid " (use -u option to show untracked files)"
 msgstr "(使用 -u 参数显示未跟踪的文件)"
 
-#: wt-status.c:1802
+#: wt-status.c:1804
 msgid "No changes"
 msgstr "没有修改"
 
-#: wt-status.c:1807
+#: wt-status.c:1809
 #, 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:1811
+#: wt-status.c:1813
 #, c-format
 msgid "no changes added to commit\n"
 msgstr "修改尚未加入提交\n"
 
-#: wt-status.c:1815
+#: wt-status.c:1817
 #, c-format
 msgid ""
 "nothing added to commit but untracked files present (use \"git add\" to "
 "track)\n"
 msgstr "提交为空,但是存在尚未跟踪的文件(使用 \"git add\" 建立跟踪)\n"
 
-#: wt-status.c:1819
+#: wt-status.c:1821
 #, c-format
 msgid "nothing added to commit but untracked files present\n"
 msgstr "提交为空,但是存在尚未跟踪的文件\n"
 
 #  译者:中文字符串拼接,可删除前导空格
-#: wt-status.c:1823
+#: wt-status.c:1825
 #, c-format
 msgid "nothing to commit (create/copy files and use \"git add\" to track)\n"
 msgstr "无文件要提交(创建/拷贝文件并使用 \"git add\" 建立跟踪)\n"
 
-#: wt-status.c:1827 wt-status.c:1833
+#: wt-status.c:1829 wt-status.c:1835
 #, c-format
 msgid "nothing to commit\n"
 msgstr "无文件要提交\n"
 
 #  译者:中文字符串拼接,可删除前导空格
-#: wt-status.c:1830
+#: wt-status.c:1832
 #, c-format
 msgid "nothing to commit (use -u to show untracked files)\n"
 msgstr "无文件要提交(使用 -u 显示未跟踪的文件)\n"
 
 #  译者:中文字符串拼接,可删除前导空格
-#: wt-status.c:1835
+#: wt-status.c:1837
 #, c-format
 msgid "nothing to commit, working tree clean\n"
 msgstr "无文件要提交,干净的工作区\n"
 
-#: wt-status.c:1940
+#: wt-status.c:1942
 msgid "No commits yet on "
 msgstr "尚无提交在 "
 
-#: wt-status.c:1944
+#: wt-status.c:1946
 msgid "HEAD (no branch)"
 msgstr "HEAD(非分支)"
 
-#: wt-status.c:1975
+#: wt-status.c:1977
 msgid "different"
 msgstr "不同"
 
 #  译者:注意保持句尾空格
-#: wt-status.c:1977 wt-status.c:1985
+#: wt-status.c:1979 wt-status.c:1987
 msgid "behind "
 msgstr "落后 "
 
-#: wt-status.c:1980 wt-status.c:1983
+#: wt-status.c:1982 wt-status.c:1985
 msgid "ahead "
 msgstr "领先 "
 
 #. TRANSLATORS: the action is e.g. "pull with rebase"
-#: wt-status.c:2505
+#: wt-status.c:2507
 #, c-format
 msgid "cannot %s: You have unstaged changes."
 msgstr "不能%s:您有未暂存的变更。"
 
-#: wt-status.c:2511
+#: wt-status.c:2513
 msgid "additionally, your index contains uncommitted changes."
 msgstr "另外,您的索引中包含未提交的变更。"
 
-#: wt-status.c:2513
+#: wt-status.c:2515
 #, c-format
 msgid "cannot %s: Your index contains uncommitted changes."
 msgstr "不能%s:您的索引中包含未提交的变更。"
@@ -9628,126 +9907,131 @@ msgstr "删除 '%s' 失败"
 msgid "git add [<options>] [--] <pathspec>..."
 msgstr "git add [<选项>] [--] <路径规格>..."
 
-#: builtin/add.c:88
+#: builtin/add.c:58
+#, c-format
+msgid "cannot chmod %cx '%s'"
+msgstr "不能 chmod %cx '%s'"
+
+#: builtin/add.c:96
 #, c-format
 msgid "unexpected diff status %c"
 msgstr "意外的差异状态 %c"
 
-#: builtin/add.c:93 builtin/commit.c:285
+#: builtin/add.c:101 builtin/commit.c:285
 msgid "updating files failed"
 msgstr "更新文件失败"
 
-#: builtin/add.c:103
+#: builtin/add.c:111
 #, c-format
 msgid "remove '%s'\n"
 msgstr "删除 '%s'\n"
 
-#: builtin/add.c:178
+#: builtin/add.c:186
 msgid "Unstaged changes after refreshing the index:"
 msgstr "刷新索引之后尚未被暂存的变更:"
 
-#: builtin/add.c:272 builtin/rev-parse.c:908
+#: builtin/add.c:280 builtin/rev-parse.c:991
 msgid "Could not read the index"
 msgstr "不能读取索引"
 
-#: builtin/add.c:283
+#: builtin/add.c:291
 #, c-format
 msgid "Could not open '%s' for writing."
 msgstr "无法为写入打开 '%s'。"
 
-#: builtin/add.c:287
+#: builtin/add.c:295
 msgid "Could not write patch"
 msgstr "不能生成补丁"
 
-#: builtin/add.c:290
+#: builtin/add.c:298
 msgid "editing patch failed"
 msgstr "编辑补丁失败"
 
-#: builtin/add.c:293
+#: builtin/add.c:301
 #, c-format
 msgid "Could not stat '%s'"
 msgstr "不能对 '%s' 调用 stat"
 
-#: builtin/add.c:295
+#: builtin/add.c:303
 msgid "Empty patch. Aborted."
 msgstr "空补丁。异常终止。"
 
-#: builtin/add.c:300
+#: builtin/add.c:308
 #, c-format
 msgid "Could not apply '%s'"
 msgstr "不能应用 '%s'"
 
-#: builtin/add.c:308
+#: builtin/add.c:316
 msgid "The following paths are ignored by one of your .gitignore files:\n"
 msgstr "下列路径根据您的一个 .gitignore 文件而被忽略:\n"
 
-#: builtin/add.c:328 builtin/clean.c:904 builtin/fetch.c:166 builtin/mv.c:124
+#: builtin/add.c:336 builtin/clean.c:904 builtin/fetch.c:169 builtin/mv.c:124
 #: builtin/prune-packed.c:14 builtin/pull.c:204 builtin/push.c:559
 #: builtin/remote.c:1427 builtin/rm.c:242 builtin/send-pack.c:190
 msgid "dry run"
 msgstr "演习"
 
-#: builtin/add.c:331
+#: builtin/add.c:339
 msgid "interactive picking"
 msgstr "交互式拣选"
 
-#: builtin/add.c:332 builtin/checkout.c:1547 builtin/reset.c:308
+#: builtin/add.c:340 builtin/checkout.c:1546 builtin/reset.c:308
 msgid "select hunks interactively"
 msgstr "交互式挑选数据块"
 
-#: builtin/add.c:333
+#: builtin/add.c:341
 msgid "edit current diff and apply"
 msgstr "编辑当前差异并应用"
 
-#: builtin/add.c:334
+#: builtin/add.c:342
 msgid "allow adding otherwise ignored files"
 msgstr "允许添加忽略的文件"
 
-#: builtin/add.c:335
+#: builtin/add.c:343
 msgid "update tracked files"
 msgstr "更新已跟踪的文件"
 
-#: builtin/add.c:336
+#: builtin/add.c:344
 msgid "renormalize EOL of tracked files (implies -u)"
 msgstr "对已跟踪文件(暗含 -u)重新归一换行符"
 
-#: builtin/add.c:337
+#: builtin/add.c:345
 msgid "record only the fact that the path will be added later"
 msgstr "只记录,该路径稍后再添加"
 
-#: builtin/add.c:338
+#: builtin/add.c:346
 msgid "add changes from all tracked and untracked files"
 msgstr "添加所有改变的已跟踪文件和未跟踪文件"
 
-#: builtin/add.c:341
+#: builtin/add.c:349
 msgid "ignore paths removed in the working tree (same as --no-all)"
 msgstr "忽略工作区中移除的路径(和 --no-all 相同)"
 
-#: builtin/add.c:343
+#: builtin/add.c:351
 msgid "don't add, only refresh the index"
 msgstr "不添加,只刷新索引"
 
-#: builtin/add.c:344
+#: builtin/add.c:352
 msgid "just skip files which cannot be added because of errors"
 msgstr "跳过因出错不能添加的文件"
 
-#: builtin/add.c:345
+#: builtin/add.c:353
 msgid "check if - even missing - files are ignored in dry run"
 msgstr "检查在演习模式下文件(即使不存在)是否被忽略"
 
-#: builtin/add.c:347 builtin/update-index.c:1004
+#: builtin/add.c:355 builtin/update-index.c:1004
 msgid "override the executable bit of the listed files"
 msgstr "覆盖列表里文件的可执行位"
 
-#: builtin/add.c:349
+#: builtin/add.c:357
 msgid "warn when adding an embedded repository"
 msgstr "创建一个嵌入式仓库时给予警告"
 
-#: builtin/add.c:351
+#: builtin/add.c:359
 msgid "backend for `git stash -p`"
 msgstr "`git stash -p` 的后端"
 
-#: builtin/add.c:369
+#: builtin/add.c:377
 #, c-format
 msgid ""
 "You've added another git repository inside your current repository.\n"
@@ -9775,12 +10059,12 @@ msgstr ""
 "\n"
 "参见 \"git help submodule\" 获取更多信息。"
 
-#: builtin/add.c:397
+#: builtin/add.c:405
 #, c-format
 msgid "adding embedded git repository: %s"
 msgstr "正在添加嵌入式 git 仓库:%s"
 
-#: builtin/add.c:416
+#: builtin/add.c:424
 msgid ""
 "Use -f if you really want to add them.\n"
 "Turn this message off by running\n"
@@ -9790,47 +10074,47 @@ msgstr ""
 "运行下面的命令来关闭本消息\n"
 "\"git config advice.addIgnoredFile false\""
 
-#: builtin/add.c:425
+#: builtin/add.c:433
 msgid "adding files failed"
 msgstr "添加文件失败"
 
-#: builtin/add.c:453 builtin/commit.c:345
+#: builtin/add.c:461 builtin/commit.c:345
 msgid "--pathspec-from-file is incompatible with --interactive/--patch"
 msgstr "--pathspec-from-file 与 --interactive/--patch 不兼容"
 
-#: builtin/add.c:470
+#: builtin/add.c:478
 msgid "--pathspec-from-file is incompatible with --edit"
 msgstr "--pathspec-from-file 与 --edit 不兼容"
 
-#: builtin/add.c:482
+#: builtin/add.c:490
 msgid "-A and -u are mutually incompatible"
 msgstr "-A 和 -u 选项互斥"
 
-#: builtin/add.c:485
+#: builtin/add.c:493
 msgid "Option --ignore-missing can only be used together with --dry-run"
 msgstr "选项 --ignore-missing 只能和 --dry-run 同时使用"
 
-#: builtin/add.c:489
+#: builtin/add.c:497
 #, c-format
 msgid "--chmod param '%s' must be either -x or +x"
 msgstr "参数 --chmod 取值 '%s' 必须是 -x 或 +x"
 
-#: builtin/add.c:507 builtin/checkout.c:1715 builtin/commit.c:351
-#: builtin/reset.c:328 builtin/rm.c:272 builtin/stash.c:1502
+#: builtin/add.c:515 builtin/checkout.c:1714 builtin/commit.c:351
+#: builtin/reset.c:328 builtin/rm.c:272 builtin/stash.c:1569
 msgid "--pathspec-from-file is incompatible with pathspec arguments"
 msgstr "--pathspec-from-file 与路径表达式参数不兼容"
 
-#: builtin/add.c:514 builtin/checkout.c:1727 builtin/commit.c:357
-#: builtin/reset.c:334 builtin/rm.c:278 builtin/stash.c:1508
+#: builtin/add.c:522 builtin/checkout.c:1726 builtin/commit.c:357
+#: builtin/reset.c:334 builtin/rm.c:278 builtin/stash.c:1575
 msgid "--pathspec-file-nul requires --pathspec-from-file"
 msgstr "--pathspec-file-nul 需要 --pathspec-from-file"
 
-#: builtin/add.c:518
+#: builtin/add.c:526
 #, c-format
 msgid "Nothing specified, nothing added.\n"
 msgstr "没有指定文件,也没有文件被添加。\n"
 
-#: builtin/add.c:520
+#: builtin/add.c:528
 msgid ""
 "Maybe you wanted to say 'git add .'?\n"
 "Turn this message off by running\n"
@@ -10077,7 +10361,7 @@ msgid "allow fall back on 3way merging if needed"
 msgstr "如果必要,允许使用三方合并。"
 
 #: builtin/am.c:2225 builtin/init-db.c:560 builtin/prune-packed.c:16
-#: builtin/repack.c:335 builtin/stash.c:815
+#: builtin/repack.c:334 builtin/stash.c:882
 msgid "be quiet"
 msgstr "静默模式"
 
@@ -10120,17 +10404,17 @@ msgid "pass it through git-apply"
 msgstr "传递给 git-apply"
 
 #: builtin/am.c:2263 builtin/commit.c:1395 builtin/fmt-merge-msg.c:17
-#: builtin/fmt-merge-msg.c:20 builtin/grep.c:903 builtin/merge.c:260
+#: builtin/fmt-merge-msg.c:20 builtin/grep.c:904 builtin/merge.c:261
 #: builtin/pull.c:141 builtin/pull.c:200 builtin/pull.c:217
-#: builtin/rebase.c:1341 builtin/repack.c:346 builtin/repack.c:350
-#: builtin/repack.c:352 builtin/show-branch.c:650 builtin/show-ref.c:172
-#: builtin/tag.c:404 parse-options.h:154 parse-options.h:175
+#: builtin/rebase.c:1347 builtin/repack.c:345 builtin/repack.c:349
+#: builtin/repack.c:351 builtin/show-branch.c:650 builtin/show-ref.c:172
+#: builtin/tag.c:436 parse-options.h:154 parse-options.h:175
 #: parse-options.h:316
 msgid "n"
 msgstr "n"
 
-#: builtin/am.c:2269 builtin/branch.c:661 builtin/bugreport.c:136
-#: builtin/for-each-ref.c:38 builtin/replace.c:556 builtin/tag.c:438
+#: builtin/am.c:2269 builtin/branch.c:670 builtin/bugreport.c:136
+#: builtin/for-each-ref.c:38 builtin/replace.c:556 builtin/tag.c:470
 #: builtin/verify-tag.c:38
 msgid "format"
 msgstr "格式"
@@ -10156,12 +10440,12 @@ msgid "skip the current patch"
 msgstr "跳过当前补丁"
 
 #: builtin/am.c:2287
-msgid "restore the original branch and abort the patching operation."
-msgstr "恢复原始分支并终止打补丁操作"
+msgid "restore the original branch and abort the patching operation"
+msgstr "恢复原始分支并终止打补丁操作"
 
 #: builtin/am.c:2290
-msgid "abort the patching operation but keep HEAD where it is."
-msgstr "终止补丁操作但保持 HEAD 不变"
+msgid "abort the patching operation but keep HEAD where it is"
+msgstr "终止补丁操作但保持 HEAD 不变"
 
 #: builtin/am.c:2294
 msgid "show the patch being applied"
@@ -10176,12 +10460,12 @@ msgid "use current timestamp for author date"
 msgstr "用当前时间作为作者日期"
 
 #: builtin/am.c:2303 builtin/commit-tree.c:120 builtin/commit.c:1515
-#: builtin/merge.c:297 builtin/pull.c:175 builtin/rebase.c:536
-#: builtin/rebase.c:1394 builtin/revert.c:117 builtin/tag.c:419
+#: builtin/merge.c:298 builtin/pull.c:175 builtin/rebase.c:538
+#: builtin/rebase.c:1400 builtin/revert.c:117 builtin/tag.c:451
 msgid "key-id"
 msgstr "key-id"
 
-#: builtin/am.c:2304 builtin/rebase.c:537 builtin/rebase.c:1395
+#: builtin/am.c:2304 builtin/rebase.c:539 builtin/rebase.c:1401
 msgid "GPG-sign commits"
 msgstr "使用 GPG 签名提交"
 
@@ -10262,25 +10546,10 @@ msgid "git bisect--helper --bisect-reset [<commit>]"
 msgstr "git bisect--helper --bisect-reset [<提交>]"
 
 #: builtin/bisect--helper.c:24
-msgid ""
-"git bisect--helper --bisect-write [--no-log] <state> <revision> <good_term> "
-"<bad_term>"
-msgstr ""
-"git bisect--helper --bisect-write [--no-log] <状态> <版本> <好-术语> <坏-术语"
-">"
-
-#: builtin/bisect--helper.c:25
-msgid ""
-"git bisect--helper --bisect-check-and-set-terms <command> <good_term> "
-"<bad_term>"
-msgstr ""
-"git bisect--helper --bisect-check-and-set-terms <命令> <好-术语> <坏-术语>"
-
-#: builtin/bisect--helper.c:26
 msgid "git bisect--helper --bisect-next-check <good_term> <bad_term> [<term>]"
 msgstr "git bisect--helper --bisect-next-check <好-术语> <坏-术语> [<术语>]"
 
-#: builtin/bisect--helper.c:27
+#: builtin/bisect--helper.c:25
 msgid ""
 "git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad | --"
 "term-new]"
@@ -10288,7 +10557,7 @@ msgstr ""
 "git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad | --"
 "term-new]"
 
-#: builtin/bisect--helper.c:28
+#: builtin/bisect--helper.c:26
 msgid ""
 "git bisect--helper --bisect-start [--term-{new,bad}=<term> --term-{old,good}"
 "=<term>] [--no-checkout] [--first-parent] [<bad> [<good>...]] [--] "
@@ -10297,88 +10566,92 @@ msgstr ""
 "git bisect--helper --bisect-start [--term-{new,bad}=<术语> --term-{old,good}"
 "=<术语>] [--no-checkout] [--first-parent] [<坏> [<好>...]] [--] [<路径>...]"
 
-#: builtin/bisect--helper.c:30
+#: builtin/bisect--helper.c:28
 msgid "git bisect--helper --bisect-next"
 msgstr "git bisect--helper --bisect-next"
 
-#: builtin/bisect--helper.c:31
-msgid "git bisect--helper --bisect-auto-next"
-msgstr "git bisect--helper --bisect-auto-next"
-
-#: builtin/bisect--helper.c:32
+#: builtin/bisect--helper.c:29
 msgid "git bisect--helper --bisect-state (bad|new) [<rev>]"
 msgstr "git bisect--helper --bisect-state (bad|new) [<版本>]"
 
-#: builtin/bisect--helper.c:33
+#: builtin/bisect--helper.c:30
 msgid "git bisect--helper --bisect-state (good|old) [<rev>...]"
 msgstr "git bisect--helper --bisect-state (good|old) [<版本>...]"
 
-#: builtin/bisect--helper.c:108
+#: builtin/bisect--helper.c:31
+msgid "git bisect--helper --bisect-replay <filename>"
+msgstr "git bisect--helper --bisect-replay <文件>"
+
+#: builtin/bisect--helper.c:32
+msgid "git bisect--helper --bisect-skip [(<rev>|<range>)...]"
+msgstr "git bisect--helper --bisect-skip [(<版本>|<范围>)...]"
+
+#: builtin/bisect--helper.c:107
 #, c-format
 msgid "cannot open file '%s' in mode '%s'"
 msgstr "不能以 '%2$s' 模式打开文件 '%1$s'"
 
-#: builtin/bisect--helper.c:115
+#: builtin/bisect--helper.c:114
 #, c-format
 msgid "could not write to file '%s'"
 msgstr "不能写入文件 '%s'"
 
-#: builtin/bisect--helper.c:154
+#: builtin/bisect--helper.c:153
 #, c-format
 msgid "'%s' is not a valid term"
 msgstr "'%s' 不是一个有效的术语"
 
-#: builtin/bisect--helper.c:158
+#: builtin/bisect--helper.c:157
 #, c-format
 msgid "can't use the builtin command '%s' as a term"
 msgstr "不能使用内置命令 '%s' 作为术语"
 
-#: builtin/bisect--helper.c:168
+#: builtin/bisect--helper.c:167
 #, c-format
 msgid "can't change the meaning of the term '%s'"
 msgstr "不能修改术语 '%s' 的含义"
 
-#: builtin/bisect--helper.c:178
+#: builtin/bisect--helper.c:177
 msgid "please use two different terms"
 msgstr "请使用两个不同的术语"
 
-#: builtin/bisect--helper.c:194
+#: builtin/bisect--helper.c:193
 #, c-format
 msgid "We are not bisecting.\n"
 msgstr "我们没有在二分查找。\n"
 
-#: builtin/bisect--helper.c:202
+#: builtin/bisect--helper.c:201
 #, c-format
 msgid "'%s' is not a valid commit"
 msgstr "'%s' 不是一个有效的提交"
 
-#: builtin/bisect--helper.c:211
+#: builtin/bisect--helper.c:210
 #, c-format
 msgid ""
 "could not check out original HEAD '%s'. Try 'git bisect reset <commit>'."
 msgstr "不能检出原始 HEAD '%s'。尝试 'git bisect reset <提交>'。"
 
-#: builtin/bisect--helper.c:255
+#: builtin/bisect--helper.c:254
 #, c-format
 msgid "Bad bisect_write argument: %s"
 msgstr "坏的 bisect_write 参数:%s"
 
-#: builtin/bisect--helper.c:260
+#: builtin/bisect--helper.c:259
 #, c-format
 msgid "couldn't get the oid of the rev '%s'"
 msgstr "无法获取版本 '%s' 的对象 ID"
 
-#: builtin/bisect--helper.c:272
+#: builtin/bisect--helper.c:271
 #, c-format
 msgid "couldn't open the file '%s'"
 msgstr "无法打开文件 '%s'"
 
-#: builtin/bisect--helper.c:298
+#: builtin/bisect--helper.c:297
 #, c-format
 msgid "Invalid command: you're currently in a %s/%s bisect"
 msgstr "无效的命令:您当前正处于一个 %s/%s 二分查找中"
 
-#: builtin/bisect--helper.c:325
+#: builtin/bisect--helper.c:324
 #, c-format
 msgid ""
 "You need to give me at least one %s and %s revision.\n"
@@ -10387,7 +10660,7 @@ msgstr ""
 "您需要给我至少一个 %s 和一个 %s 版本。\n"
 "为此您可以用 \"git bisect %s\" 和 \"git bisect %s\"。"
 
-#: builtin/bisect--helper.c:329
+#: builtin/bisect--helper.c:328
 #, c-format
 msgid ""
 "You need to start by \"git bisect start\".\n"
@@ -10398,7 +10671,7 @@ msgstr ""
 "然后需要提供我至少一个 %s 和一个 %s 版本。\n"
 "为此您可以用 \"git bisect %s\" 和 \"git bisect %s\" 命令。"
 
-#: builtin/bisect--helper.c:349
+#: builtin/bisect--helper.c:348
 #, c-format
 msgid "bisecting only with a %s commit"
 msgstr "在只有一个 %s 提交的情况下二分查找"
@@ -10408,22 +10681,22 @@ msgstr "在只有一个 %s 提交的情况下二分查找"
 #. translation. The program will only accept English input
 #. at this point.
 #.
-#: builtin/bisect--helper.c:357
+#: builtin/bisect--helper.c:356
 msgid "Are you sure [Y/n]? "
 msgstr "您确认么[Y/n]? "
 
-#: builtin/bisect--helper.c:418
+#: builtin/bisect--helper.c:417
 msgid "no terms defined"
 msgstr "未定义术语"
 
-#: builtin/bisect--helper.c:421
+#: builtin/bisect--helper.c:420
 #, c-format
 msgid ""
 "Your current terms are %s for the old state\n"
 "and %s for the new state.\n"
 msgstr "您当前针对旧状态的术语是 %s,对新状态的术语是 %s。\n"
 
-#: builtin/bisect--helper.c:431
+#: builtin/bisect--helper.c:430
 #, c-format
 msgid ""
 "invalid argument %s for 'git bisect terms'.\n"
@@ -10432,52 +10705,52 @@ msgstr ""
 "命令 'git bisect terms' 的参数 %s 无效。\n"
 "支持的选项有:--term-good|--term-old 和 --term-bad|--term-new。"
 
-#: builtin/bisect--helper.c:498
+#: builtin/bisect--helper.c:497 builtin/bisect--helper.c:1014
 msgid "revision walk setup failed\n"
 msgstr "版本遍历设置失败\n"
 
-#: builtin/bisect--helper.c:520
+#: builtin/bisect--helper.c:519
 #, c-format
 msgid "could not open '%s' for appending"
 msgstr "无法打开 '%s' 进行追加"
 
-#: builtin/bisect--helper.c:639 builtin/bisect--helper.c:652
+#: builtin/bisect--helper.c:638 builtin/bisect--helper.c:651
 msgid "'' is not a valid term"
 msgstr "'' 不是一个有效的术语"
 
-#: builtin/bisect--helper.c:662
+#: builtin/bisect--helper.c:661
 #, c-format
 msgid "unrecognized option: '%s'"
 msgstr "未识别的选项:'%s'"
 
-#: builtin/bisect--helper.c:666
+#: builtin/bisect--helper.c:665
 #, c-format
 msgid "'%s' does not appear to be a valid revision"
 msgstr "'%s' 看起来不是一个有效的版本"
 
-#: builtin/bisect--helper.c:697
+#: builtin/bisect--helper.c:696
 msgid "bad HEAD - I need a HEAD"
 msgstr "坏的 HEAD - 我需要一个 HEAD"
 
-#: builtin/bisect--helper.c:712
+#: builtin/bisect--helper.c:711
 #, c-format
 msgid "checking out '%s' failed. Try 'git bisect start <valid-branch>'."
 msgstr "检出 '%s' 失败。尝试 'git bisect start <有效分支>'。"
 
-#: builtin/bisect--helper.c:733
+#: builtin/bisect--helper.c:732
 msgid "won't bisect on cg-seek'ed tree"
 msgstr "不会在做了 cg-seek 的树上做二分查找"
 
-#: builtin/bisect--helper.c:736
+#: builtin/bisect--helper.c:735
 msgid "bad HEAD - strange symbolic ref"
 msgstr "坏的 HEAD - 奇怪的符号引用"
 
-#: builtin/bisect--helper.c:756
+#: builtin/bisect--helper.c:755
 #, c-format
 msgid "invalid ref: '%s'"
 msgstr "无效的引用:'%s'"
 
-#: builtin/bisect--helper.c:814
+#: builtin/bisect--helper.c:813
 msgid "You need to start by \"git bisect start\"\n"
 msgstr "您需要执行 \"git bisect start\" 来开始\n"
 
@@ -10486,91 +10759,101 @@ msgstr "您需要执行 \"git bisect start\" 来开始\n"
 #. translation. The program will only accept English input
 #. at this point.
 #.
-#: builtin/bisect--helper.c:825
+#: builtin/bisect--helper.c:824
 msgid "Do you want me to do it for you [Y/n]? "
 msgstr "您想让我为您这样做么[Y/n]? "
 
-#: builtin/bisect--helper.c:843
+#: builtin/bisect--helper.c:842
 msgid "Please call `--bisect-state` with at least one argument"
 msgstr "请使用至少一个参数调用 `--bisect-state`"
 
-#: builtin/bisect--helper.c:856
+#: builtin/bisect--helper.c:855
 #, c-format
 msgid "'git bisect %s' can take only one argument."
 msgstr "'git bisect %s' 只能带一个参数。"
 
-#: builtin/bisect--helper.c:868 builtin/bisect--helper.c:879
+#: builtin/bisect--helper.c:867 builtin/bisect--helper.c:878
 #, c-format
 msgid "Bad rev input: %s"
 msgstr "坏的版本输入:%s"
 
-#: builtin/bisect--helper.c:924
-msgid "reset the bisection state"
-msgstr "清除二分查找状态"
+#: builtin/bisect--helper.c:912
+msgid "We are not bisecting."
+msgstr "我们没有在二分查找。"
+
+#: builtin/bisect--helper.c:962
+#, c-format
+msgid "'%s'?? what are you talking about?"
+msgstr "'%s'?? 您在说什么?"
 
-#: builtin/bisect--helper.c:926
-msgid "write out the bisection state in BISECT_LOG"
-msgstr "将二分查找的状态写入 BISECT_LOG"
+#: builtin/bisect--helper.c:974
+#, c-format
+msgid "cannot read file '%s' for replaying"
+msgstr "不能读取文件 '%s' 来重放"
 
-#: builtin/bisect--helper.c:928
-msgid "check and set terms in a bisection state"
-msgstr "在一个二分查找状态中检查和设置术语"
+#: builtin/bisect--helper.c:1047
+msgid "reset the bisection state"
+msgstr "清除二分查找状态"
 
-#: builtin/bisect--helper.c:930
+#: builtin/bisect--helper.c:1049
 msgid "check whether bad or good terms exist"
 msgstr "检查坏的或好的术语是否存在"
 
-#: builtin/bisect--helper.c:932
+#: builtin/bisect--helper.c:1051
 msgid "print out the bisect terms"
 msgstr "打印二分查找术语"
 
-#: builtin/bisect--helper.c:934
+#: builtin/bisect--helper.c:1053
 msgid "start the bisect session"
 msgstr "启动二分查找过程"
 
-#: builtin/bisect--helper.c:936
+#: builtin/bisect--helper.c:1055
 msgid "find the next bisection commit"
 msgstr "查询下一个二分查找提交"
 
-#: builtin/bisect--helper.c:938
-msgid "verify the next bisection state then checkout the next bisection commit"
-msgstr "校验下一个二分查找状态然后检出下一个二分查找提交"
-
-#: builtin/bisect--helper.c:940
+#: builtin/bisect--helper.c:1057
 msgid "mark the state of ref (or refs)"
 msgstr "标记引用的状态"
 
-#: builtin/bisect--helper.c:942
+#: builtin/bisect--helper.c:1059
+msgid "list the bisection steps so far"
+msgstr "列出到目前为止的二分查找步骤"
+
+#: builtin/bisect--helper.c:1061
+msgid "replay the bisection process from the given file"
+msgstr "从给定文件重放二分查找进程"
+
+#: builtin/bisect--helper.c:1063
+msgid "skip some commits for checkout"
+msgstr "跳过要检出的一些提交"
+
+#: builtin/bisect--helper.c:1065
 msgid "no log for BISECT_WRITE"
 msgstr "BISECT_WRITE 无日志"
 
-#: builtin/bisect--helper.c:957
+#: builtin/bisect--helper.c:1080
 msgid "--bisect-reset requires either no argument or a commit"
 msgstr "--bisect-reset 无需参数或者需要一个提交"
 
-#: builtin/bisect--helper.c:961
-msgid "--bisect-write requires either 4 or 5 arguments"
-msgstr "--bisect-write 需要 4 或 5 个参数"
-
-#: builtin/bisect--helper.c:967
-msgid "--check-and-set-terms requires 3 arguments"
-msgstr "--check-and-set-terms 需要 3 个参数"
-
-#: builtin/bisect--helper.c:973
+#: builtin/bisect--helper.c:1085
 msgid "--bisect-next-check requires 2 or 3 arguments"
 msgstr "--bisect-next-check 需要 2 或 3 个参数"
 
-#: builtin/bisect--helper.c:979
+#: builtin/bisect--helper.c:1091
 msgid "--bisect-terms requires 0 or 1 argument"
 msgstr "--bisect-terms 需要 0 或 1 个参数"
 
-#: builtin/bisect--helper.c:988
+#: builtin/bisect--helper.c:1100
 msgid "--bisect-next requires 0 arguments"
 msgstr "--bisect-next 需要 0 个参数"
 
-#: builtin/bisect--helper.c:994
-msgid "--bisect-auto-next requires 0 arguments"
-msgstr "--bisect-auto-next 需要 0 个参数"
+#: builtin/bisect--helper.c:1111
+msgid "--bisect-log requires 0 arguments"
+msgstr "--bisect-log 需要 0 个参数"
+
+#: builtin/bisect--helper.c:1116
+msgid "no logfile given"
+msgstr "未提供日志文件"
 
 #: builtin/blame.c:32
 msgid "git blame [<options>] [<rev-opts>] [<rev>] [--] <file>"
@@ -10589,137 +10872,140 @@ msgstr "期望一个颜色:%s"
 msgid "must end with a color"
 msgstr "必须以一个颜色结尾"
 
-#: builtin/blame.c:730
+#: builtin/blame.c:728
 #, c-format
 msgid "invalid color '%s' in color.blame.repeatedLines"
 msgstr "设置 color.blame.repeatedLines 中的无效颜色 '%s'"
 
-#: builtin/blame.c:748
+#: builtin/blame.c:746
 msgid "invalid value for blame.coloring"
 msgstr "设置 blame.coloring 中的无效取值"
 
-#: builtin/blame.c:847
+#: builtin/blame.c:845
 #, c-format
 msgid "cannot find revision %s to ignore"
 msgstr "不能找到要忽略的版本 %s"
 
-#: builtin/blame.c:869
-msgid "Show blame entries as we find them, incrementally"
+#: builtin/blame.c:867
+msgid "show blame entries as we find them, incrementally"
 msgstr "增量式地显示发现的 blame 条目"
 
-#: builtin/blame.c:870
-msgid "Do not show object names of boundary commits (Default: off)"
+#: builtin/blame.c:868
+msgid "do not show object names of boundary commits (Default: off)"
 msgstr "不显示边界提交的对象名(默认:关闭)"
 
-#: builtin/blame.c:871
-msgid "Do not treat root commits as boundaries (Default: off)"
+#: builtin/blame.c:869
+msgid "do not treat root commits as boundaries (Default: off)"
 msgstr "不把根提交作为边界(默认:关闭)"
 
-#: builtin/blame.c:872
-msgid "Show work cost statistics"
-msgstr "æ\98¾ç¤ºå\91½ä»¤消耗统计"
+#: builtin/blame.c:870
+msgid "show work cost statistics"
+msgstr "æ\98¾ç¤ºå·¥ä½\9c消耗统计"
 
-#: builtin/blame.c:873
-msgid "Force progress reporting"
-msgstr "强制进度显示"
+#: builtin/blame.c:871 builtin/checkout.c:1503 builtin/clone.c:92
+#: builtin/commit-graph.c:84 builtin/commit-graph.c:222 builtin/fetch.c:175
+#: builtin/merge.c:297 builtin/multi-pack-index.c:27 builtin/pull.c:119
+#: builtin/push.c:575 builtin/send-pack.c:198
+msgid "force progress reporting"
+msgstr "强制显示进度报告"
 
-#: builtin/blame.c:874
-msgid "Show output score for blame entries"
-msgstr "显示判断 blame 条目位移的得分诊断信息"
+#: builtin/blame.c:872
+msgid "show output score for blame entries"
+msgstr "显示 blame 条目的输出得分"
 
-#: builtin/blame.c:875
-msgid "Show original filename (Default: auto)"
+#: builtin/blame.c:873
+msgid "show original filename (Default: auto)"
 msgstr "显示原始文件名(默认:自动)"
 
-#: builtin/blame.c:876
-msgid "Show original linenumber (Default: off)"
+#: builtin/blame.c:874
+msgid "show original linenumber (Default: off)"
 msgstr "显示原始的行号(默认:关闭)"
 
-#: builtin/blame.c:877
-msgid "Show in a format designed for machine consumption"
+#: builtin/blame.c:875
+msgid "show in a format designed for machine consumption"
 msgstr "显示为一个适合机器读取的格式"
 
-#: builtin/blame.c:878
-msgid "Show porcelain format with per-line commit information"
+#: builtin/blame.c:876
+msgid "show porcelain format with per-line commit information"
 msgstr "为每一行显示机器适用的提交信息"
 
-#: builtin/blame.c:879
-msgid "Use the same output mode as git-annotate (Default: off)"
+#: builtin/blame.c:877
+msgid "use the same output mode as git-annotate (Default: off)"
 msgstr "使用和 git-annotate 相同的输出模式(默认:关闭)"
 
-#: builtin/blame.c:880
-msgid "Show raw timestamp (Default: off)"
+#: builtin/blame.c:878
+msgid "show raw timestamp (Default: off)"
 msgstr "显示原始时间戳(默认:关闭)"
 
-#: builtin/blame.c:881
-msgid "Show long commit SHA1 (Default: off)"
+#: builtin/blame.c:879
+msgid "show long commit SHA1 (Default: off)"
 msgstr "显示长的 SHA1 提交号(默认:关闭)"
 
-#: builtin/blame.c:882
-msgid "Suppress author name and timestamp (Default: off)"
+#: builtin/blame.c:880
+msgid "suppress author name and timestamp (Default: off)"
 msgstr "隐藏作者名字和时间戳(默认:关闭)"
 
-#: builtin/blame.c:883
-msgid "Show author email instead of name (Default: off)"
+#: builtin/blame.c:881
+msgid "show author email instead of name (Default: off)"
 msgstr "显示作者的邮箱而不是名字(默认:关闭)"
 
-#: builtin/blame.c:884
-msgid "Ignore whitespace differences"
+#: builtin/blame.c:882
+msgid "ignore whitespace differences"
 msgstr "忽略空白差异"
 
-#: builtin/blame.c:885 builtin/log.c:1813
+#: builtin/blame.c:883 builtin/log.c:1812
 msgid "rev"
 msgstr "版本"
 
-#: builtin/blame.c:885
-msgid "Ignore <rev> when blaming"
+#: builtin/blame.c:883
+msgid "ignore <rev> when blaming"
 msgstr "在执行 blame 操作时忽略 <版本>"
 
-#: builtin/blame.c:886
-msgid "Ignore revisions from <file>"
+#: builtin/blame.c:884
+msgid "ignore revisions from <file>"
 msgstr "忽略来自 <文件> 中的版本"
 
-#: builtin/blame.c:887
+#: builtin/blame.c:885
 msgid "color redundant metadata from previous line differently"
 msgstr "使用颜色间隔输出与前一行不同的重复元信息"
 
-#: builtin/blame.c:888
+#: builtin/blame.c:886
 msgid "color lines by age"
 msgstr "依据时间着色"
 
-#: builtin/blame.c:889
-msgid "Spend extra cycles to find better match"
+#: builtin/blame.c:887
+msgid "spend extra cycles to find better match"
 msgstr "花费额外的循环来找到更好的匹配"
 
-#: builtin/blame.c:890
-msgid "Use revisions from <file> instead of calling git-rev-list"
+#: builtin/blame.c:888
+msgid "use revisions from <file> instead of calling git-rev-list"
 msgstr "使用来自 <文件> 的修订集而不是调用 git-rev-list"
 
-#: builtin/blame.c:891
-msgid "Use <file>'s contents as the final image"
-msgstr "使用 <文件> 的内容作为最终的图片"
+#: builtin/blame.c:889
+msgid "use <file>'s contents as the final image"
+msgstr "使用 <文件> 的内容作为最终的镜像"
 
-#: builtin/blame.c:892 builtin/blame.c:893
+#: builtin/blame.c:890 builtin/blame.c:891
 msgid "score"
 msgstr "得分"
 
-#: builtin/blame.c:892
-msgid "Find line copies within and across files"
+#: builtin/blame.c:890
+msgid "find line copies within and across files"
 msgstr "找到文件内及跨文件的行拷贝"
 
-#: builtin/blame.c:893
-msgid "Find line movements within and across files"
+#: builtin/blame.c:891
+msgid "find line movements within and across files"
 msgstr "找到文件内及跨文件的行移动"
 
-#: builtin/blame.c:894
+#: builtin/blame.c:892
 msgid "range"
 msgstr "范围"
 
-#: builtin/blame.c:895
-msgid "Process only line range <start>,<end> or function :<funcname>"
+#: builtin/blame.c:893
+msgid "process only line range <start>,<end> or function :<funcname>"
 msgstr "只处理在 <开始>,<结束> 范围内的行,或者函数:<函数名>"
 
-#: builtin/blame.c:947
+#: builtin/blame.c:945
 msgid "--progress can't be used with --incremental or porcelain formats"
 msgstr "--progress 不能和 --incremental 或 --porcelain 同时使用"
 
@@ -10731,18 +11017,18 @@ msgstr "--progress 不能和 --incremental 或 --porcelain 同时使用"
 #. your language may need more or fewer display
 #. columns.
 #.
-#: builtin/blame.c:998
+#: builtin/blame.c:996
 msgid "4 years, 11 months ago"
 msgstr "4 年 11 个月前"
 
-#: builtin/blame.c:1114
+#: builtin/blame.c:1112
 #, 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:1159
+#: builtin/blame.c:1157
 msgid "Blaming lines"
 msgstr "追踪代码行"
 
@@ -10812,117 +11098,107 @@ msgstr ""
 msgid "Update of config-file failed"
 msgstr "更新配置文件失败"
 
-#: builtin/branch.c:220
+#: builtin/branch.c:223
 msgid "cannot use -a with -d"
 msgstr "不能将 -a 和 -d 同时使用"
 
-#: builtin/branch.c:226
+#: builtin/branch.c:230
 msgid "Couldn't look up commit object for HEAD"
 msgstr "无法查询 HEAD 指向的提交对象"
 
-#: builtin/branch.c:240
+#: builtin/branch.c:244
 #, c-format
 msgid "Cannot delete branch '%s' checked out at '%s'"
 msgstr "无法删除检出于 '%2$s' 的分支 '%1$s'。"
 
-#: builtin/branch.c:255
+#: builtin/branch.c:259
 #, c-format
 msgid "remote-tracking branch '%s' not found."
 msgstr "未能找到远程跟踪分支 '%s'。"
 
-#: builtin/branch.c:256
+#: builtin/branch.c:260
 #, c-format
 msgid "branch '%s' not found."
 msgstr "分支 '%s' 未发现。"
 
-#: builtin/branch.c:271
-#, c-format
-msgid "Error deleting remote-tracking branch '%s'"
-msgstr "无法删除远程跟踪分支 '%s'"
-
-#: builtin/branch.c:272
-#, c-format
-msgid "Error deleting branch '%s'"
-msgstr "无法删除分支 '%s'"
-
-#: builtin/branch.c:279
+#: builtin/branch.c:291
 #, c-format
 msgid "Deleted remote-tracking branch %s (was %s).\n"
 msgstr "已删除远程跟踪分支 %s(曾为 %s)。\n"
 
-#: builtin/branch.c:280
+#: builtin/branch.c:292
 #, c-format
 msgid "Deleted branch %s (was %s).\n"
 msgstr "已删除分支 %s(曾为 %s)。\n"
 
-#: builtin/branch.c:429 builtin/tag.c:61
+#: builtin/branch.c:438 builtin/tag.c:61
 msgid "unable to parse format string"
 msgstr "不能解析格式化字符串"
 
-#: builtin/branch.c:460
+#: builtin/branch.c:469
 msgid "could not resolve HEAD"
 msgstr "不能解析 HEAD 提交"
 
-#: builtin/branch.c:466
+#: builtin/branch.c:475
 #, c-format
 msgid "HEAD (%s) points outside of refs/heads/"
 msgstr "HEAD (%s) 指向 refs/heads/ 之外"
 
-#: builtin/branch.c:481
+#: builtin/branch.c:490
 #, c-format
 msgid "Branch %s is being rebased at %s"
 msgstr "分支 %s 正被变基到 %s"
 
-#: builtin/branch.c:485
+#: builtin/branch.c:494
 #, c-format
 msgid "Branch %s is being bisected at %s"
 msgstr "分支 %s 正被二分查找于 %s"
 
-#: builtin/branch.c:502
+#: builtin/branch.c:511
 msgid "cannot copy the current branch while not on any."
 msgstr "无法拷贝当前分支因为不处于任何分支上。"
 
-#: builtin/branch.c:504
+#: builtin/branch.c:513
 msgid "cannot rename the current branch while not on any."
 msgstr "无法重命名当前分支因为不处于任何分支上。"
 
-#: builtin/branch.c:515
+#: builtin/branch.c:524
 #, c-format
 msgid "Invalid branch name: '%s'"
 msgstr "无效的分支名:'%s'"
 
-#: builtin/branch.c:544
+#: builtin/branch.c:553
 msgid "Branch rename failed"
 msgstr "分支重命名失败"
 
-#: builtin/branch.c:546
+#: builtin/branch.c:555
 msgid "Branch copy failed"
 msgstr "分支拷贝失败"
 
-#: builtin/branch.c:550
+#: builtin/branch.c:559
 #, c-format
 msgid "Created a copy of a misnamed branch '%s'"
 msgstr "已为错误命名的分支 '%s' 创建了一个副本"
 
-#: builtin/branch.c:553
+#: builtin/branch.c:562
 #, c-format
 msgid "Renamed a misnamed branch '%s' away"
 msgstr "已将错误命名的分支 '%s' 重命名"
 
-#: builtin/branch.c:559
+#: builtin/branch.c:568
 #, c-format
 msgid "Branch renamed to %s, but HEAD is not updated!"
 msgstr "分支重命名为 %s,但 HEAD 没有更新!"
 
-#: builtin/branch.c:568
+#: builtin/branch.c:577
 msgid "Branch is renamed, but update of config-file failed"
 msgstr "分支被重命名,但更新配置文件失败"
 
-#: builtin/branch.c:570
+#: builtin/branch.c:579
 msgid "Branch is copied, but update of config-file failed"
 msgstr "分支已拷贝,但更新配置文件失败"
 
-#: builtin/branch.c:586
+#: builtin/branch.c:595
 #, c-format
 msgid ""
 "Please edit the description for the branch\n"
@@ -10933,209 +11209,209 @@ msgstr ""
 "  %s\n"
 "以 '%c' 开头的行将被过滤。\n"
 
-#: builtin/branch.c:620
+#: builtin/branch.c:629
 msgid "Generic options"
 msgstr "通用选项"
 
-#: builtin/branch.c:622
+#: builtin/branch.c:631
 msgid "show hash and subject, give twice for upstream branch"
 msgstr "显示哈希值和主题,若参数出现两次则显示上游分支"
 
-#: builtin/branch.c:623
+#: builtin/branch.c:632
 msgid "suppress informational messages"
 msgstr "不显示信息"
 
-#: builtin/branch.c:624
+#: builtin/branch.c:633
 msgid "set up tracking mode (see git-pull(1))"
 msgstr "设置跟踪模式(参见 git-pull(1))"
 
-#: builtin/branch.c:626
+#: builtin/branch.c:635
 msgid "do not use"
 msgstr "不要使用"
 
-#: builtin/branch.c:628 builtin/rebase.c:532
+#: builtin/branch.c:637 builtin/rebase.c:534
 msgid "upstream"
 msgstr "上游"
 
-#: builtin/branch.c:628
+#: builtin/branch.c:637
 msgid "change the upstream info"
 msgstr "改变上游信息"
 
-#: builtin/branch.c:629
+#: builtin/branch.c:638
 msgid "unset the upstream info"
 msgstr "取消上游信息的设置"
 
-#: builtin/branch.c:630
+#: builtin/branch.c:639
 msgid "use colored output"
 msgstr "使用彩色输出"
 
-#: builtin/branch.c:631
+#: builtin/branch.c:640
 msgid "act on remote-tracking branches"
 msgstr "作用于远程跟踪分支"
 
-#: builtin/branch.c:633 builtin/branch.c:635
+#: builtin/branch.c:642 builtin/branch.c:644
 msgid "print only branches that contain the commit"
 msgstr "只打印包含该提交的分支"
 
-#: builtin/branch.c:634 builtin/branch.c:636
+#: builtin/branch.c:643 builtin/branch.c:645
 msgid "print only branches that don't contain the commit"
 msgstr "只打印不包含该提交的分支"
 
-#: builtin/branch.c:639
+#: builtin/branch.c:648
 msgid "Specific git-branch actions:"
 msgstr "具体的 git-branch 动作:"
 
-#: builtin/branch.c:640
+#: builtin/branch.c:649
 msgid "list both remote-tracking and local branches"
 msgstr "列出远程跟踪及本地分支"
 
-#: builtin/branch.c:642
+#: builtin/branch.c:651
 msgid "delete fully merged branch"
 msgstr "删除完全合并的分支"
 
-#: builtin/branch.c:643
+#: builtin/branch.c:652
 msgid "delete branch (even if not merged)"
 msgstr "删除分支(即使没有合并)"
 
-#: builtin/branch.c:644
+#: builtin/branch.c:653
 msgid "move/rename a branch and its reflog"
 msgstr "移动/重命名一个分支,以及它的引用日志"
 
-#: builtin/branch.c:645
+#: builtin/branch.c:654
 msgid "move/rename a branch, even if target exists"
 msgstr "移动/重命名一个分支,即使目标已存在"
 
-#: builtin/branch.c:646
+#: builtin/branch.c:655
 msgid "copy a branch and its reflog"
 msgstr "拷贝一个分支和它的引用日志"
 
-#: builtin/branch.c:647
+#: builtin/branch.c:656
 msgid "copy a branch, even if target exists"
 msgstr "拷贝一个分支,即使目标已存在"
 
-#: builtin/branch.c:648
+#: builtin/branch.c:657
 msgid "list branch names"
 msgstr "列出分支名"
 
-#: builtin/branch.c:649
+#: builtin/branch.c:658
 msgid "show current branch name"
 msgstr "显示当前分支名"
 
-#: builtin/branch.c:650
+#: builtin/branch.c:659
 msgid "create the branch's reflog"
 msgstr "创建分支的引用日志"
 
-#: builtin/branch.c:652
+#: builtin/branch.c:661
 msgid "edit the description for the branch"
 msgstr "标记分支的描述"
 
-#: builtin/branch.c:653
+#: builtin/branch.c:662
 msgid "force creation, move/rename, deletion"
 msgstr "强制创建、移动/重命名、删除"
 
-#: builtin/branch.c:654
+#: builtin/branch.c:663
 msgid "print only branches that are merged"
 msgstr "只打印已经合并的分支"
 
-#: builtin/branch.c:655
+#: builtin/branch.c:664
 msgid "print only branches that are not merged"
 msgstr "只打印尚未合并的分支"
 
-#: builtin/branch.c:656
+#: builtin/branch.c:665
 msgid "list branches in columns"
 msgstr "以列的方式显示分支"
 
-#: builtin/branch.c:658 builtin/for-each-ref.c:42 builtin/notes.c:415
+#: builtin/branch.c:667 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:434
+#: builtin/tag.c:466
 msgid "object"
 msgstr "对象"
 
-#: builtin/branch.c:659
+#: builtin/branch.c:668
 msgid "print only branches of the object"
 msgstr "只打印指向该对象的分支"
 
-#: builtin/branch.c:660 builtin/for-each-ref.c:48 builtin/tag.c:441
+#: builtin/branch.c:669 builtin/for-each-ref.c:48 builtin/tag.c:473
 msgid "sorting and filtering are case insensitive"
 msgstr "排序和过滤属于大小写不敏感"
 
-#: builtin/branch.c:661 builtin/for-each-ref.c:38 builtin/tag.c:439
+#: builtin/branch.c:670 builtin/for-each-ref.c:38 builtin/tag.c:471
 #: builtin/verify-tag.c:38
 msgid "format to use for the output"
 msgstr "输出格式"
 
-#: builtin/branch.c:684 builtin/clone.c:790
+#: builtin/branch.c:693 builtin/clone.c:790
 msgid "HEAD not found below refs/heads!"
 msgstr "HEAD 没有位于 /refs/heads 之下!"
 
-#: builtin/branch.c:708
+#: builtin/branch.c:717
 msgid "--column and --verbose are incompatible"
 msgstr "--column 和 --verbose 不兼容"
 
-#: builtin/branch.c:723 builtin/branch.c:777 builtin/branch.c:786
+#: builtin/branch.c:732 builtin/branch.c:788 builtin/branch.c:797
 msgid "branch name required"
 msgstr "必须提供分支名"
 
-#: builtin/branch.c:753
+#: builtin/branch.c:764
 msgid "Cannot give description to detached HEAD"
 msgstr "不能向分离头指针提供描述"
 
-#: builtin/branch.c:758
+#: builtin/branch.c:769
 msgid "cannot edit description of more than one branch"
 msgstr "不能为一个以上的分支编辑描述"
 
-#: builtin/branch.c:765
+#: builtin/branch.c:776
 #, c-format
 msgid "No commit on branch '%s' yet."
 msgstr "分支 '%s' 尚无提交。"
 
-#: builtin/branch.c:768
+#: builtin/branch.c:779
 #, c-format
 msgid "No branch named '%s'."
 msgstr "没有分支 '%s'。"
 
-#: builtin/branch.c:783
+#: builtin/branch.c:794
 msgid "too many branches for a copy operation"
 msgstr "为拷贝操作提供了太多的分支名"
 
-#: builtin/branch.c:792
+#: builtin/branch.c:803
 msgid "too many arguments for a rename operation"
 msgstr "为重命名操作提供了太多的参数"
 
-#: builtin/branch.c:797
+#: builtin/branch.c:808
 msgid "too many arguments to set new upstream"
 msgstr "为设置新上游提供了太多的参数"
 
-#: builtin/branch.c:801
+#: builtin/branch.c:812
 #, 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:804 builtin/branch.c:827
+#: builtin/branch.c:815 builtin/branch.c:838
 #, c-format
 msgid "no such branch '%s'"
 msgstr "没有此分支 '%s'"
 
-#: builtin/branch.c:808
+#: builtin/branch.c:819
 #, c-format
 msgid "branch '%s' does not exist"
 msgstr "分支 '%s' 不存在"
 
-#: builtin/branch.c:821
+#: builtin/branch.c:832
 msgid "too many arguments to unset upstream"
 msgstr "为取消上游设置操作提供了太多的参数"
 
-#: builtin/branch.c:825
+#: builtin/branch.c:836
 msgid "could not unset upstream of HEAD when it does not point to any branch."
 msgstr "无法取消 HEAD 的上游设置因为它没有指向一个分支"
 
-#: builtin/branch.c:831
+#: builtin/branch.c:842
 #, c-format
 msgid "Branch '%s' has no upstream information"
 msgstr "分支 '%s' 没有上游信息"
 
-#: builtin/branch.c:841
+#: builtin/branch.c:852
 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>?"
@@ -11143,7 +11419,7 @@ msgstr ""
 "'git branch' 的 -a 和 -r 选项不带一个分支名。\n"
 "您是否想要使用:-a|-r --list <模式>?"
 
-#: builtin/branch.c:845
+#: builtin/branch.c:856
 msgid ""
 "the '--set-upstream' option is no longer supported. Please use '--track' or "
 "'--set-upstream-to' instead."
@@ -11261,19 +11537,19 @@ msgstr "git bundle list-heads <文件> [<引用名>...]"
 msgid "git bundle unbundle <file> [<refname>...]"
 msgstr "git bundle unbundle <文件> [<引用名>...]"
 
-#: builtin/bundle.c:67 builtin/pack-objects.c:3480
+#: builtin/bundle.c:67 builtin/pack-objects.c:3495
 msgid "do not show progress meter"
 msgstr "不显示进度表"
 
-#: builtin/bundle.c:69 builtin/pack-objects.c:3482
+#: builtin/bundle.c:69 builtin/pack-objects.c:3497
 msgid "show progress meter"
 msgstr "显示进度表"
 
-#: builtin/bundle.c:71 builtin/pack-objects.c:3484
+#: builtin/bundle.c:71 builtin/pack-objects.c:3499
 msgid "show progress meter during object writing phase"
 msgstr "在对象写入阶段显示进度表"
 
-#: builtin/bundle.c:74 builtin/pack-objects.c:3487
+#: builtin/bundle.c:74 builtin/pack-objects.c:3502
 msgid "similar to --all-progress when progress meter is shown"
 msgstr "当进度表显示时类似于 --all-progress"
 
@@ -11415,8 +11691,8 @@ msgstr "从标准输入读出文件名"
 msgid "terminate input and output records by a NUL character"
 msgstr "输入和输出的记录使用 NUL 字符终结"
 
-#: builtin/check-ignore.c:21 builtin/checkout.c:1500 builtin/gc.c:541
-#: builtin/worktree.c:561
+#: builtin/check-ignore.c:21 builtin/checkout.c:1499 builtin/gc.c:549
+#: builtin/worktree.c:489
 msgid "suppress progress reporting"
 msgstr "不显示进度报告"
 
@@ -11469,54 +11745,54 @@ msgstr "不能解析联系地址:%s"
 msgid "no contacts specified"
 msgstr "未指定联系地址"
 
-#: builtin/checkout-index.c:139
+#: builtin/checkout-index.c:152
 msgid "git checkout-index [<options>] [--] [<file>...]"
 msgstr "git checkout-index [<选项>] [--] [<文件>...]"
 
-#: builtin/checkout-index.c:156
+#: builtin/checkout-index.c:169
 msgid "stage should be between 1 and 3 or all"
 msgstr "索引值应该取值 1 到 3 或者 all"
 
-#: builtin/checkout-index.c:173
+#: builtin/checkout-index.c:186
 msgid "check out all files in the index"
 msgstr "检出索引区的所有文件"
 
-#: builtin/checkout-index.c:174
+#: builtin/checkout-index.c:187
 msgid "force overwrite of existing files"
 msgstr "强制覆盖现有的文件"
 
-#: builtin/checkout-index.c:176
+#: builtin/checkout-index.c:189
 msgid "no warning for existing files and files not in index"
 msgstr "存在或不在索引中的文件都没有警告"
 
-#: builtin/checkout-index.c:178
+#: builtin/checkout-index.c:191
 msgid "don't checkout new files"
 msgstr "不检出新文件"
 
-#: builtin/checkout-index.c:180
+#: builtin/checkout-index.c:193
 msgid "update stat information in the index file"
 msgstr "更新索引中文件的状态信息"
 
-#: builtin/checkout-index.c:184
+#: builtin/checkout-index.c:197
 msgid "read list of paths from the standard input"
 msgstr "从标准输入读取路径列表"
 
-#: builtin/checkout-index.c:186
+#: builtin/checkout-index.c:199
 msgid "write the content to temporary files"
 msgstr "将内容写入临时文件"
 
-#: builtin/checkout-index.c:187 builtin/column.c:31
+#: builtin/checkout-index.c:200 builtin/column.c:31
 #: builtin/submodule--helper.c:1824 builtin/submodule--helper.c:1827
 #: builtin/submodule--helper.c:1835 builtin/submodule--helper.c:2333
-#: builtin/worktree.c:757
+#: builtin/worktree.c:717
 msgid "string"
 msgstr "字符串"
 
-#: builtin/checkout-index.c:188
+#: builtin/checkout-index.c:201
 msgid "when creating files, prepend <string>"
 msgstr "在创建文件时,在前面加上 <字符串>"
 
-#: builtin/checkout-index.c:190
+#: builtin/checkout-index.c:203
 msgid "copy out the files from named stage"
 msgstr "从指定暂存区中拷出文件"
 
@@ -11618,16 +11894,16 @@ msgstr "未指定 '%2$s' 时,必须使用 '%1$s'"
 msgid "'%s' or '%s' cannot be used with %s"
 msgstr "'%s' 或 '%s' 不能和 %s 一起使用"
 
-#: builtin/checkout.c:541 builtin/checkout.c:548
+#: builtin/checkout.c:543 builtin/checkout.c:550
 #, c-format
 msgid "path '%s' is unmerged"
 msgstr "路径 '%s' 未合并"
 
-#: builtin/checkout.c:716
+#: builtin/checkout.c:718
 msgid "you need to resolve your current index first"
 msgstr "您需要先解决当前索引的冲突"
 
-#: builtin/checkout.c:770
+#: builtin/checkout.c:772
 #, c-format
 msgid ""
 "cannot continue with staged changes in the following files:\n"
@@ -11636,51 +11912,51 @@ msgstr ""
 "不能继续,下列文件有暂存的修改:\n"
 "%s"
 
-#: builtin/checkout.c:866
+#: builtin/checkout.c:865
 #, c-format
 msgid "Can not do reflog for '%s': %s\n"
 msgstr "不能对 '%s' 执行 reflog 操作:%s\n"
 
-#: builtin/checkout.c:908
+#: builtin/checkout.c:907
 msgid "HEAD is now at"
 msgstr "HEAD 目前位于"
 
-#: builtin/checkout.c:912 builtin/clone.c:721 t/helper/test-fast-rebase.c:202
+#: builtin/checkout.c:911 builtin/clone.c:721 t/helper/test-fast-rebase.c:202
 msgid "unable to update HEAD"
 msgstr "不能更新 HEAD"
 
-#: builtin/checkout.c:916
+#: builtin/checkout.c:915
 #, c-format
 msgid "Reset branch '%s'\n"
 msgstr "重置分支 '%s'\n"
 
-#: builtin/checkout.c:919
+#: builtin/checkout.c:918
 #, c-format
 msgid "Already on '%s'\n"
 msgstr "已经位于 '%s'\n"
 
-#: builtin/checkout.c:923
+#: builtin/checkout.c:922
 #, c-format
 msgid "Switched to and reset branch '%s'\n"
 msgstr "切换并重置分支 '%s'\n"
 
-#: builtin/checkout.c:925 builtin/checkout.c:1356
+#: builtin/checkout.c:924 builtin/checkout.c:1355
 #, c-format
 msgid "Switched to a new branch '%s'\n"
 msgstr "切换到一个新分支 '%s'\n"
 
-#: builtin/checkout.c:927
+#: builtin/checkout.c:926
 #, c-format
 msgid "Switched to branch '%s'\n"
 msgstr "切换到分支 '%s'\n"
 
 #  译者:注意保持前导空格
-#: builtin/checkout.c:978
+#: builtin/checkout.c:977
 #, c-format
 msgid " ... and %d more.\n"
 msgstr " ... 及其它 %d 个。\n"
 
-#: builtin/checkout.c:984
+#: builtin/checkout.c:983
 #, c-format
 msgid ""
 "Warning: you are leaving %d commit behind, not connected to\n"
@@ -11701,7 +11977,7 @@ msgstr[1] ""
 "\n"
 "%s\n"
 
-#: builtin/checkout.c:1003
+#: builtin/checkout.c:1002
 #, c-format
 msgid ""
 "If you want to keep it by creating a new branch, this may be a good time\n"
@@ -11728,19 +12004,19 @@ msgstr[1] ""
 " git branch <新分支名> %s\n"
 "\n"
 
-#: builtin/checkout.c:1038
+#: builtin/checkout.c:1037
 msgid "internal error in revision walk"
 msgstr "在版本遍历时遇到内部错误"
 
-#: builtin/checkout.c:1042
+#: builtin/checkout.c:1041
 msgid "Previous HEAD position was"
 msgstr "之前的 HEAD 位置是"
 
-#: builtin/checkout.c:1082 builtin/checkout.c:1351
+#: builtin/checkout.c:1081 builtin/checkout.c:1350
 msgid "You are on a branch yet to be born"
 msgstr "您位于一个尚未初始化的分支"
 
-#: builtin/checkout.c:1164
+#: builtin/checkout.c:1163
 #, c-format
 msgid ""
 "'%s' could be both a local file and a tracking branch.\n"
@@ -11749,7 +12025,7 @@ msgstr ""
 "'%s' 既可以是一个本地文件,也可以是一个跟踪分支。\n"
 "请使用 --(和可选的 --no-guess)来消除歧义"
 
-#: builtin/checkout.c:1171
+#: builtin/checkout.c:1170
 msgid ""
 "If you meant to check out a remote tracking branch on, e.g. 'origin',\n"
 "you can do so by fully qualifying the name with the --track option:\n"
@@ -11768,51 +12044,51 @@ msgstr ""
 "如果您总是喜欢使用模糊的简短分支名 <名称>,而不喜欢如 'origin' 的远程\n"
 "名称,可以在配置中设置 checkout.defaultRemote=origin。"
 
-#: builtin/checkout.c:1181
+#: builtin/checkout.c:1180
 #, c-format
 msgid "'%s' matched multiple (%d) remote tracking branches"
 msgstr "'%s' 匹配多个(%d 个)远程跟踪分支"
 
-#: builtin/checkout.c:1247
+#: builtin/checkout.c:1246
 msgid "only one reference expected"
 msgstr "只期望一个引用"
 
-#: builtin/checkout.c:1264
+#: builtin/checkout.c:1263
 #, c-format
 msgid "only one reference expected, %d given."
 msgstr "应只有一个引用,却给出了 %d 个"
 
-#: builtin/checkout.c:1310 builtin/worktree.c:342 builtin/worktree.c:510
+#: builtin/checkout.c:1309 builtin/worktree.c:270 builtin/worktree.c:438
 #, c-format
 msgid "invalid reference: %s"
 msgstr "无效引用:%s"
 
-#: builtin/checkout.c:1323 builtin/checkout.c:1689
+#: builtin/checkout.c:1322 builtin/checkout.c:1688
 #, c-format
 msgid "reference is not a tree: %s"
 msgstr "引用不是一个树:%s"
 
-#: builtin/checkout.c:1370
+#: builtin/checkout.c:1369
 #, c-format
 msgid "a branch is expected, got tag '%s'"
 msgstr "期望一个分支,得到标签 '%s'"
 
-#: builtin/checkout.c:1372
+#: builtin/checkout.c:1371
 #, c-format
 msgid "a branch is expected, got remote branch '%s'"
 msgstr "期望一个分支,得到远程分支 '%s'"
 
-#: builtin/checkout.c:1373 builtin/checkout.c:1381
+#: builtin/checkout.c:1372 builtin/checkout.c:1380
 #, c-format
 msgid "a branch is expected, got '%s'"
 msgstr "期望一个分支,得到 '%s'"
 
-#: builtin/checkout.c:1376
+#: builtin/checkout.c:1375
 #, c-format
 msgid "a branch is expected, got commit '%s'"
 msgstr "期望一个分支,得到提交 '%s'"
 
-#: builtin/checkout.c:1392
+#: builtin/checkout.c:1391
 msgid ""
 "cannot switch branch while merging\n"
 "Consider \"git merge --quit\" or \"git worktree add\"."
@@ -11820,7 +12096,7 @@ msgstr ""
 "不能在合并时切换分支\n"
 "考虑使用 \"git merge --quit\" 或 \"git worktree add\"。"
 
-#: builtin/checkout.c:1396
+#: builtin/checkout.c:1395
 msgid ""
 "cannot switch branch in the middle of an am session\n"
 "Consider \"git am --quit\" or \"git worktree add\"."
@@ -11828,7 +12104,7 @@ msgstr ""
 "不能在一个 am 会话期间切换分支\n"
 "考虑使用 \"git am --quit\" 或 \"git worktree add\"。"
 
-#: builtin/checkout.c:1400
+#: builtin/checkout.c:1399
 msgid ""
 "cannot switch branch while rebasing\n"
 "Consider \"git rebase --quit\" or \"git worktree add\"."
@@ -11836,7 +12112,7 @@ msgstr ""
 "不能在变基时切换分支\n"
 "考虑使用 \"git rebase --quit\" 或 \"git worktree add\"。"
 
-#: builtin/checkout.c:1404
+#: builtin/checkout.c:1403
 msgid ""
 "cannot switch branch while cherry-picking\n"
 "Consider \"git cherry-pick --quit\" or \"git worktree add\"."
@@ -11844,7 +12120,7 @@ msgstr ""
 "不能在拣选时切换分支\n"
 "考虑使用 \"git cherry-pick --quit\" 或 \"git worktree add\"。"
 
-#: builtin/checkout.c:1408
+#: builtin/checkout.c:1407
 msgid ""
 "cannot switch branch while reverting\n"
 "Consider \"git revert --quit\" or \"git worktree add\"."
@@ -11852,214 +12128,207 @@ msgstr ""
 "不能在还原时切换分支\n"
 "考虑使用 \"git revert --quit\" 或 \"git worktree add\"。"
 
-#: builtin/checkout.c:1412
+#: builtin/checkout.c:1411
 msgid "you are switching branch while bisecting"
 msgstr "您在执行二分查找时切换分支"
 
-#: builtin/checkout.c:1419
+#: builtin/checkout.c:1418
 msgid "paths cannot be used with switching branches"
 msgstr "路径不能和切换分支同时使用"
 
-#: builtin/checkout.c:1422 builtin/checkout.c:1426 builtin/checkout.c:1430
+#: builtin/checkout.c:1421 builtin/checkout.c:1425 builtin/checkout.c:1429
 #, c-format
 msgid "'%s' cannot be used with switching branches"
 msgstr "'%s' 不能和切换分支同时使用"
 
-#: builtin/checkout.c:1434 builtin/checkout.c:1437 builtin/checkout.c:1440
-#: builtin/checkout.c:1445 builtin/checkout.c:1450
+#: builtin/checkout.c:1433 builtin/checkout.c:1436 builtin/checkout.c:1439
+#: builtin/checkout.c:1444 builtin/checkout.c:1449
 #, c-format
 msgid "'%s' cannot be used with '%s'"
 msgstr "'%s' 不能和 '%s' 同时使用"
 
-#: builtin/checkout.c:1447
+#: builtin/checkout.c:1446
 #, c-format
 msgid "'%s' cannot take <start-point>"
 msgstr "'%s' 不带 <起始点>"
 
-#: builtin/checkout.c:1455
+#: builtin/checkout.c:1454
 #, c-format
 msgid "Cannot switch branch to a non-commit '%s'"
 msgstr "不能切换分支到一个非提交 '%s'"
 
-#: builtin/checkout.c:1462
+#: builtin/checkout.c:1461
 msgid "missing branch or commit argument"
 msgstr "缺少分支或提交参数"
 
-#: builtin/checkout.c:1504 builtin/clone.c:92 builtin/commit-graph.c:84
-#: builtin/commit-graph.c:222 builtin/fetch.c:172 builtin/merge.c:296
-#: builtin/multi-pack-index.c:27 builtin/pull.c:119 builtin/push.c:575
-#: builtin/send-pack.c:198
-msgid "force progress reporting"
-msgstr "强制显示进度报告"
-
-#: builtin/checkout.c:1505
+#: builtin/checkout.c:1504
 msgid "perform a 3-way merge with the new branch"
 msgstr "和新的分支执行三方合并"
 
-#: builtin/checkout.c:1506 builtin/log.c:1800 parse-options.h:322
+#: builtin/checkout.c:1505 builtin/log.c:1799 parse-options.h:322
 msgid "style"
 msgstr "风格"
 
-#: builtin/checkout.c:1507
+#: builtin/checkout.c:1506
 msgid "conflict style (merge or diff3)"
 msgstr "冲突输出风格(merge 或 diff3)"
 
-#: builtin/checkout.c:1519 builtin/worktree.c:558
+#: builtin/checkout.c:1518 builtin/worktree.c:486
 msgid "detach HEAD at named commit"
 msgstr "HEAD 从指定的提交分离"
 
-#: builtin/checkout.c:1520
+#: builtin/checkout.c:1519
 msgid "set upstream info for new branch"
 msgstr "为新的分支设置上游信息"
 
-#: builtin/checkout.c:1522
+#: builtin/checkout.c:1521
 msgid "force checkout (throw away local modifications)"
 msgstr "强制检出(丢弃本地修改)"
 
-#: builtin/checkout.c:1524
+#: builtin/checkout.c:1523
 msgid "new-branch"
 msgstr "新分支"
 
-#: builtin/checkout.c:1524
+#: builtin/checkout.c:1523
 msgid "new unparented branch"
 msgstr "新的没有父提交的分支"
 
-#: builtin/checkout.c:1526 builtin/merge.c:300
+#: builtin/checkout.c:1525 builtin/merge.c:301
 msgid "update ignored files (default)"
 msgstr "更新忽略的文件(默认)"
 
-#: builtin/checkout.c:1529
+#: builtin/checkout.c:1528
 msgid "do not check if another worktree is holding the given ref"
 msgstr "不检查指定的引用是否被其他工作区所占用"
 
-#: builtin/checkout.c:1542
+#: builtin/checkout.c:1541
 msgid "checkout our version for unmerged files"
 msgstr "对尚未合并的文件检出我们的版本"
 
-#: builtin/checkout.c:1545
+#: builtin/checkout.c:1544
 msgid "checkout their version for unmerged files"
 msgstr "对尚未合并的文件检出他们的版本"
 
-#: builtin/checkout.c:1549
+#: builtin/checkout.c:1548
 msgid "do not limit pathspecs to sparse entries only"
 msgstr "对路径不做稀疏检出的限制"
 
-#: builtin/checkout.c:1604
+#: builtin/checkout.c:1603
 #, c-format
 msgid "-%c, -%c and --orphan are mutually exclusive"
 msgstr "-%c、-%c 和 --orphan 是互斥的"
 
-#: builtin/checkout.c:1608
+#: builtin/checkout.c:1607
 msgid "-p and --overlay are mutually exclusive"
 msgstr "-p 和 --overlay 互斥"
 
-#: builtin/checkout.c:1645
+#: builtin/checkout.c:1644
 msgid "--track needs a branch name"
 msgstr "--track 需要一个分支名"
 
-#: builtin/checkout.c:1650
+#: builtin/checkout.c:1649
 #, c-format
 msgid "missing branch name; try -%c"
 msgstr "缺少分支名,尝试 -%c"
 
-#: builtin/checkout.c:1682
+#: builtin/checkout.c:1681
 #, c-format
 msgid "could not resolve %s"
 msgstr "无法解析 %s"
 
-#: builtin/checkout.c:1698
+#: builtin/checkout.c:1697
 msgid "invalid path specification"
 msgstr "无效的路径规格"
 
-#: builtin/checkout.c:1705
+#: builtin/checkout.c:1704
 #, c-format
 msgid "'%s' is not a commit and a branch '%s' cannot be created from it"
 msgstr "'%s' 不是一个提交,不能基于它创建分支 '%s'"
 
-#: builtin/checkout.c:1709
+#: builtin/checkout.c:1708
 #, c-format
 msgid "git checkout: --detach does not take a path argument '%s'"
 msgstr "git checkout:--detach 不能接收路径参数 '%s'"
 
-#: builtin/checkout.c:1718
+#: builtin/checkout.c:1717
 msgid "--pathspec-from-file is incompatible with --detach"
 msgstr "--pathspec-from-file 与 --detach 不兼容"
 
-#: builtin/checkout.c:1721 builtin/reset.c:325 builtin/stash.c:1499
+#: builtin/checkout.c:1720 builtin/reset.c:325 builtin/stash.c:1566
 msgid "--pathspec-from-file is incompatible with --patch"
 msgstr "--pathspec-from-file 与 --patch 不兼容"
 
-#: builtin/checkout.c:1734
+#: builtin/checkout.c:1733
 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:1739
+#: builtin/checkout.c:1738
 msgid "you must specify path(s) to restore"
 msgstr "您必须指定一个要恢复的路径"
 
-#: builtin/checkout.c:1765 builtin/checkout.c:1767 builtin/checkout.c:1816
-#: builtin/checkout.c:1818 builtin/clone.c:122 builtin/remote.c:170
-#: builtin/remote.c:172 builtin/submodule--helper.c:2719 builtin/worktree.c:554
-#: builtin/worktree.c:556
+#: builtin/checkout.c:1764 builtin/checkout.c:1766 builtin/checkout.c:1815
+#: builtin/checkout.c:1817 builtin/clone.c:122 builtin/remote.c:170
+#: builtin/remote.c:172 builtin/submodule--helper.c:2719 builtin/worktree.c:482
+#: builtin/worktree.c:484
 msgid "branch"
 msgstr "分支"
 
-#: builtin/checkout.c:1766
+#: builtin/checkout.c:1765
 msgid "create and checkout a new branch"
 msgstr "创建并检出一个新的分支"
 
-#: builtin/checkout.c:1768
+#: builtin/checkout.c:1767
 msgid "create/reset and checkout a branch"
 msgstr "创建/重置并检出一个分支"
 
-#: builtin/checkout.c:1769
+#: builtin/checkout.c:1768
 msgid "create reflog for new branch"
 msgstr "为新的分支创建引用日志"
 
-#: builtin/checkout.c:1771
+#: builtin/checkout.c:1770
 msgid "second guess 'git checkout <no-such-branch>' (default)"
 msgstr "二次猜测 'git checkout <无此分支>'(默认)"
 
-#: builtin/checkout.c:1772
+#: builtin/checkout.c:1771
 msgid "use overlay mode (default)"
 msgstr "使用叠加模式(默认)"
 
-#: builtin/checkout.c:1817
+#: builtin/checkout.c:1816
 msgid "create and switch to a new branch"
 msgstr "创建并切换一个新分支"
 
-#: builtin/checkout.c:1819
+#: builtin/checkout.c:1818
 msgid "create/reset and switch to a branch"
 msgstr "创建/重置并切换一个分支"
 
-#: builtin/checkout.c:1821
+#: builtin/checkout.c:1820
 msgid "second guess 'git switch <no-such-branch>'"
 msgstr "二次猜测 'git switch <无此分支>'"
 
-#: builtin/checkout.c:1823
+#: builtin/checkout.c:1822
 msgid "throw away local modifications"
 msgstr "丢弃本地修改"
 
-#: builtin/checkout.c:1857
+#: builtin/checkout.c:1856
 msgid "which tree-ish to checkout from"
 msgstr "要检出哪一个树"
 
-#: builtin/checkout.c:1859
+#: builtin/checkout.c:1858
 msgid "restore the index"
 msgstr "恢复索引"
 
-#: builtin/checkout.c:1861
+#: builtin/checkout.c:1860
 msgid "restore the working tree (default)"
 msgstr "恢复工作区(默认)"
 
-#: builtin/checkout.c:1863
+#: builtin/checkout.c:1862
 msgid "ignore unmerged entries"
 msgstr "忽略未合并条目"
 
-#: builtin/checkout.c:1864
+#: builtin/checkout.c:1863
 msgid "use overlay mode"
 msgstr "使用叠加模式"
 
@@ -12204,8 +12473,8 @@ msgid "remove whole directories"
 msgstr "删除整个目录"
 
 #: builtin/clean.c:909 builtin/describe.c:565 builtin/describe.c:567
-#: builtin/grep.c:921 builtin/log.c:183 builtin/log.c:185
-#: builtin/ls-files.c:558 builtin/name-rev.c:526 builtin/name-rev.c:528
+#: builtin/grep.c:922 builtin/log.c:184 builtin/log.c:186
+#: builtin/ls-files.c:573 builtin/name-rev.c:526 builtin/name-rev.c:528
 #: builtin/show-ref.c:179
 msgid "pattern"
 msgstr "模式"
@@ -12299,7 +12568,7 @@ msgid "use --reference only while cloning"
 msgstr "仅在克隆时参考 --reference 指向的本地仓库"
 
 #: builtin/clone.c:120 builtin/column.c:27 builtin/init-db.c:563
-#: builtin/merge-file.c:46 builtin/pack-objects.c:3546 builtin/repack.c:358
+#: builtin/merge-file.c:46 builtin/pack-objects.c:3561 builtin/repack.c:357
 msgid "name"
 msgstr "名称"
 
@@ -12315,7 +12584,7 @@ msgstr "检出 <分支> 而不是远程 HEAD"
 msgid "path to git-upload-pack on the remote"
 msgstr "远程 git-upload-pack 路径"
 
-#: builtin/clone.c:126 builtin/fetch.c:173 builtin/grep.c:860
+#: builtin/clone.c:126 builtin/fetch.c:176 builtin/grep.c:861
 #: builtin/pull.c:208
 msgid "depth"
 msgstr "深度"
@@ -12324,7 +12593,7 @@ msgstr "深度"
 msgid "create a shallow clone of that depth"
 msgstr "创建一个指定深度的浅克隆"
 
-#: builtin/clone.c:128 builtin/fetch.c:175 builtin/pack-objects.c:3535
+#: builtin/clone.c:128 builtin/fetch.c:178 builtin/pack-objects.c:3550
 #: builtin/pull.c:211
 msgid "time"
 msgstr "时间"
@@ -12333,12 +12602,12 @@ msgstr "时间"
 msgid "create a shallow clone since a specific time"
 msgstr "从一个特定时间创建一个浅克隆"
 
-#: builtin/clone.c:130 builtin/fetch.c:177 builtin/fetch.c:200
-#: builtin/pull.c:214 builtin/pull.c:239 builtin/rebase.c:1317
+#: builtin/clone.c:130 builtin/fetch.c:180 builtin/fetch.c:203
+#: builtin/pull.c:214 builtin/pull.c:239 builtin/rebase.c:1323
 msgid "revision"
 msgstr "版本"
 
-#: builtin/clone.c:131 builtin/fetch.c:178 builtin/pull.c:215
+#: builtin/clone.c:131 builtin/fetch.c:181 builtin/pull.c:215
 msgid "deepen history of shallow clone, excluding rev"
 msgstr "深化浅克隆的历史,除了特定版本"
 
@@ -12371,22 +12640,22 @@ msgstr "key=value"
 msgid "set config inside the new repository"
 msgstr "在新仓库中设置配置信息"
 
-#: builtin/clone.c:143 builtin/fetch.c:195 builtin/ls-remote.c:76
+#: builtin/clone.c:143 builtin/fetch.c:198 builtin/ls-remote.c:77
 #: builtin/pull.c:230 builtin/push.c:584 builtin/send-pack.c:196
 msgid "server-specific"
 msgstr "server-specific"
 
-#: builtin/clone.c:143 builtin/fetch.c:195 builtin/ls-remote.c:76
+#: builtin/clone.c:143 builtin/fetch.c:198 builtin/ls-remote.c:77
 #: builtin/pull.c:231 builtin/push.c:584 builtin/send-pack.c:197
 msgid "option to transmit"
 msgstr "传输选项"
 
-#: builtin/clone.c:144 builtin/fetch.c:196 builtin/pull.c:234
+#: builtin/clone.c:144 builtin/fetch.c:199 builtin/pull.c:234
 #: builtin/push.c:585
 msgid "use IPv4 addresses only"
 msgstr "只使用 IPv4 地址"
 
-#: builtin/clone.c:146 builtin/fetch.c:198 builtin/pull.c:237
+#: builtin/clone.c:146 builtin/fetch.c:201 builtin/pull.c:237
 #: builtin/push.c:587
 msgid "use IPv6 addresses only"
 msgstr "只使用 IPv6 地址"
@@ -12486,110 +12755,110 @@ msgstr "无法执行 repack 来清理"
 msgid "cannot unlink temporary alternates file"
 msgstr "无法删除临时的 alternates 文件"
 
-#: builtin/clone.c:992 builtin/receive-pack.c:2493
+#: builtin/clone.c:993 builtin/receive-pack.c:2493
 msgid "Too many arguments."
 msgstr "太多参数。"
 
-#: builtin/clone.c:996
+#: builtin/clone.c:997
 msgid "You must specify a repository to clone."
 msgstr "您必须指定一个仓库来克隆。"
 
-#: builtin/clone.c:1009
+#: builtin/clone.c:1010
 #, c-format
 msgid "--bare and --origin %s options are incompatible."
 msgstr "--bare 和 --origin %s 选项不兼容。"
 
-#: builtin/clone.c:1012
+#: builtin/clone.c:1013
 msgid "--bare and --separate-git-dir are incompatible."
 msgstr "--bare 和 --separate-git-dir 选项不兼容。"
 
-#: builtin/clone.c:1025
+#: builtin/clone.c:1026
 #, c-format
 msgid "repository '%s' does not exist"
 msgstr "仓库 '%s' 不存在"
 
-#: builtin/clone.c:1029 builtin/fetch.c:1841
+#: builtin/clone.c:1030 builtin/fetch.c:1951
 #, c-format
 msgid "depth %s is not a positive number"
 msgstr "深度 %s 不是一个正数"
 
-#: builtin/clone.c:1039
+#: builtin/clone.c:1040
 #, c-format
 msgid "destination path '%s' already exists and is not an empty directory."
 msgstr "目标路径 '%s' 已经存在,并且不是一个空目录。"
 
-#: builtin/clone.c:1045
+#: builtin/clone.c:1046
 #, c-format
 msgid "repository path '%s' already exists and is not an empty directory."
 msgstr "仓库路径 '%s' 已经存在,并且不是一个空目录。"
 
-#: builtin/clone.c:1059
+#: builtin/clone.c:1060
 #, c-format
 msgid "working tree '%s' already exists."
 msgstr "工作区 '%s' 已经存在。"
 
-#: builtin/clone.c:1074 builtin/clone.c:1095 builtin/difftool.c:271
-#: builtin/log.c:1987 builtin/worktree.c:354 builtin/worktree.c:386
+#: builtin/clone.c:1075 builtin/clone.c:1096 builtin/difftool.c:271
+#: builtin/log.c:1986 builtin/worktree.c:282 builtin/worktree.c:314
 #, c-format
 msgid "could not create leading directories of '%s'"
 msgstr "不能为 '%s' 创建先导目录"
 
-#: builtin/clone.c:1079
+#: builtin/clone.c:1080
 #, c-format
 msgid "could not create work tree dir '%s'"
 msgstr "不能创建工作区目录 '%s'"
 
-#: builtin/clone.c:1099
+#: builtin/clone.c:1100
 #, c-format
 msgid "Cloning into bare repository '%s'...\n"
 msgstr "克隆到纯仓库 '%s'...\n"
 
-#: builtin/clone.c:1101
+#: builtin/clone.c:1102
 #, c-format
 msgid "Cloning into '%s'...\n"
 msgstr "正克隆到 '%s'...\n"
 
-#: builtin/clone.c:1125
+#: builtin/clone.c:1126
 msgid ""
 "clone --recursive is not compatible with both --reference and --reference-if-"
 "able"
 msgstr "clone --recursive 和 --reference 以及 --reference-if-able 不兼容"
 
-#: builtin/clone.c:1169 builtin/remote.c:200 builtin/remote.c:705
+#: builtin/clone.c:1170 builtin/remote.c:200 builtin/remote.c:705
 #, c-format
 msgid "'%s' is not a valid remote name"
 msgstr "'%s' 不是一个有效的远程名称"
 
-#: builtin/clone.c:1210
+#: builtin/clone.c:1211
 msgid "--depth is ignored in local clones; use file:// instead."
 msgstr "--depth 在本地克隆时被忽略,请改用 file:// 协议。"
 
-#: builtin/clone.c:1212
+#: builtin/clone.c:1213
 msgid "--shallow-since is ignored in local clones; use file:// instead."
 msgstr "--shallow-since 在本地克隆时被忽略,请改用 file:// 协议。"
 
-#: builtin/clone.c:1214
+#: builtin/clone.c:1215
 msgid "--shallow-exclude is ignored in local clones; use file:// instead."
 msgstr "--shallow-exclude 在本地克隆时被忽略,请改用 file:// 协议。"
 
-#: builtin/clone.c:1216
+#: builtin/clone.c:1217
 msgid "--filter is ignored in local clones; use file:// instead."
 msgstr "--filter 在本地克隆时被忽略,请改用 file:// 协议。"
 
-#: builtin/clone.c:1219
+#: builtin/clone.c:1220
 msgid "source repository is shallow, ignoring --local"
 msgstr "源仓库是浅克隆,忽略 --local"
 
-#: builtin/clone.c:1224
+#: builtin/clone.c:1225
 msgid "--local is ignored"
 msgstr "--local 被忽略"
 
-#: builtin/clone.c:1311 builtin/clone.c:1319
+#: builtin/clone.c:1315 builtin/clone.c:1323
 #, c-format
 msgid "Remote branch %s not found in upstream %s"
 msgstr "远程分支 %s 在上游 %s 未发现"
 
-#: builtin/clone.c:1322
+#: builtin/clone.c:1326
 msgid "You appear to have cloned an empty repository."
 msgstr "您似乎克隆了一个空仓库。"
 
@@ -12648,13 +12917,13 @@ msgid "could not find object directory matching %s"
 msgstr "无法找到和 %s 匹配的对象目录"
 
 #: builtin/commit-graph.c:80 builtin/commit-graph.c:210
-#: builtin/commit-graph.c:316 builtin/fetch.c:184 builtin/log.c:1769
+#: builtin/commit-graph.c:316 builtin/fetch.c:187 builtin/log.c:1768
 msgid "dir"
 msgstr "目录"
 
 #: builtin/commit-graph.c:81 builtin/commit-graph.c:211
 #: builtin/commit-graph.c:317
-msgid "The object directory to store the graph"
+msgid "the object directory to store the graph"
 msgstr "保存图形的对象目录"
 
 #: builtin/commit-graph.c:83
@@ -12742,7 +13011,7 @@ msgstr ""
 msgid "duplicate parent %s ignored"
 msgstr "忽略重复的父提交 %s"
 
-#: builtin/commit-tree.c:56 builtin/commit-tree.c:136 builtin/log.c:555
+#: builtin/commit-tree.c:56 builtin/commit-tree.c:136 builtin/log.c:557
 #, c-format
 msgid "not a valid object name %s"
 msgstr "不是一个有效的对象名 %s"
@@ -12770,9 +13039,9 @@ msgstr "父提交"
 msgid "id of a parent commit object"
 msgstr "父提交对象 ID"
 
-#: builtin/commit-tree.c:114 builtin/commit.c:1504 builtin/merge.c:281
-#: builtin/notes.c:409 builtin/notes.c:575 builtin/stash.c:1470
-#: builtin/tag.c:413
+#: builtin/commit-tree.c:114 builtin/commit.c:1504 builtin/merge.c:282
+#: builtin/notes.c:409 builtin/notes.c:575 builtin/stash.c:1537
+#: builtin/tag.c:445
 msgid "message"
 msgstr "说明"
 
@@ -12784,7 +13053,7 @@ msgstr "提交说明"
 msgid "read commit log message from file"
 msgstr "从文件中读取提交说明"
 
-#: builtin/commit-tree.c:121 builtin/commit.c:1516 builtin/merge.c:298
+#: builtin/commit-tree.c:121 builtin/commit.c:1516 builtin/merge.c:299
 #: builtin/pull.c:176 builtin/revert.c:118
 msgid "GPG sign commit"
 msgstr "GPG 提交签名"
@@ -12934,7 +13203,7 @@ msgstr "无法选择一个未被当前提交说明使用的注释字符"
 msgid "could not lookup commit %s"
 msgstr "不能查询提交 %s"
 
-#: builtin/commit.c:729 builtin/shortlog.c:425
+#: builtin/commit.c:729 builtin/shortlog.c:413
 #, c-format
 msgid "(reading log message from standard input)\n"
 msgstr "(正从标准输入中读取日志信息)\n"
@@ -13031,7 +13300,7 @@ msgstr "无法读取索引"
 msgid "Error building trees"
 msgstr "无法创建树对象"
 
-#: builtin/commit.c:1011 builtin/tag.c:276
+#: builtin/commit.c:1011 builtin/tag.c:308
 #, c-format
 msgid "Please supply the message using either -m or -F option.\n"
 msgstr "请使用 -m 或 -F 选项提供提交说明。\n"
@@ -13121,7 +13390,7 @@ msgid "version"
 msgstr "版本"
 
 #: builtin/commit.c:1374 builtin/commit.c:1533 builtin/push.c:560
-#: builtin/worktree.c:725
+#: builtin/worktree.c:679
 msgid "machine-readable output"
 msgstr "机器可读的输出"
 
@@ -13135,7 +13404,7 @@ msgstr "条目以 NUL 字符结尾"
 
 #: builtin/commit.c:1382 builtin/commit.c:1386 builtin/commit.c:1541
 #: builtin/fast-export.c:1198 builtin/fast-export.c:1201
-#: builtin/fast-export.c:1204 builtin/rebase.c:1406 parse-options.h:336
+#: builtin/fast-export.c:1204 builtin/rebase.c:1412 parse-options.h:336
 msgid "mode"
 msgstr "模式"
 
@@ -13189,7 +13458,7 @@ msgstr "在提交说明模板里显示差异"
 msgid "Commit message options"
 msgstr "提交说明选项"
 
-#: builtin/commit.c:1501 builtin/merge.c:285 builtin/tag.c:415
+#: builtin/commit.c:1501 builtin/merge.c:286 builtin/tag.c:447
 msgid "read message from file"
 msgstr "从文件中读取提交说明"
 
@@ -13201,7 +13470,7 @@ msgstr "作者"
 msgid "override author for commit"
 msgstr "提交时覆盖作者"
 
-#: builtin/commit.c:1503 builtin/gc.c:542
+#: builtin/commit.c:1503 builtin/gc.c:550
 msgid "date"
 msgstr "日期"
 
@@ -13210,7 +13479,7 @@ msgid "override date for commit"
 msgstr "提交时覆盖日期"
 
 #: builtin/commit.c:1505 builtin/commit.c:1506 builtin/commit.c:1507
-#: builtin/commit.c:1508 parse-options.h:328 ref-filter.h:87
+#: builtin/commit.c:1508 parse-options.h:328 ref-filter.h:90
 msgid "commit"
 msgstr "提交"
 
@@ -13234,7 +13503,7 @@ msgstr "使用 autosquash 格式的提交说明用以压缩至指定的提交"
 msgid "the commit is authored by me now (used with -C/-c/--amend)"
 msgstr "现在将该提交的作者改为我(和 -C/-c/--amend 参数共用)"
 
-#: builtin/commit.c:1510 builtin/log.c:1744 builtin/merge.c:301
+#: builtin/commit.c:1510 builtin/log.c:1743 builtin/merge.c:302
 #: builtin/pull.c:145 builtin/revert.c:110
 msgid "add a Signed-off-by trailer"
 msgstr "添加 Signed-off-by 尾注"
@@ -13862,41 +14131,41 @@ msgstr "--stdin 和 --merge-base 是互斥的"
 msgid "--merge-base only works with two commits"
 msgstr "--merge-base 仅适用于两个提交"
 
-#: builtin/diff.c:91
+#: builtin/diff.c:92
 #, c-format
 msgid "'%s': not a regular file or symlink"
 msgstr "'%s':不是一个正规文件或符号链接"
 
-#: builtin/diff.c:258
+#: builtin/diff.c:259
 #, c-format
 msgid "invalid option: %s"
 msgstr "无效选项:%s"
 
-#: builtin/diff.c:375
+#: builtin/diff.c:376
 #, c-format
 msgid "%s...%s: no merge base"
 msgstr "%s...%s:无合并基线"
 
-#: builtin/diff.c:485
+#: builtin/diff.c:486
 msgid "Not a git repository"
 msgstr "不是 git 仓库"
 
-#: builtin/diff.c:530 builtin/grep.c:681
+#: builtin/diff.c:532 builtin/grep.c:682
 #, c-format
 msgid "invalid object '%s' given."
 msgstr "提供了无效对象 '%s'。"
 
-#: builtin/diff.c:541
+#: builtin/diff.c:543
 #, c-format
 msgid "more than two blobs given: '%s'"
 msgstr "提供了超过两个数据对象:'%s'"
 
-#: builtin/diff.c:546
+#: builtin/diff.c:548
 #, c-format
 msgid "unhandled object '%s' given."
 msgstr "无法处理的对象 '%s'。"
 
-#: builtin/diff.c:580
+#: builtin/diff.c:582
 #, c-format
 msgid "%s...%s: multiple merge bases, using %s"
 msgstr "%s...%s:多条合并基线,使用 %s"
@@ -14070,39 +14339,39 @@ msgid "select handling of commit messages in an alternate encoding"
 msgstr "选择使用备用编码处理提交说明"
 
 #: builtin/fast-export.c:1208
-msgid "Dump marks to this file"
+msgid "dump marks to this file"
 msgstr "把标记存储到这个文件"
 
 #: builtin/fast-export.c:1210
-msgid "Import marks from this file"
+msgid "import marks from this file"
 msgstr "从这个文件导入标记"
 
 #: builtin/fast-export.c:1214
-msgid "Import marks from this file if it exists"
-msgstr "从该文件导入标记(如果存在的话)"
+msgid "import marks from this file if it exists"
+msgstr "如果文件存在,从该文件导入标记"
 
 #: builtin/fast-export.c:1216
-msgid "Fake a tagger when tags lack one"
-msgstr "当标签缺少标记字段时,假装提供一个"
+msgid "fake a tagger when tags lack one"
+msgstr "当标签缺少标记字段时,假装提供一个"
 
 #: builtin/fast-export.c:1218
-msgid "Output full tree for each commit"
+msgid "output full tree for each commit"
 msgstr "每次提交都输出整个树"
 
 #: builtin/fast-export.c:1220
-msgid "Use the done feature to terminate the stream"
+msgid "use the done feature to terminate the stream"
 msgstr "使用 done 功能来终止流"
 
 #: builtin/fast-export.c:1221
-msgid "Skip output of blob data"
+msgid "skip output of blob data"
 msgstr "跳过数据对象的输出"
 
-#: builtin/fast-export.c:1222 builtin/log.c:1816
+#: builtin/fast-export.c:1222 builtin/log.c:1815
 msgid "refspec"
 msgstr "引用规格"
 
 #: builtin/fast-export.c:1223
-msgid "Apply refspec to exported refs"
+msgid "apply refspec to exported refs"
 msgstr "对导出的引用应用引用规格"
 
 #: builtin/fast-export.c:1224
@@ -14118,15 +14387,15 @@ msgid "convert <from> to <to> in anonymized output"
 msgstr "在匿名输出中将 <from> 转换为 <to>"
 
 #: builtin/fast-export.c:1229
-msgid "Reference parents which are not in fast-export stream by object id"
+msgid "reference parents which are not in fast-export stream by object id"
 msgstr "引用父对象 ID 不在 fast-export 流中"
 
 #: builtin/fast-export.c:1231
-msgid "Show original object ids of blobs/commits"
+msgid "show original object ids of blobs/commits"
 msgstr "显示数据对象/提交的原始对象 ID"
 
 #: builtin/fast-export.c:1233
-msgid "Label tags with mark ids"
+msgid "label tags with mark ids"
 msgstr "对带有标记 ID 的标签做标记"
 
 #: builtin/fast-export.c:1256
@@ -14166,7 +14435,7 @@ msgstr "子模组重写选项的预期格式为 name:filename"
 msgid "feature '%s' forbidden in input without --allow-unsafe-features"
 msgstr "不带 --allow-unsafe-features 的输入中禁止使用功能 '%s'"
 
-#: builtin/fetch-pack.c:241
+#: builtin/fetch-pack.c:242
 #, c-format
 msgid "Lockfile created but not reported: %s"
 msgstr "Lockfile 已创建但未报告:%s"
@@ -14187,190 +14456,194 @@ msgstr "git fetch --multiple [<选项>] [(<仓库> | <组>)...]"
 msgid "git fetch --all [<options>]"
 msgstr "git fetch --all [<选项>]"
 
-#: builtin/fetch.c:119
+#: builtin/fetch.c:120
 msgid "fetch.parallel cannot be negative"
 msgstr "fetch.parallel 不能为负数"
 
-#: builtin/fetch.c:142 builtin/pull.c:185
+#: builtin/fetch.c:143 builtin/pull.c:185
 msgid "fetch from all remotes"
 msgstr "从所有的远程抓取"
 
-#: builtin/fetch.c:144 builtin/pull.c:245
+#: builtin/fetch.c:145 builtin/pull.c:245
 msgid "set upstream for git pull/fetch"
 msgstr "为 git pull/fetch 设置上游"
 
-#: builtin/fetch.c:146 builtin/pull.c:188
+#: builtin/fetch.c:147 builtin/pull.c:188
 msgid "append to .git/FETCH_HEAD instead of overwriting"
 msgstr "追加到 .git/FETCH_HEAD 而不是覆盖它"
 
-#: builtin/fetch.c:148 builtin/pull.c:191
+#: builtin/fetch.c:149
+msgid "use atomic transaction to update references"
+msgstr "使用原子事务更新引用"
+
+#: builtin/fetch.c:151 builtin/pull.c:191
 msgid "path to upload pack on remote end"
 msgstr "上传包到远程的路径"
 
-#: builtin/fetch.c:149
+#: builtin/fetch.c:152
 msgid "force overwrite of local reference"
 msgstr "强制覆盖本地引用"
 
-#: builtin/fetch.c:151
+#: builtin/fetch.c:154
 msgid "fetch from multiple remotes"
 msgstr "从多个远程抓取"
 
-#: builtin/fetch.c:153 builtin/pull.c:195
+#: builtin/fetch.c:156 builtin/pull.c:195
 msgid "fetch all tags and associated objects"
 msgstr "抓取所有的标签和关联对象"
 
-#: builtin/fetch.c:155
+#: builtin/fetch.c:158
 msgid "do not fetch all tags (--no-tags)"
 msgstr "不抓取任何标签(--no-tags)"
 
-#: builtin/fetch.c:157
+#: builtin/fetch.c:160
 msgid "number of submodules fetched in parallel"
 msgstr "子模组获取的并发数"
 
-#: builtin/fetch.c:159 builtin/pull.c:198
+#: builtin/fetch.c:162 builtin/pull.c:198
 msgid "prune remote-tracking branches no longer on remote"
 msgstr "清除远程已经不存在的分支的跟踪分支"
 
-#: builtin/fetch.c:161
+#: builtin/fetch.c:164
 msgid "prune local tags no longer on remote and clobber changed tags"
 msgstr "清除远程不存在的本地标签,并且替换变更标签"
 
 #  译者:可选值,不能翻译
-#: builtin/fetch.c:162 builtin/fetch.c:187 builtin/pull.c:122
+#: builtin/fetch.c:165 builtin/fetch.c:190 builtin/pull.c:122
 msgid "on-demand"
 msgstr "on-demand"
 
-#: builtin/fetch.c:163
+#: builtin/fetch.c:166
 msgid "control recursive fetching of submodules"
 msgstr "控制子模组的递归抓取"
 
-#: builtin/fetch.c:168
+#: builtin/fetch.c:171
 msgid "write fetched references to the FETCH_HEAD file"
 msgstr "将获取到的引用写入 FETCH_HEAD 文件"
 
-#: builtin/fetch.c:169 builtin/pull.c:206
+#: builtin/fetch.c:172 builtin/pull.c:206
 msgid "keep downloaded pack"
 msgstr "保持下载包"
 
-#: builtin/fetch.c:171
+#: builtin/fetch.c:174
 msgid "allow updating of HEAD ref"
 msgstr "允许更新 HEAD 引用"
 
-#: builtin/fetch.c:174 builtin/fetch.c:180 builtin/pull.c:209
+#: builtin/fetch.c:177 builtin/fetch.c:183 builtin/pull.c:209
 #: builtin/pull.c:218
 msgid "deepen history of shallow clone"
 msgstr "深化浅克隆的历史"
 
-#: builtin/fetch.c:176 builtin/pull.c:212
+#: builtin/fetch.c:179 builtin/pull.c:212
 msgid "deepen history of shallow repository based on time"
 msgstr "基于时间来深化浅克隆的历史"
 
-#: builtin/fetch.c:182 builtin/pull.c:221
+#: builtin/fetch.c:185 builtin/pull.c:221
 msgid "convert to a complete repository"
 msgstr "转换为一个完整的仓库"
 
-#: builtin/fetch.c:185
+#: builtin/fetch.c:188
 msgid "prepend this to submodule path output"
 msgstr "在子模组路径输出的前面加上此目录"
 
-#: builtin/fetch.c:188
+#: builtin/fetch.c:191
 msgid ""
 "default for recursive fetching of submodules (lower priority than config "
 "files)"
 msgstr "递归获取子模组的缺省值(比配置文件优先级低)"
 
-#: builtin/fetch.c:192 builtin/pull.c:224
+#: builtin/fetch.c:195 builtin/pull.c:224
 msgid "accept refs that update .git/shallow"
 msgstr "接受更新 .git/shallow 的引用"
 
-#: builtin/fetch.c:193 builtin/pull.c:226
+#: builtin/fetch.c:196 builtin/pull.c:226
 msgid "refmap"
 msgstr "引用映射"
 
-#: builtin/fetch.c:194 builtin/pull.c:227
+#: builtin/fetch.c:197 builtin/pull.c:227
 msgid "specify fetch refmap"
 msgstr "指定获取操作的引用映射"
 
-#: builtin/fetch.c:201 builtin/pull.c:240
+#: builtin/fetch.c:204 builtin/pull.c:240
 msgid "report that we have only objects reachable from this object"
 msgstr "报告我们只拥有从该对象开始可达的对象"
 
-#: builtin/fetch.c:204 builtin/fetch.c:206
+#: builtin/fetch.c:207 builtin/fetch.c:209
 msgid "run 'maintenance --auto' after fetching"
 msgstr "获取后执行 'maintenance --auto'"
 
-#: builtin/fetch.c:208 builtin/pull.c:243
+#: builtin/fetch.c:211 builtin/pull.c:243
 msgid "check for forced-updates on all updated branches"
 msgstr "在所有更新分支上检查强制更新"
 
-#: builtin/fetch.c:210
+#: builtin/fetch.c:213
 msgid "write the commit-graph after fetching"
 msgstr "抓取后写提交图"
 
-#: builtin/fetch.c:212
+#: builtin/fetch.c:215
 msgid "accept refspecs from stdin"
 msgstr "从标准输入获取引用表达式"
 
-#: builtin/fetch.c:523
+#: builtin/fetch.c:526
 msgid "Couldn't find remote ref HEAD"
 msgstr "无法发现远程 HEAD 引用"
 
-#: builtin/fetch.c:677
+#: builtin/fetch.c:697
 #, c-format
 msgid "configuration fetch.output contains invalid value %s"
 msgstr "配置变量 fetch.output 包含无效值 %s"
 
-#: builtin/fetch.c:775
+#: builtin/fetch.c:796
 #, c-format
 msgid "object %s not found"
 msgstr "对象 %s 未发现"
 
-#: builtin/fetch.c:779
+#: builtin/fetch.c:800
 msgid "[up to date]"
 msgstr "[最新]"
 
-#: builtin/fetch.c:792 builtin/fetch.c:808 builtin/fetch.c:880
+#: builtin/fetch.c:813 builtin/fetch.c:829 builtin/fetch.c:901
 msgid "[rejected]"
 msgstr "[已拒绝]"
 
-#: builtin/fetch.c:793
+#: builtin/fetch.c:814
 msgid "can't fetch in current branch"
 msgstr "当前分支下不能执行获取操作"
 
-#: builtin/fetch.c:803
+#: builtin/fetch.c:824
 msgid "[tag update]"
 msgstr "[标签更新]"
 
-#: builtin/fetch.c:804 builtin/fetch.c:841 builtin/fetch.c:863
-#: builtin/fetch.c:875
+#: builtin/fetch.c:825 builtin/fetch.c:862 builtin/fetch.c:884
+#: builtin/fetch.c:896
 msgid "unable to update local ref"
 msgstr "不能更新本地引用"
 
-#: builtin/fetch.c:808
+#: builtin/fetch.c:829
 msgid "would clobber existing tag"
 msgstr "会破坏现有的标签"
 
-#: builtin/fetch.c:830
+#: builtin/fetch.c:851
 msgid "[new tag]"
 msgstr "[新标签]"
 
-#: builtin/fetch.c:833
+#: builtin/fetch.c:854
 msgid "[new branch]"
 msgstr "[新分支]"
 
-#: builtin/fetch.c:836
+#: builtin/fetch.c:857
 msgid "[new ref]"
 msgstr "[新引用]"
 
-#: builtin/fetch.c:875
+#: builtin/fetch.c:896
 msgid "forced update"
 msgstr "强制更新"
 
-#: builtin/fetch.c:880
+#: builtin/fetch.c:901
 msgid "non-fast-forward"
 msgstr "非快进"
 
-#: builtin/fetch.c:901
+#: builtin/fetch.c:1005
 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"
@@ -14380,7 +14653,7 @@ msgstr ""
 "要重新启用,请使用 '--show-forced-updates' 选项或运行\n"
 "'git config fetch.showForcedUpdates true'。"
 
-#: builtin/fetch.c:905
+#: builtin/fetch.c:1009
 #, c-format
 msgid ""
 "It took %.2f seconds to check forced updates. You can use\n"
@@ -14391,22 +14664,22 @@ msgstr ""
 "花了 %.2f 秒来检查强制更新。您可以使用 '--no-show-forced-updates'\n"
 "或运行 'git config fetch.showForcedUpdates false' 以避免此项检查。\n"
 
-#: builtin/fetch.c:939
+#: builtin/fetch.c:1041
 #, c-format
 msgid "%s did not send all necessary objects\n"
 msgstr "%s 未发送所有必需的对象\n"
 
-#: builtin/fetch.c:960
+#: builtin/fetch.c:1069
 #, c-format
 msgid "reject %s because shallow roots are not allowed to be updated"
 msgstr "拒绝 %s 因为浅克隆不允许被更新"
 
-#: builtin/fetch.c:1053 builtin/fetch.c:1191
+#: builtin/fetch.c:1146 builtin/fetch.c:1297
 #, c-format
 msgid "From %.*s\n"
 msgstr "来自 %.*s\n"
 
-#: builtin/fetch.c:1064
+#: builtin/fetch.c:1168
 #, c-format
 msgid ""
 "some local refs could not be updated; try running\n"
@@ -14416,57 +14689,57 @@ msgstr ""
 " 'git remote prune %s' 来删除旧的、有冲突的分支"
 
 #  译者:注意保持前导空格
-#: builtin/fetch.c:1161
+#: builtin/fetch.c:1267
 #, c-format
 msgid "   (%s will become dangling)"
 msgstr "   (%s 将成为悬空状态)"
 
 #  译者:注意保持前导空格
-#: builtin/fetch.c:1162
+#: builtin/fetch.c:1268
 #, c-format
 msgid "   (%s has become dangling)"
 msgstr "   (%s 已成为悬空状态)"
 
-#: builtin/fetch.c:1194
+#: builtin/fetch.c:1300
 msgid "[deleted]"
 msgstr "[已删除]"
 
-#: builtin/fetch.c:1195 builtin/remote.c:1118
+#: builtin/fetch.c:1301 builtin/remote.c:1118
 msgid "(none)"
 msgstr "(无)"
 
-#: builtin/fetch.c:1218
+#: builtin/fetch.c:1324
 #, c-format
 msgid "Refusing to fetch into current branch %s of non-bare repository"
 msgstr "拒绝获取到非纯仓库的当前分支 %s"
 
-#: builtin/fetch.c:1237
+#: builtin/fetch.c:1343
 #, c-format
 msgid "Option \"%s\" value \"%s\" is not valid for %s"
 msgstr "选项 \"%s\" 的值 \"%s\" 对于 %s 是无效的"
 
-#: builtin/fetch.c:1240
+#: builtin/fetch.c:1346
 #, c-format
 msgid "Option \"%s\" is ignored for %s\n"
 msgstr "选项 \"%s\" 为 %s 所忽略\n"
 
-#: builtin/fetch.c:1448
+#: builtin/fetch.c:1558
 msgid "multiple branches detected, incompatible with --set-upstream"
 msgstr "检测到多分支,和 --set-upstream 不兼容"
 
-#: builtin/fetch.c:1463
+#: builtin/fetch.c:1573
 msgid "not setting upstream for a remote remote-tracking branch"
 msgstr "没有为一个远程跟踪分支设置上游"
 
-#: builtin/fetch.c:1465
+#: builtin/fetch.c:1575
 msgid "not setting upstream for a remote tag"
 msgstr "没有为一个远程标签设置上游"
 
-#: builtin/fetch.c:1467
+#: builtin/fetch.c:1577
 msgid "unknown branch type"
 msgstr "未知的分支类型"
 
-#: builtin/fetch.c:1469
+#: builtin/fetch.c:1579
 msgid ""
 "no source branch found.\n"
 "you need to specify exactly one branch with the --set-upstream option."
@@ -14474,71 +14747,75 @@ msgstr ""
 "未发现源分支。\n"
 "您需要使用 --set-upstream 选项指定一个分支。"
 
-#: builtin/fetch.c:1598 builtin/fetch.c:1661
+#: builtin/fetch.c:1708 builtin/fetch.c:1771
 #, c-format
 msgid "Fetching %s\n"
 msgstr "正在获取 %s\n"
 
-#: builtin/fetch.c:1608 builtin/fetch.c:1663 builtin/remote.c:101
+#: builtin/fetch.c:1718 builtin/fetch.c:1773 builtin/remote.c:101
 #, c-format
 msgid "Could not fetch %s"
 msgstr "不能获取 %s"
 
-#: builtin/fetch.c:1620
+#: builtin/fetch.c:1730
 #, c-format
 msgid "could not fetch '%s' (exit code: %d)\n"
 msgstr "无法获取 '%s'(退出码:%d)\n"
 
-#: builtin/fetch.c:1724
+#: builtin/fetch.c:1834
 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:1760
+#: builtin/fetch.c:1870
 msgid "You need to specify a tag name."
 msgstr "您需要指定一个标签名称。"
 
-#: builtin/fetch.c:1825
+#: builtin/fetch.c:1935
 msgid "Negative depth in --deepen is not supported"
 msgstr "--deepen 不支持负数深度"
 
-#: builtin/fetch.c:1827
+#: builtin/fetch.c:1937
 msgid "--deepen and --depth are mutually exclusive"
 msgstr "--deepen 和 --depth 是互斥的"
 
-#: builtin/fetch.c:1832
+#: builtin/fetch.c:1942
 msgid "--depth and --unshallow cannot be used together"
 msgstr "--depth 和 --unshallow 不能同时使用"
 
-#: builtin/fetch.c:1834
+#: builtin/fetch.c:1944
 msgid "--unshallow on a complete repository does not make sense"
 msgstr "对于一个完整的仓库,参数 --unshallow 没有意义"
 
-#: builtin/fetch.c:1851
+#: builtin/fetch.c:1961
 msgid "fetch --all does not take a repository argument"
 msgstr "fetch --all 不能带一个仓库参数"
 
-#: builtin/fetch.c:1853
+#: builtin/fetch.c:1963
 msgid "fetch --all does not make sense with refspecs"
 msgstr "fetch --all 带引用规格没有任何意义"
 
-#: builtin/fetch.c:1862
+#: builtin/fetch.c:1972
 #, c-format
 msgid "No such remote or remote group: %s"
 msgstr "没有这样的远程或远程组:%s"
 
-#: builtin/fetch.c:1869
+#: builtin/fetch.c:1979
 msgid "Fetching a group and specifying refspecs does not make sense"
 msgstr "获取组并指定引用规格没有意义"
 
-#: builtin/fetch.c:1887
+#: builtin/fetch.c:1997
 msgid ""
 "--filter can only be used with the remote configured in extensions."
 "partialclone"
 msgstr "只可以将 --filter 用于在 extensions.partialClone 中配置的远程仓库"
 
-#: builtin/fetch.c:1891
+#: builtin/fetch.c:2001
+msgid "--atomic can only be used when fetching from one remote"
+msgstr "--atomic 仅在从一个远程仓库获取的时候可用"
+
+#: builtin/fetch.c:2005
 msgid "--stdin can only be used when fetching from one remote"
 msgstr "--stdin 仅在从一个远程仓库获取的时候可用"
 
@@ -14603,7 +14880,7 @@ msgstr "引用占位符适用于 Tcl"
 msgid "show only <n> matched refs"
 msgstr "只显示 <n> 个匹配的引用"
 
-#: builtin/for-each-ref.c:39 builtin/tag.c:440
+#: builtin/for-each-ref.c:39 builtin/tag.c:472
 msgid "respect format colors"
 msgstr "遵照格式中的颜色输出"
 
@@ -14643,32 +14920,32 @@ msgstr "存储着仓库路径列表的配置项键名"
 msgid "missing --config=<config>"
 msgstr "缺少 --config=<配置>"
 
-#: builtin/fsck.c:69 builtin/fsck.c:148 builtin/fsck.c:149
+#: builtin/fsck.c:69 builtin/fsck.c:130 builtin/fsck.c:131
 msgid "unknown"
 msgstr "未知"
 
 #. TRANSLATORS: e.g. error in tree 01bfda: <more explanation>
-#: builtin/fsck.c:101 builtin/fsck.c:121
+#: builtin/fsck.c:83 builtin/fsck.c:103
 #, c-format
 msgid "error in %s %s: %s"
 msgstr "%s %s 错误:%s"
 
 #. TRANSLATORS: e.g. warning in tree 01bfda: <more explanation>
-#: builtin/fsck.c:115
+#: builtin/fsck.c:97
 #, c-format
 msgid "warning in %s %s: %s"
 msgstr "%s %s 警告:%s"
 
-#: builtin/fsck.c:144 builtin/fsck.c:147
+#: builtin/fsck.c:126 builtin/fsck.c:129
 #, c-format
 msgid "broken link from %7s %s"
 msgstr "来自 %7s %s 的损坏的链接"
 
-#: builtin/fsck.c:156
+#: builtin/fsck.c:138
 msgid "wrong object type in link"
 msgstr "链接中错误的对象类型"
 
-#: builtin/fsck.c:172
+#: builtin/fsck.c:154
 #, c-format
 msgid ""
 "broken link from %7s %s\n"
@@ -14677,211 +14954,211 @@ msgstr ""
 "损坏的链接来自于 %7s %s\n"
 "              到 %7s %s"
 
-#: builtin/fsck.c:283
+#: builtin/fsck.c:265
 #, c-format
 msgid "missing %s %s"
 msgstr "缺失 %s %s"
 
-#: builtin/fsck.c:310
+#: builtin/fsck.c:292
 #, c-format
 msgid "unreachable %s %s"
 msgstr "不可达 %s %s"
 
-#: builtin/fsck.c:330
+#: builtin/fsck.c:312
 #, c-format
 msgid "dangling %s %s"
 msgstr "悬空 %s %s"
 
-#: builtin/fsck.c:340
+#: builtin/fsck.c:322
 msgid "could not create lost-found"
 msgstr "不能创建 lost-found"
 
-#: builtin/fsck.c:351
+#: builtin/fsck.c:333
 #, c-format
 msgid "could not finish '%s'"
 msgstr "不能完成 '%s'"
 
-#: builtin/fsck.c:368
+#: builtin/fsck.c:350
 #, c-format
 msgid "Checking %s"
 msgstr "正在检查 %s"
 
-#: builtin/fsck.c:406
+#: builtin/fsck.c:388
 #, c-format
 msgid "Checking connectivity (%d objects)"
 msgstr "正在检查连通性(%d 个对象)"
 
-#: builtin/fsck.c:425
+#: builtin/fsck.c:407
 #, c-format
 msgid "Checking %s %s"
 msgstr "正在检查 %s %s"
 
-#: builtin/fsck.c:430
+#: builtin/fsck.c:412
 msgid "broken links"
 msgstr "损坏的链接"
 
-#: builtin/fsck.c:439
+#: builtin/fsck.c:421
 #, c-format
 msgid "root %s"
 msgstr "根 %s"
 
-#: builtin/fsck.c:447
+#: builtin/fsck.c:429
 #, c-format
 msgid "tagged %s %s (%s) in %s"
 msgstr "标记 %s %s (%s) 于 %s"
 
-#: builtin/fsck.c:476
+#: builtin/fsck.c:458
 #, c-format
 msgid "%s: object corrupt or missing"
 msgstr "%s:对象损坏或丢失"
 
-#: builtin/fsck.c:501
+#: builtin/fsck.c:483
 #, c-format
 msgid "%s: invalid reflog entry %s"
 msgstr "%s:无效的引用日志条目 %s"
 
-#: builtin/fsck.c:515
+#: builtin/fsck.c:497
 #, c-format
 msgid "Checking reflog %s->%s"
 msgstr "正在检查引用日志 %s->%s"
 
-#: builtin/fsck.c:549
+#: builtin/fsck.c:531
 #, c-format
 msgid "%s: invalid sha1 pointer %s"
 msgstr "%s:无效的 sha1 指针 %s"
 
-#: builtin/fsck.c:556
+#: builtin/fsck.c:538
 #, c-format
 msgid "%s: not a commit"
 msgstr "%s:不是一个提交"
 
-#: builtin/fsck.c:610
+#: builtin/fsck.c:592
 msgid "notice: No default references"
 msgstr "注意:无默认引用"
 
-#: builtin/fsck.c:625
+#: builtin/fsck.c:607
 #, c-format
 msgid "%s: object corrupt or missing: %s"
 msgstr "%s:对象损坏或丢失:%s"
 
-#: builtin/fsck.c:638
+#: builtin/fsck.c:620
 #, c-format
 msgid "%s: object could not be parsed: %s"
 msgstr "%s:不能解析对象:%s"
 
-#: builtin/fsck.c:658
+#: builtin/fsck.c:640
 #, c-format
 msgid "bad sha1 file: %s"
 msgstr "坏的 sha1 文件:%s"
 
-#: builtin/fsck.c:673
+#: builtin/fsck.c:655
 msgid "Checking object directory"
 msgstr "正在检查对象目录"
 
-#: builtin/fsck.c:676
+#: builtin/fsck.c:658
 msgid "Checking object directories"
 msgstr "正在检查对象目录"
 
-#: builtin/fsck.c:691
+#: builtin/fsck.c:673
 #, c-format
 msgid "Checking %s link"
 msgstr "正在检查 %s 链接"
 
-#: builtin/fsck.c:696 builtin/index-pack.c:865
+#: builtin/fsck.c:678 builtin/index-pack.c:865
 #, c-format
 msgid "invalid %s"
 msgstr "无效的 %s"
 
-#: builtin/fsck.c:703
+#: builtin/fsck.c:685
 #, c-format
 msgid "%s points to something strange (%s)"
 msgstr "%s 指向奇怪的东西(%s)"
 
-#: builtin/fsck.c:709
+#: builtin/fsck.c:691
 #, c-format
 msgid "%s: detached HEAD points at nothing"
 msgstr "%s:分离头指针的指向不存在"
 
-#: builtin/fsck.c:713
+#: builtin/fsck.c:695
 #, c-format
 msgid "notice: %s points to an unborn branch (%s)"
 msgstr "注意:%s 指向一个尚未诞生的分支(%s)"
 
-#: builtin/fsck.c:725
+#: builtin/fsck.c:707
 msgid "Checking cache tree"
 msgstr "正在检查缓存树"
 
-#: builtin/fsck.c:730
+#: builtin/fsck.c:712
 #, c-format
 msgid "%s: invalid sha1 pointer in cache-tree"
 msgstr "%s:cache-tree 中无效的 sha1 指针"
 
-#: builtin/fsck.c:739
+#: builtin/fsck.c:721
 msgid "non-tree in cache-tree"
 msgstr "cache-tree 中非树对象"
 
-#: builtin/fsck.c:770
+#: builtin/fsck.c:752
 msgid "git fsck [<options>] [<object>...]"
 msgstr "git fsck [<选项>] [<对象>...]"
 
-#: builtin/fsck.c:776
+#: builtin/fsck.c:758
 msgid "show unreachable objects"
 msgstr "显示不可达的对象"
 
-#: builtin/fsck.c:777
+#: builtin/fsck.c:759
 msgid "show dangling objects"
 msgstr "显示悬空的对象"
 
-#: builtin/fsck.c:778
+#: builtin/fsck.c:760
 msgid "report tags"
 msgstr "报告标签"
 
-#: builtin/fsck.c:779
+#: builtin/fsck.c:761
 msgid "report root nodes"
 msgstr "报告根节点"
 
-#: builtin/fsck.c:780
+#: builtin/fsck.c:762
 msgid "make index objects head nodes"
 msgstr "将索引亦作为检查的头节点"
 
-#: builtin/fsck.c:781
+#: builtin/fsck.c:763
 msgid "make reflogs head nodes (default)"
 msgstr "将引用日志作为检查的头节点(默认)"
 
-#: builtin/fsck.c:782
+#: builtin/fsck.c:764
 msgid "also consider packs and alternate objects"
 msgstr "也考虑包和备用对象"
 
-#: builtin/fsck.c:783
+#: builtin/fsck.c:765
 msgid "check only connectivity"
 msgstr "仅检查连通性"
 
-#: builtin/fsck.c:784
+#: builtin/fsck.c:766 builtin/mktag.c:78
 msgid "enable more strict checking"
 msgstr "启用更严格的检查"
 
-#: builtin/fsck.c:786
+#: builtin/fsck.c:768
 msgid "write dangling objects in .git/lost-found"
 msgstr "将悬空对象写入 .git/lost-found 中"
 
-#: builtin/fsck.c:787 builtin/prune.c:134
+#: builtin/fsck.c:769 builtin/prune.c:134
 msgid "show progress"
 msgstr "显示进度"
 
-#: builtin/fsck.c:788
+#: builtin/fsck.c:770
 msgid "show verbose names for reachable objects"
 msgstr "显示可达对象的详细名称"
 
-#: builtin/fsck.c:847 builtin/index-pack.c:261
+#: builtin/fsck.c:829 builtin/index-pack.c:261
 msgid "Checking objects"
 msgstr "正在检查对象"
 
-#: builtin/fsck.c:875
+#: builtin/fsck.c:857
 #, c-format
 msgid "%s: object missing"
 msgstr "%s:对象缺失"
 
-#: builtin/fsck.c:886
+#: builtin/fsck.c:868
 #, c-format
 msgid "invalid parameter: expected sha1, got '%s'"
 msgstr "无效的参数:期望 sha1,得到 '%s'"
@@ -14890,27 +15167,27 @@ msgstr "无效的参数:期望 sha1,得到 '%s'"
 msgid "git gc [<options>]"
 msgstr "git gc [<选项>]"
 
-#: builtin/gc.c:94
+#: builtin/gc.c:93
 #, c-format
 msgid "Failed to fstat %s: %s"
 msgstr "对 %s 调用 fstat 失败:%s"
 
-#: builtin/gc.c:130
+#: builtin/gc.c:129
 #, c-format
 msgid "failed to parse '%s' value '%s'"
 msgstr "无法解析 '%s' 值 '%s'"
 
-#: builtin/gc.c:479 builtin/init-db.c:58
+#: builtin/gc.c:487 builtin/init-db.c:58
 #, c-format
 msgid "cannot stat '%s'"
 msgstr "不能对 '%s' 调用 stat"
 
-#: builtin/gc.c:488 builtin/notes.c:240 builtin/tag.c:530
+#: builtin/gc.c:496 builtin/notes.c:240 builtin/tag.c:562
 #, c-format
 msgid "cannot read '%s'"
 msgstr "不能读取 '%s'"
 
-#: builtin/gc.c:495
+#: builtin/gc.c:503
 #, c-format
 msgid ""
 "The last gc run reported the following. Please correct the root cause\n"
@@ -14924,192 +15201,219 @@ msgstr ""
 "\n"
 "%s"
 
-#: builtin/gc.c:543
+#: builtin/gc.c:551
 msgid "prune unreferenced objects"
 msgstr "清除未引用的对象"
 
-#: builtin/gc.c:545
+#: builtin/gc.c:553
 msgid "be more thorough (increased runtime)"
 msgstr "更彻底(增加运行时间)"
 
-#: builtin/gc.c:546
+#: builtin/gc.c:554
 msgid "enable auto-gc mode"
 msgstr "启用自动垃圾回收模式"
 
-#: builtin/gc.c:549
+#: builtin/gc.c:557
 msgid "force running gc even if there may be another gc running"
 msgstr "强制执行 gc 即使另外一个 gc 正在执行"
 
-#: builtin/gc.c:552
+#: builtin/gc.c:560
 msgid "repack all other packs except the largest pack"
 msgstr "除了最大的包之外,对所有其它包文件重新打包"
 
-#: builtin/gc.c:569
+#: builtin/gc.c:576
 #, c-format
 msgid "failed to parse gc.logexpiry value %s"
 msgstr "解析 gc.logexpiry 的值 %s 失败"
 
-#: builtin/gc.c:580
+#: builtin/gc.c:587
 #, c-format
 msgid "failed to parse prune expiry value %s"
 msgstr "解析清除期限值 %s 失败"
 
-#: builtin/gc.c:600
+#: builtin/gc.c:607
 #, c-format
 msgid "Auto packing the repository in background for optimum performance.\n"
 msgstr "自动在后台执行仓库打包以求最佳性能。\n"
 
-#: builtin/gc.c:602
+#: builtin/gc.c:609
 #, c-format
 msgid "Auto packing the repository for optimum performance.\n"
 msgstr "自动打包仓库以求最佳性能。\n"
 
-#: builtin/gc.c:603
+#: builtin/gc.c:610
 #, c-format
 msgid "See \"git help gc\" for manual housekeeping.\n"
 msgstr "手工维护参见 \"git help gc\"。\n"
 
-#: builtin/gc.c:643
+#: builtin/gc.c:650
 #, c-format
 msgid ""
 "gc is already running on machine '%s' pid %<PRIuMAX> (use --force if not)"
 msgstr ""
 "已经有一个 gc 正运行在机器 '%s' pid %<PRIuMAX>(如果不是,使用 --force)"
 
-#: builtin/gc.c:698
+#: builtin/gc.c:705
 msgid ""
 "There are too many unreachable loose objects; run 'git prune' to remove them."
 msgstr "有太多不可达的松散对象,运行 'git prune' 删除它们。"
 
-#: builtin/gc.c:708
+#: builtin/gc.c:715
 msgid ""
 "git maintenance run [--auto] [--[no-]quiet] [--task=<task>] [--schedule]"
 msgstr ""
 "git maintenance run [--auto] [--[no-]quiet] [--task=<任务>] [--schedule]"
 
-#: builtin/gc.c:738
+#: builtin/gc.c:745
 msgid "--no-schedule is not allowed"
 msgstr "--no-schedule 不被允许"
 
-#: builtin/gc.c:743
+#: builtin/gc.c:750
 #, c-format
 msgid "unrecognized --schedule argument '%s'"
 msgstr "无法识别的 --schedule 参数 '%s'"
 
-#: builtin/gc.c:862
+#: builtin/gc.c:869
 msgid "failed to write commit-graph"
 msgstr "无法写入提交图"
 
-#: builtin/gc.c:901
+#: builtin/gc.c:914
 msgid "failed to fill remotes"
 msgstr "无法填充远程仓库"
 
-#: builtin/gc.c:1024
+#: builtin/gc.c:1037
 msgid "failed to start 'git pack-objects' process"
 msgstr "无法启动 'git pack-objects' 进程"
 
-#: builtin/gc.c:1041
+#: builtin/gc.c:1054
 msgid "failed to finish 'git pack-objects' process"
 msgstr "无法完成 'git pack-objects' 进程"
 
-#: builtin/gc.c:1093
+#: builtin/gc.c:1106
 msgid "failed to write multi-pack-index"
 msgstr "无法写入多包索引"
 
-#: builtin/gc.c:1111
+#: builtin/gc.c:1124
 msgid "'git multi-pack-index expire' failed"
 msgstr "'git multi-pack-index expire' 失败"
 
-#: builtin/gc.c:1172
+#: builtin/gc.c:1185
 msgid "'git multi-pack-index repack' failed"
 msgstr "'git multi-pack-index repack' 失败"
 
-#: builtin/gc.c:1181
+#: builtin/gc.c:1194
 msgid ""
 "skipping incremental-repack task because core.multiPackIndex is disabled"
 msgstr "跳过增量重新打包任务,因为 core.multiPackIndex 被禁用"
 
-#: builtin/gc.c:1279
+#: builtin/gc.c:1298
 #, c-format
 msgid "lock file '%s' exists, skipping maintenance"
 msgstr "锁文件 '%s' 已存在,跳过维护"
 
-#: builtin/gc.c:1309
+#: builtin/gc.c:1328
 #, c-format
 msgid "task '%s' failed"
 msgstr "任务 '%s' 失败"
 
-#: builtin/gc.c:1389
+#: builtin/gc.c:1410
 #, c-format
 msgid "'%s' is not a valid task"
 msgstr "'%s' 不是一个有效的任务"
 
-#: builtin/gc.c:1394
+#: builtin/gc.c:1415
 #, c-format
 msgid "task '%s' cannot be selected multiple times"
 msgstr "任务 '%s' 不能被多次选择"
 
-#: builtin/gc.c:1409
+#: builtin/gc.c:1430
 msgid "run tasks based on the state of the repository"
 msgstr "基于仓库状态来运行任务"
 
-#: builtin/gc.c:1410
+#: builtin/gc.c:1431
 msgid "frequency"
 msgstr "频率"
 
-#: builtin/gc.c:1411
+#: builtin/gc.c:1432
 msgid "run tasks based on frequency"
 msgstr "基于频率运行任务"
 
-#: builtin/gc.c:1414
+#: builtin/gc.c:1435
 msgid "do not report progress or other information over stderr"
 msgstr "不通过标准错误报告进度或其它信息"
 
-#: builtin/gc.c:1415
+#: builtin/gc.c:1436
 msgid "task"
 msgstr "任务"
 
-#: builtin/gc.c:1416
+#: builtin/gc.c:1437
 msgid "run a specific task"
 msgstr "运行一个特定的任务"
 
-#: builtin/gc.c:1433
+#: builtin/gc.c:1454
 msgid "use at most one of --auto and --schedule=<frequency>"
 msgstr "最多使用 --auto 和 --schedule=<频率> 其中之一"
 
-#: builtin/gc.c:1467
+#: builtin/gc.c:1497
 msgid "failed to run 'git config'"
 msgstr "无法运行 'git config'"
 
-#: builtin/gc.c:1512
-msgid "another process is scheduling background maintenance"
-msgstr "另外一个进程正运行于后台维护"
+#: builtin/gc.c:1562
+#, c-format
+msgid "failed to expand path '%s'"
+msgstr "无法扩展路径 '%s'"
+
+#: builtin/gc.c:1591
+msgid "failed to start launchctl"
+msgstr "无法启动 launchctl"
 
-#: builtin/gc.c:1525
+#: builtin/gc.c:1628
+#, c-format
+msgid "failed to create directories for '%s'"
+msgstr "无法为 '%s' 创建目录"
+
+#: builtin/gc.c:1689
+#, c-format
+msgid "failed to bootstrap service %s"
+msgstr "无法引导服务 %s"
+
+#: builtin/gc.c:1760
+msgid "failed to create temp xml file"
+msgstr "无法创建临时 XML 文件"
+
+#: builtin/gc.c:1850
+msgid "failed to start schtasks"
+msgstr "无法启动计划任务"
+
+#: builtin/gc.c:1894
 msgid "failed to run 'crontab -l'; your system might not support 'cron'"
 msgstr "无法执行 'crontab -l',您的系统可能不支持 'cron'"
 
-#: builtin/gc.c:1544
+#: builtin/gc.c:1911
 msgid "failed to run 'crontab'; your system might not support 'cron'"
 msgstr "无法运行 'crontab',您的系统可能不支持 'cron'"
 
-#: builtin/gc.c:1550
+#: builtin/gc.c:1915
 msgid "failed to open stdin of 'crontab'"
 msgstr "无法打开 'crontab' 的标准输入"
 
-#: builtin/gc.c:1592
+#: builtin/gc.c:1956
 msgid "'crontab' died"
 msgstr "'crontab' 终止"
 
-#: builtin/gc.c:1605
+#: builtin/gc.c:1990
+msgid "another process is scheduling background maintenance"
+msgstr "另外一个进程正运行于后台维护"
+
+#: builtin/gc.c:2009
 msgid "failed to add repo to global config"
 msgstr "无法将仓库添加到全局配置"
 
-#: builtin/gc.c:1615
+#: builtin/gc.c:2019
 msgid "git maintenance <subcommand> [<options>]"
 msgstr "git maintenance <子命令> [<选项>]"
 
-#: builtin/gc.c:1634
+#: builtin/gc.c:2038
 #, c-format
 msgid "invalid subcommand: %s"
 msgstr "无效子命令:%s"
@@ -15118,12 +15422,12 @@ msgstr "无效子命令:%s"
 msgid "git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]"
 msgstr "git grep [<选项>] [-e] <模式> [<版本>...] [[--] <路径>...]"
 
-#: builtin/grep.c:225
+#: builtin/grep.c:223
 #, c-format
 msgid "grep: failed to create thread: %s"
 msgstr "grep:无法创建线程:%s"
 
-#: builtin/grep.c:279
+#: builtin/grep.c:277
 #, c-format
 msgid "invalid number of threads specified (%d) for %s"
 msgstr "为 %2$s 设定的线程数 (%1$d) 无效"
@@ -15132,259 +15436,259 @@ msgstr "为 %2$s 设定的线程数 (%1$d) 无效"
 #. variable for tweaking threads, currently
 #. grep.threads
 #.
-#: builtin/grep.c:287 builtin/index-pack.c:1576 builtin/index-pack.c:1766
-#: builtin/pack-objects.c:2936
+#: builtin/grep.c:285 builtin/index-pack.c:1589 builtin/index-pack.c:1808
+#: builtin/pack-objects.c:2944
 #, c-format
 msgid "no threads support, ignoring %s"
 msgstr "没有线程支持,忽略 %s"
 
-#: builtin/grep.c:475 builtin/grep.c:600 builtin/grep.c:640
+#: builtin/grep.c:473 builtin/grep.c:601 builtin/grep.c:641
 #, c-format
 msgid "unable to read tree (%s)"
 msgstr "无法读取树(%s)"
 
-#: builtin/grep.c:655
+#: builtin/grep.c:656
 #, c-format
 msgid "unable to grep from object of type %s"
 msgstr "无法抓取来自于 %s 类型的对象"
 
-#: builtin/grep.c:736
+#: builtin/grep.c:737
 #, c-format
 msgid "switch `%c' expects a numerical value"
 msgstr "开关 `%c' 期望一个数字值"
 
-#: builtin/grep.c:835
+#: builtin/grep.c:836
 msgid "search in index instead of in the work tree"
 msgstr "在索引区搜索而不是在工作区"
 
-#: builtin/grep.c:837
+#: builtin/grep.c:838
 msgid "find in contents not managed by git"
 msgstr "在未被 git 管理的内容中查找"
 
 #  译者:中文字符串拼接,可删除前导空格
-#: builtin/grep.c:839
+#: builtin/grep.c:840
 msgid "search in both tracked and untracked files"
 msgstr "在跟踪和未跟踪的文件中搜索"
 
-#: builtin/grep.c:841
+#: builtin/grep.c:842
 msgid "ignore files specified via '.gitignore'"
 msgstr "忽略 '.gitignore' 包含的文件"
 
-#: builtin/grep.c:843
+#: builtin/grep.c:844
 msgid "recursively search in each submodule"
 msgstr "在每一个子模组中递归搜索"
 
-#: builtin/grep.c:846
+#: builtin/grep.c:847
 msgid "show non-matching lines"
 msgstr "显示未匹配的行"
 
-#: builtin/grep.c:848
+#: builtin/grep.c:849
 msgid "case insensitive matching"
 msgstr "不区分大小写匹配"
 
-#: builtin/grep.c:850
+#: builtin/grep.c:851
 msgid "match patterns only at word boundaries"
 msgstr "只在单词边界匹配模式"
 
-#: builtin/grep.c:852
+#: builtin/grep.c:853
 msgid "process binary files as text"
 msgstr "把二进制文件当做文本处理"
 
-#: builtin/grep.c:854
+#: builtin/grep.c:855
 msgid "don't match patterns in binary files"
 msgstr "不在二进制文件中匹配模式"
 
-#: builtin/grep.c:857
+#: builtin/grep.c:858
 msgid "process binary files with textconv filters"
 msgstr "用 textconv 过滤器处理二进制文件"
 
-#: builtin/grep.c:859
+#: builtin/grep.c:860
 msgid "search in subdirectories (default)"
 msgstr "在子目录中寻找(默认)"
 
-#: builtin/grep.c:861
+#: builtin/grep.c:862
 msgid "descend at most <depth> levels"
 msgstr "最多以指定的深度向下寻找"
 
-#: builtin/grep.c:865
+#: builtin/grep.c:866
 msgid "use extended POSIX regular expressions"
 msgstr "使用扩展的 POSIX 正则表达式"
 
-#: builtin/grep.c:868
+#: builtin/grep.c:869
 msgid "use basic POSIX regular expressions (default)"
 msgstr "使用基本的 POSIX 正则表达式(默认)"
 
-#: builtin/grep.c:871
+#: builtin/grep.c:872
 msgid "interpret patterns as fixed strings"
 msgstr "把模式解析为固定的字符串"
 
-#: builtin/grep.c:874
+#: builtin/grep.c:875
 msgid "use Perl-compatible regular expressions"
 msgstr "使用 Perl 兼容的正则表达式"
 
-#: builtin/grep.c:877
+#: builtin/grep.c:878
 msgid "show line numbers"
 msgstr "显示行号"
 
-#: builtin/grep.c:878
+#: builtin/grep.c:879
 msgid "show column number of first match"
 msgstr "显示第一个匹配的列号"
 
-#: builtin/grep.c:879
+#: builtin/grep.c:880
 msgid "don't show filenames"
 msgstr "不显示文件名"
 
-#: builtin/grep.c:880
+#: builtin/grep.c:881
 msgid "show filenames"
 msgstr "显示文件名"
 
-#: builtin/grep.c:882
+#: builtin/grep.c:883
 msgid "show filenames relative to top directory"
 msgstr "显示相对于顶级目录的文件名"
 
-#: builtin/grep.c:884
+#: builtin/grep.c:885
 msgid "show only filenames instead of matching lines"
 msgstr "只显示文件名而不显示匹配的行"
 
-#: builtin/grep.c:886
+#: builtin/grep.c:887
 msgid "synonym for --files-with-matches"
 msgstr "和 --files-with-matches 同义"
 
-#: builtin/grep.c:889
+#: builtin/grep.c:890
 msgid "show only the names of files without match"
 msgstr "只显示未匹配的文件名"
 
-#: builtin/grep.c:891
+#: builtin/grep.c:892
 msgid "print NUL after filenames"
 msgstr "在文件名后输出 NUL 字符"
 
-#: builtin/grep.c:894
+#: builtin/grep.c:895
 msgid "show only matching parts of a line"
 msgstr "只显示行中的匹配的部分"
 
-#: builtin/grep.c:896
+#: builtin/grep.c:897
 msgid "show the number of matches instead of matching lines"
 msgstr "显示总匹配行数,而不显示匹配的行"
 
-#: builtin/grep.c:897
+#: builtin/grep.c:898
 msgid "highlight matches"
 msgstr "高亮显示匹配项"
 
-#: builtin/grep.c:899
+#: builtin/grep.c:900
 msgid "print empty line between matches from different files"
 msgstr "在不同文件的匹配项之间打印空行"
 
-#: builtin/grep.c:901
+#: builtin/grep.c:902
 msgid "show filename only once above matches from same file"
 msgstr "只在同一文件的匹配项的上面显示一次文件名"
 
-#: builtin/grep.c:904
+#: builtin/grep.c:905
 msgid "show <n> context lines before and after matches"
 msgstr "显示匹配项前后的 <n> 行上下文"
 
-#: builtin/grep.c:907
+#: builtin/grep.c:908
 msgid "show <n> context lines before matches"
 msgstr "显示匹配项前 <n> 行上下文"
 
-#: builtin/grep.c:909
+#: builtin/grep.c:910
 msgid "show <n> context lines after matches"
 msgstr "显示匹配项后 <n> 行上下文"
 
-#: builtin/grep.c:911
+#: builtin/grep.c:912
 msgid "use <n> worker threads"
 msgstr "使用 <n> 个工作线程"
 
-#: builtin/grep.c:912
+#: builtin/grep.c:913
 msgid "shortcut for -C NUM"
 msgstr "快捷键 -C 数字"
 
-#: builtin/grep.c:915
+#: builtin/grep.c:916
 msgid "show a line with the function name before matches"
 msgstr "在匹配的前面显示一行函数名"
 
-#: builtin/grep.c:917
+#: builtin/grep.c:918
 msgid "show the surrounding function"
 msgstr "显示所在函数的前后内容"
 
-#: builtin/grep.c:920
+#: builtin/grep.c:921
 msgid "read patterns from file"
 msgstr "从文件读取模式"
 
-#: builtin/grep.c:922
+#: builtin/grep.c:923
 msgid "match <pattern>"
 msgstr "匹配 <模式>"
 
-#: builtin/grep.c:924
+#: builtin/grep.c:925
 msgid "combine patterns specified with -e"
 msgstr "组合用 -e 参数设定的模式"
 
-#: builtin/grep.c:936
+#: builtin/grep.c:937
 msgid "indicate hit with exit status without output"
 msgstr "不输出,而用退出码标识命中状态"
 
-#: builtin/grep.c:938
+#: builtin/grep.c:939
 msgid "show only matches from files that match all patterns"
 msgstr "只显示匹配所有模式的文件中的匹配"
 
-#: builtin/grep.c:940
-msgid "show parse tree for grep expression"
-msgstr "显示 grep 表达式的解析树"
-
-#: builtin/grep.c:944
+#: builtin/grep.c:942
 msgid "pager"
 msgstr "分页"
 
-#: builtin/grep.c:944
+#: builtin/grep.c:942
 msgid "show matching files in the pager"
 msgstr "分页显示匹配的文件"
 
-#: builtin/grep.c:948
+#: builtin/grep.c:946
 msgid "allow calling of grep(1) (ignored by this build)"
 msgstr "允许调用 grep(1)(本次构建忽略)"
 
-#: builtin/grep.c:1014
+#: builtin/grep.c:1012
 msgid "no pattern given"
 msgstr "未提供匹配模式"
 
-#: builtin/grep.c:1050
+#: builtin/grep.c:1048
 msgid "--no-index or --untracked cannot be used with revs"
 msgstr "--no-index 或 --untracked 不能和版本同时使用"
 
-#: builtin/grep.c:1058
+#: builtin/grep.c:1056
 #, c-format
 msgid "unable to resolve revision: %s"
 msgstr "不能解析版本:%s"
 
-#: builtin/grep.c:1088
+#: builtin/grep.c:1086
 msgid "--untracked not supported with --recurse-submodules"
 msgstr "--untracked 不支持和 --recurse-submodules 共用"
 
-#: builtin/grep.c:1092
+#: builtin/grep.c:1090
 msgid "invalid option combination, ignoring --threads"
 msgstr "无效的选项组合,忽略 --threads"
 
-#: builtin/grep.c:1095 builtin/pack-objects.c:3655
+#: builtin/grep.c:1093 builtin/pack-objects.c:3672
 msgid "no threads support, ignoring --threads"
 msgstr "没有线程支持,忽略 --threads"
 
-#: builtin/grep.c:1098 builtin/index-pack.c:1573 builtin/pack-objects.c:2933
+#: builtin/grep.c:1096 builtin/index-pack.c:1586 builtin/pack-objects.c:2941
 #, c-format
 msgid "invalid number of threads specified (%d)"
 msgstr "指定的线程数无效(%d)"
 
-#: builtin/grep.c:1132
+#: builtin/grep.c:1130
 msgid "--open-files-in-pager only works on the worktree"
 msgstr "--open-files-in-pager 仅用于工作区"
 
-#: builtin/grep.c:1158
+#: builtin/grep.c:1156
 msgid "--cached or --untracked cannot be used with --no-index"
 msgstr "--cached 或 --untracked 不能与 --no-index 同时使用"
 
-#: builtin/grep.c:1164
+#: builtin/grep.c:1159
+msgid "--untracked cannot be used with --cached"
+msgstr "--untracked 不能与 --cached 同时使用"
+
+#: builtin/grep.c:1165
 msgid "--[no-]exclude-standard cannot be used for tracked contents"
 msgstr "--[no-]exclude-standard 不能用于已跟踪内容"
 
-#: builtin/grep.c:1172
+#: builtin/grep.c:1173
 msgid "both --cached and trees are given"
 msgstr "同时给出了 --cached 和树对象"
 
@@ -15515,12 +15819,12 @@ msgstr "没有 man 查看器处理此请求"
 msgid "no info viewer handled the request"
 msgstr "没有 info 查看器处理此请求"
 
-#: builtin/help.c:520 builtin/help.c:531 git.c:337
+#: builtin/help.c:520 builtin/help.c:531 git.c:340
 #, c-format
 msgid "'%s' is aliased to '%s'"
 msgstr "'%s' 是 '%s' 的别名"
 
-#: builtin/help.c:534 git.c:369
+#: builtin/help.c:534 git.c:372
 #, c-format
 msgid "bad alias.%s string: %s"
 msgstr "坏的 alias.%s 字符串:%s"
@@ -15568,7 +15872,7 @@ msgstr "输入上的读错误"
 msgid "used more bytes than were available"
 msgstr "用掉了超过可用的字节"
 
-#: builtin/index-pack.c:324 builtin/pack-objects.c:619
+#: builtin/index-pack.c:324 builtin/pack-objects.c:624
 msgid "pack too large for current definition of off_t"
 msgstr "包太大超过了当前 off_t 的定义"
 
@@ -15576,7 +15880,7 @@ msgstr "包太大超过了当前 off_t 的定义"
 msgid "pack exceeds maximum allowed size"
 msgstr "包超过了最大允许值"
 
-#: builtin/index-pack.c:342 builtin/repack.c:286
+#: builtin/index-pack.c:342
 #, c-format
 msgid "unable to create '%s'"
 msgstr "不能创建 '%s'"
@@ -15701,7 +16005,7 @@ msgstr "parse_pack_objects() 中遇到不可理喻的问题"
 msgid "Resolving deltas"
 msgstr "处理 delta 中"
 
-#: builtin/index-pack.c:1249 builtin/pack-objects.c:2697
+#: builtin/index-pack.c:1249 builtin/pack-objects.c:2707
 #, c-format
 msgid "unable to create thread: %s"
 msgstr "不能创建线程:%s"
@@ -15739,10 +16043,10 @@ msgstr "不能压缩附加对象(%d)"
 msgid "local object %s is corrupt"
 msgstr "本地对象 %s 已损坏"
 
-#: builtin/index-pack.c:1444
+#: builtin/index-pack.c:1445
 #, c-format
-msgid "packfile name '%s' does not end with '.pack'"
-msgstr "包文件名 '%s' 没有以 '.pack' 结尾"
+msgid "packfile name '%s' does not end with '.%s'"
+msgstr "包文件名 '%s' 没有以 '.%s' 结尾"
 
 #: builtin/index-pack.c:1469
 #, c-format
@@ -15754,79 +16058,83 @@ msgstr "无法写入 %s 文件 '%s'"
 msgid "cannot close written %s file '%s'"
 msgstr "无法关闭已写入的 %s 文件 '%s'"
 
-#: builtin/index-pack.c:1501
+#: builtin/index-pack.c:1503
 msgid "error while closing pack file"
 msgstr "关闭包文件时出错"
 
-#: builtin/index-pack.c:1515
+#: builtin/index-pack.c:1517
 msgid "cannot store pack file"
 msgstr "无法存储包文件"
 
-#: builtin/index-pack.c:1523
+#: builtin/index-pack.c:1525
 msgid "cannot store index file"
 msgstr "无法存储索引文件"
 
-#: builtin/index-pack.c:1567 builtin/pack-objects.c:2944
+#: builtin/index-pack.c:1534
+msgid "cannot store reverse index file"
+msgstr "无法存储反向索引文件"
+
+#: builtin/index-pack.c:1580 builtin/pack-objects.c:2952
 #, c-format
 msgid "bad pack.indexversion=%<PRIu32>"
 msgstr "坏的 pack.indexversion=%<PRIu32>"
 
-#: builtin/index-pack.c:1631
+#: builtin/index-pack.c:1650
 #, c-format
 msgid "Cannot open existing pack file '%s'"
 msgstr "无法打开现存包文件 '%s'"
 
-#: builtin/index-pack.c:1633
+#: builtin/index-pack.c:1652
 #, c-format
 msgid "Cannot open existing pack idx file for '%s'"
 msgstr "无法为 %s 打开包索引文件"
 
-#: builtin/index-pack.c:1681
+#: builtin/index-pack.c:1700
 #, 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:1688
+#: builtin/index-pack.c:1707
 #, 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:1728
+#: builtin/index-pack.c:1765
 msgid "Cannot come back to cwd"
 msgstr "无法返回当前工作目录"
 
-#: builtin/index-pack.c:1777 builtin/index-pack.c:1780
-#: builtin/index-pack.c:1796 builtin/index-pack.c:1800
+#: builtin/index-pack.c:1819 builtin/index-pack.c:1822
+#: builtin/index-pack.c:1838 builtin/index-pack.c:1842
 #, c-format
 msgid "bad %s"
 msgstr "错误选项 %s"
 
-#: builtin/index-pack.c:1806 builtin/init-db.c:392 builtin/init-db.c:625
+#: builtin/index-pack.c:1848 builtin/init-db.c:392 builtin/init-db.c:625
 #, c-format
 msgid "unknown hash algorithm '%s'"
 msgstr "未知的哈希算法 '%s'"
 
-#: builtin/index-pack.c:1821
+#: builtin/index-pack.c:1867
 msgid "--fix-thin cannot be used without --stdin"
 msgstr "--fix-thin 不能和 --stdin 同时使用"
 
-#: builtin/index-pack.c:1823
+#: builtin/index-pack.c:1869
 msgid "--stdin requires a git repository"
 msgstr "--stdin 需要 git 仓库"
 
-#: builtin/index-pack.c:1825
+#: builtin/index-pack.c:1871
 msgid "--object-format cannot be used with --stdin"
 msgstr "--object-format 不能和 --stdin 同时使用"
 
-#: builtin/index-pack.c:1831
+#: builtin/index-pack.c:1886
 msgid "--verify with no packfile name given"
 msgstr "--verify 没有提供包文件名参数"
 
-#: builtin/index-pack.c:1892 builtin/unpack-objects.c:582
+#: builtin/index-pack.c:1956 builtin/unpack-objects.c:582
 msgid "fsck error in pack objects"
 msgstr "在打包对象中 fsck 检查出错"
 
@@ -16041,128 +16349,128 @@ msgstr "--trailer 和 --only-input 同时使用没有意义"
 msgid "no input file given for in-place editing"
 msgstr "没有给出要原位编辑的文件"
 
-#: builtin/log.c:58
+#: builtin/log.c:59
 msgid "git log [<options>] [<revision-range>] [[--] <path>...]"
 msgstr "git log [<选项>] [<版本范围>] [[--] <路径>...]"
 
-#: builtin/log.c:59
+#: builtin/log.c:60
 msgid "git show [<options>] <object>..."
 msgstr "git show [<选项>] <对象>..."
 
-#: builtin/log.c:112
+#: builtin/log.c:113
 #, c-format
 msgid "invalid --decorate option: %s"
 msgstr "无效的 --decorate 选项:%s"
 
-#: builtin/log.c:179
+#: builtin/log.c:180
 msgid "show source"
 msgstr "显示源"
 
-#: builtin/log.c:180
-msgid "Use mail map file"
+#: builtin/log.c:181
+msgid "use mail map file"
 msgstr "使用邮件映射文件"
 
-#: builtin/log.c:183
+#: builtin/log.c:184
 msgid "only decorate refs that match <pattern>"
 msgstr "只修饰与 <模式> 匹配的引用"
 
-#: builtin/log.c:185
+#: builtin/log.c:186
 msgid "do not decorate refs that match <pattern>"
 msgstr "不修饰和 <模式> 匹配的引用"
 
-#: builtin/log.c:186
+#: builtin/log.c:187
 msgid "decorate options"
 msgstr "修饰选项"
 
-#: builtin/log.c:189
+#: builtin/log.c:190
 msgid ""
-"Trace the evolution of line range <start>,<end> or function :<funcname> in "
+"trace the evolution of line range <start>,<end> or function :<funcname> in "
 "<file>"
 msgstr "跟踪 <文件> 中 <开始>,<结束> 范围内的行或函数 :<函数名> 的演变"
 
-#: builtin/log.c:212
+#: builtin/log.c:213
 msgid "-L<range>:<file> cannot be used with pathspec"
 msgstr "-L<范围>:<文件> 不能和路径表达式共用"
 
-#: builtin/log.c:302
+#: builtin/log.c:303
 #, c-format
 msgid "Final output: %d %s\n"
 msgstr "最终输出:%d %s\n"
 
-#: builtin/log.c:564
+#: builtin/log.c:566
 #, c-format
 msgid "git show %s: bad file"
 msgstr "git show %s: 损坏的文件"
 
-#: builtin/log.c:579 builtin/log.c:674
+#: builtin/log.c:581 builtin/log.c:671
 #, c-format
 msgid "could not read object %s"
 msgstr "不能读取对象 %s"
 
-#: builtin/log.c:699
+#: builtin/log.c:696
 #, c-format
 msgid "unknown type: %d"
 msgstr "未知类型:%d"
 
-#: builtin/log.c:848
+#: builtin/log.c:841
 #, c-format
 msgid "%s: invalid cover from description mode"
 msgstr "%s:从描述生成附函的模式无效"
 
-#: builtin/log.c:855
+#: builtin/log.c:848
 msgid "format.headers without value"
 msgstr "format.headers 没有值"
 
-#: builtin/log.c:984
+#: builtin/log.c:977
 #, c-format
 msgid "cannot open patch file %s"
 msgstr "无法打开补丁文件 %s"
 
-#: builtin/log.c:1001
+#: builtin/log.c:994
 msgid "need exactly one range"
 msgstr "只需要一个范围"
 
-#: builtin/log.c:1011
+#: builtin/log.c:1004
 msgid "not a range"
 msgstr "不是一个范围"
 
-#: builtin/log.c:1175
+#: builtin/log.c:1168
 msgid "cover letter needs email format"
 msgstr "附函需要邮件地址格式"
 
-#: builtin/log.c:1181
+#: builtin/log.c:1174
 msgid "failed to create cover-letter file"
 msgstr "无法创建附函文件"
 
-#: builtin/log.c:1262
+#: builtin/log.c:1261
 #, c-format
 msgid "insane in-reply-to: %s"
 msgstr "不正常的 in-reply-to:%s"
 
-#: builtin/log.c:1289
+#: builtin/log.c:1288
 msgid "git format-patch [<options>] [<since> | <revision-range>]"
 msgstr "git format-patch [<选项>] [<从> | <版本范围>]"
 
-#: builtin/log.c:1347
+#: builtin/log.c:1346
 msgid "two output directories?"
 msgstr "两个输出目录?"
 
-#: builtin/log.c:1498 builtin/log.c:2318 builtin/log.c:2320 builtin/log.c:2332
+#: builtin/log.c:1497 builtin/log.c:2317 builtin/log.c:2319 builtin/log.c:2331
 #, c-format
 msgid "unknown commit %s"
 msgstr "未知提交 %s"
 
-#: builtin/log.c:1509 builtin/replace.c:58 builtin/replace.c:207
+#: builtin/log.c:1508 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:1518
+#: builtin/log.c:1517
 msgid "could not find exact merge base"
 msgstr "不能找到准确的合并基线"
 
-#: builtin/log.c:1528
+#: builtin/log.c:1527
 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"
@@ -16172,393 +16480,397 @@ msgstr ""
 "git branch --set-upstream-to 来跟踪一个远程分支。或者你可以通过\n"
 "参数 --base=<基线提交> 手动指定一个基线提交"
 
-#: builtin/log.c:1551
+#: builtin/log.c:1550
 msgid "failed to find exact merge base"
 msgstr "无法找到准确的合并基线"
 
-#: builtin/log.c:1568
+#: builtin/log.c:1567
 msgid "base commit should be the ancestor of revision list"
 msgstr "基线提交应该是版本列表的祖先"
 
-#: builtin/log.c:1578
+#: builtin/log.c:1577
 msgid "base commit shouldn't be in revision list"
 msgstr "基线提交不应该出现在版本列表中"
 
-#: builtin/log.c:1636
+#: builtin/log.c:1635
 msgid "cannot get patch id"
 msgstr "无法得到补丁 id"
 
-#: builtin/log.c:1693
+#: builtin/log.c:1692
 msgid "failed to infer range-diff origin of current series"
 msgstr "无法推断当前系列的 range-diff 起始"
 
-#: builtin/log.c:1695
+#: builtin/log.c:1694
 #, c-format
 msgid "using '%s' as range-diff origin of current series"
 msgstr "使用 '%s' 作为当前系列的 range-diff 源"
 
-#: builtin/log.c:1739
+#: builtin/log.c:1738
 msgid "use [PATCH n/m] even with a single patch"
 msgstr "使用 [PATCH n/m],即使只有一个补丁"
 
-#: builtin/log.c:1742
+#: builtin/log.c:1741
 msgid "use [PATCH] even with multiple patches"
 msgstr "使用 [PATCH],即使有多个补丁"
 
-#: builtin/log.c:1746
+#: builtin/log.c:1745
 msgid "print patches to standard out"
 msgstr "打印补丁到标准输出"
 
-#: builtin/log.c:1748
+#: builtin/log.c:1747
 msgid "generate a cover letter"
 msgstr "生成一封附函"
 
-#: builtin/log.c:1750
+#: builtin/log.c:1749
 msgid "use simple number sequence for output file names"
 msgstr "使用简单的数字序列作为输出文件名"
 
-#: builtin/log.c:1751
+#: builtin/log.c:1750
 msgid "sfx"
 msgstr "后缀"
 
-#: builtin/log.c:1752
+#: builtin/log.c:1751
 msgid "use <sfx> instead of '.patch'"
 msgstr "使用 <后缀> 代替 '.patch'"
 
-#: builtin/log.c:1754
+#: builtin/log.c:1753
 msgid "start numbering patches at <n> instead of 1"
 msgstr "补丁以 <n> 开始编号,而不是1"
 
-#: builtin/log.c:1756
+#: builtin/log.c:1755
 msgid "mark the series as Nth re-roll"
 msgstr "标记补丁系列是第几次重制"
 
-#: builtin/log.c:1758
+#: builtin/log.c:1757
 msgid "max length of output filename"
 msgstr "输出文件名的最大长度"
 
-#: builtin/log.c:1760
-msgid "Use [RFC PATCH] instead of [PATCH]"
+#: builtin/log.c:1759
+msgid "use [RFC PATCH] instead of [PATCH]"
 msgstr "使用 [RFC PATCH] 代替 [PATCH]"
 
-#: builtin/log.c:1763
+#: builtin/log.c:1762
 msgid "cover-from-description-mode"
 msgstr "从分支描述获取附函的模式"
 
-#: builtin/log.c:1764
+#: builtin/log.c:1763
 msgid "generate parts of a cover letter based on a branch's description"
 msgstr "基于一个分支描述生成部分附函"
 
-#: builtin/log.c:1766
-msgid "Use [<prefix>] instead of [PATCH]"
+#: builtin/log.c:1765
+msgid "use [<prefix>] instead of [PATCH]"
 msgstr "使用 [<前缀>] 代替 [PATCH]"
 
-#: builtin/log.c:1769
+#: builtin/log.c:1768
 msgid "store resulting files in <dir>"
 msgstr "把结果文件存储在 <目录>"
 
-#: builtin/log.c:1772
+#: builtin/log.c:1771
 msgid "don't strip/add [PATCH]"
 msgstr "不删除/添加 [PATCH]"
 
-#: builtin/log.c:1775
+#: builtin/log.c:1774
 msgid "don't output binary diffs"
 msgstr "不输出二进制差异"
 
-#: builtin/log.c:1777
+#: builtin/log.c:1776
 msgid "output all-zero hash in From header"
 msgstr "在 From 头信息中输出全为零的哈希值"
 
-#: builtin/log.c:1779
+#: builtin/log.c:1778
 msgid "don't include a patch matching a commit upstream"
 msgstr "不包含已在上游提交中的补丁"
 
-#: builtin/log.c:1781
+#: builtin/log.c:1780
 msgid "show patch format instead of default (patch + stat)"
 msgstr "显示纯补丁格式而非默认的(补丁+状态)"
 
-#: builtin/log.c:1783
+#: builtin/log.c:1782
 msgid "Messaging"
 msgstr "邮件发送"
 
-#: builtin/log.c:1784
+#: builtin/log.c:1783
 msgid "header"
 msgstr "header"
 
-#: builtin/log.c:1785
+#: builtin/log.c:1784
 msgid "add email header"
 msgstr "添加邮件头"
 
-#: builtin/log.c:1786 builtin/log.c:1787
+#: builtin/log.c:1785 builtin/log.c:1786
 msgid "email"
 msgstr "邮件地址"
 
-#: builtin/log.c:1786
+#: builtin/log.c:1785
 msgid "add To: header"
 msgstr "添加收件人"
 
-#: builtin/log.c:1787
+#: builtin/log.c:1786
 msgid "add Cc: header"
 msgstr "添加抄送"
 
-#: builtin/log.c:1788
+#: builtin/log.c:1787
 msgid "ident"
 msgstr "标识"
 
-#: builtin/log.c:1789
+#: builtin/log.c:1788
 msgid "set From address to <ident> (or committer ident if absent)"
 msgstr "将 From 地址设置为 <标识>(如若不提供,则用提交者 ID 做为地址)"
 
-#: builtin/log.c:1791
+#: builtin/log.c:1790
 msgid "message-id"
 msgstr "邮件标识"
 
-#: builtin/log.c:1792
+#: builtin/log.c:1791
 msgid "make first mail a reply to <message-id>"
 msgstr "使第一封邮件作为对 <邮件标识> 的回复"
 
-#: builtin/log.c:1793 builtin/log.c:1796
+#: builtin/log.c:1792 builtin/log.c:1795
 msgid "boundary"
 msgstr "边界"
 
-#: builtin/log.c:1794
+#: builtin/log.c:1793
 msgid "attach the patch"
 msgstr "附件方式添加补丁"
 
-#: builtin/log.c:1797
+#: builtin/log.c:1796
 msgid "inline the patch"
 msgstr "内联显示补丁"
 
-#: builtin/log.c:1801
+#: builtin/log.c:1800
 msgid "enable message threading, styles: shallow, deep"
 msgstr "启用邮件线索,风格:浅,深"
 
-#: builtin/log.c:1803
+#: builtin/log.c:1802
 msgid "signature"
 msgstr "签名"
 
-#: builtin/log.c:1804
+#: builtin/log.c:1803
 msgid "add a signature"
 msgstr "添加一个签名"
 
-#: builtin/log.c:1805
+#: builtin/log.c:1804
 msgid "base-commit"
 msgstr "基线提交"
 
-#: builtin/log.c:1806
+#: builtin/log.c:1805
 msgid "add prerequisite tree info to the patch series"
 msgstr "为补丁列表添加前置树信息"
 
-#: builtin/log.c:1809
+#: builtin/log.c:1808
 msgid "add a signature from a file"
 msgstr "从文件添加一个签名"
 
-#: builtin/log.c:1810
+#: builtin/log.c:1809
 msgid "don't print the patch filenames"
 msgstr "不要打印补丁文件名"
 
-#: builtin/log.c:1812
+#: builtin/log.c:1811
 msgid "show progress while generating patches"
 msgstr "在生成补丁时显示进度"
 
-#: builtin/log.c:1814
+#: builtin/log.c:1813
 msgid "show changes against <rev> in cover letter or single patch"
 msgstr "在附函或单个补丁中显示和 <rev> 的差异"
 
-#: builtin/log.c:1817
+#: builtin/log.c:1816
 msgid "show changes against <refspec> in cover letter or single patch"
 msgstr "在附函或单个补丁中显示和 <refspec> 的差异"
 
-#: builtin/log.c:1819
+#: builtin/log.c:1818
 msgid "percentage by which creation is weighted"
 msgstr "创建权重的百分比"
 
-#: builtin/log.c:1905
+#: builtin/log.c:1904
 #, c-format
 msgid "invalid ident line: %s"
 msgstr "包含无效的身份标识:%s"
 
-#: builtin/log.c:1920
+#: builtin/log.c:1919
 msgid "-n and -k are mutually exclusive"
 msgstr "-n 和 -k 互斥"
 
-#: builtin/log.c:1922
+#: builtin/log.c:1921
 msgid "--subject-prefix/--rfc and -k are mutually exclusive"
 msgstr "--subject-prefix/--rfc 和 -k 互斥"
 
-#: builtin/log.c:1930
+#: builtin/log.c:1929
 msgid "--name-only does not make sense"
 msgstr "--name-only 无意义"
 
-#: builtin/log.c:1932
+#: builtin/log.c:1931
 msgid "--name-status does not make sense"
 msgstr "--name-status 无意义"
 
-#: builtin/log.c:1934
+#: builtin/log.c:1933
 msgid "--check does not make sense"
 msgstr "--check 无意义"
 
-#: builtin/log.c:1956
+#: builtin/log.c:1955
 msgid "--stdout, --output, and --output-directory are mutually exclusive"
 msgstr "--stdout、--output 和 --output-directory 是互斥的"
 
-#: builtin/log.c:2079
+#: builtin/log.c:2078
 msgid "--interdiff requires --cover-letter or single patch"
 msgstr "--interdiff 需要 --cover-letter 或单一补丁"
 
-#: builtin/log.c:2083
+#: builtin/log.c:2082
 msgid "Interdiff:"
 msgstr "版本间差异:"
 
-#: builtin/log.c:2084
+#: builtin/log.c:2083
 #, c-format
 msgid "Interdiff against v%d:"
 msgstr "对 v%d 的版本差异:"
 
-#: builtin/log.c:2090
+#: builtin/log.c:2089
 msgid "--creation-factor requires --range-diff"
 msgstr "--creation-factor 需要 --range-diff"
 
-#: builtin/log.c:2094
+#: builtin/log.c:2093
 msgid "--range-diff requires --cover-letter or single patch"
 msgstr "--range-diff 需要 --cover-letter 或单一补丁"
 
-#: builtin/log.c:2102
+#: builtin/log.c:2101
 msgid "Range-diff:"
 msgstr "范围差异:"
 
-#: builtin/log.c:2103
+#: builtin/log.c:2102
 #, c-format
 msgid "Range-diff against v%d:"
 msgstr "对 v%d 的范围差异:"
 
-#: builtin/log.c:2114
+#: builtin/log.c:2113
 #, c-format
 msgid "unable to read signature file '%s'"
 msgstr "无法读取签名文件 '%s'"
 
-#: builtin/log.c:2150
+#: builtin/log.c:2149
 msgid "Generating patches"
 msgstr "生成补丁"
 
-#: builtin/log.c:2194
+#: builtin/log.c:2193
 msgid "failed to create output files"
 msgstr "无法创建输出文件"
 
-#: builtin/log.c:2253
+#: builtin/log.c:2252
 msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
 msgstr "git cherry [-v] [<上游> [<头> [<限制>]]]"
 
-#: builtin/log.c:2307
+#: builtin/log.c:2306
 #, c-format
 msgid ""
 "Could not find a tracked remote branch, please specify <upstream> manually.\n"
 msgstr "不能找到跟踪的远程分支,请手工指定 <上游>。\n"
 
-#: builtin/ls-files.c:471
+#: builtin/ls-files.c:486
 msgid "git ls-files [<options>] [<file>...]"
 msgstr "git ls-files [<选项>] [<文件>...]"
 
-#: builtin/ls-files.c:527
+#: builtin/ls-files.c:542
 msgid "identify the file status with tags"
 msgstr "用标签标识文件的状态"
 
-#: builtin/ls-files.c:529
+#: builtin/ls-files.c:544
 msgid "use lowercase letters for 'assume unchanged' files"
 msgstr "使用小写字母表示 '假设未改变的' 文件"
 
-#: builtin/ls-files.c:531
+#: builtin/ls-files.c:546
 msgid "use lowercase letters for 'fsmonitor clean' files"
 msgstr "使用小写字母表示 'fsmonitor clean' 文件"
 
-#: builtin/ls-files.c:533
+#: builtin/ls-files.c:548
 msgid "show cached files in the output (default)"
 msgstr "显示缓存的文件(默认)"
 
-#: builtin/ls-files.c:535
+#: builtin/ls-files.c:550
 msgid "show deleted files in the output"
 msgstr "显示已删除的文件"
 
-#: builtin/ls-files.c:537
+#: builtin/ls-files.c:552
 msgid "show modified files in the output"
 msgstr "显示已修改的文件"
 
-#: builtin/ls-files.c:539
+#: builtin/ls-files.c:554
 msgid "show other files in the output"
 msgstr "显示其它文件"
 
-#: builtin/ls-files.c:541
+#: builtin/ls-files.c:556
 msgid "show ignored files in the output"
 msgstr "显示忽略的文件"
 
-#: builtin/ls-files.c:544
+#: builtin/ls-files.c:559
 msgid "show staged contents' object name in the output"
 msgstr "显示暂存区内容的对象名称"
 
-#: builtin/ls-files.c:546
+#: builtin/ls-files.c:561
 msgid "show files on the filesystem that need to be removed"
 msgstr "显示文件系统需要删除的文件"
 
-#: builtin/ls-files.c:548
+#: builtin/ls-files.c:563
 msgid "show 'other' directories' names only"
 msgstr "只显示“其他”目录的名称"
 
-#: builtin/ls-files.c:550
+#: builtin/ls-files.c:565
 msgid "show line endings of files"
 msgstr "显示文件换行符格式"
 
-#: builtin/ls-files.c:552
+#: builtin/ls-files.c:567
 msgid "don't show empty directories"
 msgstr "不显示空目录"
 
-#: builtin/ls-files.c:555
+#: builtin/ls-files.c:570
 msgid "show unmerged files in the output"
 msgstr "显示未合并的文件"
 
-#: builtin/ls-files.c:557
+#: builtin/ls-files.c:572
 msgid "show resolve-undo information"
 msgstr "显示 resolve-undo 信息"
 
-#: builtin/ls-files.c:559
+#: builtin/ls-files.c:574
 msgid "skip files matching pattern"
 msgstr "跳过和模式匹配的文件"
 
-#: builtin/ls-files.c:562
+#: builtin/ls-files.c:577
 msgid "exclude patterns are read from <file>"
 msgstr "从 <文件> 中读取排除模式"
 
-#: builtin/ls-files.c:565
+#: builtin/ls-files.c:580
 msgid "read additional per-directory exclude patterns in <file>"
 msgstr "从 <文件> 读取额外的每个目录的排除模式"
 
-#: builtin/ls-files.c:567
+#: builtin/ls-files.c:582
 msgid "add the standard git exclusions"
 msgstr "添加标准的 git 排除"
 
-#: builtin/ls-files.c:571
+#: builtin/ls-files.c:586
 msgid "make the output relative to the project top directory"
 msgstr "显示相对于顶级目录的文件名"
 
-#: builtin/ls-files.c:574
+#: builtin/ls-files.c:589
 msgid "recurse through submodules"
 msgstr "在子模组中递归"
 
-#: builtin/ls-files.c:576
+#: builtin/ls-files.c:591
 msgid "if any <file> is not in the index, treat this as an error"
 msgstr "如果任何 <文件> 都不在索引区,视为错误"
 
-#: builtin/ls-files.c:577
+#: builtin/ls-files.c:592
 msgid "tree-ish"
 msgstr "树对象"
 
-#: builtin/ls-files.c:578
+#: builtin/ls-files.c:593
 msgid "pretend that paths removed since <tree-ish> are still present"
 msgstr "假装自从 <树对象> 之后删除的路径仍然存在"
 
-#: builtin/ls-files.c:580
+#: builtin/ls-files.c:595
 msgid "show debugging data"
 msgstr "显示调试数据"
 
+#: builtin/ls-files.c:597
+msgid "suppress duplicate entries"
+msgstr "抑制重复条目"
+
 #: builtin/ls-remote.c:9
 msgid ""
 "git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<exec>]\n"
@@ -16569,39 +16881,39 @@ msgstr ""
 "                     [-q | --quiet] [--exit-code] [--get-url]\n"
 "                     [--symref] [<仓库> [<引用>...]]"
 
-#: builtin/ls-remote.c:59
+#: builtin/ls-remote.c:60
 msgid "do not print remote URL"
 msgstr "不打印远程 URL"
 
-#: builtin/ls-remote.c:60 builtin/ls-remote.c:62 builtin/rebase.c:1398
+#: builtin/ls-remote.c:61 builtin/ls-remote.c:63 builtin/rebase.c:1404
 msgid "exec"
 msgstr "exec"
 
-#: builtin/ls-remote.c:61 builtin/ls-remote.c:63
+#: builtin/ls-remote.c:62 builtin/ls-remote.c:64
 msgid "path of git-upload-pack on the remote host"
 msgstr "远程主机上的 git-upload-pack 路径"
 
-#: builtin/ls-remote.c:65
+#: builtin/ls-remote.c:66
 msgid "limit to tags"
 msgstr "仅限于标签"
 
-#: builtin/ls-remote.c:66
+#: builtin/ls-remote.c:67
 msgid "limit to heads"
 msgstr "仅限于分支"
 
-#: builtin/ls-remote.c:67
+#: builtin/ls-remote.c:68
 msgid "do not show peeled tags"
 msgstr "不显示已解析的标签"
 
-#: builtin/ls-remote.c:69
+#: builtin/ls-remote.c:70
 msgid "take url.<base>.insteadOf into account"
 msgstr "参考 url.<base>.insteadOf 设置"
 
-#: builtin/ls-remote.c:72
+#: builtin/ls-remote.c:73
 msgid "exit with exit code 2 if no matching refs are found"
 msgstr "若未找到匹配的引用则以退出码2退出"
 
-#: builtin/ls-remote.c:75
+#: builtin/ls-remote.c:76
 msgid "show underlying ref in addition to the object pointed by it"
 msgstr "除了显示指向的对象外,显示指向的引用名"
 
@@ -16757,191 +17069,191 @@ msgstr "无法解析引用 '%s'"
 msgid "Merging %s with %s\n"
 msgstr "合并 %s 和 %s\n"
 
-#: builtin/merge.c:57
+#: builtin/merge.c:58
 msgid "git merge [<options>] [<commit>...]"
 msgstr "git merge [<选项>] [<提交>...]"
 
-#: builtin/merge.c:58
+#: builtin/merge.c:59
 msgid "git merge --abort"
 msgstr "git merge --abort"
 
-#: builtin/merge.c:59
+#: builtin/merge.c:60
 msgid "git merge --continue"
 msgstr "git merge --continue"
 
-#: builtin/merge.c:122
+#: builtin/merge.c:123
 msgid "switch `m' requires a value"
 msgstr "开关 `m' 需要一个值"
 
-#: builtin/merge.c:145
+#: builtin/merge.c:146
 #, c-format
 msgid "option `%s' requires a value"
 msgstr "选项 `%s' 需要一个值"
 
-#: builtin/merge.c:198
+#: builtin/merge.c:199
 #, c-format
 msgid "Could not find merge strategy '%s'.\n"
 msgstr "不能找到合并策略 '%s'。\n"
 
-#: builtin/merge.c:199
+#: builtin/merge.c:200
 #, c-format
 msgid "Available strategies are:"
 msgstr "可用的策略有:"
 
-#: builtin/merge.c:204
+#: builtin/merge.c:205
 #, c-format
 msgid "Available custom strategies are:"
 msgstr "可用的自定义策略有:"
 
-#: builtin/merge.c:255 builtin/pull.c:133
+#: builtin/merge.c:256 builtin/pull.c:133
 msgid "do not show a diffstat at the end of the merge"
 msgstr "在合并的最后不显示差异统计"
 
-#: builtin/merge.c:258 builtin/pull.c:136
+#: builtin/merge.c:259 builtin/pull.c:136
 msgid "show a diffstat at the end of the merge"
 msgstr "在合并的最后显示差异统计"
 
-#: builtin/merge.c:259 builtin/pull.c:139
+#: builtin/merge.c:260 builtin/pull.c:139
 msgid "(synonym to --stat)"
 msgstr "(和 --stat 同义)"
 
-#: builtin/merge.c:261 builtin/pull.c:142
+#: builtin/merge.c:262 builtin/pull.c:142
 msgid "add (at most <n>) entries from shortlog to merge commit message"
 msgstr "在合并提交信息中添加(最多 <n> 条)精简提交记录"
 
-#: builtin/merge.c:264 builtin/pull.c:148
+#: builtin/merge.c:265 builtin/pull.c:148
 msgid "create a single commit instead of doing a merge"
 msgstr "创建一个单独的提交而不是做一次合并"
 
-#: builtin/merge.c:266 builtin/pull.c:151
+#: builtin/merge.c:267 builtin/pull.c:151
 msgid "perform a commit if the merge succeeds (default)"
 msgstr "如果合并成功,执行一次提交(默认)"
 
-#: builtin/merge.c:268 builtin/pull.c:154
+#: builtin/merge.c:269 builtin/pull.c:154
 msgid "edit message before committing"
 msgstr "在提交前编辑提交说明"
 
-#: builtin/merge.c:270
+#: builtin/merge.c:271
 msgid "allow fast-forward (default)"
 msgstr "允许快进(默认)"
 
-#: builtin/merge.c:272 builtin/pull.c:161
+#: builtin/merge.c:273 builtin/pull.c:161
 msgid "abort if fast-forward is not possible"
 msgstr "如果不能快进就放弃合并"
 
-#: builtin/merge.c:276 builtin/pull.c:164
+#: builtin/merge.c:277 builtin/pull.c:164
 msgid "verify that the named commit has a valid GPG signature"
 msgstr "验证指定的提交是否包含一个有效的 GPG 签名"
 
-#: builtin/merge.c:277 builtin/notes.c:787 builtin/pull.c:168
-#: builtin/rebase.c:539 builtin/rebase.c:1412 builtin/revert.c:114
+#: builtin/merge.c:278 builtin/notes.c:787 builtin/pull.c:168
+#: builtin/rebase.c:541 builtin/rebase.c:1418 builtin/revert.c:114
 msgid "strategy"
 msgstr "策略"
 
-#: builtin/merge.c:278 builtin/pull.c:169
+#: builtin/merge.c:279 builtin/pull.c:169
 msgid "merge strategy to use"
 msgstr "要使用的合并策略"
 
-#: builtin/merge.c:279 builtin/pull.c:172
+#: builtin/merge.c:280 builtin/pull.c:172
 msgid "option=value"
 msgstr "option=value"
 
-#: builtin/merge.c:280 builtin/pull.c:173
+#: builtin/merge.c:281 builtin/pull.c:173
 msgid "option for selected merge strategy"
 msgstr "所选的合并策略的选项"
 
-#: builtin/merge.c:282
+#: builtin/merge.c:283
 msgid "merge commit message (for a non-fast-forward merge)"
 msgstr "合并的提交说明(针对非快进式合并)"
 
-#: builtin/merge.c:289
+#: builtin/merge.c:290
 msgid "abort the current in-progress merge"
 msgstr "放弃当前正在进行的合并"
 
 #
-#: builtin/merge.c:291
+#: builtin/merge.c:292
 msgid "--abort but leave index and working tree alone"
 msgstr "--abort,但是保留索引和工作区"
 
-#: builtin/merge.c:293
+#: builtin/merge.c:294
 msgid "continue the current in-progress merge"
 msgstr "继续当前正在进行的合并"
 
-#: builtin/merge.c:295 builtin/pull.c:180
+#: builtin/merge.c:296 builtin/pull.c:180
 msgid "allow merging unrelated histories"
 msgstr "允许合并不相关的历史"
 
-#: builtin/merge.c:302
+#: builtin/merge.c:303
 msgid "bypass pre-merge-commit and commit-msg hooks"
 msgstr "绕过 pre-merge-commit 和 commit-msg 钩子"
 
-#: builtin/merge.c:319
+#: builtin/merge.c:320
 msgid "could not run stash."
 msgstr "不能运行贮藏。"
 
-#: builtin/merge.c:324
+#: builtin/merge.c:325
 msgid "stash failed"
 msgstr "贮藏失败"
 
-#: builtin/merge.c:329
+#: builtin/merge.c:330
 #, c-format
 msgid "not a valid object: %s"
 msgstr "不是一个有效对象:%s"
 
-#: builtin/merge.c:351 builtin/merge.c:368
+#: builtin/merge.c:352 builtin/merge.c:369
 msgid "read-tree failed"
 msgstr "读取树失败"
 
 #  译者:注意保持前导空格
-#: builtin/merge.c:398
+#: builtin/merge.c:399
 msgid " (nothing to squash)"
 msgstr " (无可压缩)"
 
-#: builtin/merge.c:409
+#: builtin/merge.c:410
 #, c-format
 msgid "Squash commit -- not updating HEAD\n"
 msgstr "压缩提交 -- 未更新 HEAD\n"
 
-#: builtin/merge.c:459
+#: builtin/merge.c:460
 #, c-format
 msgid "No merge message -- not updating HEAD\n"
 msgstr "无合并信息 -- 未更新 HEAD\n"
 
-#: builtin/merge.c:510
+#: builtin/merge.c:511
 #, c-format
 msgid "'%s' does not point to a commit"
 msgstr "'%s' 没有指向一个提交"
 
-#: builtin/merge.c:597
+#: builtin/merge.c:598
 #, c-format
 msgid "Bad branch.%s.mergeoptions string: %s"
 msgstr "坏的 branch.%s.mergeoptions 字符串:%s"
 
-#: builtin/merge.c:723
+#: builtin/merge.c:724
 msgid "Not handling anything other than two heads merge."
 msgstr "未处理两个头合并之外的任何操作。"
 
-#: builtin/merge.c:736
+#: builtin/merge.c:737
 #, c-format
 msgid "Unknown option for merge-recursive: -X%s"
 msgstr "merge-recursive 的未知选项:-X%s"
 
-#: builtin/merge.c:755 t/helper/test-fast-rebase.c:209
+#: builtin/merge.c:756 t/helper/test-fast-rebase.c:209
 #, c-format
 msgid "unable to write %s"
 msgstr "不能写 %s"
 
-#: builtin/merge.c:807
+#: builtin/merge.c:808
 #, c-format
 msgid "Could not read from '%s'"
 msgstr "不能从 '%s' 读取"
 
-#: builtin/merge.c:816
+#: builtin/merge.c:817
 #, c-format
 msgid "Not committing merge; use 'git commit' to complete the merge.\n"
 msgstr "未提交合并,使用 'git commit' 完成此次合并。\n"
 
-#: builtin/merge.c:822
+#: builtin/merge.c:823
 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"
@@ -16951,83 +17263,83 @@ msgstr ""
 "合并到主题分支。\n"
 "\n"
 
-#: builtin/merge.c:827
+#: builtin/merge.c:828
 msgid "An empty message aborts the commit.\n"
 msgstr "空的提交说明会终止提交。\n"
 
-#: builtin/merge.c:830
+#: builtin/merge.c:831
 #, 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:883
+#: builtin/merge.c:884
 msgid "Empty commit message."
 msgstr "空提交信息。"
 
-#: builtin/merge.c:898
+#: builtin/merge.c:899
 #, c-format
 msgid "Wonderful.\n"
 msgstr "太棒了。\n"
 
-#: builtin/merge.c:959
+#: builtin/merge.c:960
 #, c-format
 msgid "Automatic merge failed; fix conflicts and then commit the result.\n"
 msgstr "自动合并失败,修正冲突然后提交修正的结果。\n"
 
-#: builtin/merge.c:998
+#: builtin/merge.c:999
 msgid "No current branch."
 msgstr "没有当前分支。"
 
-#: builtin/merge.c:1000
+#: builtin/merge.c:1001
 msgid "No remote for the current branch."
 msgstr "当前分支没有对应的远程仓库。"
 
-#: builtin/merge.c:1002
+#: builtin/merge.c:1003
 msgid "No default upstream defined for the current branch."
 msgstr "当前分支没有定义默认的上游分支。"
 
-#: builtin/merge.c:1007
+#: builtin/merge.c:1008
 #, c-format
 msgid "No remote-tracking branch for %s from %s"
 msgstr "对于 %s 没有来自 %s 的远程跟踪分支"
 
-#: builtin/merge.c:1064
+#: builtin/merge.c:1065
 #, c-format
 msgid "Bad value '%s' in environment '%s'"
 msgstr "环境 '%2$s' 中存在坏的取值 '%1$s'"
 
-#: builtin/merge.c:1167
+#: builtin/merge.c:1168
 #, c-format
 msgid "not something we can merge in %s: %s"
 msgstr "不能在 %s 中合并:%s"
 
-#: builtin/merge.c:1201
+#: builtin/merge.c:1202
 msgid "not something we can merge"
 msgstr "不能合并"
 
-#: builtin/merge.c:1311
+#: builtin/merge.c:1312
 msgid "--abort expects no arguments"
 msgstr "--abort 不带参数"
 
-#: builtin/merge.c:1315
+#: builtin/merge.c:1316
 msgid "There is no merge to abort (MERGE_HEAD missing)."
 msgstr "没有要终止的合并(MERGE_HEAD 丢失)。"
 
-#: builtin/merge.c:1333
+#: builtin/merge.c:1334
 msgid "--quit expects no arguments"
 msgstr "--quit 不带参数"
 
-#: builtin/merge.c:1346
+#: builtin/merge.c:1347
 msgid "--continue expects no arguments"
 msgstr "--continue 不带参数"
 
-#: builtin/merge.c:1350
+#: builtin/merge.c:1351
 msgid "There is no merge in progress (MERGE_HEAD missing)."
 msgstr "没有进行中的合并(MERGE_HEAD 丢失)。"
 
-#: builtin/merge.c:1366
+#: builtin/merge.c:1367
 msgid ""
 "You have not concluded your merge (MERGE_HEAD exists).\n"
 "Please, commit your changes before you merge."
@@ -17035,7 +17347,7 @@ msgstr ""
 "您尚未结束您的合并(存在 MERGE_HEAD)。\n"
 "请在合并前先提交您的修改。"
 
-#: builtin/merge.c:1373
+#: builtin/merge.c:1374
 msgid ""
 "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
 "Please, commit your changes before you merge."
@@ -17043,100 +17355,141 @@ msgstr ""
 "您尚未结束您的拣选(存在 CHERRY_PICK_HEAD)。\n"
 "请在合并前先提交您的修改。"
 
-#: builtin/merge.c:1376
+#: builtin/merge.c:1377
 msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)."
 msgstr "您尚未结束您的拣选(存在 CHERRY_PICK_HEAD)。"
 
-#: builtin/merge.c:1390
+#: builtin/merge.c:1391
 msgid "You cannot combine --squash with --no-ff."
 msgstr "您不能将 --squash 和 --no-ff 组合使用。"
 
-#: builtin/merge.c:1392
+#: builtin/merge.c:1393
 msgid "You cannot combine --squash with --commit."
 msgstr "您不能将 --squash 和 --commit 组合使用。"
 
-#: builtin/merge.c:1408
+#: builtin/merge.c:1409
 msgid "No commit specified and merge.defaultToUpstream not set."
 msgstr "未指定提交并且 merge.defaultToUpstream 未设置。"
 
-#: builtin/merge.c:1425
+#: builtin/merge.c:1426
 msgid "Squash commit into empty head not supported yet"
 msgstr "尚不支持到空分支的压缩提交"
 
-#: builtin/merge.c:1427
+#: builtin/merge.c:1428
 msgid "Non-fast-forward commit does not make sense into an empty head"
 msgstr "到空分支的非快进式提交没有意义"
 
-#: builtin/merge.c:1432
+#: builtin/merge.c:1433
 #, c-format
 msgid "%s - not something we can merge"
 msgstr "%s - 不能被合并"
 
-#: builtin/merge.c:1434
+#: builtin/merge.c:1435
 msgid "Can merge only exactly one commit into empty head"
 msgstr "只能将一个提交合并到空分支上"
 
-#: builtin/merge.c:1515
+#: builtin/merge.c:1516
 msgid "refusing to merge unrelated histories"
 msgstr "拒绝合并无关的历史"
 
-#: builtin/merge.c:1524
+#: builtin/merge.c:1525
 msgid "Already up to date."
 msgstr "已经是最新的。"
 
-#: builtin/merge.c:1534
+#: builtin/merge.c:1535
 #, c-format
 msgid "Updating %s..%s\n"
 msgstr "更新 %s..%s\n"
 
-#: builtin/merge.c:1580
+#: builtin/merge.c:1581
 #, c-format
 msgid "Trying really trivial in-index merge...\n"
 msgstr "尝试非常小的索引内合并...\n"
 
-#: builtin/merge.c:1587
+#: builtin/merge.c:1588
 #, c-format
 msgid "Nope.\n"
 msgstr "无。\n"
 
-#: builtin/merge.c:1612
+#: builtin/merge.c:1613
 msgid "Already up to date. Yeeah!"
 msgstr "已经是最新的。耶!"
 
-#: builtin/merge.c:1618
+#: builtin/merge.c:1619
 msgid "Not possible to fast-forward, aborting."
 msgstr "无法快进,终止。"
 
-#: builtin/merge.c:1646 builtin/merge.c:1711
+#: builtin/merge.c:1647 builtin/merge.c:1712
 #, c-format
 msgid "Rewinding the tree to pristine...\n"
 msgstr "将树回滚至原始状态...\n"
 
-#: builtin/merge.c:1650
+#: builtin/merge.c:1651
 #, c-format
 msgid "Trying merge strategy %s...\n"
 msgstr "尝试合并策略 %s...\n"
 
-#: builtin/merge.c:1702
+#: builtin/merge.c:1703
 #, c-format
 msgid "No merge strategy handled the merge.\n"
 msgstr "没有合并策略处理此合并。\n"
 
-#: builtin/merge.c:1704
+#: builtin/merge.c:1705
 #, c-format
 msgid "Merge with strategy %s failed.\n"
 msgstr "使用策略 %s 合并失败。\n"
 
-#: builtin/merge.c:1713
+#: builtin/merge.c:1714
 #, c-format
 msgid "Using the %s to prepare resolving by hand.\n"
 msgstr "使用 %s 以准备手工解决。\n"
 
-#: builtin/merge.c:1727
+#: builtin/merge.c:1728
 #, c-format
 msgid "Automatic merge went well; stopped before committing as requested\n"
 msgstr "自动合并进展顺利,按要求在提交前停止\n"
 
+#: builtin/mktag.c:10
+msgid "git mktag"
+msgstr "git mktag"
+
+#: builtin/mktag.c:30
+#, c-format
+msgid "warning: tag input does not pass fsck: %s"
+msgstr "警告:标签输入未通过 fsck:%s"
+
+#: builtin/mktag.c:41
+#, c-format
+msgid "error: tag input does not pass fsck: %s"
+msgstr "错误:标签输入未通过 fsck:%s"
+
+#: builtin/mktag.c:44
+#, c-format
+msgid "%d (FSCK_IGNORE?) should never trigger this callback"
+msgstr "%d(忽略 FSCK?)不应该触发这个调用"
+
+#: builtin/mktag.c:59
+#, c-format
+msgid "could not read tagged object '%s'"
+msgstr "不能读取被标记的对象 '%s'"
+
+#: builtin/mktag.c:62
+#, c-format
+msgid "object '%s' tagged as '%s', but is a '%s' type"
+msgstr "对象 '%s' 被标记为 '%s',然而是一个 '%s' 类型"
+
+#: builtin/mktag.c:99
+msgid "tag on stdin did not pass our strict fsck check"
+msgstr "标准输入上的标签未通过我们严格的 fsck 检查"
+
+#: builtin/mktag.c:102
+msgid "tag on stdin did not refer to a valid object"
+msgstr "标准输入上的标签未指向一个有效的对象"
+
+#: builtin/mktag.c:105 builtin/tag.c:232
+msgid "unable to write tag file"
+msgstr "无法写标签文件"
+
 #: builtin/mktree.c:66
 msgid "git mktree [-z] [--missing] [--batch]"
 msgstr "git mktree [-z] [--missing] [--batch]"
@@ -17171,7 +17524,10 @@ msgid ""
 "larger than this size"
 msgstr "在 repack 期间,将较小尺寸的包文件收集到大于此大小的批次中"
 
-#: builtin/multi-pack-index.c:50 builtin/prune-packed.c:25
+#: builtin/multi-pack-index.c:50 builtin/notes.c:376 builtin/notes.c:431
+#: builtin/notes.c:509 builtin/notes.c:521 builtin/notes.c:598
+#: builtin/notes.c:665 builtin/notes.c:815 builtin/notes.c:963
+#: builtin/notes.c:985 builtin/prune-packed.c:25 builtin/tag.c:575
 msgid "too many arguments"
 msgstr "太多参数"
 
@@ -17275,7 +17631,7 @@ msgstr "%s,源=%s,目标=%s"
 msgid "Renaming %s to %s\n"
 msgstr "重命名 %s 至 %s\n"
 
-#: builtin/mv.c:280 builtin/remote.c:785 builtin/repack.c:484
+#: builtin/mv.c:280 builtin/remote.c:785 builtin/repack.c:483
 #, c-format
 msgid "renaming '%s' failed"
 msgstr "重命名 '%s' 失败"
@@ -17464,7 +17820,7 @@ msgstr "不能写注解对象"
 msgid "the note contents have been left in %s"
 msgstr "注解内容被留在 %s 中"
 
-#: builtin/notes.c:242 builtin/tag.c:533
+#: builtin/notes.c:242 builtin/tag.c:565
 #, c-format
 msgid "could not open or read '%s'"
 msgstr "不能打开或读取 '%s'"
@@ -17504,12 +17860,6 @@ msgstr "从 '%s' 拷贝注解到 '%s' 时失败"
 msgid "refusing to %s notes in %s (outside of refs/notes/)"
 msgstr "拒绝向 %2$s(在 refs/notes/ 之外)%1$s注解"
 
-#: builtin/notes.c:376 builtin/notes.c:431 builtin/notes.c:509
-#: builtin/notes.c:521 builtin/notes.c:598 builtin/notes.c:665
-#: builtin/notes.c:815 builtin/notes.c:963 builtin/notes.c:985
-msgid "too many parameters"
-msgstr "参数太多"
-
 #: builtin/notes.c:389 builtin/notes.c:678
 #, c-format
 msgid "no note found for object %s."
@@ -17565,7 +17915,7 @@ msgid "load rewriting config for <command> (implies --stdin)"
 msgstr "重新加载 <命令> 的配置(隐含 --stdin)"
 
 #: builtin/notes.c:517
-msgid "too few parameters"
+msgid "too few arguments"
 msgstr "参数太少"
 
 #: builtin/notes.c:538
@@ -17689,7 +18039,7 @@ msgstr ""
 "自动合并说明失败。修改 %s 中的冲突并且使用命令 'git notes merge --commit' 提"
 "交结果,或者使用命令 'git notes merge --abort' 终止合并。\n"
 
-#: builtin/notes.c:897 builtin/tag.c:546
+#: builtin/notes.c:897 builtin/tag.c:578
 #, c-format
 msgid "Failed to resolve '%s' as a valid ref."
 msgstr "无法解析 '%s' 为一个有效引用。"
@@ -17707,7 +18057,7 @@ msgstr "尝试删除不存在的注解不是一个错误"
 msgid "read object names from the standard input"
 msgstr "从标准输入读取对象名称"
 
-#: builtin/notes.c:954 builtin/prune.c:132 builtin/worktree.c:220
+#: builtin/notes.c:954 builtin/prune.c:132 builtin/worktree.c:148
 msgid "do not remove, show only"
 msgstr "不删除,只显示"
 
@@ -17723,7 +18073,7 @@ msgstr "注解引用"
 msgid "use notes from <notes-ref>"
 msgstr "从 <注解引用> 使用注解"
 
-#: builtin/notes.c:1034 builtin/stash.c:1604
+#: builtin/notes.c:1034 builtin/stash.c:1671
 #, c-format
 msgid "unknown subcommand: %s"
 msgstr "未知子命令:%s"
@@ -17738,101 +18088,113 @@ msgid ""
 "git pack-objects [<options>...] <base-name> [< <ref-list> | < <object-list>]"
 msgstr "git pack-objects [<选项>...] <前缀名称> [< <引用列表> | < <对象列表>]"
 
-#: builtin/pack-objects.c:443
+#: builtin/pack-objects.c:440
+#, c-format
+msgid ""
+"write_reuse_object: could not locate %s, expected at offset %<PRIuMAX> in "
+"pack %s"
+msgstr "write_reuse_object:无法定位 %1$s,预期在包 %3$s 中的偏移量 %2$<PRIuMAX> 上"
+
+#: builtin/pack-objects.c:448
 #, c-format
 msgid "bad packed object CRC for %s"
 msgstr "%s 错的包对象 CRC"
 
-#: builtin/pack-objects.c:454
+#: builtin/pack-objects.c:459
 #, c-format
 msgid "corrupt packed object for %s"
 msgstr "%s 损坏的包对象"
 
-#: builtin/pack-objects.c:585
+#: builtin/pack-objects.c:590
 #, c-format
 msgid "recursive delta detected for object %s"
 msgstr "发现对象 %s 递归 delta"
 
-#: builtin/pack-objects.c:796
+#: builtin/pack-objects.c:801
 #, c-format
 msgid "ordered %u objects, expected %<PRIu32>"
 msgstr "排序了 %u 个对象,预期 %<PRIu32> 个"
 
-#: builtin/pack-objects.c:1004
+#: builtin/pack-objects.c:896
+#, c-format
+msgid "expected object at offset %<PRIuMAX> in pack %s"
+msgstr "预期对象在包文件 %2$s 的偏移量 %1$<PRIuMAX> 上"
+
+#: builtin/pack-objects.c:1015
 msgid "disabling bitmap writing, packs are split due to pack.packSizeLimit"
 msgstr "禁用 bitmap 写入,因为 pack.packSizeLimit 设置使得包被切分为多个"
 
-#: builtin/pack-objects.c:1017
+#: builtin/pack-objects.c:1028
 msgid "Writing objects"
 msgstr "写入对象中"
 
-#: builtin/pack-objects.c:1078 builtin/update-index.c:90
+#: builtin/pack-objects.c:1089 builtin/update-index.c:90
 #, c-format
 msgid "failed to stat %s"
 msgstr "对 %s 调用 stat 失败"
 
-#: builtin/pack-objects.c:1131
+#: builtin/pack-objects.c:1141
 #, c-format
 msgid "wrote %<PRIu32> objects while expecting %<PRIu32>"
 msgstr "写入 %<PRIu32> 个对象而预期 %<PRIu32> 个"
 
-#: builtin/pack-objects.c:1348
+#: builtin/pack-objects.c:1358
 msgid "disabling bitmap writing, as some objects are not being packed"
 msgstr "禁用 bitmap 写入,因为一些对象将不会被打包"
 
-#: builtin/pack-objects.c:1796
+#: builtin/pack-objects.c:1806
 #, c-format
 msgid "delta base offset overflow in pack for %s"
 msgstr "%s 压缩中 delta 基准偏移越界"
 
-#: builtin/pack-objects.c:1805
+#: builtin/pack-objects.c:1815
 #, c-format
 msgid "delta base offset out of bound for %s"
 msgstr "%s 的 delta 基准偏移越界"
 
-#: builtin/pack-objects.c:2086
+#: builtin/pack-objects.c:2096
 msgid "Counting objects"
 msgstr "对象计数中"
 
-#: builtin/pack-objects.c:2231
+#: builtin/pack-objects.c:2241
 #, c-format
 msgid "unable to parse object header of %s"
 msgstr "无法解析对象 %s 头信息"
 
-#: builtin/pack-objects.c:2301 builtin/pack-objects.c:2317
-#: builtin/pack-objects.c:2327
+#: builtin/pack-objects.c:2311 builtin/pack-objects.c:2327
+#: builtin/pack-objects.c:2337
 #, c-format
 msgid "object %s cannot be read"
 msgstr "对象 %s 无法读取"
 
-#: builtin/pack-objects.c:2304 builtin/pack-objects.c:2331
+#: builtin/pack-objects.c:2314 builtin/pack-objects.c:2341
 #, c-format
 msgid "object %s inconsistent object length (%<PRIuMAX> vs %<PRIuMAX>)"
 msgstr "对象 %s 不一致的对象长度(%<PRIuMAX> vs %<PRIuMAX>)"
 
-#: builtin/pack-objects.c:2341
+#: builtin/pack-objects.c:2351
 msgid "suboptimal pack - out of memory"
 msgstr "次优(suboptimal)打包 - 内存不足"
 
-#: builtin/pack-objects.c:2656
+#: builtin/pack-objects.c:2666
 #, c-format
 msgid "Delta compression using up to %d threads"
 msgstr "使用 %d 个线程进行压缩"
 
-#: builtin/pack-objects.c:2795
+#: builtin/pack-objects.c:2805
 #, c-format
 msgid "unable to pack objects reachable from tag %s"
 msgstr "无法为标签 %s 压缩对象"
 
-#: builtin/pack-objects.c:2883
+#: builtin/pack-objects.c:2891
 msgid "Compressing objects"
 msgstr "压缩对象中"
 
-#: builtin/pack-objects.c:2889
+#: builtin/pack-objects.c:2897
 msgid "inconsistency with delta count"
 msgstr "不一致的差异计数"
 
-#: builtin/pack-objects.c:2961
+#: builtin/pack-objects.c:2976
 #, c-format
 msgid ""
 "value of uploadpack.blobpackfileuri must be of the form '<object-hash> <pack-"
@@ -17841,13 +18203,13 @@ msgstr ""
 "uploadpack.blobpackfileuri 的取值必须是 '<object-hash> <pack-hash> <uri>' 格"
 "式(得到 '%s')"
 
-#: builtin/pack-objects.c:2964
+#: builtin/pack-objects.c:2979
 #, c-format
 msgid ""
 "object already configured in another uploadpack.blobpackfileuri (got '%s')"
 msgstr "对象已经在另外的 uploadpack.blobpackfileuri 中配置(得到 '%s')"
 
-#: builtin/pack-objects.c:2993
+#: builtin/pack-objects.c:3008
 #, c-format
 msgid ""
 "expected edge object ID, got garbage:\n"
@@ -17856,7 +18218,7 @@ msgstr ""
 "预期边界对象(edge object)ID,却得到垃圾数据:\n"
 " %s"
 
-#: builtin/pack-objects.c:2999
+#: builtin/pack-objects.c:3014
 #, c-format
 msgid ""
 "expected object ID, got garbage:\n"
@@ -17865,234 +18227,234 @@ msgstr ""
 "预期对象 ID,却得到垃圾数据:\n"
 " %s"
 
-#: builtin/pack-objects.c:3097
+#: builtin/pack-objects.c:3112
 msgid "invalid value for --missing"
 msgstr "选项 --missing 的值无效"
 
-#: builtin/pack-objects.c:3156 builtin/pack-objects.c:3264
+#: builtin/pack-objects.c:3171 builtin/pack-objects.c:3279
 msgid "cannot open pack index"
 msgstr "无法打开包文件索引"
 
-#: builtin/pack-objects.c:3187
+#: builtin/pack-objects.c:3202
 #, c-format
 msgid "loose object at %s could not be examined"
 msgstr "无法检查 %s 处的松散对象"
 
-#: builtin/pack-objects.c:3272
+#: builtin/pack-objects.c:3287
 msgid "unable to force loose object"
 msgstr "无法强制松散对象"
 
-#: builtin/pack-objects.c:3365
+#: builtin/pack-objects.c:3380
 #, c-format
 msgid "not a rev '%s'"
 msgstr "不是一个版本 '%s'"
 
-#: builtin/pack-objects.c:3368
+#: builtin/pack-objects.c:3383
 #, c-format
 msgid "bad revision '%s'"
 msgstr "坏的版本 '%s'"
 
-#: builtin/pack-objects.c:3393
+#: builtin/pack-objects.c:3408
 msgid "unable to add recent objects"
 msgstr "无法添加最近的对象"
 
-#: builtin/pack-objects.c:3446
+#: builtin/pack-objects.c:3461
 #, c-format
 msgid "unsupported index version %s"
 msgstr "不支持的索引版本 %s"
 
-#: builtin/pack-objects.c:3450
+#: builtin/pack-objects.c:3465
 #, c-format
 msgid "bad index version '%s'"
 msgstr "坏的索引版本 '%s'"
 
-#: builtin/pack-objects.c:3488
+#: builtin/pack-objects.c:3503
 msgid "<version>[,<offset>]"
 msgstr "<版本>[,<偏移>]"
 
-#: builtin/pack-objects.c:3489
+#: builtin/pack-objects.c:3504
 msgid "write the pack index file in the specified idx format version"
 msgstr "用指定的 idx 格式版本来写包索引文件"
 
-#: builtin/pack-objects.c:3492
+#: builtin/pack-objects.c:3507
 msgid "maximum size of each output pack file"
 msgstr "每个输出包的最大尺寸"
 
-#: builtin/pack-objects.c:3494
+#: builtin/pack-objects.c:3509
 msgid "ignore borrowed objects from alternate object store"
 msgstr "忽略从备用对象存储里借用对象"
 
-#: builtin/pack-objects.c:3496
+#: builtin/pack-objects.c:3511
 msgid "ignore packed objects"
 msgstr "忽略包对象"
 
-#: builtin/pack-objects.c:3498
+#: builtin/pack-objects.c:3513
 msgid "limit pack window by objects"
 msgstr "限制打包窗口的对象数"
 
-#: builtin/pack-objects.c:3500
+#: builtin/pack-objects.c:3515
 msgid "limit pack window by memory in addition to object limit"
 msgstr "除对象数量限制外设置打包窗口的内存限制"
 
-#: builtin/pack-objects.c:3502
+#: builtin/pack-objects.c:3517
 msgid "maximum length of delta chain allowed in the resulting pack"
 msgstr "打包允许的 delta 链的最大长度"
 
-#: builtin/pack-objects.c:3504
+#: builtin/pack-objects.c:3519
 msgid "reuse existing deltas"
 msgstr "重用已存在的 deltas"
 
-#: builtin/pack-objects.c:3506
+#: builtin/pack-objects.c:3521
 msgid "reuse existing objects"
 msgstr "重用已存在的对象"
 
-#: builtin/pack-objects.c:3508
+#: builtin/pack-objects.c:3523
 msgid "use OFS_DELTA objects"
 msgstr "使用 OFS_DELTA 对象"
 
-#: builtin/pack-objects.c:3510
+#: builtin/pack-objects.c:3525
 msgid "use threads when searching for best delta matches"
 msgstr "使用线程查询最佳 delta 匹配"
 
-#: builtin/pack-objects.c:3512
+#: builtin/pack-objects.c:3527
 msgid "do not create an empty pack output"
 msgstr "不创建空的包输出"
 
-#: builtin/pack-objects.c:3514
+#: builtin/pack-objects.c:3529
 msgid "read revision arguments from standard input"
 msgstr "从标准输入读取版本号参数"
 
-#: builtin/pack-objects.c:3516
+#: builtin/pack-objects.c:3531
 msgid "limit the objects to those that are not yet packed"
 msgstr "限制那些尚未打包的对象"
 
-#: builtin/pack-objects.c:3519
+#: builtin/pack-objects.c:3534
 msgid "include objects reachable from any reference"
 msgstr "包括可以从任何引用访问到的对象"
 
-#: builtin/pack-objects.c:3522
+#: builtin/pack-objects.c:3537
 msgid "include objects referred by reflog entries"
 msgstr "包括被引用日志引用到的对象"
 
-#: builtin/pack-objects.c:3525
+#: builtin/pack-objects.c:3540
 msgid "include objects referred to by the index"
 msgstr "包括被索引引用到的对象"
 
-#: builtin/pack-objects.c:3528
+#: builtin/pack-objects.c:3543
 msgid "output pack to stdout"
 msgstr "输出包到标准输出"
 
-#: builtin/pack-objects.c:3530
+#: builtin/pack-objects.c:3545
 msgid "include tag objects that refer to objects to be packed"
 msgstr "包括那些引用了待打包对象的标签对象"
 
-#: builtin/pack-objects.c:3532
+#: builtin/pack-objects.c:3547
 msgid "keep unreachable objects"
 msgstr "维持不可达的对象"
 
-#: builtin/pack-objects.c:3534
+#: builtin/pack-objects.c:3549
 msgid "pack loose unreachable objects"
 msgstr "打包松散的不可达对象"
 
-#: builtin/pack-objects.c:3536
+#: builtin/pack-objects.c:3551
 msgid "unpack unreachable objects newer than <time>"
 msgstr "将比给定 <时间> 新的无法访问的对象解包"
 
-#: builtin/pack-objects.c:3539
+#: builtin/pack-objects.c:3554
 msgid "use the sparse reachability algorithm"
 msgstr "使用稀疏可达性算法"
 
-#: builtin/pack-objects.c:3541
+#: builtin/pack-objects.c:3556
 msgid "create thin packs"
 msgstr "创建精简包"
 
-#: builtin/pack-objects.c:3543
+#: builtin/pack-objects.c:3558
 msgid "create packs suitable for shallow fetches"
 msgstr "创建适合浅克隆仓库获取的包"
 
-#: builtin/pack-objects.c:3545
+#: builtin/pack-objects.c:3560
 msgid "ignore packs that have companion .keep file"
 msgstr "忽略配有 .keep 文件的包"
 
-#: builtin/pack-objects.c:3547
+#: builtin/pack-objects.c:3562
 msgid "ignore this pack"
 msgstr "忽略该 pack"
 
-#: builtin/pack-objects.c:3549
+#: builtin/pack-objects.c:3564
 msgid "pack compression level"
 msgstr "打包压缩级别"
 
-#: builtin/pack-objects.c:3551
+#: builtin/pack-objects.c:3566
 msgid "do not hide commits by grafts"
 msgstr "显示被移植隐藏的提交"
 
-#: builtin/pack-objects.c:3553
+#: builtin/pack-objects.c:3568
 msgid "use a bitmap index if available to speed up counting objects"
 msgstr "使用 bitmap 索引(如果有的话)以提高对象计数时的速度"
 
-#: builtin/pack-objects.c:3555
+#: builtin/pack-objects.c:3570
 msgid "write a bitmap index together with the pack index"
 msgstr "在建立包索引的同时创建 bitmap 索引"
 
-#: builtin/pack-objects.c:3559
+#: builtin/pack-objects.c:3574
 msgid "write a bitmap index if possible"
 msgstr "如果可能,写 bitmap 索引"
 
-#: builtin/pack-objects.c:3563
+#: builtin/pack-objects.c:3578
 msgid "handling for missing objects"
 msgstr "处理丢失的对象"
 
-#: builtin/pack-objects.c:3566
+#: builtin/pack-objects.c:3581
 msgid "do not pack objects in promisor packfiles"
 msgstr "不要打包 promisor 包文件中的对象"
 
-#: builtin/pack-objects.c:3568
+#: builtin/pack-objects.c:3583
 msgid "respect islands during delta compression"
 msgstr "在增量压缩时参考数据岛"
 
-#: builtin/pack-objects.c:3570
+#: builtin/pack-objects.c:3585
 msgid "protocol"
 msgstr "协议"
 
-#: builtin/pack-objects.c:3571
+#: builtin/pack-objects.c:3586
 msgid "exclude any configured uploadpack.blobpackfileuri with this protocol"
 msgstr "使用此协议排除任何已配置的 uploadpack.blobpackfileuri"
 
-#: builtin/pack-objects.c:3600
+#: builtin/pack-objects.c:3617
 #, c-format
 msgid "delta chain depth %d is too deep, forcing %d"
 msgstr "增量链深度 %d 太深了,强制为 %d"
 
-#: builtin/pack-objects.c:3605
+#: builtin/pack-objects.c:3622
 #, c-format
 msgid "pack.deltaCacheLimit is too high, forcing %d"
 msgstr "配置 pack.deltaCacheLimit 太高了,强制为 %d"
 
-#: builtin/pack-objects.c:3659
+#: builtin/pack-objects.c:3676
 msgid "--max-pack-size cannot be used to build a pack for transfer"
 msgstr "不能使用 --max-pack-size 来构建传输用的包文件"
 
-#: builtin/pack-objects.c:3661
+#: builtin/pack-objects.c:3678
 msgid "minimum pack size limit is 1 MiB"
 msgstr "最小的包文件大小是 1 MiB"
 
-#: builtin/pack-objects.c:3666
+#: builtin/pack-objects.c:3683
 msgid "--thin cannot be used to build an indexable pack"
 msgstr "--thin 不能用于创建一个可索引包"
 
-#: builtin/pack-objects.c:3669
+#: builtin/pack-objects.c:3686
 msgid "--keep-unreachable and --unpack-unreachable are incompatible"
 msgstr "--keep-unreachable 和 --unpack-unreachable 不兼容"
 
-#: builtin/pack-objects.c:3675
+#: builtin/pack-objects.c:3692
 msgid "cannot use --filter without --stdout"
 msgstr "不能在没有 --stdout 的情况下使用 --filter"
 
-#: builtin/pack-objects.c:3735
+#: builtin/pack-objects.c:3752
 msgid "Enumerating objects"
 msgstr "枚举对象中"
 
-#: builtin/pack-objects.c:3766
+#: builtin/pack-objects.c:3783
 #, c-format
 msgid ""
 "Total %<PRIu32> (delta %<PRIu32>), reused %<PRIu32> (delta %<PRIu32>), pack-"
@@ -18101,6 +18463,19 @@ msgstr ""
 "总共 %<PRIu32>(差异 %<PRIu32>),复用 %<PRIu32>(差异 %<PRIu32>),包复用 "
 "%<PRIu32>"
 
+#: builtin/pack-redundant.c:601
+msgid ""
+"'git pack-redundant' is nominated for removal.\n"
+"If you still use this command, please add an extra\n"
+"option, '--i-still-use-this', on the command line\n"
+"and let us know you still use it by sending an e-mail\n"
+"to <git@vger.kernel.org>.  Thanks.\n"
+msgstr ""
+"准备移除 'git pack-redundant' 命令。如果您仍旧使用这个\n"
+"命令,请在命令行中添加额外参数:'--i-still-use-this',\n"
+"并通过发送邮件到 <git@vger.kernel.org> 让我们知道您仍旧\n"
+"使用它。 谢谢。\n"
+
 #: builtin/pack-refs.c:8
 msgid "git pack-refs [<options>]"
 msgstr "git pack-refs [<选项>]"
@@ -18158,7 +18533,7 @@ msgstr "和合并相关的选项"
 msgid "incorporate changes by rebasing rather than merging"
 msgstr "使用变基操作取代合并操作以合入修改"
 
-#: builtin/pull.c:158 builtin/rebase.c:490 builtin/revert.c:126
+#: builtin/pull.c:158 builtin/rebase.c:492 builtin/revert.c:126
 msgid "allow fast-forward"
 msgstr "允许快进式"
 
@@ -18183,51 +18558,24 @@ msgstr "并发拉取的子模组的数量"
 msgid "Invalid value for pull.ff: %s"
 msgstr "pull.ff 的取值无效:%s"
 
-#: builtin/pull.c:348
-msgid ""
-"Pulling without specifying how to reconcile divergent branches is\n"
-"discouraged. You can squelch this message by running one of the following\n"
-"commands sometime before your next pull:\n"
-"\n"
-"  git config pull.rebase false  # merge (the default strategy)\n"
-"  git config pull.rebase true   # rebase\n"
-"  git config pull.ff only       # fast-forward only\n"
-"\n"
-"You can replace \"git config\" with \"git config --global\" to set a "
-"default\n"
-"preference for all repositories. You can also pass --rebase, --no-rebase,\n"
-"or --ff-only on the command line to override the configured default per\n"
-"invocation.\n"
-msgstr ""
-"不建议在没有为偏离分支指定合并策略时执行 pull 操作。 您可以在执行下一次\n"
-"pull 操作之前执行下面一条命令来抑制本消息:\n"
-"\n"
-"  git config pull.rebase false  # 合并(缺省策略)\n"
-"  git config pull.rebase true   # 变基\n"
-"  git config pull.ff only       # 仅快进\n"
-"\n"
-"您可以将 \"git config\" 替换为 \"git config --global\" 以便为所有仓库设置\n"
-"缺省的配置项。您也可以在每次执行 pull 命令时添加 --rebase、--no-rebase,\n"
-"或者 --ff-only 参数覆盖缺省设置。\n"
-
-#: builtin/pull.c:458
+#: builtin/pull.c:445
 msgid ""
 "There is no candidate for rebasing against among the refs that you just "
 "fetched."
 msgstr "在您刚刚获取到的引用中没有变基操作的候选。"
 
-#: builtin/pull.c:460
+#: builtin/pull.c:447
 msgid ""
 "There are no candidates for merging among the refs that you just fetched."
 msgstr "在您刚刚获取到的引用中没有合并操作的候选。"
 
-#: builtin/pull.c:461
+#: builtin/pull.c:448
 msgid ""
 "Generally this means that you provided a wildcard refspec which had no\n"
 "matches on the remote end."
 msgstr "通常这意味着您提供了一个通配符引用规格但未能和远端匹配。"
 
-#: builtin/pull.c:464
+#: builtin/pull.c:451
 #, c-format
 msgid ""
 "You asked to pull from the remote '%s', but did not specify\n"
@@ -18237,41 +18585,41 @@ msgstr ""
 "您要求从远程 '%s' 拉取,但是未指定一个分支。因为这不是当前\n"
 "分支默认的远程仓库,您必须在命令行中指定一个分支名。"
 
-#: builtin/pull.c:469 builtin/rebase.c:1246
+#: builtin/pull.c:456 builtin/rebase.c:1253
 msgid "You are not currently on a branch."
 msgstr "您当前不在一个分支上。"
 
-#: builtin/pull.c:471 builtin/pull.c:486
+#: builtin/pull.c:458 builtin/pull.c:473
 msgid "Please specify which branch you want to rebase against."
 msgstr "请指定您要变基到哪一个分支。"
 
-#: builtin/pull.c:473 builtin/pull.c:488
+#: builtin/pull.c:460 builtin/pull.c:475
 msgid "Please specify which branch you want to merge with."
 msgstr "请指定您要合并哪一个分支。"
 
-#: builtin/pull.c:474 builtin/pull.c:489
+#: builtin/pull.c:461 builtin/pull.c:476
 msgid "See git-pull(1) for details."
 msgstr "详见 git-pull(1)。"
 
-#: builtin/pull.c:476 builtin/pull.c:482 builtin/pull.c:491
-#: builtin/rebase.c:1252
+#: builtin/pull.c:463 builtin/pull.c:469 builtin/pull.c:478
+#: builtin/rebase.c:1259
 msgid "<remote>"
 msgstr "<远程>"
 
-#: builtin/pull.c:476 builtin/pull.c:491 builtin/pull.c:496
+#: builtin/pull.c:463 builtin/pull.c:478 builtin/pull.c:483
 msgid "<branch>"
 msgstr "<分支>"
 
-#: builtin/pull.c:484 builtin/rebase.c:1244
+#: builtin/pull.c:471 builtin/rebase.c:1251
 msgid "There is no tracking information for the current branch."
 msgstr "当前分支没有跟踪信息。"
 
-#: builtin/pull.c:493
+#: builtin/pull.c:480
 msgid ""
 "If you wish to set tracking information for this branch you can do so with:"
 msgstr "如果您想要为此分支创建跟踪信息,您可以执行:"
 
-#: builtin/pull.c:498
+#: builtin/pull.c:485
 #, c-format
 msgid ""
 "Your configuration specifies to merge with the ref '%s'\n"
@@ -18280,28 +18628,55 @@ msgstr ""
 "您的配置中指定要合并远程的引用 '%s',\n"
 "但是没有获取到这个引用。"
 
-#: builtin/pull.c:609
+#: builtin/pull.c:596
 #, c-format
 msgid "unable to access commit %s"
 msgstr "无法访问提交 %s"
 
-#: builtin/pull.c:915
+#: builtin/pull.c:902
 msgid "ignoring --verify-signatures for rebase"
 msgstr "为变基操作忽略 --verify-signatures"
 
-#: builtin/pull.c:972
+#: builtin/pull.c:930
+msgid ""
+"Pulling without specifying how to reconcile divergent branches is\n"
+"discouraged. You can squelch this message by running one of the following\n"
+"commands sometime before your next pull:\n"
+"\n"
+"  git config pull.rebase false  # merge (the default strategy)\n"
+"  git config pull.rebase true   # rebase\n"
+"  git config pull.ff only       # fast-forward only\n"
+"\n"
+"You can replace \"git config\" with \"git config --global\" to set a "
+"default\n"
+"preference for all repositories. You can also pass --rebase, --no-rebase,\n"
+"or --ff-only on the command line to override the configured default per\n"
+"invocation.\n"
+msgstr ""
+"不建议在没有为偏离分支指定合并策略时执行 pull 操作。 您可以在执行下一次\n"
+"pull 操作之前执行下面一条命令来抑制本消息:\n"
+"\n"
+"  git config pull.rebase false  # 合并(缺省策略)\n"
+"  git config pull.rebase true   # 变基\n"
+"  git config pull.ff only       # 仅快进\n"
+"\n"
+"您可以将 \"git config\" 替换为 \"git config --global\" 以便为所有仓库设置\n"
+"缺省的配置项。您也可以在每次执行 pull 命令时添加 --rebase、--no-rebase,\n"
+"或者 --ff-only 参数覆盖缺省设置。\n"
+
+#: builtin/pull.c:991
 msgid "Updating an unborn branch with changes added to the index."
 msgstr "更新尚未诞生的分支,变更添加至索引。"
 
-#: builtin/pull.c:976
+#: builtin/pull.c:995
 msgid "pull with rebase"
 msgstr "变基式拉取"
 
-#: builtin/pull.c:977
+#: builtin/pull.c:996
 msgid "please commit or stash them."
 msgstr "请提交或贮藏它们。"
 
-#: builtin/pull.c:1002
+#: builtin/pull.c:1021
 #, c-format
 msgid ""
 "fetch updated the current branch head.\n"
@@ -18311,7 +18686,7 @@ msgstr ""
 "fetch 更新了当前的分支。快进您的工作区\n"
 "至提交 %s。"
 
-#: builtin/pull.c:1008
+#: builtin/pull.c:1027
 #, c-format
 msgid ""
 "Cannot fast-forward your working tree.\n"
@@ -18328,15 +18703,15 @@ msgstr ""
 "$ git reset --hard\n"
 "恢复之前的状态。"
 
-#: builtin/pull.c:1023
+#: builtin/pull.c:1042
 msgid "Cannot merge multiple branches into empty head."
 msgstr "无法将多个分支合并到空分支。"
 
-#: builtin/pull.c:1027
+#: builtin/pull.c:1046
 msgid "Cannot rebase onto multiple branches."
 msgstr "无法变基到多个分支。"
 
-#: builtin/pull.c:1041
+#: builtin/pull.c:1067
 msgid "cannot rebase with locally recorded submodule modifications"
 msgstr "本地子模组中有修改,无法变基"
 
@@ -18630,44 +19005,52 @@ msgstr "--all 和 --mirror 不兼容"
 msgid "push options must not have new line characters"
 msgstr "推送选项不能有换行符"
 
-#: builtin/range-diff.c:8
+#: builtin/range-diff.c:9
 msgid "git range-diff [<options>] <old-base>..<old-tip> <new-base>..<new-tip>"
 msgstr "git range-diff [<选项>] <old-base>..<old-tip> <new-base>..<new-tip>"
 
-#: builtin/range-diff.c:9
+#: builtin/range-diff.c:10
 msgid "git range-diff [<options>] <old-tip>...<new-tip>"
 msgstr "git range-diff [<选项>] <old-tip>...<new-tip>"
 
-#: builtin/range-diff.c:10
+#: builtin/range-diff.c:11
 msgid "git range-diff [<options>] <base> <old-tip> <new-tip>"
 msgstr "git range-diff [<选项>] <base> <old-tip> <new-tip>"
 
-#: builtin/range-diff.c:22
+#: builtin/range-diff.c:28
 msgid "Percentage by which creation is weighted"
 msgstr "创建权重的百分比"
 
-#: builtin/range-diff.c:24
+#: builtin/range-diff.c:30
 msgid "use simple diff colors"
 msgstr "使用简单差异颜色"
 
-#: builtin/range-diff.c:26
+#: builtin/range-diff.c:32
 msgid "notes"
 msgstr "注解"
 
-#: builtin/range-diff.c:26
+#: builtin/range-diff.c:32
 msgid "passed to 'git log'"
 msgstr "传递给 'git log'"
 
-#: builtin/range-diff.c:50 builtin/range-diff.c:54
+#: builtin/range-diff.c:35
+msgid "only emit output related to the first range"
+msgstr "仅显示与第一个范围有关的输出"
+
+#: builtin/range-diff.c:37
+msgid "only emit output related to the second range"
+msgstr "仅显示与第二个范围有关的输出"
+
+#: builtin/range-diff.c:60 builtin/range-diff.c:64
 #, c-format
-msgid "no .. in range: '%s'"
-msgstr "没有在范围中使用 ..:'%s'"
+msgid "not a commit range: '%s'"
+msgstr "不是一个提交范围:'%s'"
 
-#: builtin/range-diff.c:64
+#: builtin/range-diff.c:74
 msgid "single arg format must be symmetric range"
 msgstr "单个参数格式必须是对称范围(即包含...)"
 
-#: builtin/range-diff.c:79
+#: builtin/range-diff.c:89
 msgid "need two commit ranges"
 msgstr "需要两个提交范围"
 
@@ -18771,193 +19154,193 @@ msgstr ""
 msgid "git rebase --continue | --abort | --skip | --edit-todo"
 msgstr "git rebase --continue | --abort | --skip | --edit-todo"
 
-#: builtin/rebase.c:193 builtin/rebase.c:217 builtin/rebase.c:244
+#: builtin/rebase.c:195 builtin/rebase.c:219 builtin/rebase.c:246
 #, c-format
 msgid "unusable todo list: '%s'"
 msgstr "不可用的待办列表:'%s'"
 
-#: builtin/rebase.c:310
+#: builtin/rebase.c:312
 #, c-format
 msgid "could not create temporary %s"
 msgstr "无法创建临时的 %s"
 
-#: builtin/rebase.c:316
+#: builtin/rebase.c:318
 msgid "could not mark as interactive"
 msgstr "无法标记为交互式"
 
-#: builtin/rebase.c:369
+#: builtin/rebase.c:371
 msgid "could not generate todo list"
 msgstr "无法生成待办列表"
 
-#: builtin/rebase.c:411
+#: builtin/rebase.c:413
 msgid "a base commit must be provided with --upstream or --onto"
 msgstr "使用 --upstream 或 --onto 必须提供一个基线提交"
 
-#: builtin/rebase.c:480
+#: builtin/rebase.c:482
 msgid "git rebase--interactive [<options>]"
 msgstr "git rebase--interactive [<选项>]"
 
-#: builtin/rebase.c:493 builtin/rebase.c:1388
+#: builtin/rebase.c:495 builtin/rebase.c:1394
 msgid "keep commits which start empty"
 msgstr "保留初始为空的提交"
 
-#: builtin/rebase.c:497 builtin/revert.c:128
+#: builtin/rebase.c:499 builtin/revert.c:128
 msgid "allow commits with empty messages"
 msgstr "允许提交说明为空"
 
-#: builtin/rebase.c:499
+#: builtin/rebase.c:501
 msgid "rebase merge commits"
 msgstr "对合并提交变基"
 
-#: builtin/rebase.c:501
+#: builtin/rebase.c:503
 msgid "keep original branch points of cousins"
 msgstr "保持兄弟提交的原始分支点"
 
-#: builtin/rebase.c:503
+#: builtin/rebase.c:505
 msgid "move commits that begin with squash!/fixup!"
 msgstr "移动以 squash!/fixup! 开头的提交"
 
-#: builtin/rebase.c:504
+#: builtin/rebase.c:506
 msgid "sign commits"
 msgstr "签名提交"
 
-#: builtin/rebase.c:506 builtin/rebase.c:1327
+#: builtin/rebase.c:508 builtin/rebase.c:1333
 msgid "display a diffstat of what changed upstream"
 msgstr "显示上游变化的差异统计"
 
-#: builtin/rebase.c:508
+#: builtin/rebase.c:510
 msgid "continue rebase"
 msgstr "继续变基"
 
-#: builtin/rebase.c:510
+#: builtin/rebase.c:512
 msgid "skip commit"
 msgstr "跳过提交"
 
-#: builtin/rebase.c:511
+#: builtin/rebase.c:513
 msgid "edit the todo list"
 msgstr "变基待办列表"
 
-#: builtin/rebase.c:513
+#: builtin/rebase.c:515
 msgid "show the current patch"
 msgstr "显示当前补丁"
 
-#: builtin/rebase.c:516
+#: builtin/rebase.c:518
 msgid "shorten commit ids in the todo list"
 msgstr "缩短待办列表中的提交号"
 
-#: builtin/rebase.c:518
+#: builtin/rebase.c:520
 msgid "expand commit ids in the todo list"
 msgstr "扩展待办列表中的提交号"
 
-#: builtin/rebase.c:520
+#: builtin/rebase.c:522
 msgid "check the todo list"
 msgstr "检查待办列表"
 
-#: builtin/rebase.c:522
+#: builtin/rebase.c:524
 msgid "rearrange fixup/squash lines"
 msgstr "重新排列 fixup/squash 行"
 
-#: builtin/rebase.c:524
+#: builtin/rebase.c:526
 msgid "insert exec commands in todo list"
 msgstr "在待办列表中插入 exec 执行命令"
 
-#: builtin/rebase.c:525
+#: builtin/rebase.c:527
 msgid "onto"
 msgstr "onto"
 
-#: builtin/rebase.c:528
+#: builtin/rebase.c:530
 msgid "restrict-revision"
 msgstr "restrict-revision"
 
-#: builtin/rebase.c:528
+#: builtin/rebase.c:530
 msgid "restrict revision"
 msgstr "限制版本"
 
-#: builtin/rebase.c:530
+#: builtin/rebase.c:532
 msgid "squash-onto"
 msgstr "squash-onto"
 
-#: builtin/rebase.c:531
+#: builtin/rebase.c:533
 msgid "squash onto"
 msgstr "squash onto"
 
-#: builtin/rebase.c:533
+#: builtin/rebase.c:535
 msgid "the upstream commit"
 msgstr "上游提交"
 
-#: builtin/rebase.c:535
+#: builtin/rebase.c:537
 msgid "head-name"
 msgstr "head-name"
 
-#: builtin/rebase.c:535
+#: builtin/rebase.c:537
 msgid "head name"
 msgstr "head 名称"
 
-#: builtin/rebase.c:540
+#: builtin/rebase.c:542
 msgid "rebase strategy"
 msgstr "变基策略"
 
-#: builtin/rebase.c:541
+#: builtin/rebase.c:543
 msgid "strategy-opts"
 msgstr "strategy-opts"
 
-#: builtin/rebase.c:542
+#: builtin/rebase.c:544
 msgid "strategy options"
 msgstr "策略选项"
 
-#: builtin/rebase.c:543
+#: builtin/rebase.c:545
 msgid "switch-to"
 msgstr "切换到"
 
-#: builtin/rebase.c:544
+#: builtin/rebase.c:546
 msgid "the branch or commit to checkout"
 msgstr "要检出的分支或提交"
 
-#: builtin/rebase.c:545
+#: builtin/rebase.c:547
 msgid "onto-name"
 msgstr "onto-name"
 
-#: builtin/rebase.c:545
+#: builtin/rebase.c:547
 msgid "onto name"
 msgstr "onto name"
 
-#: builtin/rebase.c:546
+#: builtin/rebase.c:548
 msgid "cmd"
 msgstr "cmd"
 
-#: builtin/rebase.c:546
+#: builtin/rebase.c:548
 msgid "the command to run"
 msgstr "要执行的命令"
 
-#: builtin/rebase.c:549 builtin/rebase.c:1421
+#: builtin/rebase.c:551 builtin/rebase.c:1427
 msgid "automatically re-schedule any `exec` that fails"
 msgstr "自动重新安排任何失败的 `exec`"
 
-#: builtin/rebase.c:565
+#: builtin/rebase.c:567
 msgid "--[no-]rebase-cousins has no effect without --rebase-merges"
 msgstr "不使用 --rebase-merges,则 --[no-]rebase-cousins 没有效果"
 
-#: builtin/rebase.c:581
+#: builtin/rebase.c:583
 #, c-format
 msgid "%s requires the merge backend"
 msgstr "%s 需要合并后端"
 
-#: builtin/rebase.c:624
+#: builtin/rebase.c:626
 #, c-format
 msgid "could not get 'onto': '%s'"
 msgstr "无法获取 'onto':'%s'"
 
-#: builtin/rebase.c:641
+#: builtin/rebase.c:643
 #, c-format
 msgid "invalid orig-head: '%s'"
 msgstr "无效的原始 head:'%s'"
 
-#: builtin/rebase.c:666
+#: builtin/rebase.c:668
 #, c-format
 msgid "ignoring invalid allow_rerere_autoupdate: '%s'"
 msgstr "忽略无效的 allow_rerere_autoupdate:'%s'"
 
-#: builtin/rebase.c:811 git-rebase--preserve-merges.sh:81
+#: builtin/rebase.c:813 git-rebase--preserve-merges.sh:81
 msgid ""
 "Resolve all conflicts manually, mark them as resolved with\n"
 "\"git add/rm <conflicted_files>\", then run \"git rebase --continue\".\n"
@@ -18970,7 +19353,7 @@ msgstr ""
 "\"git rebase --skip\" 命令跳过这个提交。如果想要终止执行并回到\n"
 "\"git rebase\" 执行之前的状态,执行 \"git rebase --abort\"。"
 
-#: builtin/rebase.c:894
+#: builtin/rebase.c:896
 #, c-format
 msgid ""
 "\n"
@@ -18988,14 +19371,14 @@ msgstr ""
 "\n"
 "因此 git 无法对其变基。"
 
-#: builtin/rebase.c:1220
+#: builtin/rebase.c:1227
 #, c-format
 msgid ""
 "unrecognized empty type '%s'; valid values are \"drop\", \"keep\", and \"ask"
 "\"."
 msgstr "无法识别的空类型 '%s';有效值有 \"drop\"、\"keep\" 和 \"ask\"。"
 
-#: builtin/rebase.c:1238
+#: builtin/rebase.c:1245
 #, c-format
 msgid ""
 "%s\n"
@@ -19012,7 +19395,7 @@ msgstr ""
 "    git rebase '<branch>'\n"
 "\n"
 
-#: builtin/rebase.c:1254
+#: builtin/rebase.c:1261
 #, c-format
 msgid ""
 "If you wish to set tracking information for this branch you can do so with:\n"
@@ -19025,148 +19408,148 @@ msgstr ""
 "    git branch --set-upstream-to=%s/<branch> %s\n"
 "\n"
 
-#: builtin/rebase.c:1284
+#: builtin/rebase.c:1291
 msgid "exec commands cannot contain newlines"
 msgstr "exec 命令不能包含换行符"
 
-#: builtin/rebase.c:1288
+#: builtin/rebase.c:1295
 msgid "empty exec command"
 msgstr "空的 exec 命令"
 
-#: builtin/rebase.c:1318
+#: builtin/rebase.c:1324
 msgid "rebase onto given branch instead of upstream"
 msgstr "变基到给定的分支而非上游"
 
-#: builtin/rebase.c:1320
+#: builtin/rebase.c:1326
 msgid "use the merge-base of upstream and branch as the current base"
 msgstr "使用上游和分支的合并基线做为当前基线"
 
-#: builtin/rebase.c:1322
+#: builtin/rebase.c:1328
 msgid "allow pre-rebase hook to run"
 msgstr "允许执行 pre-rebase 钩子"
 
-#: builtin/rebase.c:1324
+#: builtin/rebase.c:1330
 msgid "be quiet. implies --no-stat"
 msgstr "安静。暗示 --no-stat"
 
-#: builtin/rebase.c:1330
+#: builtin/rebase.c:1336
 msgid "do not show diffstat of what changed upstream"
 msgstr "不显示上游变化的差异统计"
 
-#: builtin/rebase.c:1333
+#: builtin/rebase.c:1339
 msgid "add a Signed-off-by trailer to each commit"
 msgstr "为每一个提交添加 Signed-off-by 尾注"
 
-#: builtin/rebase.c:1336
+#: builtin/rebase.c:1342
 msgid "make committer date match author date"
 msgstr "使提交者日期和作者日期一致"
 
-#: builtin/rebase.c:1338
+#: builtin/rebase.c:1344
 msgid "ignore author date and use current date"
 msgstr "忽略作者日期,使用当前日期"
 
-#: builtin/rebase.c:1340
+#: builtin/rebase.c:1346
 msgid "synonym of --reset-author-date"
 msgstr "--reset-author-date 的同义词"
 
-#: builtin/rebase.c:1342 builtin/rebase.c:1346
+#: builtin/rebase.c:1348 builtin/rebase.c:1352
 msgid "passed to 'git apply'"
 msgstr "传递给 'git apply'"
 
-#: builtin/rebase.c:1344
+#: builtin/rebase.c:1350
 msgid "ignore changes in whitespace"
 msgstr "忽略空白字符的变更"
 
-#: builtin/rebase.c:1348 builtin/rebase.c:1351
+#: builtin/rebase.c:1354 builtin/rebase.c:1357
 msgid "cherry-pick all commits, even if unchanged"
 msgstr "拣选所有提交,即使未修改"
 
-#: builtin/rebase.c:1353
+#: builtin/rebase.c:1359
 msgid "continue"
 msgstr "继续"
 
-#: builtin/rebase.c:1356
+#: builtin/rebase.c:1362
 msgid "skip current patch and continue"
 msgstr "跳过当前补丁并继续"
 
 #  译者:注意保持前导空格
-#: builtin/rebase.c:1358
+#: builtin/rebase.c:1364
 msgid "abort and check out the original branch"
 msgstr "终止并检出原有分支"
 
-#: builtin/rebase.c:1361
+#: builtin/rebase.c:1367
 msgid "abort but keep HEAD where it is"
 msgstr "终止但保持 HEAD 不变"
 
-#: builtin/rebase.c:1362
+#: builtin/rebase.c:1368
 msgid "edit the todo list during an interactive rebase"
 msgstr "在交互式变基中编辑待办列表"
 
-#: builtin/rebase.c:1365
+#: builtin/rebase.c:1371
 msgid "show the patch file being applied or merged"
 msgstr "显示正在应用或合并的补丁文件"
 
-#: builtin/rebase.c:1368
+#: builtin/rebase.c:1374
 msgid "use apply strategies to rebase"
 msgstr "使用应用策略进行变基"
 
-#: builtin/rebase.c:1372
+#: builtin/rebase.c:1378
 msgid "use merging strategies to rebase"
 msgstr "使用合并策略进行变基"
 
-#: builtin/rebase.c:1376
+#: builtin/rebase.c:1382
 msgid "let the user edit the list of commits to rebase"
 msgstr "让用户编辑要变基的提交列表"
 
-#: builtin/rebase.c:1380
+#: builtin/rebase.c:1386
 msgid "(DEPRECATED) try to recreate merges instead of ignoring them"
 msgstr "(已弃用)尝试重建合并提交而非忽略它们"
 
-#: builtin/rebase.c:1385
+#: builtin/rebase.c:1391
 msgid "how to handle commits that become empty"
 msgstr "如何处理成为空提交的提交"
 
-#: builtin/rebase.c:1392
+#: builtin/rebase.c:1398
 msgid "move commits that begin with squash!/fixup! under -i"
 msgstr "在 -i 交互模式下,移动以 squash!/fixup! 开头的提交"
 
-#: builtin/rebase.c:1399
+#: builtin/rebase.c:1405
 msgid "add exec lines after each commit of the editable list"
 msgstr "可编辑列表的每一个提交下面增加一行 exec"
 
-#: builtin/rebase.c:1403
+#: builtin/rebase.c:1409
 msgid "allow rebasing commits with empty messages"
 msgstr "允许针对空提交说明的提交变基"
 
-#: builtin/rebase.c:1407
+#: builtin/rebase.c:1413
 msgid "try to rebase merges instead of skipping them"
 msgstr "尝试对合并提交变基而不是忽略它们"
 
-#: builtin/rebase.c:1410
+#: builtin/rebase.c:1416
 msgid "use 'merge-base --fork-point' to refine upstream"
 msgstr "使用 'merge-base --fork-point' 来优化上游"
 
-#: builtin/rebase.c:1412
+#: builtin/rebase.c:1418
 msgid "use the given merge strategy"
 msgstr "使用给定的合并策略"
 
-#: builtin/rebase.c:1414 builtin/revert.c:115
+#: builtin/rebase.c:1420 builtin/revert.c:115
 msgid "option"
 msgstr "选项"
 
-#: builtin/rebase.c:1415
+#: builtin/rebase.c:1421
 msgid "pass the argument through to the merge strategy"
 msgstr "将参数传递给合并策略"
 
-#: builtin/rebase.c:1418
+#: builtin/rebase.c:1424
 msgid "rebase all reachable commits up to the root(s)"
 msgstr "将所有可达的提交变基到根提交"
 
-#: builtin/rebase.c:1423
+#: builtin/rebase.c:1429
 msgid "apply all changes, even those already present upstream"
 msgstr "应用所有更改,甚至那些已在上游存在的"
 
-#: builtin/rebase.c:1440
+#: builtin/rebase.c:1446
 msgid ""
 "the rebase.useBuiltin support has been removed!\n"
 "See its entry in 'git help config' for details."
@@ -19174,40 +19557,40 @@ msgstr ""
 "对 rebase.useBuiltin 的支持已被删除!\n"
 "详见 'git help config' 中的条目。"
 
-#: builtin/rebase.c:1446
+#: builtin/rebase.c:1452
 msgid "It looks like 'git am' is in progress. Cannot rebase."
 msgstr "看起来 'git-am' 正在执行中。无法变基。"
 
-#: builtin/rebase.c:1487
+#: builtin/rebase.c:1493
 msgid ""
 "git rebase --preserve-merges is deprecated. Use --rebase-merges instead."
 msgstr "git rebase --preserve-merges 被弃用。用 --rebase-merges 代替。"
 
-#: builtin/rebase.c:1492
+#: builtin/rebase.c:1498
 msgid "cannot combine '--keep-base' with '--onto'"
 msgstr "不能将 '--keep-base' 和 '--onto' 组合使用"
 
-#: builtin/rebase.c:1494
+#: builtin/rebase.c:1500
 msgid "cannot combine '--keep-base' with '--root'"
 msgstr "不能将 '--keep-base' 和 '--root' 组合使用"
 
-#: builtin/rebase.c:1498
+#: builtin/rebase.c:1504
 msgid "cannot combine '--root' with '--fork-point'"
 msgstr "不能将 '--root' 和 '--fork-point' 组合使用"
 
-#: builtin/rebase.c:1501
+#: builtin/rebase.c:1507
 msgid "No rebase in progress?"
 msgstr "没有正在进行的变基?"
 
-#: builtin/rebase.c:1505
+#: builtin/rebase.c:1511
 msgid "The --edit-todo action can only be used during interactive rebase."
 msgstr "动作 --edit-todo 只能用在交互式变基过程中。"
 
-#: builtin/rebase.c:1528 t/helper/test-fast-rebase.c:123
+#: builtin/rebase.c:1534 t/helper/test-fast-rebase.c:123
 msgid "Cannot read HEAD"
 msgstr "不能读取 HEAD"
 
-#: builtin/rebase.c:1540
+#: builtin/rebase.c:1546
 msgid ""
 "You must edit all merge conflicts and then\n"
 "mark them as resolved using git add"
@@ -19215,16 +19598,16 @@ msgstr ""
 "您必须编辑所有的合并冲突,然后通过 git add\n"
 "命令将它们标记为已解决"
 
-#: builtin/rebase.c:1559
+#: builtin/rebase.c:1565
 msgid "could not discard worktree changes"
 msgstr "无法丢弃工作区变更"
 
-#: builtin/rebase.c:1578
+#: builtin/rebase.c:1584
 #, c-format
 msgid "could not move back to %s"
 msgstr "无法移回 %s"
 
-#: builtin/rebase.c:1624
+#: builtin/rebase.c:1630
 #, c-format
 msgid ""
 "It seems that there is already a %s directory, and\n"
@@ -19243,132 +19626,132 @@ msgstr ""
 "\t%s\n"
 "然后再重新执行。 为避免丢失重要数据,我已经停止当前操作。\n"
 
-#: builtin/rebase.c:1652
+#: builtin/rebase.c:1658
 msgid "switch `C' expects a numerical value"
 msgstr "开关 `C' 期望一个数字值"
 
-#: builtin/rebase.c:1694
+#: builtin/rebase.c:1700
 #, c-format
 msgid "Unknown mode: %s"
 msgstr "未知模式:%s"
 
-#: builtin/rebase.c:1733
+#: builtin/rebase.c:1739
 msgid "--strategy requires --merge or --interactive"
 msgstr "--strategy 需要 --merge 或 --interactive"
 
-#: builtin/rebase.c:1763
+#: builtin/rebase.c:1769
 msgid "cannot combine apply options with merge options"
 msgstr "不能组合使用应用选项和合并选项"
 
-#: builtin/rebase.c:1776
+#: builtin/rebase.c:1782
 #, c-format
 msgid "Unknown rebase backend: %s"
 msgstr "未知的变基后端:%s"
 
-#: builtin/rebase.c:1806
+#: builtin/rebase.c:1812
 msgid "--reschedule-failed-exec requires --exec or --interactive"
 msgstr "--reschedule-failed-exec 需要 --exec 或 --interactive"
 
-#: builtin/rebase.c:1826
+#: builtin/rebase.c:1832
 msgid "cannot combine '--preserve-merges' with '--rebase-merges'"
 msgstr "不能将 '--preserve-merges' 和 '--rebase-merges' 同时使用"
 
-#: builtin/rebase.c:1830
+#: builtin/rebase.c:1836
 msgid ""
 "error: cannot combine '--preserve-merges' with '--reschedule-failed-exec'"
 msgstr ""
 "错误:不能将 '--preserve-merges' 和 '--reschedule-failed-exec' 同时使用"
 
-#: builtin/rebase.c:1854
+#: builtin/rebase.c:1860
 #, c-format
 msgid "invalid upstream '%s'"
 msgstr "无效的上游 '%s'"
 
-#: builtin/rebase.c:1860
+#: builtin/rebase.c:1866
 msgid "Could not create new root commit"
 msgstr "不能创建新的根提交"
 
-#: builtin/rebase.c:1886
+#: builtin/rebase.c:1892
 #, c-format
 msgid "'%s': need exactly one merge base with branch"
 msgstr "'%s':只需要与分支的一个合并基线"
 
-#: builtin/rebase.c:1889
+#: builtin/rebase.c:1895
 #, c-format
 msgid "'%s': need exactly one merge base"
 msgstr "'%s':只需要一个合并基线"
 
-#: builtin/rebase.c:1897
+#: builtin/rebase.c:1903
 #, c-format
 msgid "Does not point to a valid commit '%s'"
 msgstr "没有指向一个有效的提交 '%s'"
 
-#: builtin/rebase.c:1923
+#: builtin/rebase.c:1931
 #, c-format
 msgid "fatal: no such branch/commit '%s'"
 msgstr "致命错误:无此分支/提交 '%s'"
 
-#: builtin/rebase.c:1931 builtin/submodule--helper.c:40
+#: builtin/rebase.c:1939 builtin/submodule--helper.c:40
 #: builtin/submodule--helper.c:2414
 #, c-format
 msgid "No such ref: %s"
 msgstr "没有这样的引用:%s"
 
-#: builtin/rebase.c:1942
+#: builtin/rebase.c:1950
 msgid "Could not resolve HEAD to a revision"
 msgstr "无法将 HEAD 解析为一个版本"
 
-#: builtin/rebase.c:1963
+#: builtin/rebase.c:1971
 msgid "Please commit or stash them."
 msgstr "请提交或贮藏修改。"
 
-#: builtin/rebase.c:1999
+#: builtin/rebase.c:2007
 #, c-format
 msgid "could not switch to %s"
 msgstr "无法切换到 %s"
 
-#: builtin/rebase.c:2010
+#: builtin/rebase.c:2018
 msgid "HEAD is up to date."
 msgstr "HEAD 是最新的。"
 
-#: builtin/rebase.c:2012
+#: builtin/rebase.c:2020
 #, c-format
 msgid "Current branch %s is up to date.\n"
 msgstr "当前分支 %s 是最新的。\n"
 
-#: builtin/rebase.c:2020
+#: builtin/rebase.c:2028
 msgid "HEAD is up to date, rebase forced."
 msgstr "HEAD 是最新的,强制变基。"
 
-#: builtin/rebase.c:2022
+#: builtin/rebase.c:2030
 #, c-format
 msgid "Current branch %s is up to date, rebase forced.\n"
 msgstr "当前分支 %s 是最新的,强制变基。\n"
 
-#: builtin/rebase.c:2030
+#: builtin/rebase.c:2038
 msgid "The pre-rebase hook refused to rebase."
 msgstr "pre-rebase 钩子拒绝了变基操作。"
 
-#: builtin/rebase.c:2037
+#: builtin/rebase.c:2045
 #, c-format
 msgid "Changes to %s:\n"
 msgstr "到 %s 的变更:\n"
 
-#: builtin/rebase.c:2040
+#: builtin/rebase.c:2048
 #, c-format
 msgid "Changes from %s to %s:\n"
 msgstr "从 %s 到 %s 的变更:\n"
 
-#: builtin/rebase.c:2065
+#: builtin/rebase.c:2073
 #, c-format
 msgid "First, rewinding head to replay your work on top of it...\n"
 msgstr "首先,回退头指针以便在其上重放您的工作...\n"
 
-#: builtin/rebase.c:2074
+#: builtin/rebase.c:2082
 msgid "Could not detach HEAD"
 msgstr "无法分离头指针"
 
-#: builtin/rebase.c:2083
+#: builtin/rebase.c:2091
 #, c-format
 msgid "Fast-forwarded %s to %s.\n"
 msgstr "快进 %s 到 %s。\n"
@@ -19457,36 +19840,36 @@ msgstr "git reflog exists <引用>"
 msgid "'%s' is not a valid timestamp"
 msgstr "'%s' 不是一个有效的时间戳"
 
-#: builtin/reflog.c:606
+#: builtin/reflog.c:609
 #, c-format
 msgid "Marking reachable objects..."
 msgstr "正在标记可达对象..."
 
-#: builtin/reflog.c:644
+#: builtin/reflog.c:647
 #, c-format
 msgid "%s points nowhere!"
 msgstr "%s 指向不存在!"
 
-#: builtin/reflog.c:696
+#: builtin/reflog.c:699
 msgid "no reflog specified to delete"
 msgstr "未指定要删除的引用日志"
 
-#: builtin/reflog.c:705
+#: builtin/reflog.c:708
 #, c-format
 msgid "not a reflog: %s"
 msgstr "不是一个引用日志:%s"
 
-#: builtin/reflog.c:710
+#: builtin/reflog.c:713
 #, c-format
 msgid "no reflog for '%s'"
 msgstr "没有 '%s' 的引用日志"
 
-#: builtin/reflog.c:756
+#: builtin/reflog.c:759
 #, c-format
 msgid "invalid ref format: %s"
 msgstr "无效的引用格式:%s"
 
-#: builtin/reflog.c:765
+#: builtin/reflog.c:768
 msgid "git reflog [ show | expire | delete | exists ]"
 msgstr "git reflog [ show | expire | delete | exists ]"
 
@@ -19997,11 +20380,11 @@ msgstr "未找到此 URL:%s"
 msgid "Will not delete all non-push URLs"
 msgstr "将不会删除所有非推送 URL 地址"
 
-#: builtin/repack.c:25
+#: builtin/repack.c:26
 msgid "git repack [<options>]"
 msgstr "git repack [<选项>]"
 
-#: builtin/repack.c:30
+#: builtin/repack.c:31
 msgid ""
 "Incremental repacks are incompatible with bitmap indexes.  Use\n"
 "--no-write-bitmap-index or disable the pack.writebitmaps configuration."
@@ -20009,116 +20392,116 @@ msgstr ""
 "增量 repack 和 bitmap 索引不兼容。  使用 --no-write-bitmap-index\n"
 "或禁用 pack.writebitmaps 配置。"
 
-#: builtin/repack.c:197
+#: builtin/repack.c:198
 msgid "could not start pack-objects to repack promisor objects"
 msgstr "无法开始 pack-objects 来重新打包 promisor 对象"
 
-#: builtin/repack.c:268 builtin/repack.c:447
+#: builtin/repack.c:270 builtin/repack.c:446
 msgid "repack: Expecting full hex object ID lines only from pack-objects."
 msgstr "repack:期望来自 pack-objects 的完整十六进制对象 ID。"
 
-#: builtin/repack.c:295
+#: builtin/repack.c:294
 msgid "could not finish pack-objects to repack promisor objects"
 msgstr "无法完成 pack-objects 来重新打包 promisor 对象"
 
-#: builtin/repack.c:323
+#: builtin/repack.c:322
 msgid "pack everything in a single pack"
 msgstr "所有内容打包到一个包文件中"
 
-#: builtin/repack.c:325
+#: builtin/repack.c:324
 msgid "same as -a, and turn unreachable objects loose"
 msgstr "和 -a 相同,并将不可达的对象设为松散对象"
 
-#: builtin/repack.c:328
+#: builtin/repack.c:327
 msgid "remove redundant packs, and run git-prune-packed"
 msgstr "删除多余的包,运行 git-prune-packed"
 
-#: builtin/repack.c:330
+#: builtin/repack.c:329
 msgid "pass --no-reuse-delta to git-pack-objects"
 msgstr "向 git-pack-objects 传递参数 --no-reuse-delta"
 
-#: builtin/repack.c:332
+#: builtin/repack.c:331
 msgid "pass --no-reuse-object to git-pack-objects"
 msgstr "向 git-pack-objects 传递参数 --no-reuse-object"
 
-#: builtin/repack.c:334
+#: builtin/repack.c:333
 msgid "do not run git-update-server-info"
 msgstr "不运行 git-update-server-info"
 
-#: builtin/repack.c:337
+#: builtin/repack.c:336
 msgid "pass --local to git-pack-objects"
 msgstr "向 git-pack-objects 传递参数 --local"
 
-#: builtin/repack.c:339
+#: builtin/repack.c:338
 msgid "write bitmap index"
 msgstr "写 bitmap 索引"
 
-#: builtin/repack.c:341
+#: builtin/repack.c:340
 msgid "pass --delta-islands to git-pack-objects"
 msgstr "向 git-pack-objects 传递参数 --delta-islands"
 
-#: builtin/repack.c:342
+#: builtin/repack.c:341
 msgid "approxidate"
 msgstr "近似日期"
 
-#: builtin/repack.c:343
+#: builtin/repack.c:342
 msgid "with -A, do not loosen objects older than this"
 msgstr "使用 -A,不要将早于给定时间的对象过期"
 
-#: builtin/repack.c:345
+#: builtin/repack.c:344
 msgid "with -a, repack unreachable objects"
 msgstr "使用 -a ,重新对不可达对象打包"
 
-#: builtin/repack.c:347
+#: builtin/repack.c:346
 msgid "size of the window used for delta compression"
 msgstr "用于增量压缩的窗口值"
 
-#: builtin/repack.c:348 builtin/repack.c:354
+#: builtin/repack.c:347 builtin/repack.c:353
 msgid "bytes"
 msgstr "字节"
 
-#: builtin/repack.c:349
+#: builtin/repack.c:348
 msgid "same as the above, but limit memory size instead of entries count"
 msgstr "和上面的相似,但限制内存大小而非条目数"
 
-#: builtin/repack.c:351
+#: builtin/repack.c:350
 msgid "limits the maximum delta depth"
 msgstr "限制最大增量深度"
 
-#: builtin/repack.c:353
+#: builtin/repack.c:352
 msgid "limits the maximum number of threads"
 msgstr "限制最大线程数"
 
-#: builtin/repack.c:355
+#: builtin/repack.c:354
 msgid "maximum size of each packfile"
 msgstr "每个包文件的最大尺寸"
 
-#: builtin/repack.c:357
+#: builtin/repack.c:356
 msgid "repack objects in packs marked with .keep"
 msgstr "对标记为 .keep 的包中的对象重新打包"
 
-#: builtin/repack.c:359
+#: builtin/repack.c:358
 msgid "do not repack this pack"
 msgstr "不要对该包文件重新打包"
 
-#: builtin/repack.c:369
+#: builtin/repack.c:368
 msgid "cannot delete packs in a precious-objects repo"
 msgstr "不能删除珍品仓库中的打包文件"
 
-#: builtin/repack.c:373
+#: builtin/repack.c:372
 msgid "--keep-unreachable and -A are incompatible"
 msgstr "--keep-unreachable 和 -A 不兼容"
 
-#: builtin/repack.c:456
+#: builtin/repack.c:455
 msgid "Nothing new to pack."
 msgstr "没有新的要打包。"
 
-#: builtin/repack.c:486
+#: builtin/repack.c:485
 #, c-format
 msgid "missing required file: %s"
 msgstr "缺少需要的文件:%s"
 
-#: builtin/repack.c:488
+#: builtin/repack.c:487
 #, c-format
 msgid "could not unlink: %s"
 msgstr "不能删除:%s"
@@ -20448,8 +20831,8 @@ msgstr "HEAD 现在位于 %s"
 msgid "Cannot do a %s reset in the middle of a merge."
 msgstr "在合并过程中不能做%s重置操作。"
 
-#: builtin/reset.c:295 builtin/stash.c:520 builtin/stash.c:594
-#: builtin/stash.c:618
+#: builtin/reset.c:295 builtin/stash.c:587 builtin/stash.c:661
+#: builtin/stash.c:685
 msgid "be quiet, only report errors"
 msgstr "安静模式,只报告错误"
 
@@ -20532,19 +20915,19 @@ msgstr "不能重置索引文件至版本 '%s'。"
 msgid "Could not write new index file."
 msgstr "不能写入新的索引文件。"
 
-#: builtin/rev-list.c:499
+#: builtin/rev-list.c:534
 msgid "cannot combine --exclude-promisor-objects and --missing"
 msgstr "不能同时使用 --exclude-promisor-objects 和 --missing 选项"
 
-#: builtin/rev-list.c:560
+#: builtin/rev-list.c:595
 msgid "object filtering requires --objects"
 msgstr "对象过滤需要 --objects"
 
-#: builtin/rev-list.c:610
+#: builtin/rev-list.c:651
 msgid "rev-list does not support display of notes"
 msgstr "rev-list 不支持显示注解"
 
-#: builtin/rev-list.c:615
+#: builtin/rev-list.c:656
 msgid "marked counting is incompatible with --objects"
 msgstr "标记计数和 --objects 不兼容"
 
@@ -20779,52 +21162,52 @@ msgstr "git shortlog [<选项>] [<版本范围>] [[--] <路径>...]"
 msgid "git log --pretty=short | git shortlog [<options>]"
 msgstr "git log --pretty=short | git shortlog [<选项>]"
 
-#: builtin/shortlog.c:135
+#: builtin/shortlog.c:123
 msgid "using multiple --group options with stdin is not supported"
 msgstr "不支持和标准输入一起使用多个 --group 选项"
 
-#: builtin/shortlog.c:145
+#: builtin/shortlog.c:133
 msgid "using --group=trailer with stdin is not supported"
 msgstr "不支持和标准输入一起使用 --group=trailer"
 
-#: builtin/shortlog.c:335
+#: builtin/shortlog.c:323
 #, c-format
 msgid "unknown group type: %s"
 msgstr "未知分组类型:%s"
 
-#: builtin/shortlog.c:363
-msgid "Group by committer rather than author"
-msgstr "按照提交者分组而不是作者"
+#: builtin/shortlog.c:351
+msgid "group by committer rather than author"
+msgstr "按照提交者而不是作者分组"
 
-#: builtin/shortlog.c:366
+#: builtin/shortlog.c:354
 msgid "sort output according to the number of commits per author"
 msgstr "根据每个作者的提交数量排序"
 
-#: builtin/shortlog.c:368
-msgid "Suppress commit descriptions, only provides commit count"
-msgstr "隐藏提交说明,只提供提交数量"
+#: builtin/shortlog.c:356
+msgid "suppress commit descriptions, only provides commit count"
+msgstr "抑制提交描述,只提供提交数量"
 
-#: builtin/shortlog.c:370
-msgid "Show the email address of each author"
+#: builtin/shortlog.c:358
+msgid "show the email address of each author"
 msgstr "显示每个作者的电子邮件地址"
 
-#: builtin/shortlog.c:371
+#: builtin/shortlog.c:359
 msgid "<w>[,<i1>[,<i2>]]"
 msgstr "<w>[,<i1>[,<i2>]]"
 
-#: builtin/shortlog.c:372
-msgid "Linewrap output"
+#: builtin/shortlog.c:360
+msgid "linewrap output"
 msgstr "折行输出"
 
-#: builtin/shortlog.c:374
+#: builtin/shortlog.c:362
 msgid "field"
 msgstr "字段"
 
-#: builtin/shortlog.c:375
-msgid "Group by field"
+#: builtin/shortlog.c:363
+msgid "group by field"
 msgstr "按字段分组"
 
-#: builtin/shortlog.c:403
+#: builtin/shortlog.c:391
 msgid "too many arguments given outside repository"
 msgstr "仓库外执行提供了太多的参数"
 
@@ -21018,70 +21401,70 @@ msgstr "显示从标准输入中读入的不在本地仓库中的引用"
 msgid "git sparse-checkout (init|list|set|add|reapply|disable) <options>"
 msgstr "git sparse-checkout (init|list|set|add|reapply|disable) <选项>"
 
-#: builtin/sparse-checkout.c:50
+#: builtin/sparse-checkout.c:45
 msgid "git sparse-checkout list"
 msgstr "git sparse-checkout list"
 
-#: builtin/sparse-checkout.c:76
+#: builtin/sparse-checkout.c:71
 msgid "this worktree is not sparse (sparse-checkout file may not exist)"
 msgstr "本工作区不是稀疏模式(稀疏检出文件可能不存在)"
 
-#: builtin/sparse-checkout.c:228
+#: builtin/sparse-checkout.c:223
 msgid "failed to create directory for sparse-checkout file"
 msgstr "无法为稀疏检出文件创建目录"
 
-#: builtin/sparse-checkout.c:269
+#: builtin/sparse-checkout.c:264
 msgid "unable to upgrade repository format to enable worktreeConfig"
 msgstr "无法升级仓库格式以启用 worktreeConfig"
 
-#: builtin/sparse-checkout.c:271
+#: builtin/sparse-checkout.c:266
 msgid "failed to set extensions.worktreeConfig setting"
 msgstr "无法设置 extensions.worktreeConfig"
 
-#: builtin/sparse-checkout.c:288
+#: builtin/sparse-checkout.c:283
 msgid "git sparse-checkout init [--cone]"
 msgstr "git sparse-checkout init [--cone]"
 
-#: builtin/sparse-checkout.c:307
+#: builtin/sparse-checkout.c:302
 msgid "initialize the sparse-checkout in cone mode"
 msgstr "初始化稀疏检出为 cone 模式"
 
-#: builtin/sparse-checkout.c:344
+#: builtin/sparse-checkout.c:339
 #, c-format
 msgid "failed to open '%s'"
 msgstr "无法打开 '%s'"
 
-#: builtin/sparse-checkout.c:401
+#: builtin/sparse-checkout.c:396
 #, c-format
 msgid "could not normalize path %s"
 msgstr "无法规范化路径 %s"
 
-#: builtin/sparse-checkout.c:413
+#: builtin/sparse-checkout.c:408
 msgid "git sparse-checkout (set|add) (--stdin | <patterns>)"
 msgstr "git sparse-checkout (set|add) (--stdin | <模式>)"
 
-#: builtin/sparse-checkout.c:438
+#: builtin/sparse-checkout.c:433
 #, c-format
 msgid "unable to unquote C-style string '%s'"
 msgstr "无法为 C 语言风格的字符串 '%s' 去引号"
 
-#: builtin/sparse-checkout.c:492 builtin/sparse-checkout.c:516
+#: builtin/sparse-checkout.c:487 builtin/sparse-checkout.c:511
 msgid "unable to load existing sparse-checkout patterns"
 msgstr "无法加载现存的稀疏检出模式"
 
-#: builtin/sparse-checkout.c:561
+#: builtin/sparse-checkout.c:556
 msgid "read patterns from standard in"
 msgstr "从标准输入读取模式"
 
-#: builtin/sparse-checkout.c:576
+#: builtin/sparse-checkout.c:571
 msgid "git sparse-checkout reapply"
 msgstr "git sparse-checkout reapply"
 
-#: builtin/sparse-checkout.c:595
+#: builtin/sparse-checkout.c:590
 msgid "git sparse-checkout disable"
 msgstr "git sparse-checkout disable"
 
-#: builtin/sparse-checkout.c:623
+#: builtin/sparse-checkout.c:618
 msgid "error while refreshing working directory"
 msgstr "刷新工作目录时出错"
 
@@ -21171,153 +21554,164 @@ msgid "%s is not a valid reference"
 msgstr "%s 不是一个有效的引用名"
 
 #: builtin/stash.c:225
-msgid "git stash clear with parameters is unimplemented"
+msgid "git stash clear with arguments is unimplemented"
 msgstr "git stash clear 不支持参数"
 
-#: builtin/stash.c:404
+#: builtin/stash.c:429
+#, c-format
+msgid ""
+"WARNING: Untracked file in way of tracked file!  Renaming\n"
+"            %s -> %s\n"
+"         to make room.\n"
+msgstr ""
+"警告:未跟踪文件出现在跟踪文件的路径上!重命名\n"
+"            %s -> %s\n"
+"         以腾出空间。\n"
+
+#: builtin/stash.c:490
 msgid "cannot apply a stash in the middle of a merge"
 msgstr "无法在合并过程中应用贮藏"
 
-#: builtin/stash.c:415
+#: builtin/stash.c:501
 #, c-format
 msgid "could not generate diff %s^!."
 msgstr "无法生成差异 %s^!."
 
-#: builtin/stash.c:422
+#: builtin/stash.c:508
 msgid "conflicts in index. Try without --index."
 msgstr "索引中有冲突。尝试不用 --index。"
 
-#: builtin/stash.c:428
+#: builtin/stash.c:514
 msgid "could not save index tree"
 msgstr "不能保存索引树"
 
-#: builtin/stash.c:437
+#: builtin/stash.c:523
 msgid "could not restore untracked files from stash"
 msgstr "无法从贮藏条目中恢复未跟踪文件"
 
-#: builtin/stash.c:451
+#: builtin/stash.c:537
 #, c-format
 msgid "Merging %s with %s"
 msgstr "正在合并 %s 和 %s"
 
-#: builtin/stash.c:461
+#: builtin/stash.c:547
 msgid "Index was not unstashed."
 msgstr "索引未从贮藏中恢复。"
 
-#: builtin/stash.c:522 builtin/stash.c:620
+#: builtin/stash.c:589 builtin/stash.c:687
 msgid "attempt to recreate the index"
 msgstr "尝试重建索引"
 
-#: builtin/stash.c:566
+#: builtin/stash.c:633
 #, c-format
 msgid "Dropped %s (%s)"
 msgstr "丢弃了 %s(%s)"
 
-#: builtin/stash.c:569
+#: builtin/stash.c:636
 #, c-format
 msgid "%s: Could not drop stash entry"
 msgstr "%s:无法丢弃贮藏条目"
 
-#: builtin/stash.c:582
+#: builtin/stash.c:649
 #, c-format
 msgid "'%s' is not a stash reference"
 msgstr "'%s' 不是一个贮藏引用"
 
-#: builtin/stash.c:632
+#: builtin/stash.c:699
 msgid "The stash entry is kept in case you need it again."
 msgstr "贮藏条目被保留以备您再次需要。"
 
-#: builtin/stash.c:655
+#: builtin/stash.c:722
 msgid "No branch name specified"
 msgstr "未指定分支名"
 
-#: builtin/stash.c:799 builtin/stash.c:836
+#: builtin/stash.c:866 builtin/stash.c:903
 #, c-format
 msgid "Cannot update %s with %s"
 msgstr "无法用 %2$s 更新 %1$s"
 
-#: builtin/stash.c:817 builtin/stash.c:1471 builtin/stash.c:1536
+#: builtin/stash.c:884 builtin/stash.c:1538 builtin/stash.c:1603
 msgid "stash message"
 msgstr "贮藏说明"
 
-#: builtin/stash.c:827
+#: builtin/stash.c:894
 msgid "\"git stash store\" requires one <commit> argument"
 msgstr "\"git stash store\" 需要一个 <提交> 参数"
 
-#: builtin/stash.c:1042
+#: builtin/stash.c:1109
 msgid "No changes selected"
 msgstr "没有选择变更"
 
-#: builtin/stash.c:1142
+#: builtin/stash.c:1209
 msgid "You do not have the initial commit yet"
 msgstr "您尚未建立初始提交"
 
-#: builtin/stash.c:1169
+#: builtin/stash.c:1236
 msgid "Cannot save the current index state"
 msgstr "无法保存当前索引状态"
 
-#: builtin/stash.c:1178
+#: builtin/stash.c:1245
 msgid "Cannot save the untracked files"
 msgstr "无法保存未跟踪文件"
 
-#: builtin/stash.c:1189 builtin/stash.c:1198
+#: builtin/stash.c:1256 builtin/stash.c:1265
 msgid "Cannot save the current worktree state"
 msgstr "无法保存当前工作区状态"
 
-#: builtin/stash.c:1226
+#: builtin/stash.c:1293
 msgid "Cannot record working tree state"
 msgstr "不能记录工作区状态"
 
-#: builtin/stash.c:1275
+#: builtin/stash.c:1342
 msgid "Can't use --patch and --include-untracked or --all at the same time"
 msgstr "不能同时使用参数 --patch 和 --include-untracked 或 --all"
 
-#: builtin/stash.c:1291
+#: builtin/stash.c:1358
 msgid "Did you forget to 'git add'?"
 msgstr "您是否忘了执行 'git add'?"
 
-#: builtin/stash.c:1306
+#: builtin/stash.c:1373
 msgid "No local changes to save"
 msgstr "没有要保存的本地修改"
 
-#: builtin/stash.c:1313
+#: builtin/stash.c:1380
 msgid "Cannot initialize stash"
 msgstr "无法初始化贮藏"
 
-#: builtin/stash.c:1328
+#: builtin/stash.c:1395
 msgid "Cannot save the current status"
 msgstr "无法保存当前状态"
 
-#: builtin/stash.c:1333
+#: builtin/stash.c:1400
 #, c-format
 msgid "Saved working directory and index state %s"
 msgstr "保存工作目录和索引状态 %s"
 
-#: builtin/stash.c:1423
+#: builtin/stash.c:1490
 msgid "Cannot remove worktree changes"
 msgstr "无法删除工作区变更"
 
-#: builtin/stash.c:1462 builtin/stash.c:1527
+#: builtin/stash.c:1529 builtin/stash.c:1594
 msgid "keep index"
 msgstr "保持索引"
 
-#: builtin/stash.c:1464 builtin/stash.c:1529
+#: builtin/stash.c:1531 builtin/stash.c:1596
 msgid "stash in patch mode"
 msgstr "以补丁模式贮藏"
 
-#: builtin/stash.c:1465 builtin/stash.c:1530
+#: builtin/stash.c:1532 builtin/stash.c:1597
 msgid "quiet mode"
 msgstr "静默模式"
 
-#: builtin/stash.c:1467 builtin/stash.c:1532
+#: builtin/stash.c:1534 builtin/stash.c:1599
 msgid "include untracked files in stash"
 msgstr "贮藏中包含未跟踪文件"
 
-#: builtin/stash.c:1469 builtin/stash.c:1534
+#: builtin/stash.c:1536 builtin/stash.c:1601
 msgid "include ignore files"
 msgstr "包含忽略的文件"
 
-#: builtin/stash.c:1569
+#: builtin/stash.c:1636
 msgid ""
 "the stash.useBuiltin support has been removed!\n"
 "See its entry in 'git help config' for details."
@@ -21394,11 +21788,12 @@ msgstr ""
 "."
 
 #: builtin/submodule--helper.c:565
-msgid "Suppress output of entering each submodule command"
-msgstr "阻止进入每一个子模组命令的输出"
+msgid "suppress output of entering each submodule command"
+msgstr "抑制进入每一个子模组命令的输出"
 
-#: builtin/submodule--helper.c:567 builtin/submodule--helper.c:1487
-msgid "Recurse into nested submodules"
+#: builtin/submodule--helper.c:567 builtin/submodule--helper.c:888
+#: builtin/submodule--helper.c:1487
+msgid "recurse into nested submodules"
 msgstr "递归进入嵌套子模组中"
 
 #: builtin/submodule--helper.c:572
@@ -21433,8 +21828,8 @@ msgid "Failed to register update mode for submodule path '%s'"
 msgstr "无法为子模组 '%s' 注册更新模式"
 
 #: builtin/submodule--helper.c:709
-msgid "Suppress output for initializing a submodule"
-msgstr "阻止子模组初始化的输出"
+msgid "suppress output for initializing a submodule"
+msgstr "抑制子模组初始化的输出"
 
 #: builtin/submodule--helper.c:714
 msgid "git submodule--helper init [<options>] [<path>]"
@@ -21456,19 +21851,15 @@ msgid "failed to recurse into submodule '%s'"
 msgstr "递归子模组 '%s' 失败"
 
 #: builtin/submodule--helper.c:886 builtin/submodule--helper.c:1623
-msgid "Suppress submodule status output"
-msgstr "阻止子模组状态输出"
+msgid "suppress submodule status output"
+msgstr "抑制子模组状态输出"
 
 #: builtin/submodule--helper.c:887
 msgid ""
-"Use commit stored in the index instead of the one stored in the submodule "
+"use commit stored in the index instead of the one stored in the submodule "
 "HEAD"
 msgstr "使用存储在索引中的提交,而非存储在子模组 HEAD 中的提交"
 
-#: builtin/submodule--helper.c:888
-msgid "recurse into nested submodules"
-msgstr "递归进入嵌套子模组中"
-
 #: builtin/submodule--helper.c:893
 msgid "git submodule status [--quiet] [--cached] [--recursive] [<path>...]"
 msgstr "git submodule status [--quiet] [--cached] [--recursive] [<路径>...]"
@@ -21551,8 +21942,8 @@ msgid "failed to update remote for submodule '%s'"
 msgstr "无法为子模组 '%s' 更新远程关联"
 
 #: builtin/submodule--helper.c:1485
-msgid "Suppress output of synchronizing submodule url"
-msgstr "阻止子模组 url 同步的输出"
+msgid "suppress output of synchronizing submodule url"
+msgstr "抑制子模组 URL 同步的输出"
 
 #: builtin/submodule--helper.c:1492
 msgid "git submodule--helper sync [--quiet] [--recursive] [<path>]"
@@ -21595,11 +21986,11 @@ msgid "Submodule '%s' (%s) unregistered for path '%s'\n"
 msgstr "子模组 '%s'(%s)未对路径 '%s' 注册\n"
 
 #: builtin/submodule--helper.c:1624
-msgid "Remove submodule working trees even if they contain local changes"
+msgid "remove submodule working trees even if they contain local changes"
 msgstr "删除子模组工作区,即使包含本地修改"
 
 #: builtin/submodule--helper.c:1625
-msgid "Unregister all submodules"
+msgid "unregister all submodules"
 msgstr "将所有子模组取消注册"
 
 #: builtin/submodule--helper.c:1630
@@ -21744,7 +22135,7 @@ msgid "rebase, merge, checkout or none"
 msgstr "rebase、merge、checkout 或 none"
 
 #: builtin/submodule--helper.c:2340
-msgid "Create a shallow clone truncated to the specified number of revisions"
+msgid "create a shallow clone truncated to the specified number of revisions"
 msgstr "创建一个指定深度的浅克隆"
 
 #: builtin/submodule--helper.c:2343
@@ -21813,8 +22204,8 @@ msgid "please make sure that the .gitmodules file is in the working tree"
 msgstr "请确认 .gitmodules 文件在工作区里"
 
 #: builtin/submodule--helper.c:2681
-msgid "Suppress output for setting url of a submodule"
-msgstr "阻止设置子模组 URL 的输出"
+msgid "suppress output for setting url of a submodule"
+msgstr "抑制设置子模组 URL 的输出"
 
 #: builtin/submodule--helper.c:2685
 msgid "git submodule--helper set-url [--quiet] <path> <newurl>"
@@ -21846,7 +22237,7 @@ msgstr "需要 --branch 或 --default"
 msgid "--branch and --default are mutually exclusive"
 msgstr "--branch 和 --default 是互斥的"
 
-#: builtin/submodule--helper.c:2792 git.c:438 git.c:711
+#: builtin/submodule--helper.c:2792 git.c:441 git.c:714
 #, c-format
 msgid "%s doesn't support --super-prefix"
 msgstr "%s 不支持 --super-prefix"
@@ -21916,12 +22307,12 @@ msgstr "git tag -v [--format=<格式>] <标签名>..."
 msgid "tag '%s' not found."
 msgstr "未发现标签 '%s'。"
 
-#: builtin/tag.c:105
+#: builtin/tag.c:124
 #, c-format
 msgid "Deleted tag '%s' (was %s)\n"
 msgstr "已删除标签 '%s'(曾为 %s)\n"
 
-#: builtin/tag.c:135
+#: builtin/tag.c:159
 #, c-format
 msgid ""
 "\n"
@@ -21934,7 +22325,7 @@ msgstr ""
 "  %s\n"
 "以 '%c' 开头的行将被忽略。\n"
 
-#: builtin/tag.c:139
+#: builtin/tag.c:163
 #, c-format
 msgid ""
 "\n"
@@ -21948,15 +22339,11 @@ msgstr ""
 "  %s\n"
 "以 '%c' 开头的行将被保留,如果您愿意也可以删除它们。\n"
 
-#: builtin/tag.c:198
+#: builtin/tag.c:230
 msgid "unable to sign the tag"
 msgstr "无法签署标签"
 
-#: builtin/tag.c:200
-msgid "unable to write tag file"
-msgstr "无法写标签文件"
-
-#: builtin/tag.c:216
+#: builtin/tag.c:248
 #, c-format
 msgid ""
 "You have created a nested tag. The object referred to by your new tag is\n"
@@ -21969,138 +22356,134 @@ msgstr ""
 "\n"
 "\tgit tag -f %s %s^{}"
 
-#: builtin/tag.c:232
+#: builtin/tag.c:264
 msgid "bad object type."
 msgstr "坏的对象类型。"
 
-#: builtin/tag.c:285
+#: builtin/tag.c:317
 msgid "no tag message?"
 msgstr "无标签说明?"
 
-#: builtin/tag.c:292
+#: builtin/tag.c:324
 #, c-format
 msgid "The tag message has been left in %s\n"
 msgstr "标签说明被保留在 %s\n"
 
-#: builtin/tag.c:403
+#: builtin/tag.c:435
 msgid "list tag names"
 msgstr "列出标签名称"
 
-#: builtin/tag.c:405
+#: builtin/tag.c:437
 msgid "print <n> lines of each tag message"
 msgstr "每个标签信息打印 <n> 行"
 
-#: builtin/tag.c:407
+#: builtin/tag.c:439
 msgid "delete tags"
 msgstr "删除标签"
 
-#: builtin/tag.c:408
+#: builtin/tag.c:440
 msgid "verify tags"
 msgstr "验证标签"
 
-#: builtin/tag.c:410
+#: builtin/tag.c:442
 msgid "Tag creation options"
 msgstr "标签创建选项"
 
-#: builtin/tag.c:412
+#: builtin/tag.c:444
 msgid "annotated tag, needs a message"
 msgstr "附注标签,需要一个说明"
 
-#: builtin/tag.c:414
+#: builtin/tag.c:446
 msgid "tag message"
 msgstr "标签说明"
 
-#: builtin/tag.c:416
+#: builtin/tag.c:448
 msgid "force edit of tag message"
 msgstr "强制编辑标签说明"
 
-#: builtin/tag.c:417
+#: builtin/tag.c:449
 msgid "annotated and GPG-signed tag"
 msgstr "附注并附加 GPG 签名的标签"
 
-#: builtin/tag.c:420
+#: builtin/tag.c:452
 msgid "use another key to sign the tag"
 msgstr "使用另外的私钥签名该标签"
 
-#: builtin/tag.c:421
+#: builtin/tag.c:453
 msgid "replace the tag if exists"
 msgstr "如果存在,替换现有的标签"
 
-#: builtin/tag.c:422 builtin/update-ref.c:505
+#: builtin/tag.c:454 builtin/update-ref.c:505
 msgid "create a reflog"
 msgstr "创建引用日志"
 
-#: builtin/tag.c:424
+#: builtin/tag.c:456
 msgid "Tag listing options"
 msgstr "标签列表选项"
 
-#: builtin/tag.c:425
+#: builtin/tag.c:457
 msgid "show tag list in columns"
 msgstr "以列的方式显示标签列表"
 
-#: builtin/tag.c:426 builtin/tag.c:428
+#: builtin/tag.c:458 builtin/tag.c:460
 msgid "print only tags that contain the commit"
 msgstr "只打印包含该提交的标签"
 
-#: builtin/tag.c:427 builtin/tag.c:429
+#: builtin/tag.c:459 builtin/tag.c:461
 msgid "print only tags that don't contain the commit"
 msgstr "只打印不包含该提交的标签"
 
-#: builtin/tag.c:430
+#: builtin/tag.c:462
 msgid "print only tags that are merged"
 msgstr "只打印已经合并的标签"
 
-#: builtin/tag.c:431
+#: builtin/tag.c:463
 msgid "print only tags that are not merged"
 msgstr "只打印尚未合并的标签"
 
-#: builtin/tag.c:435
+#: builtin/tag.c:467
 msgid "print only tags of the object"
 msgstr "只打印指向该对象的标签"
 
-#: builtin/tag.c:483
+#: builtin/tag.c:515
 msgid "--column and -n are incompatible"
 msgstr "--column 和 -n 不兼容"
 
-#: builtin/tag.c:505
+#: builtin/tag.c:537
 msgid "-n option is only allowed in list mode"
 msgstr "-n 选项只允许用在列表显示模式"
 
-#: builtin/tag.c:507
+#: builtin/tag.c:539
 msgid "--contains option is only allowed in list mode"
 msgstr "--contains 选项只允许用在列表显示模式"
 
-#: builtin/tag.c:509
+#: builtin/tag.c:541
 msgid "--no-contains option is only allowed in list mode"
 msgstr "--no-contains 选项只允许用在列表显示模式"
 
-#: builtin/tag.c:511
+#: builtin/tag.c:543
 msgid "--points-at option is only allowed in list mode"
 msgstr "--points-at 选项只允许用在列表显示模式"
 
-#: builtin/tag.c:513
+#: builtin/tag.c:545
 msgid "--merged and --no-merged options are only allowed in list mode"
 msgstr "--merged 和 --no-merged 选项只允许用在列表显示模式"
 
-#: builtin/tag.c:524
+#: builtin/tag.c:556
 msgid "only one -F or -m option is allowed."
 msgstr "只允许一个 -F 或 -m 选项。"
 
-#: builtin/tag.c:543
-msgid "too many params"
-msgstr "太多参数"
-
-#: builtin/tag.c:549
+#: builtin/tag.c:581
 #, c-format
 msgid "'%s' is not a valid tag name."
 msgstr "'%s' 不是一个有效的标签名称。"
 
-#: builtin/tag.c:554
+#: builtin/tag.c:586
 #, c-format
 msgid "tag '%s' already exists"
 msgstr "标签 '%s' 已存在"
 
-#: builtin/tag.c:585
+#: builtin/tag.c:617
 #, c-format
 msgid "Updated tag '%s' (was %s)\n"
 msgstr "已更新标签 '%s'(曾为 %s)\n"
@@ -22446,89 +22829,63 @@ msgstr "git verify-tag [-v | --verbose] [--format=<格式>] <标签>..."
 msgid "print tag contents"
 msgstr "打印标签内容"
 
-#: builtin/worktree.c:17
+#: builtin/worktree.c:18
 msgid "git worktree add [<options>] <path> [<commit-ish>]"
 msgstr "git worktree add [<选项>] <路径> [<提交>]"
 
-#: builtin/worktree.c:18
+#: builtin/worktree.c:19
 msgid "git worktree list [<options>]"
 msgstr "git worktree list [<选项>]"
 
-#: builtin/worktree.c:19
+#: builtin/worktree.c:20
 msgid "git worktree lock [<options>] <path>"
 msgstr "git worktree lock [<选项>] <路径>"
 
-#: builtin/worktree.c:20
+#: builtin/worktree.c:21
 msgid "git worktree move <worktree> <new-path>"
 msgstr "git worktree move <工作区> <新路径>"
 
-#: builtin/worktree.c:21
+#: builtin/worktree.c:22
 msgid "git worktree prune [<options>]"
 msgstr "git worktree prune [<选项>]"
 
-#: builtin/worktree.c:22
+#: builtin/worktree.c:23
 msgid "git worktree remove [<options>] <worktree>"
 msgstr "git worktree remove [<选项>] <工作区>"
 
-#: builtin/worktree.c:23
+#: builtin/worktree.c:24
 msgid "git worktree unlock <path>"
 msgstr "git worktree unlock <路径>"
 
-#: builtin/worktree.c:60 builtin/worktree.c:973
+#: builtin/worktree.c:61 builtin/worktree.c:933
 #, c-format
 msgid "failed to delete '%s'"
 msgstr "删除 '%s' 失败"
 
-#: builtin/worktree.c:85
-msgid "not a valid directory"
-msgstr "不是一个有效的目录"
-
-#: builtin/worktree.c:91
-msgid "gitdir file does not exist"
-msgstr "gitdir 文件不存在"
-
-#: builtin/worktree.c:96 builtin/worktree.c:105
-#, c-format
-msgid "unable to read gitdir file (%s)"
-msgstr "无法读取 gitdir 文件(%s)"
-
-#: builtin/worktree.c:115
-#, c-format
-msgid "short read (expected %<PRIuMAX> bytes, read %<PRIuMAX>)"
-msgstr "读取过短(期望 %<PRIuMAX> 字节,读取 %<PRIuMAX>)"
-
-#: builtin/worktree.c:123
-msgid "invalid gitdir file"
-msgstr "无效的 gitdir 文件"
-
-#: builtin/worktree.c:131
-msgid "gitdir file points to non-existent location"
-msgstr "gitdir 文件指向一个不存在的位置"
-
-#: builtin/worktree.c:146
+#: builtin/worktree.c:74
 #, c-format
 msgid "Removing %s/%s: %s"
 msgstr "删除 %s/%s: %s"
 
-#: builtin/worktree.c:221
+#: builtin/worktree.c:149
 msgid "report pruned working trees"
 msgstr "报告清除的工作区"
 
-#: builtin/worktree.c:223
+#: builtin/worktree.c:151
 msgid "expire working trees older than <time>"
 msgstr "将早于 <时间> 的工作区过期"
 
-#: builtin/worktree.c:293
+#: builtin/worktree.c:221
 #, c-format
 msgid "'%s' already exists"
 msgstr "'%s' 已经存在"
 
-#: builtin/worktree.c:302
+#: builtin/worktree.c:230
 #, c-format
 msgid "unusable worktree destination '%s'"
 msgstr "无法使用的工作区目标 '%s'"
 
-#: builtin/worktree.c:307
+#: builtin/worktree.c:235
 #, c-format
 msgid ""
 "'%s' is a missing but locked worktree;\n"
@@ -22537,7 +22894,7 @@ msgstr ""
 "'%s' 是一个丢失但锁定的工作区,\n"
 "使用 '%s -f -f' 覆盖,或用 'unlock' 和 'prune' 或 'remove' 清除"
 
-#: builtin/worktree.c:309
+#: builtin/worktree.c:237
 #, c-format
 msgid ""
 "'%s' is a missing but already registered worktree;\n"
@@ -22546,115 +22903,127 @@ msgstr ""
 "'%s' 是一个丢失但已经注册的工作区,\n"
 "使用 '%s -f' 覆盖,或用 'prune' 或 'remove' 清除"
 
-#: builtin/worktree.c:360
+#: builtin/worktree.c:288
 #, c-format
 msgid "could not create directory of '%s'"
 msgstr "不能创建目录 '%s'"
 
-#: builtin/worktree.c:494 builtin/worktree.c:500
+#: builtin/worktree.c:422 builtin/worktree.c:428
 #, c-format
 msgid "Preparing worktree (new branch '%s')"
 msgstr "准备工作区(新分支 '%s')"
 
-#: builtin/worktree.c:496
+#: builtin/worktree.c:424
 #, c-format
 msgid "Preparing worktree (resetting branch '%s'; was at %s)"
 msgstr "准备工作区(重置分支 '%s',之前为 %s)"
 
-#: builtin/worktree.c:505
+#: builtin/worktree.c:433
 #, c-format
 msgid "Preparing worktree (checking out '%s')"
 msgstr "准备工作区(检出 '%s')"
 
-#: builtin/worktree.c:511
+#: builtin/worktree.c:439
 #, c-format
 msgid "Preparing worktree (detached HEAD %s)"
 msgstr "准备工作区(分离头指针 %s)"
 
-#: builtin/worktree.c:552
+#: builtin/worktree.c:480
 msgid "checkout <branch> even if already checked out in other worktree"
 msgstr "检出 <分支>,即使已经被检出到其它工作区"
 
-#: builtin/worktree.c:555
+#: builtin/worktree.c:483
 msgid "create a new branch"
 msgstr "创建一个新分支"
 
-#: builtin/worktree.c:557
+#: builtin/worktree.c:485
 msgid "create or reset a branch"
 msgstr "创建或重置一个分支"
 
-#: builtin/worktree.c:559
+#: builtin/worktree.c:487
 msgid "populate the new working tree"
 msgstr "生成新的工作区"
 
-#: builtin/worktree.c:560
+#: builtin/worktree.c:488
 msgid "keep the new working tree locked"
 msgstr "锁定新工作区"
 
-#: builtin/worktree.c:563
+#: builtin/worktree.c:491
 msgid "set up tracking mode (see git-branch(1))"
 msgstr "设置跟踪模式(参见 git-branch(1))"
 
-#: builtin/worktree.c:566
+#: builtin/worktree.c:494
 msgid "try to match the new branch name with a remote-tracking branch"
 msgstr "尝试为新分支名匹配一个远程跟踪分支"
 
-#: builtin/worktree.c:574
+#: builtin/worktree.c:502
 msgid "-b, -B, and --detach are mutually exclusive"
 msgstr "-b、-B 和 --detach 是互斥的"
 
-#: builtin/worktree.c:635
+#: builtin/worktree.c:563
 msgid "--[no-]track can only be used if a new branch is created"
 msgstr "只能在创建新分支时使用选项 --[no-]track "
 
-#: builtin/worktree.c:758
+#: builtin/worktree.c:680
+msgid "show extended annotations and reasons, if available"
+msgstr "显示扩展的注释和原因(如果有)"
+
+#: builtin/worktree.c:682
+msgid "add 'prunable' annotation to worktrees older than <time>"
+msgstr "向早于 <时间> 的工作区添添加“可修剪”注释"
+
+#: builtin/worktree.c:691
+msgid "--verbose and --porcelain are mutually exclusive"
+msgstr "--verbose 和 --porcelain 互斥"
+
+#: builtin/worktree.c:718
 msgid "reason for locking"
 msgstr "锁定原因"
 
-#: builtin/worktree.c:770 builtin/worktree.c:803 builtin/worktree.c:877
-#: builtin/worktree.c:1001
+#: builtin/worktree.c:730 builtin/worktree.c:763 builtin/worktree.c:837
+#: builtin/worktree.c:961
 #, c-format
 msgid "'%s' is not a working tree"
 msgstr "'%s' 不是一个工作区"
 
-#: builtin/worktree.c:772 builtin/worktree.c:805
+#: builtin/worktree.c:732 builtin/worktree.c:765
 msgid "The main working tree cannot be locked or unlocked"
 msgstr "主工作区无法被加锁或解锁"
 
-#: builtin/worktree.c:777
+#: builtin/worktree.c:737
 #, c-format
 msgid "'%s' is already locked, reason: %s"
 msgstr "'%s' 已被锁定,原因:%s"
 
-#: builtin/worktree.c:779
+#: builtin/worktree.c:739
 #, c-format
 msgid "'%s' is already locked"
 msgstr "'%s' 已被锁定"
 
-#: builtin/worktree.c:807
+#: builtin/worktree.c:767
 #, c-format
 msgid "'%s' is not locked"
 msgstr "'%s' 未被锁定"
 
-#: builtin/worktree.c:848
+#: builtin/worktree.c:808
 msgid "working trees containing submodules cannot be moved or removed"
 msgstr "不能移动或删除包含子模组的工作区"
 
-#: builtin/worktree.c:856
+#: builtin/worktree.c:816
 msgid "force move even if worktree is dirty or locked"
 msgstr "强制移动,即使工作区是脏的或已锁定"
 
-#: builtin/worktree.c:879 builtin/worktree.c:1003
+#: builtin/worktree.c:839 builtin/worktree.c:963
 #, c-format
 msgid "'%s' is a main working tree"
 msgstr "'%s' 是一个主工作区"
 
-#: builtin/worktree.c:884
+#: builtin/worktree.c:844
 #, c-format
 msgid "could not figure out destination name from '%s'"
 msgstr "无法从 '%s' 算出目标名称"
 
-#: builtin/worktree.c:897
+#: builtin/worktree.c:857
 #, c-format
 msgid ""
 "cannot move a locked working tree, lock reason: %s\n"
@@ -22663,7 +23032,7 @@ msgstr ""
 "无法移动一个锁定的工作区,锁定原因:%s\n"
 "使用 'move -f -f' 覆盖或先解锁"
 
-#: builtin/worktree.c:899
+#: builtin/worktree.c:859
 msgid ""
 "cannot move a locked working tree;\n"
 "use 'move -f -f' to override or unlock first"
@@ -22671,36 +23040,36 @@ msgstr ""
 "无法移动一个锁定的工作区,\n"
 "使用 'move -f -f' 覆盖或先解锁"
 
-#: builtin/worktree.c:902
+#: builtin/worktree.c:862
 #, c-format
 msgid "validation failed, cannot move working tree: %s"
 msgstr "验证失败,无法移动工作区:%s"
 
-#: builtin/worktree.c:907
+#: builtin/worktree.c:867
 #, c-format
 msgid "failed to move '%s' to '%s'"
 msgstr "移动 '%s' 到 '%s' 失败"
 
-#: builtin/worktree.c:953
+#: builtin/worktree.c:913
 #, c-format
 msgid "failed to run 'git status' on '%s'"
 msgstr "在 '%s' 中执行 'git status' 失败"
 
-#: builtin/worktree.c:957
+#: builtin/worktree.c:917
 #, c-format
 msgid "'%s' contains modified or untracked files, use --force to delete it"
 msgstr "'%s' 包含修改或未跟踪的文件,使用 --force 删除"
 
-#: builtin/worktree.c:962
+#: builtin/worktree.c:922
 #, c-format
 msgid "failed to run 'git status' on '%s', code %d"
 msgstr "在 '%s' 中执行 'git status' 失败,退出码 %d"
 
-#: builtin/worktree.c:985
+#: builtin/worktree.c:945
 msgid "force removal even if worktree is dirty or locked"
 msgstr "强制删除,即使工作区是脏的或已锁定"
 
-#: builtin/worktree.c:1008
+#: builtin/worktree.c:968
 #, c-format
 msgid ""
 "cannot remove a locked working tree, lock reason: %s\n"
@@ -22709,7 +23078,7 @@ msgstr ""
 "无法删除一个锁定的工作区,锁定原因:%s\n"
 "使用 'remove -f -f' 覆盖或先解锁"
 
-#: builtin/worktree.c:1010
+#: builtin/worktree.c:970
 msgid ""
 "cannot remove a locked working tree;\n"
 "use 'remove -f -f' to override or unlock first"
@@ -22717,17 +23086,17 @@ msgstr ""
 "无法删除一个锁定的工作区,\n"
 "使用 'remove -f -f' 覆盖或先解锁"
 
-#: builtin/worktree.c:1013
+#: builtin/worktree.c:973
 #, c-format
 msgid "validation failed, cannot remove working tree: %s"
 msgstr "验证失败,无法删除工作区:%s"
 
-#: builtin/worktree.c:1037
+#: builtin/worktree.c:997
 #, c-format
 msgid "repair: %s: %s"
 msgstr "修理:%s:%s"
 
-#: builtin/worktree.c:1040
+#: builtin/worktree.c:1000
 #, c-format
 msgid "error: %s: %s"
 msgstr "错误:%s:%s"
@@ -22748,15 +23117,23 @@ msgstr "将 <前缀> 子目录内容写到一个树对象"
 msgid "only useful for debugging"
 msgstr "只对调试有用"
 
-#: http-fetch.c:114
+#: http-fetch.c:118
 #, c-format
 msgid "argument to --packfile must be a valid hash (got '%s')"
 msgstr "--packfile 的参数必须是有效的哈希值(得到 '%s')"
 
-#: http-fetch.c:122
+#: http-fetch.c:128
 msgid "not a git repository"
 msgstr "不是 git 仓库"
 
+#: http-fetch.c:134
+msgid "--packfile requires --index-pack-args"
+msgstr "--packfile 需要 --index-pack-args"
+
+#: http-fetch.c:143
+msgid "--index-pack-args can only be used with --packfile"
+msgstr "--index-pack-args 只能和 --packfile 一起使用"
+
 #: t/helper/test-fast-rebase.c:141
 msgid "unhandled options"
 msgstr "未处理的选项"
@@ -22789,16 +23166,17 @@ msgid ""
 "           [-p | --paginate | -P | --no-pager] [--no-replace-objects] [--"
 "bare]\n"
 "           [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]\n"
+"           [--super-prefix=<path>] [--config-env=<name>=<envvar>]\n"
 "           <command> [<args>]"
 msgstr ""
 "git [--version] [--help] [-C <路径>] [-c <名称>=<取值>]\n"
 "           [--exec-path[=<路径>]] [--html-path] [--man-path] [--info-path]\n"
-"           [-p | --paginate | -P | --no-pager] [--no-replace-objects] [--"
-"bare]\n"
+"           [-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare]\n"
 "           [--git-dir=<路径>] [--work-tree=<路径>] [--namespace=<名称>]\n"
+"           [--super-prefix=<路径>] [--config-env=<名称>=<环境变量>]\n"
 "           <命令> [<参数>]"
 
-#: git.c:35
+#: git.c:36
 msgid ""
 "'git help -a' and 'git help -g' list available subcommands and some\n"
 "concept guides. See 'git help <command>' or 'git help <concept>'\n"
@@ -22810,47 +23188,47 @@ msgstr ""
 "帮助。\n"
 "有关系统的概述,查看 'git help git'。"
 
-#: git.c:187
+#: git.c:188
 #, c-format
 msgid "no directory given for --git-dir\n"
 msgstr "没有为 --git-dir 提供目录\n"
 
-#: git.c:201
+#: git.c:202
 #, c-format
 msgid "no namespace given for --namespace\n"
 msgstr "没有为 --namespace 提供命名空间\n"
 
-#: git.c:215
+#: git.c:216
 #, c-format
 msgid "no directory given for --work-tree\n"
 msgstr "没有为 --work-tree 提供目录\n"
 
-#: git.c:229
+#: git.c:230
 #, c-format
 msgid "no prefix given for --super-prefix\n"
 msgstr "没有为 --super-prefix 提供前缀\n"
 
-#: git.c:251
+#: git.c:252
 #, c-format
 msgid "-c expects a configuration string\n"
 msgstr "应为 -c 提供一个配置字符串\n"
 
-#: git.c:289
+#: git.c:292
 #, c-format
 msgid "no directory given for -C\n"
 msgstr "没有为 -C 提供目录\n"
 
-#: git.c:315
+#: git.c:318
 #, c-format
 msgid "unknown option: %s\n"
 msgstr "未知选项:%s\n"
 
-#: git.c:364
+#: git.c:367
 #, c-format
 msgid "while expanding alias '%s': '%s'"
 msgstr "在扩展别名 '%s' 时:'%s'"
 
-#: git.c:373
+#: git.c:376
 #, c-format
 msgid ""
 "alias '%s' changes environment variables.\n"
@@ -22859,39 +23237,39 @@ msgstr ""
 "别名 '%s' 修改环境变量。您可以使用在别名中\n"
 "使用 '!git'"
 
-#: git.c:380
+#: git.c:383
 #, c-format
 msgid "empty alias for %s"
 msgstr "%s 的空别名"
 
-#: git.c:383
+#: git.c:386
 #, c-format
 msgid "recursive alias: %s"
 msgstr "递归的别名:%s"
 
-#: git.c:465
+#: git.c:468
 msgid "write failure on standard output"
 msgstr "在标准输出写入失败"
 
-#: git.c:467
+#: git.c:470
 msgid "unknown write failure on standard output"
 msgstr "到标准输出的未知写入错误"
 
-#: git.c:469
+#: git.c:472
 msgid "close failed on standard output"
 msgstr "标准输出关闭失败"
 
-#: git.c:820
+#: git.c:823
 #, c-format
 msgid "alias loop detected: expansion of '%s' does not terminate:%s"
 msgstr "检测到别名循环:'%s'的扩展未终止:%s"
 
-#: git.c:870
+#: git.c:873
 #, c-format
 msgid "cannot handle %s as a builtin"
 msgstr "不能作为内置命令处理 %s"
 
-#: git.c:883
+#: git.c:886
 #, c-format
 msgid ""
 "usage: %s\n"
@@ -22900,12 +23278,12 @@ msgstr ""
 "用法:%s\n"
 "\n"
 
-#: git.c:903
+#: git.c:906
 #, c-format
 msgid "expansion of alias '%s' failed; '%s' is not a git command\n"
 msgstr "展开别名命令 '%s' 失败,'%s' 不是一个 git 命令\n"
 
-#: git.c:915
+#: git.c:918
 #, c-format
 msgid "failed to run command '%s': %s\n"
 msgstr "运行命令 '%s' 失败:%s\n"
@@ -23138,11 +23516,11 @@ msgid ""
 "with --pathspec-from-file, pathspec elements are separated with NUL character"
 msgstr "使用 --pathspec-from-file,路径表达式用空字符分隔"
 
-#: ref-filter.h:96
+#: ref-filter.h:99
 msgid "key"
 msgstr "key"
 
-#: ref-filter.h:96
+#: ref-filter.h:99
 msgid "field name to sort on"
 msgstr "排序的字段名"
 
@@ -23150,14 +23528,6 @@ msgstr "排序的字段名"
 msgid "update the index with reused conflict resolution if possible"
 msgstr "如果可能,重用冲突解决更新索引"
 
-#: wt-status.h:80
-msgid "HEAD detached at "
-msgstr "头指针分离于 "
-
-#: wt-status.h:81
-msgid "HEAD detached from "
-msgstr "头指针分离自 "
-
 #: command-list.h:50
 msgid "Add file contents to the index"
 msgstr "添加文件内容至索引"
@@ -23487,8 +23857,8 @@ msgid "Write and verify multi-pack-indexes"
 msgstr "写入和校验多包索引"
 
 #: command-list.h:132
-msgid "Creates a tag object"
-msgstr "创建一个标签对象"
+msgid "Creates a tag object with extra validation"
+msgstr "å\88\9b建ä¸\80个æ\9c\89é¢\9då¤\96éª\8cè¯\81ç\9a\84æ \87签对象"
 
 #: command-list.h:133
 msgid "Build a tree-object from ls-tree formatted text"
@@ -23796,69 +24166,55 @@ msgid "Specifies intentionally untracked files to ignore"
 msgstr "忽略指定的未跟踪文件"
 
 #: command-list.h:209
+msgid "Map author/committer names and/or E-Mail addresses"
+msgstr "映射作者/提交者的名称和/或邮件地址"
+
+#: command-list.h:210
 msgid "Defining submodule properties"
 msgstr "定义子模组属性"
 
-#: command-list.h:210
+#: command-list.h:211
 msgid "Git namespaces"
 msgstr "Git 名字空间"
 
-#: command-list.h:211
+#: command-list.h:212
 msgid "Helper programs to interact with remote repositories"
 msgstr "与远程仓库交互的助手程序"
 
-#: command-list.h:212
+#: command-list.h:213
 msgid "Git Repository Layout"
 msgstr "Git 仓库布局"
 
-#: command-list.h:213
+#: command-list.h:214
 msgid "Specifying revisions and ranges for Git"
 msgstr "指定 Git 的版本和版本范围"
 
-#: command-list.h:214
+#: command-list.h:215
 msgid "Mounting one repository inside another"
 msgstr "将一个仓库安装到另外一个仓库中"
 
-#: command-list.h:215
+#: command-list.h:216
 msgid "A tutorial introduction to Git: part two"
 msgstr "一个 Git 教程:第二部分"
 
-#: command-list.h:216
+#: command-list.h:217
 msgid "A tutorial introduction to Git"
 msgstr "一个 Git 教程"
 
-#: command-list.h:217
+#: command-list.h:218
 msgid "An overview of recommended workflows with Git"
 msgstr "Git 推荐的工作流概览"
 
-#: git-bisect.sh:48
-#, sh-format
-msgid "Bad rev input: $arg"
-msgstr "坏的输入版本:$arg"
-
-#: git-bisect.sh:82
-msgid "No logfile given"
-msgstr "未提供日志文件"
-
-#: git-bisect.sh:83
-#, sh-format
-msgid "cannot read $file for replaying"
-msgstr "不能读取 $file 来重放"
-
-#: git-bisect.sh:105
-msgid "?? what are you talking about?"
-msgstr "?? 您在说什么?"
-
-#: git-bisect.sh:115
+#: git-bisect.sh:68
 msgid "bisect run failed: no command provided."
 msgstr "二分查找运行失败:没有提供命令。"
 
-#: git-bisect.sh:120
+#: git-bisect.sh:73
 #, sh-format
 msgid "running $command"
 msgstr "运行 $command"
 
-#: git-bisect.sh:127
+#: git-bisect.sh:80
 #, sh-format
 msgid ""
 "bisect run failed:\n"
@@ -23867,11 +24223,11 @@ msgstr ""
 "二分查找运行失败:\n"
 "命令 '$command' 的退出码 $res 小于 0 或大于等于 128"
 
-#: git-bisect.sh:152
+#: git-bisect.sh:105
 msgid "bisect run cannot continue any more"
 msgstr "二分查找不能继续运行"
 
-#: git-bisect.sh:158
+#: git-bisect.sh:111
 #, sh-format
 msgid ""
 "bisect run failed:\n"
@@ -23880,14 +24236,10 @@ msgstr ""
 "二分查找运行失败:\n"
 "'bisect-state $state' 退出码为 $res"
 
-#: git-bisect.sh:165
+#: git-bisect.sh:118
 msgid "bisect run success"
 msgstr "二分查找运行成功"
 
-#: git-bisect.sh:173
-msgid "We are not bisecting."
-msgstr "我们没有在二分查找。"
-
 #: git-merge-octopus.sh:46
 msgid ""
 "Error: Your local changes to the following files would be overwritten by "