about summary refs log tree commit diff
path: root/third_party/git/po/zh_CN.po
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2020-11-21T18·20+0100
committerVincent Ambo <mail@tazj.in>2020-11-21T18·45+0100
commitf4609b896fac842433bd495c166d5987852a6a73 (patch)
tree95511c465c54c4f5d27e5d39ce187e2a1dd82bd3 /third_party/git/po/zh_CN.po
parent082c006c04343a78d87b6c6ab3608c25d6213c3f (diff)
merge(3p/git): Merge git subtree at v2.29.2 r/1890
This also bumps the stable nixpkgs to 20.09 as of 2020-11-21, because
there is some breakage in the git build related to the netrc
credentials helper which someone has taken care of in nixpkgs.

The stable channel is not used for anything other than git, so this
should be fine.

Change-Id: I3575a19dab09e1e9556cf8231d717de9890484fb
Diffstat (limited to 'third_party/git/po/zh_CN.po')
-rw-r--r--third_party/git/po/zh_CN.po12563
1 files changed, 7164 insertions, 5399 deletions
diff --git a/third_party/git/po/zh_CN.po b/third_party/git/po/zh_CN.po
index c6bdb3e3005a..068d71bf2ed8 100644
--- a/third_party/git/po/zh_CN.po
+++ b/third_party/git/po/zh_CN.po
@@ -28,8 +28,9 @@
 #   bare repository                  |  纯仓库
 #   bisect                           |  二分查找
 #   blob object                      |  数据对象
+#   bloom filter                     |  布隆过滤器
 #   branch                           |  分支
-#   bundle                           |  包
+#   bundle                           |  归档包
 #   bypass                           |  绕过
 #   cache                            |  索引(的别称)
 #   chain                            |  (提交)链
@@ -139,8 +140,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Git\n"
 "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2019-08-10 20:12+0800\n"
-"PO-Revision-Date: 2019-08-13 21:16+0800\n"
+"POT-Creation-Date: 2020-10-10 09:32+0800\n"
+"PO-Revision-Date: 2020-10-10 09:43+0800\n"
 "Last-Translator: Jiang Xin <worldhello.net@gmail.com>\n"
 "Language-Team: GitHub <https://github.com/jiangxin/git/>\n"
 "Language: zh_CN\n"
@@ -149,37 +150,749 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: advice.c:109
+#: add-interactive.c:368
+#, c-format
+msgid "Huh (%s)?"
+msgstr "嗯(%s)?"
+
+#: add-interactive.c:521 add-interactive.c:822 reset.c:65 sequencer.c:3250
+#: sequencer.c:3698 sequencer.c:3840 builtin/rebase.c:1526
+#: builtin/rebase.c:1944
+msgid "could not read index"
+msgstr "不能读取索引"
+
+#: add-interactive.c:576 git-add--interactive.perl:269
+#: git-add--interactive.perl:294
+msgid "binary"
+msgstr "二进制"
+
+#: add-interactive.c:634 git-add--interactive.perl:278
+#: git-add--interactive.perl:332
+msgid "nothing"
+msgstr "无"
+
+#: add-interactive.c:635 git-add--interactive.perl:314
+#: git-add--interactive.perl:329
+msgid "unchanged"
+msgstr "没有修改"
+
+#: add-interactive.c:672 git-add--interactive.perl:643
+msgid "Update"
+msgstr "更新"
+
+#: add-interactive.c:689 add-interactive.c:877
+#, c-format
+msgid "could not stage '%s'"
+msgstr "不能暂存 '%s'"
+
+#: add-interactive.c:695 add-interactive.c:884 reset.c:89 sequencer.c:3444
+msgid "could not write index"
+msgstr "不能写入索引"
+
+#: add-interactive.c:698 git-add--interactive.perl:628
+#, c-format, perl-format
+msgid "updated %d path\n"
+msgid_plural "updated %d paths\n"
+msgstr[0] "更新了 %d 个路径\n"
+msgstr[1] "更新了 %d 个路径\n"
+
+#: add-interactive.c:716 git-add--interactive.perl:678
+#, c-format, perl-format
+msgid "note: %s is untracked now.\n"
+msgstr "说明:%s 现已成为未跟踪的。\n"
+
+#: add-interactive.c:721 apply.c:4127 builtin/checkout.c:295
+#: builtin/reset.c:145
+#, c-format
+msgid "make_cache_entry failed for path '%s'"
+msgstr "对路径 '%s' 的 make_cache_entry 操作失败"
+
+#: add-interactive.c:751 git-add--interactive.perl:655
+msgid "Revert"
+msgstr "还原"
+
+#: add-interactive.c:767
+msgid "Could not parse HEAD^{tree}"
+msgstr "不能解析 HEAD^{tree}"
+
+#: add-interactive.c:805 git-add--interactive.perl:631
+#, c-format, perl-format
+msgid "reverted %d path\n"
+msgid_plural "reverted %d paths\n"
+msgstr[0] "还原了 %d 个路径\n"
+msgstr[1] "还原了 %d 个路径\n"
+
+#: add-interactive.c:856 git-add--interactive.perl:695
+#, c-format
+msgid "No untracked files.\n"
+msgstr "没有未跟踪的文件。\n"
+
+#: add-interactive.c:860 git-add--interactive.perl:689
+msgid "Add untracked"
+msgstr "添加未跟踪的"
+
+#: add-interactive.c:887 git-add--interactive.perl:625
+#, c-format, perl-format
+msgid "added %d path\n"
+msgid_plural "added %d paths\n"
+msgstr[0] "增加了 %d 个路径\n"
+msgstr[1] "增加了 %d 个路径\n"
+
+#: add-interactive.c:917
+#, c-format
+msgid "ignoring unmerged: %s"
+msgstr "忽略未合入的:%s"
+
+#: add-interactive.c:929 add-patch.c:1738 git-add--interactive.perl:1371
+#, c-format
+msgid "Only binary files changed.\n"
+msgstr "只有二进制文件被修改。\n"
+
+#: add-interactive.c:931 add-patch.c:1736 git-add--interactive.perl:1373
+#, c-format
+msgid "No changes.\n"
+msgstr "没有修改。\n"
+
+#: add-interactive.c:935 git-add--interactive.perl:1381
+msgid "Patch update"
+msgstr "补丁更新"
+
+#: add-interactive.c:974 git-add--interactive.perl:1794
+msgid "Review diff"
+msgstr "检视 diff"
+
+#: add-interactive.c:1002
+msgid "show paths with changes"
+msgstr "显示含变更的路径"
+
+#: add-interactive.c:1004
+msgid "add working tree state to the staged set of changes"
+msgstr "将工作区状态添加到暂存区修改集中"
+
+#: add-interactive.c:1006
+msgid "revert staged set of changes back to the HEAD version"
+msgstr "将暂存的修改集恢复为 HEAD 版本"
+
+#: add-interactive.c:1008
+msgid "pick hunks and update selectively"
+msgstr "挑选数据块并有选择地更新"
+
+#: add-interactive.c:1010
+msgid "view diff between HEAD and index"
+msgstr "显示 HEAD 和索引的差异"
+
+#: add-interactive.c:1012
+msgid "add contents of untracked files to the staged set of changes"
+msgstr "将未跟踪文件的内容添加到暂存区修改集中"
+
+#: add-interactive.c:1020 add-interactive.c:1069
+msgid "Prompt help:"
+msgstr "帮助:"
+
+#: add-interactive.c:1022
+msgid "select a single item"
+msgstr "选择一个条目"
+
+#: add-interactive.c:1024
+msgid "select a range of items"
+msgstr "选择一系列条目"
+
+#: add-interactive.c:1026
+msgid "select multiple ranges"
+msgstr "选择多个范围"
+
+#: add-interactive.c:1028 add-interactive.c:1073
+msgid "select item based on unique prefix"
+msgstr "基于唯一前缀选择条目"
+
+#: add-interactive.c:1030
+msgid "unselect specified items"
+msgstr "反选指定的条目"
+
+#: add-interactive.c:1032
+msgid "choose all items"
+msgstr "选择所有条目"
+
+#: add-interactive.c:1034
+msgid "(empty) finish selecting"
+msgstr "(空)结束选择"
+
+#: add-interactive.c:1071
+msgid "select a numbered item"
+msgstr "选择一个编号条目"
+
+#: add-interactive.c:1075
+msgid "(empty) select nothing"
+msgstr "(空)不选择任何内容"
+
+#: add-interactive.c:1083 builtin/clean.c:816 git-add--interactive.perl:1891
+msgid "*** Commands ***"
+msgstr "*** 命令 ***"
+
+#: add-interactive.c:1084 builtin/clean.c:817 git-add--interactive.perl:1888
+msgid "What now"
+msgstr "请选择"
+
+#: add-interactive.c:1136 git-add--interactive.perl:213
+msgid "staged"
+msgstr "缓存"
+
+#: add-interactive.c:1136 git-add--interactive.perl:213
+msgid "unstaged"
+msgstr "未缓存"
+
+#: add-interactive.c:1136 apply.c:4984 apply.c:4987 builtin/am.c:2270
+#: builtin/am.c:2273 builtin/bugreport.c:133 builtin/clone.c:123
+#: builtin/fetch.c:147 builtin/merge.c:275 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
+#: git-add--interactive.perl:213
+msgid "path"
+msgstr "路径"
+
+#: add-interactive.c:1143
+msgid "could not refresh index"
+msgstr "不能刷新索引"
+
+#: add-interactive.c:1157 builtin/clean.c:781 git-add--interactive.perl:1805
+#, c-format
+msgid "Bye.\n"
+msgstr "再见。\n"
+
+#: add-patch.c:34 git-add--interactive.perl:1433
+#, c-format, perl-format
+msgid "Stage mode change [y,n,q,a,d%s,?]? "
+msgstr "暂存模式变更 [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:35 git-add--interactive.perl:1434
+#, c-format, perl-format
+msgid "Stage deletion [y,n,q,a,d%s,?]? "
+msgstr "暂存删除动作 [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:36 git-add--interactive.perl:1435
+#, c-format, perl-format
+msgid "Stage addition [y,n,q,a,d%s,?]? "
+msgstr "暂存添加动作 [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:37 git-add--interactive.perl:1436
+#, c-format, perl-format
+msgid "Stage this hunk [y,n,q,a,d%s,?]? "
+msgstr "暂存该块 [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:39
+msgid ""
+"If the patch applies cleanly, the edited hunk will immediately be marked for "
+"staging."
+msgstr "如果补丁能正确地应用,编辑块将立即标记为暂存。"
+
+#: add-patch.c:42
+msgid ""
+"y - stage this hunk\n"
+"n - do not stage this hunk\n"
+"q - quit; do not stage this hunk or any of the remaining ones\n"
+"a - stage this hunk and all later hunks in the file\n"
+"d - do not stage this hunk or any of the later hunks in the file\n"
+msgstr ""
+"y - 暂存该块\n"
+"n - 不要暂存该块\n"
+"q - 退出。不暂存该块及后面的全部块\n"
+"a - 暂存该块和本文件中后面的全部块\n"
+"d - 不暂存该块和本文件中后面的全部块\n"
+
+#: add-patch.c:56 git-add--interactive.perl:1439
+#, c-format, perl-format
+msgid "Stash mode change [y,n,q,a,d%s,?]? "
+msgstr "贮藏模式变更 [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:57 git-add--interactive.perl:1440
+#, c-format, perl-format
+msgid "Stash deletion [y,n,q,a,d%s,?]? "
+msgstr "贮藏删除动作 [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:58 git-add--interactive.perl:1441
+#, c-format, perl-format
+msgid "Stash addition [y,n,q,a,d%s,?]? "
+msgstr "贮藏添加动作 [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:59 git-add--interactive.perl:1442
+#, c-format, perl-format
+msgid "Stash this hunk [y,n,q,a,d%s,?]? "
+msgstr "贮藏该块 [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:61
+msgid ""
+"If the patch applies cleanly, the edited hunk will immediately be marked for "
+"stashing."
+msgstr "如果补丁能正确地应用,编辑块将立即标记为贮藏。"
+
+#: add-patch.c:64
+msgid ""
+"y - stash this hunk\n"
+"n - do not stash this hunk\n"
+"q - quit; do not stash this hunk or any of the remaining ones\n"
+"a - stash this hunk and all later hunks in the file\n"
+"d - do not stash this hunk or any of the later hunks in the file\n"
+msgstr ""
+"y - 贮藏该块\n"
+"n - 不要贮藏该块\n"
+"q - 退出。不贮藏该块及后面的全部块\n"
+"a - 贮藏该块和本文件中后面的全部块\n"
+"d - 不贮藏该块和本文件中后面的全部块\n"
+
+#: add-patch.c:80 git-add--interactive.perl:1445
+#, c-format, perl-format
+msgid "Unstage mode change [y,n,q,a,d%s,?]? "
+msgstr "取消暂存模式变更 [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:81 git-add--interactive.perl:1446
+#, c-format, perl-format
+msgid "Unstage deletion [y,n,q,a,d%s,?]? "
+msgstr "取消暂存删除动作 [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:82 git-add--interactive.perl:1447
+#, c-format, perl-format
+msgid "Unstage addition [y,n,q,a,d%s,?]? "
+msgstr "取消暂存添加动作 [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:83 git-add--interactive.perl:1448
+#, c-format, perl-format
+msgid "Unstage this hunk [y,n,q,a,d%s,?]? "
+msgstr "取消暂存该块 [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:85
+msgid ""
+"If the patch applies cleanly, the edited hunk will immediately be marked for "
+"unstaging."
+msgstr "如果补丁能正确地应用,编辑块将立即标记为未暂存。"
+
+#: add-patch.c:88
+msgid ""
+"y - unstage this hunk\n"
+"n - do not unstage this hunk\n"
+"q - quit; do not unstage this hunk or any of the remaining ones\n"
+"a - unstage this hunk and all later hunks in the file\n"
+"d - do not unstage this hunk or any of the later hunks in the file\n"
+msgstr ""
+"y - 取消暂存该块\n"
+"n - 不要取消暂存该块\n"
+"q - 退出。不要取消暂存该块及后面的全部块\n"
+"a - 取消暂存该块和本文件中后面的全部块\n"
+"d - 不要取消暂存该块和本文件中后面的全部块\n"
+
+#: add-patch.c:103 git-add--interactive.perl:1451
+#, c-format, perl-format
+msgid "Apply mode change to index [y,n,q,a,d%s,?]? "
+msgstr "将模式变更应用到索引 [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:104 git-add--interactive.perl:1452
+#, c-format, perl-format
+msgid "Apply deletion to index [y,n,q,a,d%s,?]? "
+msgstr "将删除操作应用到索引 [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:105 git-add--interactive.perl:1453
+#, c-format, perl-format
+msgid "Apply addition to index [y,n,q,a,d%s,?]? "
+msgstr "将添加操作应用到索引 [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:106 git-add--interactive.perl:1454
+#, c-format, perl-format
+msgid "Apply this hunk to index [y,n,q,a,d%s,?]? "
+msgstr "将该块应用到索引 [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:108 add-patch.c:176 add-patch.c:221
+msgid ""
+"If the patch applies cleanly, the edited hunk will immediately be marked for "
+"applying."
+msgstr "如果补丁能正确地应用,编辑块将立即标记为应用。"
+
+#: add-patch.c:111
+msgid ""
+"y - apply this hunk to index\n"
+"n - do not apply this hunk to index\n"
+"q - quit; do not apply this hunk or any of the remaining ones\n"
+"a - apply this hunk and all later hunks in the file\n"
+"d - do not apply this hunk or any of the later hunks in the file\n"
+msgstr ""
+"y - 在索引中应用该块\n"
+"n - 不要在索引中应用该块\n"
+"q - 退出。不要应用该块及后面的全部块\n"
+"a - 应用该块和本文件中后面的全部块\n"
+"d - 不要应用该块和本文件中后面的全部块\n"
+
+#: add-patch.c:126 git-add--interactive.perl:1457
+#: git-add--interactive.perl:1475
+#, c-format, perl-format
+msgid "Discard mode change from worktree [y,n,q,a,d%s,?]? "
+msgstr "从工作区中丢弃模式变更 [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:127 git-add--interactive.perl:1458
+#: git-add--interactive.perl:1476
+#, c-format, perl-format
+msgid "Discard deletion from worktree [y,n,q,a,d%s,?]? "
+msgstr "从工作区中丢弃删除动作 [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:128 git-add--interactive.perl:1459
+#: git-add--interactive.perl:1477
+#, c-format, perl-format
+msgid "Discard addition from worktree [y,n,q,a,d%s,?]? "
+msgstr "从工作区中丢弃添加动作 [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:129 git-add--interactive.perl:1460
+#: git-add--interactive.perl:1478
+#, c-format, perl-format
+msgid "Discard this hunk from worktree [y,n,q,a,d%s,?]? "
+msgstr "从工作区中丢弃该块 [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:131 add-patch.c:154 add-patch.c:199
+msgid ""
+"If the patch applies cleanly, the edited hunk will immediately be marked for "
+"discarding."
+msgstr "如果补丁能正确地应用,编辑块将立即标记为丢弃。"
+
+#: add-patch.c:134 add-patch.c:202
+msgid ""
+"y - discard this hunk from worktree\n"
+"n - do not discard this hunk from worktree\n"
+"q - quit; do not discard this hunk or any of the remaining ones\n"
+"a - discard this hunk and all later hunks in the file\n"
+"d - do not discard this hunk or any of the later hunks in the file\n"
+msgstr ""
+"y - 在工作区中丢弃该块\n"
+"n - 不要在工作区中丢弃该块\n"
+"q - 退出。不要丢弃该块及后面的全部块\n"
+"a - 丢弃该块和本文件中后面的全部块\n"
+"d - 不要丢弃该块和本文件中后面的全部块\n"
+
+#: add-patch.c:149 add-patch.c:194 git-add--interactive.perl:1463
+#, c-format, perl-format
+msgid "Discard mode change from index and worktree [y,n,q,a,d%s,?]? "
+msgstr "从索引和工作区中丢弃模式变更 [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:150 add-patch.c:195 git-add--interactive.perl:1464
+#, c-format, perl-format
+msgid "Discard deletion from index and worktree [y,n,q,a,d%s,?]? "
+msgstr "从索引和工作区中丢弃删除动作 [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:151 add-patch.c:196 git-add--interactive.perl:1465
+#, c-format, perl-format
+msgid "Discard addition from index and worktree [y,n,q,a,d%s,?]? "
+msgstr "从索引和工作区中丢弃添加动作 [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:152 add-patch.c:197 git-add--interactive.perl:1466
+#, c-format, perl-format
+msgid "Discard this hunk from index and worktree [y,n,q,a,d%s,?]? "
+msgstr "从索引和工作区中丢弃该块 [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:157
+msgid ""
+"y - discard this hunk from index and worktree\n"
+"n - do not discard this hunk from index and worktree\n"
+"q - quit; do not discard this hunk or any of the remaining ones\n"
+"a - discard this hunk and all later hunks in the file\n"
+"d - do not discard this hunk or any of the later hunks in the file\n"
+msgstr ""
+"y - 在索引和工作区中丢弃该块\n"
+"n - 不要在索引和工作区中丢弃该块\n"
+"q - 退出。不要丢弃该块及后面的全部块\n"
+"a - 丢弃该块和本文件中后面的全部块\n"
+"d - 不要丢弃该块和本文件中后面的全部块\n"
+
+#: add-patch.c:171 add-patch.c:216 git-add--interactive.perl:1469
+#, c-format, perl-format
+msgid "Apply mode change to index and worktree [y,n,q,a,d%s,?]? "
+msgstr "将模式变更应用到索引和工作区 [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:172 add-patch.c:217 git-add--interactive.perl:1470
+#, c-format, perl-format
+msgid "Apply deletion to index and worktree [y,n,q,a,d%s,?]? "
+msgstr "将删除操作应用到索引和工作区 [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:173 add-patch.c:218 git-add--interactive.perl:1471
+#, c-format, perl-format
+msgid "Apply addition to index and worktree [y,n,q,a,d%s,?]? "
+msgstr "将添加操作应用到索引和工作区 [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:174 add-patch.c:219 git-add--interactive.perl:1472
+#, c-format, perl-format
+msgid "Apply this hunk to index and worktree [y,n,q,a,d%s,?]? "
+msgstr "将该块应用到索引和工作区 [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:179
+msgid ""
+"y - apply this hunk to index and worktree\n"
+"n - do not apply this hunk to index and worktree\n"
+"q - quit; do not apply this hunk or any of the remaining ones\n"
+"a - apply this hunk and all later hunks in the file\n"
+"d - do not apply this hunk or any of the later hunks in the file\n"
+msgstr ""
+"y - 在索引和工作区中应用该块\n"
+"n - 不要在索引和工作区中应用该块\n"
+"q - 退出。不要应用该块及后面的全部块\n"
+"a - 应用该块和本文件中后面的全部块\n"
+"d - 不要应用该块和本文件中后面的全部块\n"
+
+#: add-patch.c:224
+msgid ""
+"y - apply this hunk to worktree\n"
+"n - do not apply this hunk to worktree\n"
+"q - quit; do not apply this hunk or any of the remaining ones\n"
+"a - apply this hunk and all later hunks in the file\n"
+"d - do not apply this hunk or any of the later hunks in the file\n"
+msgstr ""
+"y - 在工作区中应用该块\n"
+"n - 不要在工作区中应用该块\n"
+"q - 退出。不要应用该块及后面的全部块\n"
+"a - 应用该块和本文件中后面的全部块\n"
+"d - 不要应用该块和本文件中后面的全部块\n"
+
+#: add-patch.c:342
+#, c-format
+msgid "could not parse hunk header '%.*s'"
+msgstr "无法解析数据块头信息 '%.*s'"
+
+#: add-patch.c:361 add-patch.c:365
+#, c-format
+msgid "could not parse colored hunk header '%.*s'"
+msgstr "无法解析彩色数据块头信息 '%.*s'"
+
+#: add-patch.c:419
+msgid "could not parse diff"
+msgstr "不能解析差异信息"
+
+#: add-patch.c:438
+msgid "could not parse colored diff"
+msgstr "不能解析彩色差异信息"
+
+#: add-patch.c:452
+#, c-format
+msgid "failed to run '%s'"
+msgstr "运行 '%s' 失败"
+
+#: add-patch.c:611
+msgid "mismatched output from interactive.diffFilter"
+msgstr "interactive.diffFilter 的输出不匹配"
+
+#: add-patch.c:612
+msgid ""
+"Your filter must maintain a one-to-one correspondence\n"
+"between its input and output lines."
+msgstr "您的过滤器必须在其输入和输出的行之间保持一一对应的关系。"
+
+#: add-patch.c:785
+#, c-format
+msgid ""
+"expected context line #%d in\n"
+"%.*s"
+msgstr ""
+"预期上下文行 #%d 于\n"
+"%.*s"
+
+#: add-patch.c:800
+#, c-format
+msgid ""
+"hunks do not overlap:\n"
+"%.*s\n"
+"\tdoes not end with:\n"
+"%.*s"
+msgstr ""
+"块不重叠:\n"
+"%.*s\n"
+"\t不是结尾于:\n"
+"%.*s"
+
+#: add-patch.c:1076 git-add--interactive.perl:1117
+msgid "Manual hunk edit mode -- see bottom for a quick guide.\n"
+msgstr "手动块编辑模式 -- 查看底部的快速指南。\n"
+
+#: add-patch.c:1080
+#, c-format
+msgid ""
+"---\n"
+"To remove '%c' lines, make them ' ' lines (context).\n"
+"To remove '%c' lines, delete them.\n"
+"Lines starting with %c will be removed.\n"
+msgstr ""
+"---\n"
+"要删除 '%c' 开始的行,使其成为 ' ' 开始的行(上下文)。\n"
+"要删除 '%c' 开始的行,删除它们。\n"
+"以 %c 开始的行将被删除。\n"
+
+#. TRANSLATORS: 'it' refers to the patch mentioned in the previous messages.
+#: add-patch.c:1094 git-add--interactive.perl:1131
+msgid ""
+"If it does not apply cleanly, you will be given an opportunity to\n"
+"edit again.  If all lines of the hunk are removed, then the edit is\n"
+"aborted and the hunk is left unchanged.\n"
+msgstr ""
+"如果不能干净地应用,您将有机会重新编辑。如果该块的全部内容删除,则\n"
+"此次编辑被终止,该块不会被修改。\n"
+
+#: add-patch.c:1127
+msgid "could not parse hunk header"
+msgstr "无法解析数据块头信息"
+
+#: add-patch.c:1172
+msgid "'git apply --cached' failed"
+msgstr "'git apply --cached' 失败"
+
+#. TRANSLATORS: do not translate [y/n]
+#. The program will only accept that input at this point.
+#. Consider translating (saying "no" discards!) as
+#. (saying "n" for "no" discards!) if the translation
+#. of the word "no" does not start with n.
+#.
+#. TRANSLATORS: do not translate [y/n]
+#. The program will only accept that input
+#. at this point.
+#. Consider translating (saying "no" discards!) as
+#. (saying "n" for "no" discards!) if the translation
+#. of the word "no" does not start with n.
+#: add-patch.c:1241 git-add--interactive.perl:1244
+msgid ""
+"Your edited hunk does not apply. Edit again (saying \"no\" discards!) [y/n]? "
+msgstr "您的编辑块不能被应用。重新编辑(选择 \"no\" 丢弃!) [y/n]? "
+
+#: add-patch.c:1284
+msgid "The selected hunks do not apply to the index!"
+msgstr "选中的块不能应用到索引!"
+
+#: add-patch.c:1285 git-add--interactive.perl:1348
+msgid "Apply them to the worktree anyway? "
+msgstr "无论如何都要应用到工作区么?"
+
+#: add-patch.c:1292 git-add--interactive.perl:1351
+msgid "Nothing was applied.\n"
+msgstr "未应用。\n"
+
+#: add-patch.c:1349
+msgid ""
+"j - leave this hunk undecided, see next undecided hunk\n"
+"J - leave this hunk undecided, see next hunk\n"
+"k - leave this hunk undecided, see previous undecided hunk\n"
+"K - leave this hunk undecided, see previous hunk\n"
+"g - select a hunk to go to\n"
+"/ - search for a hunk matching the given regex\n"
+"s - split the current hunk into smaller hunks\n"
+"e - manually edit the current hunk\n"
+"? - print help\n"
+msgstr ""
+"j - 维持该块未决状态,查看下一个未决块\n"
+"J - 维持该块未决状态,查看下一个块\n"
+"k - 维持该块未决状态,查看上一个未决块\n"
+"K - 维持该块未决状态,查看上一个块\n"
+"g - 选择跳转到一个块\n"
+"/ - 查找和给定正则表达式匹配的块\n"
+"s - 拆分当前块为更小的块\n"
+"e - 手动编辑当前块\n"
+"? - 显示帮助\n"
+
+#: add-patch.c:1511 add-patch.c:1521
+msgid "No previous hunk"
+msgstr "没有前一个块"
+
+#: add-patch.c:1516 add-patch.c:1526
+msgid "No next hunk"
+msgstr "没有下一个块"
+
+#: add-patch.c:1532
+msgid "No other hunks to goto"
+msgstr "没有其它可供跳转的块"
+
+#: add-patch.c:1543 git-add--interactive.perl:1608
+msgid "go to which hunk (<ret> to see more)? "
+msgstr "跳转到哪个块(<回车> 查看更多)? "
+
+#: add-patch.c:1544 git-add--interactive.perl:1610
+msgid "go to which hunk? "
+msgstr "跳转到哪个块?"
+
+#: add-patch.c:1555
+#, c-format
+msgid "Invalid number: '%s'"
+msgstr "无效数字:'%s'"
+
+#: add-patch.c:1560
+#, c-format
+msgid "Sorry, only %d hunk available."
+msgid_plural "Sorry, only %d hunks available."
+msgstr[0] "对不起,只有 %d 个可用块。"
+msgstr[1] "对不起,只有 %d 个可用块。"
+
+#: add-patch.c:1569
+msgid "No other hunks to search"
+msgstr "没有其它可供查找的块"
+
+#: add-patch.c:1575 git-add--interactive.perl:1663
+msgid "search for regex? "
+msgstr "使用正则表达式搜索?"
+
+#: add-patch.c:1590
+#, c-format
+msgid "Malformed search regexp %s: %s"
+msgstr "错误的正则表达式 %s:%s"
+
+#: add-patch.c:1607
+msgid "No hunk matches the given pattern"
+msgstr "没有和给定模式相匹配的块"
+
+#: add-patch.c:1614
+msgid "Sorry, cannot split this hunk"
+msgstr "对不起,不能拆分这个块"
+
+#: add-patch.c:1618
+#, c-format
+msgid "Split into %d hunks."
+msgstr "拆分为 %d 块。"
+
+#: add-patch.c:1622
+msgid "Sorry, cannot edit this hunk"
+msgstr "对不起,不能编辑这个块"
+
+#: add-patch.c:1674
+msgid "'git apply' failed"
+msgstr "'git apply' 失败"
+
+#: advice.c:140
+#, c-format
+msgid ""
+"\n"
+"Disable this message with \"git config advice.%s false\""
+msgstr ""
+"\n"
+"使用 \"git config advice.%s false\" 来关闭此消息"
+
+#: advice.c:156
 #, c-format
 msgid "%shint: %.*s%s\n"
 msgstr "%s提示:%.*s%s\n"
 
-#: advice.c:162
+#: advice.c:247
 msgid "Cherry-picking is not possible because you have unmerged files."
 msgstr "无法拣选,因为您有未合并的文件。"
 
-#: advice.c:164
+#: advice.c:249
 msgid "Committing is not possible because you have unmerged files."
 msgstr "无法提交,因为您有未合并的文件。"
 
-#: advice.c:166
+#: advice.c:251
 msgid "Merging is not possible because you have unmerged files."
 msgstr "无法合并,因为您有未合并的文件。"
 
-#: advice.c:168
+#: advice.c:253
 msgid "Pulling is not possible because you have unmerged files."
 msgstr "无法拉取,因为您有未合并的文件。"
 
-#: advice.c:170
+#: advice.c:255
 msgid "Reverting is not possible because you have unmerged files."
 msgstr "无法回退,因为您有未合并的文件。"
 
-#: advice.c:172
+#: advice.c:257
 #, c-format
 msgid "It is not possible to %s because you have unmerged files."
 msgstr "无法 %s,因为您有未合并的文件。"
 
-#: advice.c:180
+#: advice.c:265
 msgid ""
 "Fix them up in the work tree, and then use 'git add/rm <file>'\n"
 "as appropriate to mark resolution and make a commit."
@@ -187,23 +900,23 @@ msgstr ""
 "请在工作区改正文件,然后酌情使用 'git add/rm <文件>' 命令标记\n"
 "解决方案并提交。"
 
-#: advice.c:188
+#: advice.c:273
 msgid "Exiting because of an unresolved conflict."
 msgstr "因为存在未解决的冲突而退出。"
 
-#: advice.c:193 builtin/merge.c:1327
+#: advice.c:278 builtin/merge.c:1349
 msgid "You have not concluded your merge (MERGE_HEAD exists)."
 msgstr "您尚未结束您的合并(存在 MERGE_HEAD)。"
 
-#: advice.c:195
+#: advice.c:280
 msgid "Please, commit your changes before merging."
 msgstr "请在合并前先提交您的修改。"
 
-#: advice.c:196
+#: advice.c:281
 msgid "Exiting because of unfinished merge."
 msgstr "因为存在未完成的合并而退出。"
 
-#: advice.c:202
+#: advice.c:287
 #, c-format
 msgid ""
 "Note: switching to '%s'.\n"
@@ -325,17 +1038,7 @@ msgstr "第 %d 行包含无效文件模式:%s"
 msgid "inconsistent header lines %d and %d"
 msgstr "不一致的文件头,%d 行和 %d 行"
 
-#: apply.c:1460
-#, c-format
-msgid "recount: unexpected line: %.*s"
-msgstr "recount:意外的行:%.*s"
-
-#: apply.c:1529
-#, c-format
-msgid "patch fragment without header at line %d: %.*s"
-msgstr "第 %d 行的补丁片段没有头信息:%.*s"
-
-#: apply.c:1551
+#: apply.c:1372
 #, c-format
 msgid ""
 "git diff header lacks filename information when removing %d leading pathname "
@@ -346,82 +1049,92 @@ msgid_plural ""
 msgstr[0] "当移除 %d 个前导路径后 git diff 头缺乏文件名信息(第 %d 行)"
 msgstr[1] "当移除 %d 个前导路径后 git diff 头缺乏文件名信息(第 %d 行)"
 
-#: apply.c:1564
+#: apply.c:1385
 #, c-format
 msgid "git diff header lacks filename information (line %d)"
 msgstr "git diff 的头信息中缺乏文件名信息(第 %d 行)"
 
-#: apply.c:1752
+#: apply.c:1481
+#, c-format
+msgid "recount: unexpected line: %.*s"
+msgstr "recount:意外的行:%.*s"
+
+#: apply.c:1550
+#, c-format
+msgid "patch fragment without header at line %d: %.*s"
+msgstr "第 %d 行的补丁片段没有头信息:%.*s"
+
+#: apply.c:1753
 msgid "new file depends on old contents"
 msgstr "新文件依赖旧内容"
 
-#: apply.c:1754
+#: apply.c:1755
 msgid "deleted file still has contents"
 msgstr "删除的文件仍有内容"
 
-#: apply.c:1788
+#: apply.c:1789
 #, c-format
 msgid "corrupt patch at line %d"
 msgstr "补丁在第 %d 行损坏"
 
-#: apply.c:1825
+#: apply.c:1826
 #, c-format
 msgid "new file %s depends on old contents"
 msgstr "新文件 %s 依赖旧内容"
 
-#: apply.c:1827
+#: apply.c:1828
 #, c-format
 msgid "deleted file %s still has contents"
 msgstr "删除的文件 %s 仍有内容"
 
-#: apply.c:1830
+#: apply.c:1831
 #, c-format
 msgid "** warning: file %s becomes empty but is not deleted"
 msgstr "** 警告:文件 %s 成为空文件但并未删除"
 
-#: apply.c:1977
+#: apply.c:1978
 #, c-format
 msgid "corrupt binary patch at line %d: %.*s"
 msgstr "二进制补丁在第 %d 行损坏:%.*s"
 
-#: apply.c:2014
+#: apply.c:2015
 #, c-format
 msgid "unrecognized binary patch at line %d"
 msgstr "未能识别的二进制补丁位于第 %d 行"
 
-#: apply.c:2176
+#: apply.c:2177
 #, c-format
 msgid "patch with only garbage at line %d"
 msgstr "补丁文件的第 %d 行只有垃圾数据"
 
-#: apply.c:2262
+#: apply.c:2263
 #, c-format
 msgid "unable to read symlink %s"
 msgstr "无法读取符号链接 %s"
 
-#: apply.c:2266
+#: apply.c:2267
 #, c-format
 msgid "unable to open or read %s"
 msgstr "不能打开或读取 %s"
 
-#: apply.c:2925
+#: apply.c:2936
 #, c-format
 msgid "invalid start of line: '%c'"
 msgstr "无效的行首字符:'%c'"
 
-#: apply.c:3046
+#: apply.c:3057
 #, c-format
 msgid "Hunk #%d succeeded at %d (offset %d line)."
 msgid_plural "Hunk #%d succeeded at %d (offset %d lines)."
 msgstr[0] "块 #%d 成功应用于 %d(偏移 %d 行)"
 msgstr[1] "块 #%d 成功应用于 %d(偏移 %d 行)"
 
-#: apply.c:3058
+#: apply.c:3069
 #, c-format
 msgid "Context reduced to (%ld/%ld) to apply fragment at %d"
 msgstr "上下文减少到(%ld/%ld)以在第 %d 行应用补丁片段"
 
-#: apply.c:3064
+#: apply.c:3075
 #, c-format
 msgid ""
 "while searching for:\n"
@@ -430,451 +1143,481 @@ msgstr ""
 "当查询:\n"
 "%.*s"
 
-#: apply.c:3086
+#: apply.c:3097
 #, c-format
 msgid "missing binary patch data for '%s'"
 msgstr "缺失 '%s' 的二进制补丁数据"
 
-#: apply.c:3094
+#: apply.c:3105
 #, c-format
 msgid "cannot reverse-apply a binary patch without the reverse hunk to '%s'"
 msgstr "不能反向应用一个缺少到 '%s' 的反向数据块的二进制补丁"
 
-#: apply.c:3141
+#: apply.c:3152
 #, c-format
 msgid "cannot apply binary patch to '%s' without full index line"
 msgstr "不能在 '%s' 上应用没有完整索引行的二进制补丁"
 
-#: apply.c:3151
+#: apply.c:3163
 #, c-format
 msgid ""
 "the patch applies to '%s' (%s), which does not match the current contents."
 msgstr "补丁应用到 '%s'(%s),但是和当前内容不匹配。"
 
-#: apply.c:3159
+#: apply.c:3171
 #, c-format
 msgid "the patch applies to an empty '%s' but it is not empty"
 msgstr "补丁应用到空文件 '%s',但其并非空文件"
 
-#: apply.c:3177
+#: apply.c:3189
 #, c-format
 msgid "the necessary postimage %s for '%s' cannot be read"
 msgstr "无法读取 '%2$s' 必需的目标文件 %1$s"
 
-#: apply.c:3190
+#: apply.c:3202
 #, c-format
 msgid "binary patch does not apply to '%s'"
 msgstr "二进制补丁未应用到 '%s'"
 
-#: apply.c:3196
+#: apply.c:3209
 #, c-format
 msgid "binary patch to '%s' creates incorrect result (expecting %s, got %s)"
 msgstr "到 '%s' 的二进制补丁产生了不正确的结果(应为 %s,却为 %s)"
 
-#: apply.c:3217
+#: apply.c:3230
 #, c-format
 msgid "patch failed: %s:%ld"
 msgstr "打补丁失败:%s:%ld"
 
-#: apply.c:3340
+#: apply.c:3353
 #, c-format
 msgid "cannot checkout %s"
 msgstr "不能检出 %s"
 
-#: apply.c:3392 apply.c:3403 apply.c:3449 midx.c:62 setup.c:279
+#: apply.c:3405 apply.c:3416 apply.c:3462 midx.c:72 setup.c:308
 #, c-format
 msgid "failed to read %s"
 msgstr "无法读取 %s"
 
-#: apply.c:3400
+#: apply.c:3413
 #, c-format
 msgid "reading from '%s' beyond a symbolic link"
 msgstr "读取位于符号链接中的 '%s'"
 
-#: apply.c:3429 apply.c:3672
+#: apply.c:3442 apply.c:3685
 #, c-format
 msgid "path %s has been renamed/deleted"
 msgstr "路径 %s 已经被重命名/删除"
 
-#: apply.c:3515 apply.c:3687
+#: apply.c:3528 apply.c:3700
 #, c-format
 msgid "%s: does not exist in index"
 msgstr "%s:不存在于索引中"
 
-#: apply.c:3524 apply.c:3695
+#: apply.c:3537 apply.c:3708 apply.c:3953
 #, c-format
 msgid "%s: does not match index"
 msgstr "%s:和索引不匹配"
 
-#: apply.c:3559
+#: apply.c:3572
 msgid "repository lacks the necessary blob to fall back on 3-way merge."
 msgstr "仓库缺乏必要的数据对象以进行三方合并。"
 
-#: apply.c:3562
+#: apply.c:3575
 #, c-format
 msgid "Falling back to three-way merge...\n"
 msgstr "回落到三方合并...\n"
 
-#: apply.c:3578 apply.c:3582
+#: apply.c:3591 apply.c:3595
 #, c-format
 msgid "cannot read the current contents of '%s'"
 msgstr "无法读取 '%s' 的当前内容"
 
-#: apply.c:3594
+#: apply.c:3607
 #, c-format
 msgid "Failed to fall back on three-way merge...\n"
 msgstr "无法回落到三方合并...\n"
 
-#: apply.c:3608
+#: apply.c:3621
 #, c-format
 msgid "Applied patch to '%s' with conflicts.\n"
 msgstr "应用补丁到 '%s' 存在冲突。\n"
 
-#: apply.c:3613
+#: apply.c:3626
 #, c-format
 msgid "Applied patch to '%s' cleanly.\n"
 msgstr "成功应用补丁到 '%s'。\n"
 
-#: apply.c:3639
+#: apply.c:3652
 msgid "removal patch leaves file contents"
 msgstr "移除补丁仍留下了文件内容"
 
-#: apply.c:3712
+#: apply.c:3725
 #, c-format
 msgid "%s: wrong type"
 msgstr "%s:错误类型"
 
-#: apply.c:3714
+#: apply.c:3727
 #, c-format
 msgid "%s has type %o, expected %o"
 msgstr "%s 的类型是 %o,应为 %o"
 
-#: apply.c:3865 apply.c:3867 read-cache.c:830 read-cache.c:856
-#: read-cache.c:1309
+#: apply.c:3892 apply.c:3894 read-cache.c:832 read-cache.c:858
+#: read-cache.c:1313
 #, c-format
 msgid "invalid path '%s'"
 msgstr "无效路径 '%s'"
 
-#: apply.c:3923
+#: apply.c:3950
 #, c-format
 msgid "%s: already exists in index"
 msgstr "%s:已经存在于索引中"
 
-#: apply.c:3926
+#: apply.c:3956
 #, c-format
 msgid "%s: already exists in working directory"
 msgstr "%s:已经存在于工作区中"
 
-#: apply.c:3946
+#: apply.c:3976
 #, c-format
 msgid "new mode (%o) of %s does not match old mode (%o)"
 msgstr "%2$s 的新模式(%1$o)和旧模式(%3$o)不匹配"
 
-#: apply.c:3951
+#: apply.c:3981
 #, c-format
 msgid "new mode (%o) of %s does not match old mode (%o) of %s"
 msgstr "%2$s 的新模式(%1$o)和 %4$s 的旧模式(%3$o)不匹配"
 
-#: apply.c:3971
+#: apply.c:4001
 #, c-format
 msgid "affected file '%s' is beyond a symbolic link"
 msgstr "受影响的文件 '%s' 位于符号链接中"
 
-#: apply.c:3975
+#: apply.c:4005
 #, c-format
 msgid "%s: patch does not apply"
 msgstr "%s:补丁未应用"
 
-#: apply.c:3990
+#: apply.c:4020
 #, c-format
 msgid "Checking patch %s..."
 msgstr "正在检查补丁 %s..."
 
-#: apply.c:4082
+#: apply.c:4112
 #, c-format
 msgid "sha1 information is lacking or useless for submodule %s"
 msgstr "子模组 %s 的 sha1 信息缺失或无效"
 
-#: apply.c:4089
+#: apply.c:4119
 #, c-format
 msgid "mode change for %s, which is not in current HEAD"
 msgstr "%s 的模式变更,但它不在当前 HEAD 中"
 
-#: apply.c:4092
+#: apply.c:4122
 #, c-format
 msgid "sha1 information is lacking or useless (%s)."
 msgstr "sha1 信息缺失或无效(%s)。"
 
-#: apply.c:4097 builtin/checkout.c:278 builtin/reset.c:143
-#, c-format
-msgid "make_cache_entry failed for path '%s'"
-msgstr "对路径 '%s' 的 make_cache_entry 操作失败"
-
-#: apply.c:4101
+#: apply.c:4131
 #, c-format
 msgid "could not add %s to temporary index"
 msgstr "不能在临时索引中添加 %s"
 
-#: apply.c:4111
+#: apply.c:4141
 #, c-format
 msgid "could not write temporary index to %s"
 msgstr "不能把临时索引写入到 %s"
 
-#: apply.c:4249
+#: apply.c:4279
 #, c-format
 msgid "unable to remove %s from index"
 msgstr "不能从索引中移除 %s"
 
-#: apply.c:4283
+#: apply.c:4313
 #, c-format
 msgid "corrupt patch for submodule %s"
 msgstr "子模组 %s 损坏的补丁"
 
-#: apply.c:4289
+#: apply.c:4319
 #, c-format
 msgid "unable to stat newly created file '%s'"
 msgstr "不能对新建文件 '%s' 调用 stat"
 
-#: apply.c:4297
+#: apply.c:4327
 #, c-format
 msgid "unable to create backing store for newly created file %s"
 msgstr "不能为新建文件 %s 创建后端存储"
 
-#: apply.c:4303 apply.c:4448
+#: apply.c:4333 apply.c:4478
 #, c-format
 msgid "unable to add cache entry for %s"
 msgstr "无法为 %s 添加缓存条目"
 
-#: apply.c:4346
+#: apply.c:4376 builtin/bisect--helper.c:537
 #, c-format
 msgid "failed to write to '%s'"
 msgstr "写入 '%s' 失败"
 
-#: apply.c:4350
+#: apply.c:4380
 #, c-format
 msgid "closing file '%s'"
 msgstr "关闭文件 '%s'"
 
-#: apply.c:4420
+#: apply.c:4450
 #, c-format
 msgid "unable to write file '%s' mode %o"
 msgstr "不能写文件 '%s' 权限 %o"
 
-#: apply.c:4518
+#: apply.c:4548
 #, c-format
 msgid "Applied patch %s cleanly."
 msgstr "成功应用补丁 %s。"
 
-#: apply.c:4526
+#: apply.c:4556
 msgid "internal error"
 msgstr "内部错误"
 
-#: apply.c:4529
+#: apply.c:4559
 #, c-format
 msgid "Applying patch %%s with %d reject..."
 msgid_plural "Applying patch %%s with %d rejects..."
 msgstr[0] "应用 %%s 个补丁,其中 %d 个被拒绝..."
 msgstr[1] "应用 %%s 个补丁,其中 %d 个被拒绝..."
 
-#: apply.c:4540
+#: apply.c:4570
 #, c-format
 msgid "truncating .rej filename to %.*s.rej"
 msgstr "截短 .rej 文件名为 %.*s.rej"
 
-#: apply.c:4548 builtin/fetch.c:878 builtin/fetch.c:1168
+#: apply.c:4578 builtin/fetch.c:927 builtin/fetch.c:1228
 #, c-format
 msgid "cannot open %s"
 msgstr "不能打开 %s"
 
-#: apply.c:4562
+#: apply.c:4592
 #, c-format
 msgid "Hunk #%d applied cleanly."
 msgstr "第 #%d 个片段成功应用。"
 
-#: apply.c:4566
+#: apply.c:4596
 #, c-format
 msgid "Rejected hunk #%d."
 msgstr "拒绝第 #%d 个片段。"
 
-#: apply.c:4676
+#: apply.c:4715
 #, c-format
 msgid "Skipped patch '%s'."
 msgstr "略过补丁 '%s'。"
 
-#: apply.c:4684
+#: apply.c:4723
 msgid "unrecognized input"
 msgstr "未能识别的输入"
 
-#: apply.c:4704
+#: apply.c:4743
 msgid "unable to read index file"
 msgstr "无法读取索引文件"
 
-#: apply.c:4859
+#: apply.c:4900
 #, c-format
 msgid "can't open patch '%s': %s"
 msgstr "不能打开补丁 '%s':%s"
 
-#: apply.c:4886
+#: apply.c:4927
 #, c-format
 msgid "squelched %d whitespace error"
 msgid_plural "squelched %d whitespace errors"
 msgstr[0] "抑制下仍有 %d 个空白字符误用"
 msgstr[1] "抑制下仍有 %d 个空白字符误用"
 
-#: apply.c:4892 apply.c:4907
+#: apply.c:4933 apply.c:4948
 #, c-format
 msgid "%d line adds whitespace errors."
 msgid_plural "%d lines add whitespace errors."
 msgstr[0] "%d 行新增了空白字符误用。"
 msgstr[1] "%d 行新增了空白字符误用。"
 
-#: apply.c:4900
+#: apply.c:4941
 #, c-format
 msgid "%d line applied after fixing whitespace errors."
 msgid_plural "%d lines applied after fixing whitespace errors."
 msgstr[0] "修复空白错误后,应用了 %d 行。"
 msgstr[1] "修复空白错误后,应用了 %d 行。"
 
-#: apply.c:4916 builtin/add.c:540 builtin/mv.c:301 builtin/rm.c:390
+#: apply.c:4957 builtin/add.c:618 builtin/mv.c:304 builtin/rm.c:406
 msgid "Unable to write new index file"
 msgstr "无法写入新索引文件"
 
-#: apply.c:4943 apply.c:4946 builtin/am.c:2208 builtin/am.c:2211
-#: builtin/clone.c:123 builtin/fetch.c:128 builtin/merge.c:273
-#: builtin/pull.c:208 builtin/submodule--helper.c:407
-#: builtin/submodule--helper.c:1367 builtin/submodule--helper.c:1370
-#: builtin/submodule--helper.c:1850 builtin/submodule--helper.c:1853
-#: builtin/submodule--helper.c:2092 git-add--interactive.perl:211
-msgid "path"
-msgstr "路径"
-
-#: apply.c:4944
+#: apply.c:4985
 msgid "don't apply changes matching the given path"
 msgstr "不要应用与给出路径向匹配的变更"
 
-#: apply.c:4947
+#: apply.c:4988
 msgid "apply changes matching the given path"
 msgstr "应用与给出路径向匹配的变更"
 
-#: apply.c:4949 builtin/am.c:2217
+#: apply.c:4990 builtin/am.c:2279
 msgid "num"
 msgstr "数字"
 
-#: apply.c:4950
+#: apply.c:4991
 msgid "remove <num> leading slashes from traditional diff paths"
 msgstr "从传统的 diff 路径中移除指定数量的前导斜线"
 
-#: apply.c:4953
+#: apply.c:4994
 msgid "ignore additions made by the patch"
 msgstr "忽略补丁中的添加的文件"
 
-#: apply.c:4955
+#: apply.c:4996
 msgid "instead of applying the patch, output diffstat for the input"
 msgstr "不应用补丁,而是显示输入的差异统计(diffstat)"
 
-#: apply.c:4959
+#: apply.c:5000
 msgid "show number of added and deleted lines in decimal notation"
 msgstr "以十进制数显示添加和删除的行数"
 
-#: apply.c:4961
+#: apply.c:5002
 msgid "instead of applying the patch, output a summary for the input"
 msgstr "不应用补丁,而是显示输入的概要"
 
-#: apply.c:4963
+#: apply.c:5004
 msgid "instead of applying the patch, see if the patch is applicable"
 msgstr "不应用补丁,而是查看补丁是否可应用"
 
-#: apply.c:4965
+#: apply.c:5006
 msgid "make sure the patch is applicable to the current index"
 msgstr "确认补丁可以应用到当前索引"
 
-#: apply.c:4967
+#: apply.c:5008
 msgid "mark new files with `git add --intent-to-add`"
 msgstr "使用命令 `git add --intent-to-add` 标记新增文件"
 
-#: apply.c:4969
+#: apply.c:5010
 msgid "apply a patch without touching the working tree"
 msgstr "应用补丁而不修改工作区"
 
-#: apply.c:4971
+#: apply.c:5012
 msgid "accept a patch that touches outside the working area"
 msgstr "接受修改工作区之外文件的补丁"
 
-#: apply.c:4974
+#: apply.c:5015
 msgid "also apply the patch (use with --stat/--summary/--check)"
 msgstr "还应用此补丁(与 --stat/--summary/--check 选项同时使用)"
 
-#: apply.c:4976
+#: apply.c:5017
 msgid "attempt three-way merge if a patch does not apply"
 msgstr "如果一个补丁不能应用则尝试三方合并"
 
-#: apply.c:4978
+#: apply.c:5019
 msgid "build a temporary index based on embedded index information"
 msgstr "创建一个临时索引基于嵌入的索引信息"
 
-#: apply.c:4981 builtin/checkout-index.c:173 builtin/ls-files.c:524
+#: apply.c:5022 builtin/checkout-index.c:173 builtin/ls-files.c:525
 msgid "paths are separated with NUL character"
 msgstr "路径以 NUL 字符分隔"
 
-#: apply.c:4983
+#: apply.c:5024
 msgid "ensure at least <n> lines of context match"
 msgstr "确保至少匹配 <n> 行上下文"
 
-#: apply.c:4984 builtin/am.c:2196 builtin/interpret-trailers.c:98
+#: apply.c:5025 builtin/am.c:2258 builtin/interpret-trailers.c:98
 #: builtin/interpret-trailers.c:100 builtin/interpret-trailers.c:102
-#: builtin/pack-objects.c:3330 builtin/rebase.c:1421
+#: builtin/pack-objects.c:3562 builtin/rebase.c:1340
 msgid "action"
 msgstr "动作"
 
-#: apply.c:4985
+#: apply.c:5026
 msgid "detect new or modified lines that have whitespace errors"
 msgstr "检查新增和修改的行中间的空白字符滥用"
 
-#: apply.c:4988 apply.c:4991
+#: apply.c:5029 apply.c:5032
 msgid "ignore changes in whitespace when finding context"
 msgstr "查找上下文时忽略空白字符的变更"
 
-#: apply.c:4994
+#: apply.c:5035
 msgid "apply the patch in reverse"
 msgstr "反向应用补丁"
 
-#: apply.c:4996
+#: apply.c:5037
 msgid "don't expect at least one line of context"
 msgstr "无需至少一行上下文"
 
-#: apply.c:4998
+#: apply.c:5039
 msgid "leave the rejected hunks in corresponding *.rej files"
 msgstr "将拒绝的补丁片段保存在对应的 *.rej 文件中"
 
-#: apply.c:5000
+#: apply.c:5041
 msgid "allow overlapping hunks"
 msgstr "允许重叠的补丁片段"
 
-#: apply.c:5001 builtin/add.c:291 builtin/check-ignore.c:22
-#: builtin/commit.c:1337 builtin/count-objects.c:98 builtin/fsck.c:786
-#: builtin/log.c:2068 builtin/mv.c:123 builtin/read-tree.c:128
+#: apply.c:5042 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:2270 builtin/mv.c:123 builtin/read-tree.c:128
 msgid "be verbose"
 msgstr "冗长输出"
 
-#: apply.c:5003
+#: apply.c:5044
 msgid "tolerate incorrectly detected missing new-line at the end of file"
 msgstr "允许不正确的文件末尾换行符"
 
-#: apply.c:5006
+#: apply.c:5047
 msgid "do not trust the line counts in the hunk headers"
 msgstr "不信任补丁片段的头信息中的行号"
 
-#: apply.c:5008 builtin/am.c:2205
+#: apply.c:5049 builtin/am.c:2267
 msgid "root"
 msgstr "根目录"
 
-#: apply.c:5009
+#: apply.c:5050
 msgid "prepend <root> to all filenames"
 msgstr "为所有文件名前添加 <根目录>"
 
+#: archive-tar.c:125 archive-zip.c:345
+#, c-format
+msgid "cannot stream blob %s"
+msgstr "不能打开数据对象 %s"
+
+#: archive-tar.c:265 archive-zip.c:358
+#, c-format
+msgid "unsupported file mode: 0%o (SHA1: %s)"
+msgstr "不支持的文件模式:0%o (SHA1: %s)"
+
+#: archive-tar.c:449
+#, c-format
+msgid "unable to start '%s' filter"
+msgstr "无法启动 '%s' 过滤器"
+
+#: archive-tar.c:452
+msgid "unable to redirect descriptor"
+msgstr "无法重定向描述符"
+
+#: archive-tar.c:459
+#, c-format
+msgid "'%s' filter reported error"
+msgstr "'%s' 过滤器报告了错误"
+
+#: archive-zip.c:318
+#, c-format
+msgid "path is not valid UTF-8: %s"
+msgstr "路径不是有效的 UTF-8:%s"
+
+#: archive-zip.c:322
+#, c-format
+msgid "path too long (%d chars, SHA1: %s): %s"
+msgstr "路径太长(%d 字符,SHA1:%s):%s"
+
+#: archive-zip.c:469 builtin/pack-objects.c:244 builtin/pack-objects.c:247
+#, c-format
+msgid "deflate error (%d)"
+msgstr "压缩错误 (%d)"
+
+#: archive-zip.c:603
+#, c-format
+msgid "timestamp too large for this system: %<PRIuMAX>"
+msgstr "对于本系统时间戳太大:%<PRIuMAX>"
+
 #: archive.c:14
 msgid "git archive [<options>] <tree-ish> [<path>...]"
-msgstr "git archive [<选项>] <树或提交> [<路径>...]"
+msgstr "git archive [<选项>] <树对象> [<路径>...]"
 
 #: archive.c:15
 msgid "git archive --list"
@@ -884,188 +1627,170 @@ msgstr "git archive --list"
 msgid ""
 "git archive --remote <repo> [--exec <cmd>] [<options>] <tree-ish> [<path>...]"
 msgstr ""
-"git archive --remote <仓库> [--exec <命令>] [<选项>] <树或提交> [<路径>...]"
+"git archive --remote <仓库> [--exec <命令>] [<选项>] <树对象> [<路径>...]"
 
 #: archive.c:17
 msgid "git archive --remote <repo> [--exec <cmd>] --list"
 msgstr "git archive --remote <仓库> [--exec <命令>] --list"
 
-#: archive.c:372 builtin/add.c:177 builtin/add.c:516 builtin/rm.c:299
+#: archive.c:192
+#, c-format
+msgid "cannot read %s"
+msgstr "不能读取 %s"
+
+#: archive.c:345 sequencer.c:445 sequencer.c:1706 sequencer.c:2852
+#: sequencer.c:3293 sequencer.c:3402 builtin/am.c:263 builtin/commit.c:786
+#: builtin/merge.c:1124
+#, c-format
+msgid "could not read '%s'"
+msgstr "不能读取 '%s'"
+
+#: archive.c:430 builtin/add.c:181 builtin/add.c:594 builtin/rm.c:315
 #, c-format
 msgid "pathspec '%s' did not match any files"
 msgstr "路径规格 '%s' 未匹配任何文件"
 
-#: archive.c:396
+#: archive.c:454
 #, c-format
 msgid "no such ref: %.*s"
 msgstr "无此引用:%.*s"
 
-#: archive.c:401
+#: archive.c:460
 #, c-format
 msgid "not a valid object name: %s"
 msgstr "不是一个有效的对象名:%s"
 
-#: archive.c:414
+#: archive.c:473
 #, c-format
 msgid "not a tree object: %s"
 msgstr "不是一个树对象:%s"
 
-#: archive.c:426
+#: archive.c:485
 msgid "current working directory is untracked"
 msgstr "当前工作目录未被跟踪"
 
-#: archive.c:457
+#: archive.c:526
+#, c-format
+msgid "File not found: %s"
+msgstr "文件未找到:%s"
+
+#: archive.c:528
+#, c-format
+msgid "Not a regular file: %s"
+msgstr "不是一个常规文件:%s"
+
+#: archive.c:553
 msgid "fmt"
 msgstr "格式"
 
-#: archive.c:457
+#: archive.c:553
 msgid "archive format"
 msgstr "归档格式"
 
-#: archive.c:458 builtin/log.c:1580
+#: archive.c:554 builtin/log.c:1760
 msgid "prefix"
 msgstr "前缀"
 
-#: archive.c:459
+#: archive.c:555
 msgid "prepend prefix to each pathname in the archive"
 msgstr "为归档中每个路径名加上前缀"
 
-#: archive.c:460 builtin/blame.c:862 builtin/blame.c:874 builtin/blame.c:875
-#: builtin/commit-tree.c:117 builtin/config.c:129 builtin/fast-export.c:1134
-#: builtin/fast-export.c:1136 builtin/grep.c:897 builtin/hash-object.c:105
-#: builtin/ls-files.c:560 builtin/ls-files.c:563 builtin/notes.c:412
-#: builtin/notes.c:578 builtin/read-tree.c:123 parse-options.h:177
+#: archive.c:556 archive.c:559 builtin/blame.c:884 builtin/blame.c:888
+#: builtin/blame.c:889 builtin/commit-tree.c:117 builtin/config.c:133
+#: builtin/fast-export.c:1208 builtin/fast-export.c:1210
+#: builtin/fast-export.c:1214 builtin/grep.c:908 builtin/hash-object.c:105
+#: builtin/ls-files.c:561 builtin/ls-files.c:564 builtin/notes.c:412
+#: builtin/notes.c:578 builtin/read-tree.c:123 parse-options.h:190
 msgid "file"
 msgstr "文件"
 
-#: archive.c:461 builtin/archive.c:90
+#: archive.c:557
+msgid "add untracked file to archive"
+msgstr "将未跟踪文件添加到归档"
+
+#: archive.c:560 builtin/archive.c:90
 msgid "write the archive to this file"
 msgstr "归档写入此文件"
 
-#: archive.c:463
+#: archive.c:562
 msgid "read .gitattributes in working directory"
 msgstr "读取工作区中的 .gitattributes"
 
-#: archive.c:464
+#: archive.c:563
 msgid "report archived files on stderr"
 msgstr "在标准错误上报告归档文件"
 
-#: archive.c:465
+#: archive.c:564
 msgid "store only"
 msgstr "只存储"
 
-#: archive.c:466
+#: archive.c:565
 msgid "compress faster"
 msgstr "压缩速度更快"
 
-#: archive.c:474
+#: archive.c:573
 msgid "compress better"
 msgstr "压缩效果更好"
 
-#: archive.c:477
+#: archive.c:576
 msgid "list supported archive formats"
 msgstr "列出支持的归档格式"
 
-#: archive.c:479 builtin/archive.c:91 builtin/clone.c:113 builtin/clone.c:116
-#: builtin/submodule--helper.c:1379 builtin/submodule--helper.c:1859
+#: archive.c:578 builtin/archive.c:91 builtin/clone.c:113 builtin/clone.c:116
+#: builtin/submodule--helper.c:1830 builtin/submodule--helper.c:2335
 msgid "repo"
 msgstr "仓库"
 
-#: archive.c:480 builtin/archive.c:92
+#: archive.c:579 builtin/archive.c:92
 msgid "retrieve the archive from remote repository <repo>"
 msgstr "从远程仓库(<仓库>)提取归档文件"
 
-#: archive.c:481 builtin/archive.c:93 builtin/difftool.c:707
+#: archive.c:580 builtin/archive.c:93 builtin/difftool.c:715
 #: builtin/notes.c:498
 msgid "command"
 msgstr "命令"
 
-#: archive.c:482 builtin/archive.c:94
+#: archive.c:581 builtin/archive.c:94
 msgid "path to the remote git-upload-archive command"
 msgstr "远程 git-upload-archive 命令的路径"
 
-#: archive.c:489
+#: archive.c:588
 msgid "Unexpected option --remote"
 msgstr "未知参数 --remote"
 
-#: archive.c:491
+#: archive.c:590
 msgid "Option --exec can only be used together with --remote"
 msgstr "选项 --exec 只能和 --remote 同时使用"
 
-#: archive.c:493
+#: archive.c:592
 msgid "Unexpected option --output"
 msgstr "未知参数 --output"
 
-#: archive.c:515
+#: archive.c:594
+msgid "Options --add-file and --remote cannot be used together"
+msgstr "选项 --add-file 和 --remote 不能同时使用"
+
+#: archive.c:616
 #, c-format
 msgid "Unknown archive format '%s'"
 msgstr "未知归档格式 '%s'"
 
-#: archive.c:522
+#: archive.c:623
 #, c-format
 msgid "Argument not supported for format '%s': -%d"
 msgstr "参数不支持此格式 '%s':-%d"
 
-#: archive-tar.c:125 archive-zip.c:345
-#, c-format
-msgid "cannot stream blob %s"
-msgstr "不能打开数据对象 %s"
-
-#: archive-tar.c:260 archive-zip.c:363
-#, c-format
-msgid "unsupported file mode: 0%o (SHA1: %s)"
-msgstr "不支持的文件模式:0%o (SHA1: %s)"
-
-#: archive-tar.c:287 archive-zip.c:353
-#, c-format
-msgid "cannot read %s"
-msgstr "不能读取 %s"
-
-#: archive-tar.c:459
-#, c-format
-msgid "unable to start '%s' filter"
-msgstr "无法启动 '%s' 过滤器"
-
-#: archive-tar.c:462
-msgid "unable to redirect descriptor"
-msgstr "无法重定向描述符"
-
-#: archive-tar.c:469
-#, c-format
-msgid "'%s' filter reported error"
-msgstr "'%s' 过滤器报告了错误"
-
-#: archive-zip.c:314
-#, c-format
-msgid "path is not valid UTF-8: %s"
-msgstr "路径不是有效的 UTF-8:%s"
-
-#: archive-zip.c:318
-#, c-format
-msgid "path too long (%d chars, SHA1: %s): %s"
-msgstr "路径太长(%d 字符,SHA1:%s):%s"
-
-#: archive-zip.c:474 builtin/pack-objects.c:230 builtin/pack-objects.c:233
-#, c-format
-msgid "deflate error (%d)"
-msgstr "压缩错误 (%d)"
-
-#: archive-zip.c:609
-#, c-format
-msgid "timestamp too large for this system: %<PRIuMAX>"
-msgstr "对于本系统时间戳太大:%<PRIuMAX>"
-
-#: attr.c:211
+#: attr.c:212
 #, c-format
 msgid "%.*s is not a valid attribute name"
 msgstr "%.*s 不是一个有效的属性名"
 
-#: attr.c:368
+#: attr.c:369
 #, c-format
 msgid "%s not allowed: %s:%d"
 msgstr "不允许 %s:%s:%d"
 
-#: attr.c:408
+#: attr.c:409
 msgid ""
 "Negative patterns are ignored in git attributes\n"
 "Use '\\!' for literal leading exclamation."
@@ -1073,22 +1798,22 @@ msgstr ""
 "负值模版在 git attributes 中被忽略\n"
 "当字符串确实要以感叹号开始时,使用 '\\!'。"
 
-#: bisect.c:468
+#: bisect.c:476
 #, c-format
 msgid "Badly quoted content in file '%s': %s"
 msgstr "文件 '%s' 包含错误的引用格式:%s"
 
-#: bisect.c:678
+#: bisect.c:686
 #, c-format
 msgid "We cannot bisect more!\n"
 msgstr "我们无法进行更多的二分查找!\n"
 
-#: bisect.c:733
+#: bisect.c:753
 #, c-format
 msgid "Not a valid commit name %s"
 msgstr "不是一个有效的提交名 %s"
 
-#: bisect.c:758
+#: bisect.c:778
 #, c-format
 msgid ""
 "The merge base %s is bad.\n"
@@ -1097,7 +1822,7 @@ msgstr ""
 "合并基线 %s 是坏的。\n"
 "这意味着介于 %s 和 [%s] 之间的 bug 已经被修复。\n"
 
-#: bisect.c:763
+#: bisect.c:783
 #, c-format
 msgid ""
 "The merge base %s is new.\n"
@@ -1106,7 +1831,7 @@ msgstr ""
 "合并基线 %s 是新的。\n"
 "介于 %s 和 [%s] 之间的属性已经被修改。\n"
 
-#: bisect.c:768
+#: bisect.c:788
 #, c-format
 msgid ""
 "The merge base %s is %s.\n"
@@ -1115,7 +1840,7 @@ msgstr ""
 "合并基线 %s 是 %s。\n"
 "这意味着第一个 '%s' 提交位于 %s 和 [%s] 之间。\n"
 
-#: bisect.c:776
+#: bisect.c:796
 #, c-format
 msgid ""
 "Some %s revs are not ancestors of the %s rev.\n"
@@ -1126,7 +1851,7 @@ msgstr ""
 "这种情况下 git 二分查找无法正常工作。\n"
 "您可能弄错了 %s 和 %s 版本?\n"
 
-#: bisect.c:789
+#: bisect.c:809
 #, c-format
 msgid ""
 "the merge base between %s and [%s] must be skipped.\n"
@@ -1137,36 +1862,36 @@ msgstr ""
 "所以我们无法确认第一个 %s 提交是否介于 %s 和 %s 之间。\n"
 "我们仍旧继续。"
 
-#: bisect.c:822
+#: bisect.c:848
 #, c-format
 msgid "Bisecting: a merge base must be tested\n"
 msgstr "二分查找中:合并基线必须是经过测试的\n"
 
-#: bisect.c:865
+#: bisect.c:898
 #, c-format
 msgid "a %s revision is needed"
 msgstr "需要一个 %s 版本"
 
-#: bisect.c:884 builtin/notes.c:177 builtin/tag.c:254
+#: bisect.c:928 builtin/notes.c:177 builtin/tag.c:255
 #, c-format
 msgid "could not create file '%s'"
 msgstr "不能创建文件 '%s'"
 
-#: bisect.c:928 builtin/merge.c:148
+#: bisect.c:974 builtin/merge.c:150
 #, c-format
 msgid "could not read file '%s'"
 msgstr "不能读取文件 '%s'"
 
-#: bisect.c:958
+#: bisect.c:1014
 msgid "reading bisect refs failed"
 msgstr "读取二分查找引用失败"
 
-#: bisect.c:977
+#: bisect.c:1044
 #, c-format
 msgid "%s was both %s and %s\n"
 msgstr "%s 同时为 %s 和 %s\n"
 
-#: bisect.c:985
+#: bisect.c:1053
 #, c-format
 msgid ""
 "No testable commit found.\n"
@@ -1175,7 +1900,7 @@ msgstr ""
 "没有发现可测试的提交。\n"
 "可能您在运行时使用了错误的路径参数?\n"
 
-#: bisect.c:1004
+#: bisect.c:1082
 #, c-format
 msgid "(roughly %d step)"
 msgid_plural "(roughly %d steps)"
@@ -1185,44 +1910,44 @@ msgstr[1] "(大概 %d 步)"
 #. TRANSLATORS: the last %s will be replaced with "(roughly %d
 #. steps)" translation.
 #.
-#: bisect.c:1010
+#: bisect.c:1088
 #, c-format
 msgid "Bisecting: %d revision left to test after this %s\n"
 msgid_plural "Bisecting: %d revisions left to test after this %s\n"
 msgstr[0] "二分查找中:在此之后,还剩 %d 个版本待测试 %s\n"
 msgstr[1] "二分查找中:在此之后,还剩 %d 个版本待测试 %s\n"
 
-#: blame.c:2697
+#: blame.c:2778
 msgid "--contents and --reverse do not blend well."
 msgstr "--contents 和 --reverse 不能混用。"
 
-#: blame.c:2711
+#: blame.c:2792
 msgid "cannot use --contents with final commit object name"
 msgstr "不能将 --contents 和最终的提交对象名共用"
 
-#: blame.c:2732
+#: blame.c:2813
 msgid "--reverse and --first-parent together require specified latest commit"
 msgstr "--reverse 和 --first-parent 共用,需要指定最新的提交"
 
-#: blame.c:2741 bundle.c:167 ref-filter.c:2196 remote.c:1938 sequencer.c:2033
-#: sequencer.c:4348 builtin/commit.c:1020 builtin/log.c:387 builtin/log.c:963
-#: builtin/log.c:1451 builtin/log.c:1827 builtin/log.c:2117 builtin/merge.c:411
-#: builtin/pack-objects.c:3148 builtin/pack-objects.c:3163
-#: builtin/shortlog.c:192
+#: blame.c:2822 bundle.c:213 ref-filter.c:2264 remote.c:2020 sequencer.c:2105
+#: sequencer.c:4606 submodule.c:855 builtin/commit.c:1045 builtin/log.c:404
+#: builtin/log.c:1020 builtin/log.c:1622 builtin/log.c:2029 builtin/log.c:2319
+#: builtin/merge.c:414 builtin/pack-objects.c:3380 builtin/pack-objects.c:3395
+#: builtin/shortlog.c:320
 msgid "revision walk setup failed"
 msgstr "版本遍历设置失败"
 
-#: blame.c:2759
+#: blame.c:2840
 msgid ""
 "--reverse --first-parent together require range along first-parent chain"
 msgstr "--reverse 和 --first-parent 共用,需要第一祖先链上的提交范围"
 
-#: blame.c:2770
+#: blame.c:2851
 #, c-format
 msgid "no such path %s in %s"
 msgstr "在 %2$s 中无此路径 %1$s"
 
-#: blame.c:2781
+#: blame.c:2862
 #, c-format
 msgid "cannot read blob %s for path %s"
 msgstr "不能为路径 %2$s 读取数据对象 %1$s"
@@ -1350,409 +2075,444 @@ msgstr "歧义的对象名:'%s'。"
 msgid "Not a valid branch point: '%s'."
 msgstr "无效的分支点:'%s'。"
 
-#: branch.c:364
+#: branch.c:365
 #, c-format
 msgid "'%s' is already checked out at '%s'"
 msgstr "'%s' 已经检出到 '%s'"
 
-#: branch.c:387
+#: branch.c:388
 #, c-format
 msgid "HEAD of working tree %s is not updated"
 msgstr "工作区 %s 的 HEAD 指向没有被更新"
 
-#: bundle.c:36
+#: bundle.c:41
+#, c-format
+msgid "unrecognized bundle hash algorithm: %s"
+msgstr "未能识别的归档包哈希算法:%s"
+
+#: bundle.c:45
+#, c-format
+msgid "unknown capability '%s'"
+msgstr "未知能力 '%s'"
+
+#: bundle.c:71
 #, c-format
-msgid "'%s' does not look like a v2 bundle file"
-msgstr "'%s' 不像是一个 v2 版本的包文件"
+msgid "'%s' does not look like a v2 or v3 bundle file"
+msgstr "'%s' 不像是一个 v2 或 v3 版本的归档包文件"
 
-#: bundle.c:64
+#: bundle.c:110
 #, c-format
 msgid "unrecognized header: %s%s (%d)"
 msgstr "未能识别的包头:%s%s (%d)"
 
-#: bundle.c:90 rerere.c:480 rerere.c:690 sequencer.c:2283 sequencer.c:3024
-#: builtin/commit.c:791
+#: bundle.c:136 rerere.c:480 rerere.c:690 sequencer.c:2357 sequencer.c:3142
+#: builtin/commit.c:814
 #, c-format
 msgid "could not open '%s'"
 msgstr "不能打开 '%s'"
 
-#: bundle.c:143
+#: bundle.c:189
 msgid "Repository lacks these prerequisite commits:"
 msgstr "仓库中缺少这些必备的提交:"
 
-#: bundle.c:146
+#: bundle.c:192
 msgid "need a repository to verify a bundle"
-msgstr "需要一个仓库来校验一个包"
+msgstr "需要一个仓库来校验一个归档包"
 
-#: bundle.c:197
+#: bundle.c:243
 #, c-format
 msgid "The bundle contains this ref:"
 msgid_plural "The bundle contains these %d refs:"
-msgstr[0] "这个包中含有这个引用:"
-msgstr[1] "这个包中含有 %d 个引用:"
+msgstr[0] "这个归档包中含有这个引用:"
+msgstr[1] "这个归档包中含有 %d 个引用:"
 
-#: bundle.c:204
+#: bundle.c:250
 msgid "The bundle records a complete history."
-msgstr "这个包记录一个完整历史。"
+msgstr "这个归档包记录一个完整历史。"
 
-#: bundle.c:206
+#: bundle.c:252
 #, c-format
 msgid "The bundle requires this ref:"
 msgid_plural "The bundle requires these %d refs:"
-msgstr[0] "这个包需要这个引用:"
-msgstr[1] "这个包需要 %d 个引用:"
+msgstr[0] "这个归档包需要这个引用:"
+msgstr[1] "这个归档包需要 %d 个引用:"
 
-#: bundle.c:272
+#: bundle.c:319
 msgid "unable to dup bundle descriptor"
-msgstr "无法复制 bundle 描述符"
+msgstr "无法复制归档包描述符"
 
-#: bundle.c:279
+#: bundle.c:326
 msgid "Could not spawn pack-objects"
 msgstr "不能生成 pack-objects 进程"
 
-#: bundle.c:290
+#: bundle.c:337
 msgid "pack-objects died"
 msgstr "pack-objects 终止"
 
-#: bundle.c:332
+#: bundle.c:379
 msgid "rev-list died"
 msgstr "rev-list 终止"
 
-#: bundle.c:381
+#: bundle.c:428
 #, c-format
 msgid "ref '%s' is excluded by the rev-list options"
 msgstr "引用 '%s' 被 rev-list 选项排除"
 
-#: bundle.c:460 builtin/log.c:202 builtin/log.c:1732 builtin/shortlog.c:306
+#: bundle.c:498
+#, c-format
+msgid "unsupported bundle version %d"
+msgstr "不支持的归档包版本 %d"
+
+#: bundle.c:500
+#, c-format
+msgid "cannot write bundle version %d with algorithm %s"
+msgstr "不能写入,归档包版本 %d 不支持算法 %s"
+
+#: bundle.c:522 builtin/log.c:207 builtin/log.c:1918 builtin/shortlog.c:461
 #, c-format
 msgid "unrecognized argument: %s"
 msgstr "未能识别的参数:%s"
 
-#: bundle.c:468
+#: bundle.c:530
 msgid "Refusing to create empty bundle."
-msgstr "不能创建空包。"
+msgstr "不能创建空的归档包。"
 
-#: bundle.c:478
+#: bundle.c:540
 #, c-format
 msgid "cannot create '%s'"
 msgstr "不能创建 '%s'"
 
-#: bundle.c:503
+#: bundle.c:565
 msgid "index-pack died"
 msgstr "index-pack 终止"
 
-#: color.c:296
+#: color.c:329
 #, c-format
 msgid "invalid color value: %.*s"
 msgstr "无效的颜色值:%.*s"
 
-#: commit.c:50 sequencer.c:2727 builtin/am.c:355 builtin/am.c:399
-#: builtin/am.c:1378 builtin/am.c:2020 builtin/replace.c:455
-#, c-format
-msgid "could not parse %s"
-msgstr "不能解析 %s"
-
-#: commit.c:52
-#, c-format
-msgid "%s %s is not a commit!"
-msgstr "%s %s 不是一个提交!"
-
-#: commit.c:192
-msgid ""
-"Support for <GIT_DIR>/info/grafts is deprecated\n"
-"and will be removed in a future Git version.\n"
-"\n"
-"Please use \"git replace --convert-graft-file\"\n"
-"to convert the grafts into replace refs.\n"
-"\n"
-"Turn this message off by running\n"
-"\"git config advice.graftFileDeprecated false\""
-msgstr ""
-"对 <GIT_DIR>/info/grafts 的支持已被弃用,并将在\n"
-"未来的Git版本中被移除。\n"
-"\n"
-"请使用 \"git replace --convert-graft-file\" 将\n"
-"grafts 转换为替换引用。\n"
-"\n"
-"设置 \"git config advice.graftFileDeprecated false\"\n"
-"可关闭本消息"
-
-#: commit.c:1127
-#, c-format
-msgid "Commit %s has an untrusted GPG signature, allegedly by %s."
-msgstr "提交 %s 有一个非可信的声称来自 %s 的 GPG 签名。"
-
-#: commit.c:1130
-#, c-format
-msgid "Commit %s has a bad GPG signature allegedly by %s."
-msgstr "提交 %s 有一个错误的声称来自 %s 的 GPG 签名。"
-
-#: commit.c:1133
-#, c-format
-msgid "Commit %s does not have a GPG signature."
-msgstr "提交 %s 没有 GPG 签名。"
-
-#: commit.c:1136
-#, c-format
-msgid "Commit %s has a good GPG signature by %s\n"
-msgstr "提交 %s 有一个来自 %s 的好的 GPG 签名。\n"
-
-#: commit.c:1390
-msgid ""
-"Warning: commit message did not conform to UTF-8.\n"
-"You may want to amend it after fixing the message, or set the config\n"
-"variable i18n.commitencoding to the encoding your project uses.\n"
-msgstr ""
-"警告:提交说明不符合 UTF-8 字符编码。\n"
-"您可以通过修补提交来改正提交说明,或者将配置变量 i18n.commitencoding\n"
-"设置为您项目所用的字符编码。\n"
+#: commit-graph.c:188 midx.c:46
+msgid "invalid hash version"
+msgstr "无效的哈希版本"
 
-#: commit-graph.c:127
+#: commit-graph.c:246
 msgid "commit-graph file is too small"
 msgstr "提交图形文件太小"
 
-#: commit-graph.c:192
+#: commit-graph.c:311
 #, c-format
 msgid "commit-graph signature %X does not match signature %X"
 msgstr "提交图形签名 %X 和签名 %X 不匹配"
 
-#: commit-graph.c:199
+#: commit-graph.c:318
 #, c-format
 msgid "commit-graph version %X does not match version %X"
 msgstr "提交图形版本 %X 和版本 %X 不匹配"
 
-#: commit-graph.c:206
+#: commit-graph.c:325
 #, c-format
 msgid "commit-graph hash version %X does not match version %X"
 msgstr "提交图形哈希版本 %X 和版本 %X 不匹配"
 
-#: commit-graph.c:229
-msgid "commit-graph chunk lookup table entry missing; file may be incomplete"
-msgstr "提交图形块查找表条目丢失,文件可能不完整"
+#: commit-graph.c:342
+#, c-format
+msgid "commit-graph file is too small to hold %u chunks"
+msgstr "提交图形文件太小,容不下 %u 个块"
 
-#: commit-graph.c:240
+#: commit-graph.c:361
 #, c-format
 msgid "commit-graph improper chunk offset %08x%08x"
 msgstr "提交图形不正确的块偏移 %08x%08x"
 
-#: commit-graph.c:283
+#: commit-graph.c:433
 #, c-format
 msgid "commit-graph chunk id %08x appears multiple times"
 msgstr "提交图形块 id %08x 出现了多次"
 
-#: commit-graph.c:347
+#: commit-graph.c:499
 msgid "commit-graph has no base graphs chunk"
 msgstr "提交图形没有基础图形块"
 
-#: commit-graph.c:357
+#: commit-graph.c:509
 msgid "commit-graph chain does not match"
 msgstr "提交图形链不匹配"
 
-#: commit-graph.c:404
+#: commit-graph.c:557
 #, c-format
 msgid "invalid commit-graph chain: line '%s' not a hash"
 msgstr "无效的提交图形链:行 '%s' 不是一个哈希值"
 
-#: commit-graph.c:430
+#: commit-graph.c:581
 msgid "unable to find all commit-graph files"
 msgstr "无法找到所有提交图形文件"
 
-#: commit-graph.c:554 commit-graph.c:614
+#: commit-graph.c:721 commit-graph.c:785
 msgid "invalid commit position. commit-graph is likely corrupt"
 msgstr "无效的提交位置。提交图形可能已损坏"
 
-#: commit-graph.c:575
+#: commit-graph.c:742
 #, c-format
 msgid "could not find commit %s"
 msgstr "无法找到提交 %s"
 
-#: commit-graph.c:1002 builtin/pack-objects.c:2657
+#: commit-graph.c:1042 builtin/am.c:1306
+#, c-format
+msgid "unable to parse commit %s"
+msgstr "不能解析提交 %s"
+
+#: commit-graph.c:1265 builtin/pack-objects.c:2864
 #, c-format
 msgid "unable to get type of object %s"
 msgstr "无法获得对象 %s 类型"
 
-#: commit-graph.c:1034
+#: commit-graph.c:1301
 msgid "Loading known commits in commit graph"
 msgstr "正在加载提交图中的已知提交"
 
-#: commit-graph.c:1051
+#: commit-graph.c:1318
 msgid "Expanding reachable commits in commit graph"
 msgstr "正在扩展提交图中的可达提交"
 
-#: commit-graph.c:1070
+#: commit-graph.c:1338
 msgid "Clearing commit marks in commit graph"
 msgstr "正在清除提交图中的提交标记"
 
-#: commit-graph.c:1089
+#: commit-graph.c:1357
 msgid "Computing commit graph generation numbers"
 msgstr "正在计算提交图世代数字"
 
-#: commit-graph.c:1163
+#: commit-graph.c:1424
+msgid "Computing commit changed paths Bloom filters"
+msgstr "计算提交变更路径的布隆过滤器"
+
+#: commit-graph.c:1501
+msgid "Collecting referenced commits"
+msgstr "正在收集引用的提交"
+
+#: commit-graph.c:1526
 #, 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:1176
+#: commit-graph.c:1539
 #, c-format
 msgid "error adding pack %s"
 msgstr "添加包 %s 出错"
 
-#: commit-graph.c:1180
+#: commit-graph.c:1543
 #, c-format
 msgid "error opening index for %s"
 msgstr "为 %s 打开索引出错"
 
-#: commit-graph.c:1204
-#, c-format
-msgid "Finding commits for commit graph from %d ref"
-msgid_plural "Finding commits for commit graph from %d refs"
-msgstr[0] "正在从 %d 个引用中查找提交图的提交"
-msgstr[1] "正在从 %d 个引用中查找提交图的提交"
-
-#: commit-graph.c:1238
+#: commit-graph.c:1582
 msgid "Finding commits for commit graph among packed objects"
 msgstr "正在打包对象中查找提交图的提交"
 
-#: commit-graph.c:1253
+#: commit-graph.c:1597
 msgid "Counting distinct commits in commit graph"
 msgstr "正在计算提交图中不同的提交"
 
-#: commit-graph.c:1284
+#: commit-graph.c:1629
 msgid "Finding extra edges in commit graph"
 msgstr "正在查找提交图中额外的边"
 
-#: commit-graph.c:1332
+#: commit-graph.c:1678
 msgid "failed to write correct number of base graph ids"
 msgstr "无法写入正确数量的基础图形 ID"
 
-#: commit-graph.c:1365 midx.c:811
+#: commit-graph.c:1720 midx.c:826
 #, c-format
 msgid "unable to create leading directories of %s"
 msgstr "不能为 %s 创建先导目录"
 
-#: commit-graph.c:1377 builtin/index-pack.c:306 builtin/repack.c:240
+#: commit-graph.c:1733
+msgid "unable to create temporary graph layer"
+msgstr "无法创建临时图层"
+
+#: commit-graph.c:1738
 #, c-format
-msgid "unable to create '%s'"
-msgstr "不能创建 '%s'"
+msgid "unable to adjust shared permissions for '%s'"
+msgstr "无法为 '%s' 调整共享权限"
 
-#: commit-graph.c:1437
+#: commit-graph.c:1808
 #, 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:1478
+#: commit-graph.c:1853
 msgid "unable to open commit-graph chain file"
 msgstr "无法打开提交图形链文件"
 
-#: commit-graph.c:1490
+#: commit-graph.c:1869
 msgid "failed to rename base commit-graph file"
 msgstr "无法重命名基础提交图形文件"
 
-#: commit-graph.c:1510
+#: commit-graph.c:1889
 msgid "failed to rename temporary commit-graph file"
 msgstr "无法重命名临时提交图形文件"
 
-#: commit-graph.c:1621
+#: commit-graph.c:2015
 msgid "Scanning merged commits"
 msgstr "正在扫描合并提交"
 
-#: commit-graph.c:1632
+#: commit-graph.c:2026
 #, c-format
 msgid "unexpected duplicate commit id %s"
 msgstr "意外的重复提交 ID %s"
 
-#: commit-graph.c:1657
+#: commit-graph.c:2049
 msgid "Merging commit-graph"
 msgstr "正在合并提交图形"
 
-#: commit-graph.c:1844
+#: commit-graph.c:2259
 #, c-format
 msgid "the commit graph format cannot write %d commits"
 msgstr "提交图格式不能写入 %d 个提交"
 
-#: commit-graph.c:1855
+#: commit-graph.c:2270
 msgid "too many commits to write graph"
 msgstr "提交太多不能画图"
 
-#: commit-graph.c:1945
+#: commit-graph.c:2363
 msgid "the commit-graph file has incorrect checksum and is likely corrupt"
 msgstr "提交图文件的校验码错误,可能已经损坏"
 
-#: commit-graph.c:1955
+#: commit-graph.c:2373
 #, c-format
 msgid "commit-graph has incorrect OID order: %s then %s"
 msgstr "提交图形的对象 ID 顺序不正确:%s 然后 %s"
 
-#: commit-graph.c:1965 commit-graph.c:1980
+#: commit-graph.c:2383 commit-graph.c:2398
 #, c-format
 msgid "commit-graph has incorrect fanout value: fanout[%d] = %u != %u"
 msgstr "提交图形有不正确的扇出值:fanout[%d] = %u != %u"
 
-#: commit-graph.c:1972
+#: commit-graph.c:2390
 #, c-format
 msgid "failed to parse commit %s from commit-graph"
 msgstr "无法从提交图形中解析提交 %s"
 
-#: commit-graph.c:1989
+#: commit-graph.c:2408
 msgid "Verifying commits in commit graph"
 msgstr "正在校验提交图中的提交"
 
-#: commit-graph.c:2002
+#: commit-graph.c:2423
 #, c-format
 msgid "failed to parse commit %s from object database for commit-graph"
 msgstr "无法从提交图形的对象库中解析提交 %s"
 
-#: commit-graph.c:2009
+#: commit-graph.c:2430
 #, c-format
 msgid "root tree OID for commit %s in commit-graph is %s != %s"
 msgstr "提交图形中的提交 %s 的根树对象 ID 是 %s != %s"
 
-#: commit-graph.c:2019
+#: commit-graph.c:2440
 #, c-format
 msgid "commit-graph parent list for commit %s is too long"
 msgstr "提交 %s 的提交图形父提交列表太长了"
 
-#: commit-graph.c:2028
+#: commit-graph.c:2449
 #, c-format
 msgid "commit-graph parent for %s is %s != %s"
 msgstr "%s 的提交图形父提交是 %s != %s"
 
-#: commit-graph.c:2041
+#: commit-graph.c:2463
 #, c-format
 msgid "commit-graph parent list for commit %s terminates early"
 msgstr "提交 %s 的提交图形父提交列表过早终止"
 
-#: commit-graph.c:2046
+#: commit-graph.c:2468
 #, c-format
 msgid ""
 "commit-graph has generation number zero for commit %s, but non-zero elsewhere"
 msgstr "提交图形中提交 %s 的世代号是零,但其它地方非零"
 
-#: commit-graph.c:2050
+#: commit-graph.c:2472
 #, c-format
 msgid ""
 "commit-graph has non-zero generation number for commit %s, but zero elsewhere"
 msgstr "提交图形中提交 %s 的世代号非零,但其它地方是零"
 
-#: commit-graph.c:2065
+#: commit-graph.c:2488
 #, c-format
 msgid "commit-graph generation for commit %s is %u != %u"
 msgstr "提交图形中的提交 %s 的世代号是 %u != %u"
 
-#: commit-graph.c:2071
+#: commit-graph.c:2494
 #, c-format
 msgid "commit date for commit %s in commit-graph is %<PRIuMAX> != %<PRIuMAX>"
 msgstr "提交图形中提交 %s 的提交日期是 %<PRIuMAX> != %<PRIuMAX>"
 
+#: commit.c:52 sequencer.c:2845 builtin/am.c:373 builtin/am.c:417
+#: builtin/am.c:1385 builtin/am.c:2031 builtin/replace.c:457
+#, c-format
+msgid "could not parse %s"
+msgstr "不能解析 %s"
+
+#: commit.c:54
+#, c-format
+msgid "%s %s is not a commit!"
+msgstr "%s %s 不是一个提交!"
+
+#: commit.c:194
+msgid ""
+"Support for <GIT_DIR>/info/grafts is deprecated\n"
+"and will be removed in a future Git version.\n"
+"\n"
+"Please use \"git replace --convert-graft-file\"\n"
+"to convert the grafts into replace refs.\n"
+"\n"
+"Turn this message off by running\n"
+"\"git config advice.graftFileDeprecated false\""
+msgstr ""
+"对 <GIT_DIR>/info/grafts 的支持已过时,并将在\n"
+"未来的Git版本中被移除。\n"
+"\n"
+"请使用 \"git replace --convert-graft-file\" 将\n"
+"grafts 转换为替换引用。\n"
+"\n"
+"设置 \"git config advice.graftFileDeprecated false\"\n"
+"可关闭本消息"
+
+#: commit.c:1172
+#, c-format
+msgid "Commit %s has an untrusted GPG signature, allegedly by %s."
+msgstr "提交 %s 有一个非可信的声称来自 %s 的 GPG 签名。"
+
+#: commit.c:1176
+#, c-format
+msgid "Commit %s has a bad GPG signature allegedly by %s."
+msgstr "提交 %s 有一个错误的声称来自 %s 的 GPG 签名。"
+
+#: commit.c:1179
+#, c-format
+msgid "Commit %s does not have a GPG signature."
+msgstr "提交 %s 没有 GPG 签名。"
+
+#: commit.c:1182
+#, c-format
+msgid "Commit %s has a good GPG signature by %s\n"
+msgstr "提交 %s 有一个来自 %s 的好的 GPG 签名。\n"
+
+#: commit.c:1436
+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"
+"variable i18n.commitencoding to the encoding your project uses.\n"
+msgstr ""
+"警告:提交说明不符合 UTF-8 字符编码。\n"
+"您可以通过修补提交来改正提交说明,或者将配置变量 i18n.commitencoding\n"
+"设置为您项目所用的字符编码。\n"
+
 #: compat/obstack.c:406 compat/obstack.c:408
 msgid "memory exhausted"
 msgstr "内存耗尽"
 
-#: config.c:124
+#: config.c:125
 #, c-format
 msgid ""
 "exceeded maximum include depth (%d) while including\n"
@@ -1767,294 +2527,289 @@ msgstr ""
 "\t%2$s\n"
 "这可能是因为循环包含。"
 
-#: config.c:140
+#: config.c:141
 #, c-format
 msgid "could not expand include path '%s'"
 msgstr "无法扩展包含路径 '%s'"
 
-#: config.c:151
+#: config.c:152
 msgid "relative config includes must come from files"
 msgstr "相对路径的配置文件引用必须来自于文件"
 
-#: config.c:197
+#: config.c:198
 msgid "relative config include conditionals must come from files"
 msgstr "相对路径的配置文件条件引用必须来自于文件"
 
-#: config.c:376
+#: config.c:378
 #, c-format
 msgid "key does not contain a section: %s"
 msgstr "键名没有包含一个小节名称:%s"
 
-#: config.c:382
+#: config.c:384
 #, c-format
 msgid "key does not contain variable name: %s"
 msgstr "键名没有包含变量名:%s"
 
-#: config.c:406 sequencer.c:2463
+#: config.c:408 sequencer.c:2547
 #, c-format
 msgid "invalid key: %s"
 msgstr "无效键名:%s"
 
-#: config.c:412
+#: config.c:414
 #, c-format
 msgid "invalid key (newline): %s"
 msgstr "无效键名(有换行符):%s"
 
-#: config.c:448 config.c:460
+#: config.c:450 config.c:462
 #, c-format
 msgid "bogus config parameter: %s"
 msgstr "伪配置参数:%s"
 
-#: config.c:495
+#: config.c:497
 #, c-format
 msgid "bogus format in %s"
 msgstr "%s 中格式错误"
 
-#: config.c:821
+#: config.c:836
 #, c-format
 msgid "bad config line %d in blob %s"
 msgstr "数据对象 %2$s 中错误的配置行 %1$d"
 
-#: config.c:825
+#: config.c:840
 #, c-format
 msgid "bad config line %d in file %s"
 msgstr "文件 %2$s 中错误的配置行 %1$d"
 
-#: config.c:829
+#: config.c:844
 #, c-format
 msgid "bad config line %d in standard input"
 msgstr "标准输入中错误的配置行 %d"
 
-#: config.c:833
+#: config.c:848
 #, c-format
 msgid "bad config line %d in submodule-blob %s"
 msgstr "子模组数据对象 %2$s 中错误的配置行 %1$d"
 
-#: config.c:837
+#: config.c:852
 #, c-format
 msgid "bad config line %d in command line %s"
 msgstr "命令行 %2$s 中错误的配置行 %1$d"
 
-#: config.c:841
+#: config.c:856
 #, c-format
 msgid "bad config line %d in %s"
 msgstr "在 %2$s 中错误的配置行 %1$d"
 
-#: config.c:978
+#: config.c:993
 msgid "out of range"
 msgstr "超出范围"
 
-#: config.c:978
+#: config.c:993
 msgid "invalid unit"
 msgstr "无效的单位"
 
-#: config.c:979
+#: config.c:994
 #, c-format
 msgid "bad numeric config value '%s' for '%s': %s"
 msgstr "配置变量 '%2$s' 的数字取值 '%1$s' 设置错误:%3$s"
 
-#: config.c:998
+#: config.c:1013
 #, 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:1001
+#: config.c:1016
 #, 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:1004
+#: config.c:1019
 #, c-format
 msgid "bad numeric config value '%s' for '%s' in standard input: %s"
 msgstr "标准输入中配置变量 '%2$s' 错误的取值 '%1$s':%3$s"
 
-#: config.c:1007
+#: config.c:1022
 #, 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:1010
+#: config.c:1025
 #, 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:1013
+#: config.c:1028
 #, c-format
 msgid "bad numeric config value '%s' for '%s' in %s: %s"
 msgstr "在 %3$s 中配置变量 '%2$s' 错误的取值 '%1$s':%4$s"
 
-#: config.c:1108
+#: config.c:1123
 #, c-format
 msgid "failed to expand user dir in: '%s'"
 msgstr "无法扩展用户目录:'%s'"
 
-#: config.c:1117
+#: config.c:1132
 #, c-format
 msgid "'%s' for '%s' is not a valid timestamp"
 msgstr "'%2$s' 的值 '%1$s' 不是一个有效的时间戳"
 
-#: config.c:1208
+#: config.c:1223
 #, c-format
 msgid "abbrev length out of range: %d"
 msgstr "缩写长度超出范围:%d"
 
-#: config.c:1222 config.c:1233
+#: config.c:1237 config.c:1248
 #, c-format
 msgid "bad zlib compression level %d"
 msgstr "错误的 zlib 压缩级别 %d"
 
-#: config.c:1325
+#: config.c:1340
 msgid "core.commentChar should only be one character"
 msgstr "core.commentChar 应该是一个字符"
 
-#: config.c:1358
+#: config.c:1373
 #, c-format
 msgid "invalid mode for object creation: %s"
 msgstr "无效的对象创建模式:%s"
 
-#: config.c:1430
+#: config.c:1445
 #, c-format
 msgid "malformed value for %s"
 msgstr "%s 的取值格式错误"
 
-#: config.c:1456
+#: config.c:1471
 #, c-format
 msgid "malformed value for %s: %s"
 msgstr "%s 的取值格式错误:%s"
 
-#: config.c:1457
+#: config.c:1472
 msgid "must be one of nothing, matching, simple, upstream or current"
 msgstr "必须是其中之一:nothing、matching、simple、upstream 或 current"
 
-#: config.c:1518 builtin/pack-objects.c:3410
+#: config.c:1533 builtin/pack-objects.c:3649
 #, c-format
 msgid "bad pack compression level %d"
 msgstr "错误的打包压缩级别 %d"
 
-#: config.c:1639
+#: config.c:1655
 #, c-format
 msgid "unable to load config blob object '%s'"
 msgstr "无法从数据对象 '%s' 加载配置"
 
-#: config.c:1642
+#: config.c:1658
 #, c-format
 msgid "reference '%s' does not point to a blob"
 msgstr "引用 '%s' 没有指向一个数据对象"
 
-#: config.c:1659
+#: config.c:1675
 #, c-format
 msgid "unable to resolve config blob '%s'"
 msgstr "不能解析配置对象 '%s'"
 
-#: config.c:1689
+#: config.c:1705
 #, c-format
 msgid "failed to parse %s"
 msgstr "解析 %s 失败"
 
-#: config.c:1745
+#: config.c:1759
 msgid "unable to parse command-line config"
 msgstr "无法解析命令行中的配置"
 
-#: config.c:2094
+#: config.c:2122
 msgid "unknown error occurred while reading the configuration files"
 msgstr "在读取配置文件时遇到未知错误"
 
-#: config.c:2264
+#: config.c:2296
 #, c-format
 msgid "Invalid %s: '%s'"
 msgstr "无效 %s:'%s'"
 
-#: config.c:2307
-#, c-format
-msgid "unknown core.untrackedCache value '%s'; using 'keep' default value"
-msgstr "未知的 core.untrackedCache 取值 '%s',使用默认值 'keep'"
-
-#: config.c:2333
+#: config.c:2341
 #, c-format
 msgid "splitIndex.maxPercentChange value '%d' should be between 0 and 100"
 msgstr "splitIndex.maxPercentChange 的取值 '%d' 应该介于 0 和 100 之间"
 
-#: config.c:2379
+#: config.c:2387
 #, c-format
 msgid "unable to parse '%s' from command-line config"
 msgstr "无法解析命令行配置中的 '%s'"
 
-#: config.c:2381
+#: config.c:2389
 #, c-format
 msgid "bad config variable '%s' in file '%s' at line %d"
 msgstr "在文件 '%2$s' 的第 %3$d 行发现错误的配置变量 '%1$s'"
 
-#: config.c:2462
+#: config.c:2470
 #, c-format
 msgid "invalid section name '%s'"
 msgstr "无效的小节名称 '%s'"
 
-#: config.c:2494
+#: config.c:2502
 #, c-format
 msgid "%s has multiple values"
 msgstr "%s 有多个取值"
 
-#: config.c:2523
+#: config.c:2531
 #, c-format
 msgid "failed to write new configuration file %s"
 msgstr "写入新的配置文件 %s 失败"
 
-#: config.c:2775 config.c:3099
+#: config.c:2783 config.c:3107
 #, c-format
 msgid "could not lock config file %s"
 msgstr "不能锁定配置文件 %s"
 
-#: config.c:2786
+#: config.c:2794
 #, c-format
 msgid "opening %s"
 msgstr "打开 %s"
 
-#: config.c:2821 builtin/config.c:328
+#: config.c:2829 builtin/config.c:354
 #, c-format
 msgid "invalid pattern: %s"
 msgstr "无效模式:%s"
 
-#: config.c:2846
+#: config.c:2854
 #, c-format
 msgid "invalid config file %s"
 msgstr "无效的配置文件 %s"
 
-#: config.c:2859 config.c:3112
+#: config.c:2867 config.c:3120
 #, c-format
 msgid "fstat on %s failed"
 msgstr "对 %s 调用 fstat 失败"
 
-#: config.c:2870
+#: config.c:2878
 #, c-format
 msgid "unable to mmap '%s'"
 msgstr "不能 mmap '%s'"
 
-#: config.c:2879 config.c:3117
+#: config.c:2887 config.c:3125
 #, c-format
 msgid "chmod on %s failed"
 msgstr "对 %s 调用 chmod 失败"
 
-#: config.c:2964 config.c:3214
+#: config.c:2972 config.c:3222
 #, c-format
 msgid "could not write config file %s"
 msgstr "不能写入配置文件 %s"
 
-#: config.c:2998
+#: config.c:3006
 #, c-format
 msgid "could not set '%s' to '%s'"
 msgstr "不能设置 '%s' 为 '%s'"
 
-#: config.c:3000 builtin/remote.c:782
+#: config.c:3008 builtin/remote.c:656 builtin/remote.c:850 builtin/remote.c:858
 #, c-format
 msgid "could not unset '%s'"
 msgstr "不能取消设置 '%s'"
 
-#: config.c:3090
+#: config.c:3098
 #, c-format
 msgid "invalid section name: %s"
 msgstr "无效的小节名称:%s"
 
-#: config.c:3257
+#: config.c:3265
 #, c-format
 msgid "missing value for '%s'"
 msgstr "%s 的取值缺失"
@@ -2079,72 +2834,81 @@ msgstr ""
 msgid "server doesn't support '%s'"
 msgstr "服务器不支持 '%s'"
 
-#: connect.c:103
+#: connect.c:118
 #, c-format
 msgid "server doesn't support feature '%s'"
 msgstr "服务器不支持特性 '%s'"
 
-#: connect.c:114
+#: connect.c:129
 msgid "expected flush after capabilities"
 msgstr "在能力之后应为一个 flush 包"
 
-#: connect.c:233
+#: connect.c:263
 #, c-format
 msgid "ignoring capabilities after first line '%s'"
 msgstr "忽略第一行 '%s' 之后的能力字段"
 
-#: connect.c:252
+#: connect.c:284
 msgid "protocol error: unexpected capabilities^{}"
 msgstr "协议错误:意外的 capabilities^{}"
 
-#: connect.c:273
+#: connect.c:306
 #, c-format
 msgid "protocol error: expected shallow sha-1, got '%s'"
 msgstr "协议错误:预期浅克隆 sha-1,却得到 '%s'"
 
-#: connect.c:275
+#: connect.c:308
 msgid "repository on the other end cannot be shallow"
 msgstr "另一端的仓库不能是浅克隆仓库"
 
-#: connect.c:313
+#: connect.c:347
 msgid "invalid packet"
 msgstr "无效数据包"
 
-#: connect.c:333
+#: connect.c:367
 #, c-format
 msgid "protocol error: unexpected '%s'"
 msgstr "协议错误:意外的 '%s'"
 
-#: connect.c:441
+#: connect.c:473
+#, c-format
+msgid "unknown object format '%s' specified by server"
+msgstr "服务器给出未知的对象格式 '%s'"
+
+#: connect.c:500
 #, c-format
 msgid "invalid ls-refs response: %s"
 msgstr "无效的 ls-refs 响应:%s"
 
-#: connect.c:445
+#: connect.c:504
 msgid "expected flush after ref listing"
 msgstr "在引用列表之后应该有一个 flush 包"
 
-#: connect.c:544
+#: connect.c:507
+msgid "expected response end packet after ref listing"
+msgstr "在引用列表之后应该有响应结束包"
+
+#: connect.c:640
 #, c-format
 msgid "protocol '%s' is not supported"
 msgstr "不支持 '%s' 协议"
 
-#: connect.c:595
+#: connect.c:691
 msgid "unable to set SO_KEEPALIVE on socket"
 msgstr "无法为 socket 设置 SO_KEEPALIVE"
 
-#: connect.c:635 connect.c:698
+#: connect.c:731 connect.c:794
 #, c-format
 msgid "Looking up %s ... "
 msgstr "查找 %s ..."
 
-#: connect.c:639
+#: connect.c:735
 #, 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:643 connect.c:714
+#: connect.c:739 connect.c:810
 #, c-format
 msgid ""
 "done.\n"
@@ -2153,7 +2917,7 @@ msgstr ""
 "完成。\n"
 "连接到 %s(端口 %s)... "
 
-#: connect.c:665 connect.c:742
+#: connect.c:761 connect.c:838
 #, c-format
 msgid ""
 "unable to connect to %s:\n"
@@ -2163,87 +2927,87 @@ msgstr ""
 "%s"
 
 #. TRANSLATORS: this is the end of "Connecting to %s (port %s) ... "
-#: connect.c:671 connect.c:748
+#: connect.c:767 connect.c:844
 msgid "done."
 msgstr "完成。"
 
-#: connect.c:702
+#: connect.c:798
 #, c-format
 msgid "unable to look up %s (%s)"
 msgstr "无法查找 %s(%s)"
 
-#: connect.c:708
+#: connect.c:804
 #, c-format
 msgid "unknown port %s"
 msgstr "未知端口 %s"
 
-#: connect.c:845 connect.c:1171
+#: connect.c:941 connect.c:1271
 #, c-format
 msgid "strange hostname '%s' blocked"
 msgstr "已阻止奇怪的主机名 '%s'"
 
-#: connect.c:847
+#: connect.c:943
 #, c-format
 msgid "strange port '%s' blocked"
 msgstr "已阻止奇怪的端口号 '%s'"
 
-#: connect.c:857
+#: connect.c:953
 #, c-format
 msgid "cannot start proxy %s"
 msgstr "不能启动代理 %s"
 
-#: connect.c:924
+#: connect.c:1024
 msgid "no path specified; see 'git help pull' for valid url syntax"
 msgstr "未指定路径,执行 'git help pull' 查看有效的 url 语法"
 
-#: connect.c:1119
+#: connect.c:1219
 msgid "ssh variant 'simple' does not support -4"
 msgstr "ssh 变体 'simple' 不支持 -4"
 
-#: connect.c:1131
+#: connect.c:1231
 msgid "ssh variant 'simple' does not support -6"
 msgstr "ssh 变体 'simple' 不支持 -6"
 
-#: connect.c:1148
+#: connect.c:1248
 msgid "ssh variant 'simple' does not support setting port"
 msgstr "ssh 变体 'simple' 不支持设置端口"
 
-#: connect.c:1260
+#: connect.c:1360
 #, c-format
 msgid "strange pathname '%s' blocked"
 msgstr "已阻止奇怪的路径名 '%s'"
 
-#: connect.c:1307
+#: connect.c:1408
 msgid "unable to fork"
 msgstr "无法 fork"
 
-#: connected.c:86 builtin/fsck.c:221 builtin/prune.c:43
+#: connected.c:108 builtin/fsck.c:209 builtin/prune.c:45
 msgid "Checking connectivity"
 msgstr "正在检查连通性"
 
-#: connected.c:98
+#: connected.c:120
 msgid "Could not run 'git rev-list'"
 msgstr "不能执行 'git rev-list'"
 
-#: connected.c:118
+#: connected.c:144
 msgid "failed write to rev-list"
 msgstr "写入 rev-list 失败"
 
-#: connected.c:125
+#: connected.c:149
 msgid "failed to close rev-list's stdin"
 msgstr "关闭 rev-list 的标准输入失败"
 
-#: convert.c:193
+#: convert.c:194
 #, c-format
 msgid "illegal crlf_action %d"
 msgstr "非法的 crlf 动作 %d"
 
-#: convert.c:206
+#: convert.c:207
 #, c-format
 msgid "CRLF would be replaced by LF in %s"
 msgstr "%s 中的 CRLF 将被 LF 替换"
 
-#: convert.c:208
+#: convert.c:209
 #, c-format
 msgid ""
 "CRLF will be replaced by LF in %s.\n"
@@ -2252,12 +3016,12 @@ msgstr ""
 "%s 中的 CRLF 将被 LF 替换。<\n"
 "在工作区中该文件仍保持原有的换行符。"
 
-#: convert.c:216
+#: convert.c:217
 #, c-format
 msgid "LF would be replaced by CRLF in %s"
 msgstr "文件 %s 中的 LF 将被 CRLF 替换"
 
-#: convert.c:218
+#: convert.c:219
 #, c-format
 msgid ""
 "LF will be replaced by CRLF in %s.\n"
@@ -2266,17 +3030,18 @@ msgstr ""
 "%s 中的 LF 将被 CRLF 替换。\n"
 "在工作区中该文件仍保持原有的换行符"
 
-#: convert.c:279
+#: convert.c:284
 #, c-format
 msgid "BOM is prohibited in '%s' if encoded as %s"
 msgstr "如果使用 %2$s 编码,禁止在 '%1$s' 中使用 BOM"
 
-#: convert.c:286
+#: convert.c:291
 #, c-format
 msgid ""
-"The file '%s' contains a byte order mark (BOM). Please use UTF-%s as working-"
-"tree-encoding."
-msgstr "文件 '%s' 包含一个字节顺序标记(BOM)。请使用 UTF-%s 作为工作区编码。"
+"The file '%s' contains a byte order mark (BOM). Please use UTF-%.*s as "
+"working-tree-encoding."
+msgstr ""
+"文件 '%s' 包含一个字节顺序标记(BOM)。请使用 UTF-%.*s 作为工作区编码。"
 
 #: convert.c:304
 #, c-format
@@ -2292,117 +3057,145 @@ msgstr ""
 "文件 '%s' 缺失一个字节顺序标记(BOM)。请使用 UTF-%sBE or UTF-%sLE(取决于字"
 "节序)作为工作区编码。"
 
-#: convert.c:424 convert.c:495
+#: convert.c:419 convert.c:490
 #, c-format
 msgid "failed to encode '%s' from %s to %s"
 msgstr "无法对 '%s' 进行从 %s 到 %s 的编码"
 
-#: convert.c:467
+#: convert.c:462
 #, c-format
 msgid "encoding '%s' from %s to %s and back is not the same"
 msgstr "将'%s' 的编码从 %s 到 %s 来回转换不一致"
 
-#: convert.c:673
+#: convert.c:665
 #, c-format
 msgid "cannot fork to run external filter '%s'"
 msgstr "不能 fork 以执行外部过滤器 '%s'"
 
-#: convert.c:693
+#: convert.c:685
 #, c-format
 msgid "cannot feed the input to external filter '%s'"
 msgstr "不能将输入传递给外部过滤器 '%s'"
 
-#: convert.c:700
+#: convert.c:692
 #, c-format
 msgid "external filter '%s' failed %d"
 msgstr "外部过滤器 '%s' 失败码 %d"
 
-#: convert.c:735 convert.c:738
+#: convert.c:727 convert.c:730
 #, c-format
 msgid "read from external filter '%s' failed"
 msgstr "从外部过滤器 '%s' 读取失败"
 
-#: convert.c:741 convert.c:796
+#: convert.c:733 convert.c:788
 #, c-format
 msgid "external filter '%s' failed"
 msgstr "外部过滤器 '%s' 失败"
 
-#: convert.c:844
+#: convert.c:837
 msgid "unexpected filter type"
 msgstr "意外的过滤类型"
 
-#: convert.c:855
+#: convert.c:848
 msgid "path name too long for external filter"
 msgstr "外部过滤器的路径名太长"
 
-#: convert.c:929
+#: convert.c:940
 #, c-format
 msgid ""
 "external filter '%s' is not available anymore although not all paths have "
 "been filtered"
 msgstr "外部过滤器 '%s' 不再可用,但并非所有路径都已过滤"
 
-#: convert.c:1228
+#: convert.c:1240
 msgid "true/false are no valid working-tree-encodings"
 msgstr "true/false 不是有效的工作区编码"
 
-#: convert.c:1398 convert.c:1432
+#: convert.c:1428 convert.c:1462
 #, c-format
 msgid "%s: clean filter '%s' failed"
 msgstr "%s:clean 过滤器 '%s' 失败"
 
-#: convert.c:1476
+#: convert.c:1508
 #, c-format
 msgid "%s: smudge filter %s failed"
 msgstr "%s:smudge 过滤器 %s 失败"
 
-#: date.c:137
+#: credential.c:96
+#, c-format
+msgid "skipping credential lookup for key: credential.%s"
+msgstr "跳过凭据查询:credential.%s"
+
+#: credential.c:112
+msgid "refusing to work with credential missing host field"
+msgstr "拒绝使用缺少主机字段的凭据"
+
+#: credential.c:114
+msgid "refusing to work with credential missing protocol field"
+msgstr "拒绝使用缺少协议字段的凭据"
+
+#: credential.c:394
+#, c-format
+msgid "url contains a newline in its %s component: %s"
+msgstr "URL 的 %s 组件中包含换行符:%s"
+
+#: credential.c:438
+#, c-format
+msgid "url has no scheme: %s"
+msgstr "URL 没有 scheme:%s"
+
+#: credential.c:511
+#, c-format
+msgid "credential url cannot be parsed: %s"
+msgstr "不能解析凭据 URL:%s"
+
+#: date.c:138
 msgid "in the future"
 msgstr "在将来"
 
-#: date.c:143
+#: date.c:144
 #, c-format
 msgid "%<PRIuMAX> second ago"
 msgid_plural "%<PRIuMAX> seconds ago"
 msgstr[0] "%<PRIuMAX> 秒钟前"
 msgstr[1] "%<PRIuMAX> 秒钟前"
 
-#: date.c:150
+#: date.c:151
 #, c-format
 msgid "%<PRIuMAX> minute ago"
 msgid_plural "%<PRIuMAX> minutes ago"
 msgstr[0] "%<PRIuMAX> 分钟前"
 msgstr[1] "%<PRIuMAX> 分钟前"
 
-#: date.c:157
+#: date.c:158
 #, c-format
 msgid "%<PRIuMAX> hour ago"
 msgid_plural "%<PRIuMAX> hours ago"
 msgstr[0] "%<PRIuMAX> 小时前"
 msgstr[1] "%<PRIuMAX> 小时前"
 
-#: date.c:164
+#: date.c:165
 #, c-format
 msgid "%<PRIuMAX> day ago"
 msgid_plural "%<PRIuMAX> days ago"
 msgstr[0] "%<PRIuMAX> 天前"
 msgstr[1] "%<PRIuMAX> 天前"
 
-#: date.c:170
+#: date.c:171
 #, c-format
 msgid "%<PRIuMAX> week ago"
 msgid_plural "%<PRIuMAX> weeks ago"
 msgstr[0] "%<PRIuMAX> 周前"
 msgstr[1] "%<PRIuMAX> 周前"
 
-#: date.c:177
+#: date.c:178
 #, c-format
 msgid "%<PRIuMAX> month ago"
 msgid_plural "%<PRIuMAX> months ago"
 msgstr[0] "%<PRIuMAX> 个月前"
 msgstr[1] "%<PRIuMAX> 个月前"
 
-#: date.c:188
+#: date.c:189
 #, c-format
 msgid "%<PRIuMAX> year"
 msgid_plural "%<PRIuMAX> years"
@@ -2410,14 +3203,14 @@ msgstr[0] "%<PRIuMAX> 年"
 msgstr[1] "%<PRIuMAX> 年"
 
 #. TRANSLATORS: "%s" is "<n> years"
-#: date.c:191
+#: date.c:192
 #, c-format
 msgid "%s, %<PRIuMAX> month ago"
 msgid_plural "%s, %<PRIuMAX> months ago"
 msgstr[0] "%s %<PRIuMAX> 个月前"
 msgstr[1] "%s %<PRIuMAX> 个月前"
 
-#: date.c:196 date.c:201
+#: date.c:197 date.c:202
 #, c-format
 msgid "%<PRIuMAX> year ago"
 msgid_plural "%<PRIuMAX> years ago"
@@ -2448,15 +3241,6 @@ msgstr "来自 config 的数据岛正则表达式有太多的捕获组(最多
 msgid "Marked %d islands, done.\n"
 msgstr "已标记 %d 个数据岛,结束。\n"
 
-#: diffcore-order.c:24
-#, c-format
-msgid "failed to read orderfile '%s'"
-msgstr "读取排序文件 '%s' 失败"
-
-#: diffcore-rename.c:544
-msgid "Performing inexact rename detection"
-msgstr "正在进行非精确的重命名探测"
-
 #: diff-no-index.c:238
 msgid "git diff --no-index [<options>] <path> <path>"
 msgstr "git diff --no-index [<选项>] <路径> <路径>"
@@ -2465,21 +3249,21 @@ msgstr "git diff --no-index [<选项>] <路径> <路径>"
 msgid ""
 "Not a git repository. Use --no-index to compare two paths outside a working "
 "tree"
-msgstr "不是一个 git 仓库。使用 --no-index 比较工作区之外的两个路径"
+msgstr "不是 git 仓库。使用 --no-index 比较工作区之外的两个路径"
 
 #  译者:注意保持前导空格
-#: diff.c:155
+#: diff.c:156
 #, c-format
 msgid "  Failed to parse dirstat cut-off percentage '%s'\n"
 msgstr "  无法解析 dirstat 截止(cut-off)百分比 '%s'\n"
 
 #  译者:注意保持前导空格
-#: diff.c:160
+#: diff.c:161
 #, c-format
 msgid "  Unknown dirstat parameter '%s'\n"
 msgstr "  未知的 dirstat 参数 '%s'\n"
 
-#: diff.c:296
+#: diff.c:297
 msgid ""
 "color moved setting must be one of 'no', 'default', 'blocks', 'zebra', "
 "'dimmed-zebra', 'plain'"
@@ -2487,7 +3271,7 @@ msgstr ""
 "移动的颜色设置必须是 'no'、'default'、'blocks'、'zebra'、'dimmed_zebra' 或 "
 "'plain'"
 
-#: diff.c:324
+#: diff.c:325
 #, c-format
 msgid ""
 "unknown color-moved-ws mode '%s', possible values are 'ignore-space-change', "
@@ -2496,18 +3280,18 @@ msgstr ""
 "未知的 color-moved-ws 模式 '%s',可能的取值有 'ignore-space-change'、'ignore-"
 "space-at-eol'、'ignore-all-space'、'allow-indentation-change'"
 
-#: diff.c:332
+#: diff.c:333
 msgid ""
 "color-moved-ws: allow-indentation-change cannot be combined with other "
 "whitespace modes"
 msgstr "color-moved-ws:allow-indentation-change 不能与其它空白字符模式共用"
 
-#: diff.c:405
+#: diff.c:410
 #, c-format
 msgid "Unknown value for 'diff.submodule' config variable: '%s'"
 msgstr "配置变量 'diff.submodule' 未知的取值:'%s'"
 
-#: diff.c:465
+#: diff.c:470
 #, c-format
 msgid ""
 "Found errors in 'diff.dirstat' config variable:\n"
@@ -2516,35 +3300,35 @@ msgstr ""
 "发现配置变量 'diff.dirstat' 中的错误:\n"
 "%s"
 
-#: diff.c:4215
+#: diff.c:4269
 #, c-format
 msgid "external diff died, stopping at %s"
 msgstr "外部 diff 退出,停止在 %s"
 
-#: diff.c:4560
+#: diff.c:4618
 msgid "--name-only, --name-status, --check and -s are mutually exclusive"
 msgstr "--name-only、--name-status、--check 和 -s 是互斥的"
 
-#: diff.c:4563
+#: diff.c:4621
 msgid "-G, -S and --find-object are mutually exclusive"
 msgstr "-G、-S 和 --find-object 是互斥的"
 
-#: diff.c:4641
+#: diff.c:4699
 msgid "--follow requires exactly one pathspec"
 msgstr "--follow 明确要求只跟一个路径规格"
 
-#: diff.c:4689
+#: diff.c:4747
 #, c-format
 msgid "invalid --stat value: %s"
 msgstr "无效的 --stat 值:%s"
 
-#: diff.c:4694 diff.c:4699 diff.c:4704 diff.c:4709 diff.c:5222
-#: parse-options.c:199 parse-options.c:203
+#: diff.c:4752 diff.c:4757 diff.c:4762 diff.c:4767 diff.c:5279
+#: 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:4726
+#: diff.c:4784
 #, c-format
 msgid ""
 "Failed to parse --dirstat/-X option parameter:\n"
@@ -2553,195 +3337,195 @@ msgstr ""
 "无法解析 --dirstat/-X 选项的参数:\n"
 "%s"
 
-#: diff.c:4811
+#: diff.c:4869
 #, c-format
 msgid "unknown change class '%c' in --diff-filter=%s"
 msgstr "--diff-filter=%2$s 中未知的变更类 '%1$c'"
 
-#: diff.c:4835
+#: diff.c:4893
 #, c-format
 msgid "unknown value after ws-error-highlight=%.*s"
 msgstr "ws-error-highlight=%.*s 之后未知的值"
 
-#: diff.c:4849
+#: diff.c:4907
 #, c-format
 msgid "unable to resolve '%s'"
 msgstr "不能解析 '%s'"
 
-#: diff.c:4899 diff.c:4905
+#: diff.c:4957 diff.c:4963
 #, c-format
 msgid "%s expects <n>/<m> form"
 msgstr "%s 期望 <n>/<m> 格式"
 
-#: diff.c:4917
+#: diff.c:4975
 #, c-format
 msgid "%s expects a character, got '%s'"
 msgstr "%s 期望一个字符,得到 '%s'"
 
-#: diff.c:4938
+#: diff.c:4996
 #, c-format
 msgid "bad --color-moved argument: %s"
 msgstr "坏的 --color-moved 参数:%s"
 
-#: diff.c:4957
+#: diff.c:5015
 #, c-format
 msgid "invalid mode '%s' in --color-moved-ws"
 msgstr "--color-moved-ws 中的无效模式 '%s' "
 
-#: diff.c:4997
+#: diff.c:5055
 msgid ""
 "option diff-algorithm accepts \"myers\", \"minimal\", \"patience\" and "
 "\"histogram\""
 msgstr ""
 "diff-algorithm 选项有 \"myers\"、\"minimal\"、\"patience\" 和 \"histogram\""
 
-#: diff.c:5033 diff.c:5053
+#: diff.c:5091 diff.c:5111
 #, c-format
 msgid "invalid argument to %s"
 msgstr "%s 的参数无效"
 
-#: diff.c:5191
+#: diff.c:5248
 #, c-format
 msgid "failed to parse --submodule option parameter: '%s'"
 msgstr "无法解析 --submodule 选项的参数:'%s'"
 
-#: diff.c:5247
+#: diff.c:5304
 #, c-format
 msgid "bad --word-diff argument: %s"
 msgstr "坏的 --word-diff 参数:%s"
 
-#: diff.c:5270
+#: diff.c:5327
 msgid "Diff output format options"
 msgstr "差异输出格式化选项"
 
-#: diff.c:5272 diff.c:5278
+#: diff.c:5329 diff.c:5335
 msgid "generate patch"
 msgstr "生成补丁"
 
-#: diff.c:5275 builtin/log.c:172
+#: diff.c:5332 builtin/log.c:176
 msgid "suppress diff output"
 msgstr "不显示差异输出"
 
-#: diff.c:5280 diff.c:5394 diff.c:5401
+#: diff.c:5337 diff.c:5451 diff.c:5458
 msgid "<n>"
 msgstr "<n>"
 
-#: diff.c:5281 diff.c:5284
+#: diff.c:5338 diff.c:5341
 msgid "generate diffs with <n> lines context"
 msgstr "生成含 <n> 行上下文的差异"
 
-#: diff.c:5286
+#: diff.c:5343
 msgid "generate the diff in raw format"
 msgstr "生成原始格式的差异"
 
-#: diff.c:5289
+#: diff.c:5346
 msgid "synonym for '-p --raw'"
 msgstr "和 '-p --raw' 同义"
 
-#: diff.c:5293
+#: diff.c:5350
 msgid "synonym for '-p --stat'"
 msgstr "和 '-p --stat' 同义"
 
-#: diff.c:5297
+#: diff.c:5354
 msgid "machine friendly --stat"
 msgstr "机器友好的 --stat"
 
-#: diff.c:5300
+#: diff.c:5357
 msgid "output only the last line of --stat"
 msgstr "只输出 --stat 的最后一行"
 
-#: diff.c:5302 diff.c:5310
+#: diff.c:5359 diff.c:5367
 msgid "<param1,param2>..."
 msgstr "<参数1,参数2>..."
 
-#: diff.c:5303
+#: diff.c:5360
 msgid ""
 "output the distribution of relative amount of changes for each sub-directory"
 msgstr "输出每个子目录相对变更的分布"
 
-#: diff.c:5307
+#: diff.c:5364
 msgid "synonym for --dirstat=cumulative"
 msgstr "和 --dirstat=cumulative 同义"
 
-#: diff.c:5311
+#: diff.c:5368
 msgid "synonym for --dirstat=files,param1,param2..."
 msgstr "是 --dirstat=files,param1,param2... 的同义词"
 
-#: diff.c:5315
+#: diff.c:5372
 msgid "warn if changes introduce conflict markers or whitespace errors"
 msgstr "如果变更中引入冲突定界符或空白错误,给出警告"
 
-#: diff.c:5318
+#: diff.c:5375
 msgid "condensed summary such as creations, renames and mode changes"
 msgstr "精简摘要,例如创建、重命名和模式变更"
 
-#: diff.c:5321
+#: diff.c:5378
 msgid "show only names of changed files"
 msgstr "只显示变更文件的文件名"
 
-#: diff.c:5324
+#: diff.c:5381
 msgid "show only names and status of changed files"
 msgstr "只显示变更文件的文件名和状态"
 
-#: diff.c:5326
+#: diff.c:5383
 msgid "<width>[,<name-width>[,<count>]]"
 msgstr "<宽度>[,<文件名宽度>[,<次数>]]"
 
-#: diff.c:5327
+#: diff.c:5384
 msgid "generate diffstat"
 msgstr "生成差异统计(diffstat)"
 
-#: diff.c:5329 diff.c:5332 diff.c:5335
+#: diff.c:5386 diff.c:5389 diff.c:5392
 msgid "<width>"
 msgstr "<宽度>"
 
-#: diff.c:5330
+#: diff.c:5387
 msgid "generate diffstat with a given width"
 msgstr "使用给定的长度生成差异统计"
 
-#: diff.c:5333
+#: diff.c:5390
 msgid "generate diffstat with a given name width"
 msgstr "使用给定的文件名长度生成差异统计"
 
-#: diff.c:5336
+#: diff.c:5393
 msgid "generate diffstat with a given graph width"
 msgstr "使用给定的图形长度生成差异统计"
 
-#: diff.c:5338
+#: diff.c:5395
 msgid "<count>"
 msgstr "<次数>"
 
-#: diff.c:5339
+#: diff.c:5396
 msgid "generate diffstat with limited lines"
 msgstr "生成有限行数的差异统计"
 
-#: diff.c:5342
+#: diff.c:5399
 msgid "generate compact summary in diffstat"
 msgstr "生成差异统计的简洁摘要"
 
-#: diff.c:5345
+#: diff.c:5402
 msgid "output a binary diff that can be applied"
 msgstr "输出一个可以应用的二进制差异"
 
-#: diff.c:5348
+#: diff.c:5405
 msgid "show full pre- and post-image object names on the \"index\" lines"
 msgstr "在 \"index\" 行显示完整的前后对象名称"
 
-#: diff.c:5350
+#: diff.c:5407
 msgid "show colored diff"
 msgstr "显示带颜色的差异"
 
-#: diff.c:5351
+#: diff.c:5408
 msgid "<kind>"
 msgstr "<类型>"
 
-#: diff.c:5352
+#: diff.c:5409
 msgid ""
 "highlight whitespace errors in the 'context', 'old' or 'new' lines in the "
 "diff"
 msgstr "对于差异中的上下文、旧的和新的行,加亮显示错误的空白字符"
 
-#: diff.c:5355
+#: diff.c:5412
 msgid ""
 "do not munge pathnames and use NULs as output field terminators in --raw or "
 "--numstat"
@@ -2749,348 +3533,376 @@ msgstr ""
 "在 --raw 或者 --numstat 中,不对路径字符转码并使用 NUL 字符做为输出字段的分隔"
 "符"
 
-#: diff.c:5358 diff.c:5361 diff.c:5364 diff.c:5470
+#: diff.c:5415 diff.c:5418 diff.c:5421 diff.c:5527
 msgid "<prefix>"
 msgstr "<前缀>"
 
-#: diff.c:5359
+#: diff.c:5416
 msgid "show the given source prefix instead of \"a/\""
 msgstr "显示给定的源前缀取代 \"a/\""
 
-#: diff.c:5362
+#: diff.c:5419
 msgid "show the given destination prefix instead of \"b/\""
 msgstr "显示给定的目标前缀取代 \"b/\""
 
-#: diff.c:5365
+#: diff.c:5422
 msgid "prepend an additional prefix to every line of output"
 msgstr "输出的每一行附加前缀"
 
-#: diff.c:5368
+#: diff.c:5425
 msgid "do not show any source or destination prefix"
 msgstr "不显示任何源和目标前缀"
 
-#: diff.c:5371
+#: diff.c:5428
 msgid "show context between diff hunks up to the specified number of lines"
 msgstr "显示指定行数的差异块间的上下文"
 
-#: diff.c:5375 diff.c:5380 diff.c:5385
+#: diff.c:5432 diff.c:5437 diff.c:5442
 msgid "<char>"
 msgstr "<字符>"
 
-#: diff.c:5376
+#: diff.c:5433
 msgid "specify the character to indicate a new line instead of '+'"
 msgstr "指定一个字符取代 '+' 来表示新的一行"
 
-#: diff.c:5381
+#: diff.c:5438
 msgid "specify the character to indicate an old line instead of '-'"
 msgstr "指定一个字符取代 '-' 来表示旧的一行"
 
-#: diff.c:5386
+#: diff.c:5443
 msgid "specify the character to indicate a context instead of ' '"
 msgstr "指定一个字符取代 ' ' 来表示一行上下文"
 
-#: diff.c:5389
+#: diff.c:5446
 msgid "Diff rename options"
 msgstr "差异重命名选项"
 
-#: diff.c:5390
+#: diff.c:5447
 msgid "<n>[/<m>]"
 msgstr "<n>[/<m>]"
 
-#: diff.c:5391
+#: diff.c:5448
 msgid "break complete rewrite changes into pairs of delete and create"
 msgstr "将完全重写的变更打破为成对的删除和创建"
 
-#: diff.c:5395
+#: diff.c:5452
 msgid "detect renames"
 msgstr "检测重命名"
 
-#: diff.c:5399
+#: diff.c:5456
 msgid "omit the preimage for deletes"
 msgstr "省略删除操作的差异输出"
 
-#: diff.c:5402
+#: diff.c:5459
 msgid "detect copies"
 msgstr "检测拷贝"
 
-#: diff.c:5406
+#: diff.c:5463
 msgid "use unmodified files as source to find copies"
 msgstr "使用未修改的文件做为发现拷贝的源"
 
-#: diff.c:5408
+#: diff.c:5465
 msgid "disable rename detection"
 msgstr "禁用重命名探测"
 
-#: diff.c:5411
+#: diff.c:5468
 msgid "use empty blobs as rename source"
 msgstr "使用空的数据对象做为重命名的源"
 
-#: diff.c:5413
+#: diff.c:5470
 msgid "continue listing the history of a file beyond renames"
 msgstr "继续列出文件重命名以外的历史记录"
 
-#: diff.c:5416
+#: diff.c:5473
 msgid ""
 "prevent rename/copy detection if the number of rename/copy targets exceeds "
 "given limit"
 msgstr "如果重命名/拷贝目标超过给定的限制,禁止重命名/拷贝检测"
 
-#: diff.c:5418
+#: diff.c:5475
 msgid "Diff algorithm options"
 msgstr "差异算法选项"
 
-#: diff.c:5420
+#: diff.c:5477
 msgid "produce the smallest possible diff"
 msgstr "生成尽可能小的差异"
 
-#: diff.c:5423
+#: diff.c:5480
 msgid "ignore whitespace when comparing lines"
 msgstr "行比较时忽略空白字符"
 
-#: diff.c:5426
+#: diff.c:5483
 msgid "ignore changes in amount of whitespace"
 msgstr "忽略空白字符的变更"
 
-#: diff.c:5429
+#: diff.c:5486
 msgid "ignore changes in whitespace at EOL"
 msgstr "忽略行尾的空白字符变更"
 
-#: diff.c:5432
+#: diff.c:5489
 msgid "ignore carrier-return at the end of line"
 msgstr "忽略行尾的回车符(CR)"
 
-#: diff.c:5435
+#: diff.c:5492
 msgid "ignore changes whose lines are all blank"
 msgstr "忽略整行都是空白的变更"
 
-#: diff.c:5438
+#: diff.c:5495
 msgid "heuristic to shift diff hunk boundaries for easy reading"
 msgstr "启发式转换差异边界以便阅读"
 
-#: diff.c:5441
+#: diff.c:5498
 msgid "generate diff using the \"patience diff\" algorithm"
 msgstr "使用 \"patience diff\" 算法生成差异"
 
-#: diff.c:5445
+#: diff.c:5502
 msgid "generate diff using the \"histogram diff\" algorithm"
 msgstr "使用 \"histogram diff\" 算法生成差异"
 
-#: diff.c:5447
+#: diff.c:5504
 msgid "<algorithm>"
 msgstr "<算法>"
 
-#: diff.c:5448
+#: diff.c:5505
 msgid "choose a diff algorithm"
 msgstr "选择一个差异算法"
 
-#: diff.c:5450
+#: diff.c:5507
 msgid "<text>"
 msgstr "<文本>"
 
-#: diff.c:5451
+#: diff.c:5508
 msgid "generate diff using the \"anchored diff\" algorithm"
 msgstr "使用 \"anchored diff\" 算法生成差异"
 
-#: diff.c:5453 diff.c:5462 diff.c:5465
+#: diff.c:5510 diff.c:5519 diff.c:5522
 msgid "<mode>"
 msgstr "<模式>"
 
-#: diff.c:5454
+#: diff.c:5511
 msgid "show word diff, using <mode> to delimit changed words"
 msgstr "显示单词差异,使用 <模式> 分隔变更的单词"
 
-#: diff.c:5456 diff.c:5459 diff.c:5504
+#: diff.c:5513 diff.c:5516 diff.c:5561
 msgid "<regex>"
 msgstr "<正则>"
 
-#: diff.c:5457
+#: diff.c:5514
 msgid "use <regex> to decide what a word is"
 msgstr "使用 <正则表达式> 确定何为一个词"
 
-#: diff.c:5460
+#: diff.c:5517
 msgid "equivalent to --word-diff=color --word-diff-regex=<regex>"
 msgstr "相当于 --word-diff=color --word-diff-regex=<正则>"
 
-#: diff.c:5463
+#: diff.c:5520
 msgid "moved lines of code are colored differently"
 msgstr "移动的代码行用不同方式着色"
 
-#: diff.c:5466
+#: diff.c:5523
 msgid "how white spaces are ignored in --color-moved"
 msgstr "在 --color-moved 下如何忽略空白字符"
 
-#: diff.c:5469
+#: diff.c:5526
 msgid "Other diff options"
 msgstr "其它差异选项"
 
-#: diff.c:5471
+#: diff.c:5528
 msgid "when run from subdir, exclude changes outside and show relative paths"
 msgstr "当从子目录运行,排除目录之外的变更并显示相对路径"
 
-#: diff.c:5475
+#: diff.c:5532
 msgid "treat all files as text"
 msgstr "把所有文件当做文本处理"
 
-#: diff.c:5477
+#: diff.c:5534
 msgid "swap two inputs, reverse the diff"
 msgstr "交换两个输入,反转差异"
 
-#: diff.c:5479
+#: diff.c:5536
 msgid "exit with 1 if there were differences, 0 otherwise"
 msgstr "有差异时退出码为 1,否则为 0"
 
-#: diff.c:5481
+#: diff.c:5538
 msgid "disable all output of the program"
 msgstr "禁用本程序的所有输出"
 
-#: diff.c:5483
+#: diff.c:5540
 msgid "allow an external diff helper to be executed"
 msgstr "允许执行一个外置的差异助手"
 
-#: diff.c:5485
+#: diff.c:5542
 msgid "run external text conversion filters when comparing binary files"
 msgstr "当比较二进制文件时,运行外部的文本转换过滤器"
 
-#: diff.c:5487
+#: diff.c:5544
 msgid "<when>"
 msgstr "<何时>"
 
-#: diff.c:5488
+#: diff.c:5545
 msgid "ignore changes to submodules in the diff generation"
 msgstr "在生成差异时,忽略子模组的更改"
 
-#: diff.c:5491
+#: diff.c:5548
 msgid "<format>"
 msgstr "<格式>"
 
-#: diff.c:5492
+#: diff.c:5549
 msgid "specify how differences in submodules are shown"
 msgstr "指定子模组的差异如何显示"
 
-#: diff.c:5496
+#: diff.c:5553
 msgid "hide 'git add -N' entries from the index"
 msgstr "隐藏索引中 'git add -N' 条目"
 
-#: diff.c:5499
+#: diff.c:5556
 msgid "treat 'git add -N' entries as real in the index"
 msgstr "将索引中 'git add -N' 条目当做真实的"
 
-#: diff.c:5501
+#: diff.c:5558
 msgid "<string>"
 msgstr "<字符串>"
 
-#: diff.c:5502
+#: diff.c:5559
 msgid ""
 "look for differences that change the number of occurrences of the specified "
 "string"
 msgstr "查找改变了指定字符串出现次数的差异"
 
-#: diff.c:5505
+#: diff.c:5562
 msgid ""
 "look for differences that change the number of occurrences of the specified "
 "regex"
 msgstr "查找改变指定正则匹配出现次数的差异"
 
-#: diff.c:5508
+#: diff.c:5565
 msgid "show all changes in the changeset with -S or -G"
 msgstr "显示使用 -S 或 -G 的变更集的所有变更"
 
-#: diff.c:5511
+#: diff.c:5568
 msgid "treat <string> in -S as extended POSIX regular expression"
 msgstr "将 -S 的 <string> 当做扩展的 POSIX 正则表达式"
 
-#: diff.c:5514
+#: diff.c:5571
 msgid "control the order in which files appear in the output"
 msgstr "控制输出中的文件显示顺序"
 
-#: diff.c:5515
+#: diff.c:5572
 msgid "<object-id>"
 msgstr "<对象 ID>"
 
-#: diff.c:5516
+#: diff.c:5573
 msgid ""
 "look for differences that change the number of occurrences of the specified "
 "object"
 msgstr "查找改变指定对象出现次数的差异"
 
-#: diff.c:5518
+#: diff.c:5575
 msgid "[(A|C|D|M|R|T|U|X|B)...[*]]"
 msgstr "[(A|C|D|M|R|T|U|X|B)...[*]]"
 
-#: diff.c:5519
+#: diff.c:5576
 msgid "select files by diff type"
 msgstr "通过差异类型选择文件"
 
-#: diff.c:5521
+#: diff.c:5578
 msgid "<file>"
 msgstr "<文件>"
 
-#: diff.c:5522
+#: diff.c:5579
 msgid "Output to a specific file"
 msgstr "输出到一个指定的文件"
 
-#: diff.c:6177
+#: diff.c:6236
 msgid "inexact rename detection was skipped due to too many files."
 msgstr "因为文件太多,略过不严格的重命名检查。"
 
-#: diff.c:6180
+#: diff.c:6239
 msgid "only found copies from modified paths due to too many files."
 msgstr "因为文件太多,只在修改的路径中查找拷贝。"
 
-#: diff.c:6183
+#: diff.c:6242
 #, c-format
 msgid ""
 "you may want to set your %s variable to at least %d and retry the command."
 msgstr "您可能想要将变量 %s 设置为至少 %d 并再次执行此命令。"
 
-#: dir.c:537
+#: diffcore-order.c:24
+#, c-format
+msgid "failed to read orderfile '%s'"
+msgstr "读取排序文件 '%s' 失败"
+
+#: diffcore-rename.c:592
+msgid "Performing inexact rename detection"
+msgstr "正在进行非精确的重命名探测"
+
+#: dir.c:578
 #, c-format
 msgid "pathspec '%s' did not match any file(s) known to git"
 msgstr "路径规格 '%s' 未匹配任何 git 已知文件"
 
-#: dir.c:926
+#: dir.c:718 dir.c:747 dir.c:760
+#, c-format
+msgid "unrecognized pattern: '%s'"
+msgstr "未识别的模式:'%s'"
+
+#: dir.c:777 dir.c:791
+#, c-format
+msgid "unrecognized negative pattern: '%s'"
+msgstr "未识别的反向模式:'%s'"
+
+#: dir.c:809
+#, c-format
+msgid "your sparse-checkout file may have issues: pattern '%s' is repeated"
+msgstr "您的 sparse-checkout 文件可能有问题:重复的模式 '%s'"
+
+#: dir.c:819
+msgid "disabling cone pattern matching"
+msgstr "禁止 cone 模式匹配"
+
+#: dir.c:1198
 #, c-format
 msgid "cannot use %s as an exclude file"
 msgstr "不能将 %s 用作排除文件"
 
-#: dir.c:1843
+#: dir.c:2305
 #, c-format
 msgid "could not open directory '%s'"
 msgstr "不能打开目录 '%s'"
 
-#: dir.c:2085
+#: dir.c:2605
 msgid "failed to get kernel name and information"
 msgstr "无法获得内核名称和信息"
 
-#: dir.c:2209
+#: dir.c:2729
 msgid "untracked cache is disabled on this system or location"
 msgstr "缓存未跟踪文件在本系统或位置中被禁用"
 
-#: dir.c:3013
+#: dir.c:3520
 #, c-format
 msgid "index file corrupt in repo %s"
 msgstr "仓库 %s 中的索引文件损坏"
 
-#: dir.c:3058 dir.c:3063
+#: dir.c:3565 dir.c:3570
 #, c-format
 msgid "could not create directories for %s"
 msgstr "不能为 %s 创建目录"
 
-#: dir.c:3092
+#: dir.c:3599
 #, c-format
 msgid "could not migrate git directory from '%s' to '%s'"
 msgstr "不能从 '%s' 迁移 git 目录到 '%s'"
 
-#: editor.c:73
+#: editor.c:74
 #, c-format
 msgid "hint: Waiting for your editor to close the file...%c"
 msgstr "提示:等待您的编辑器关闭文件...%c"
 
-#: entry.c:178
+#: entry.c:177
 msgid "Filtering content"
 msgstr "过滤内容"
 
-#: entry.c:476
+#: entry.c:478
 #, c-format
 msgid "could not stat file '%s'"
 msgstr "不能对文件 '%s' 调用 stat"
@@ -3100,7 +3912,7 @@ msgstr "不能对文件 '%s' 调用 stat"
 msgid "bad git namespace path \"%s\""
 msgstr "错误的 git 名字空间路径 \"%s\""
 
-#: environment.c:332
+#: environment.c:337
 #, c-format
 msgid "could not set GIT_DIR to '%s'"
 msgstr "不能设置 GIT_DIR 为 '%s'"
@@ -3110,265 +3922,287 @@ msgstr "不能设置 GIT_DIR 为 '%s'"
 msgid "too many args to run %s"
 msgstr "执行 %s 的参数太多"
 
-#: fetch-object.c:17
-msgid "Remote with no URL"
-msgstr "远程未设置 URL"
-
-#: fetch-pack.c:151
+#: fetch-pack.c:176
 msgid "git fetch-pack: expected shallow list"
 msgstr "git fetch-pack:应为 shallow 列表"
 
-#: fetch-pack.c:154
+#: fetch-pack.c:179
 msgid "git fetch-pack: expected a flush packet after shallow list"
 msgstr "git fetch-pack:在浅克隆列表之后期望一个 flush 包"
 
-#: fetch-pack.c:165
+#: fetch-pack.c:190
 msgid "git fetch-pack: expected ACK/NAK, got a flush packet"
 msgstr "git fetch-pack:期望 ACK/NAK,却得到 flush 包"
 
-#: fetch-pack.c:185
+#: fetch-pack.c:210
 #, c-format
 msgid "git fetch-pack: expected ACK/NAK, got '%s'"
 msgstr "git fetch-pack:应为 ACK/NAK,却得到 '%s'"
 
-#: fetch-pack.c:196
+#: fetch-pack.c:221
 msgid "unable to write to remote"
 msgstr "无法写到远程"
 
-#: fetch-pack.c:258
+#: fetch-pack.c:282
 msgid "--stateless-rpc requires multi_ack_detailed"
 msgstr "--stateless-rpc 需要 multi_ack_detailed"
 
-#: fetch-pack.c:360 fetch-pack.c:1284
+#: fetch-pack.c:375 fetch-pack.c:1397
 #, c-format
 msgid "invalid shallow line: %s"
 msgstr "无效的 shallow 信息:%s"
 
-#: fetch-pack.c:366 fetch-pack.c:1290
+#: fetch-pack.c:381 fetch-pack.c:1403
 #, c-format
 msgid "invalid unshallow line: %s"
 msgstr "无效的 unshallow 信息:%s"
 
-#: fetch-pack.c:368 fetch-pack.c:1292
+#: fetch-pack.c:383 fetch-pack.c:1405
 #, c-format
 msgid "object not found: %s"
 msgstr "对象未找到:%s"
 
-#: fetch-pack.c:371 fetch-pack.c:1295
+#: fetch-pack.c:386 fetch-pack.c:1408
 #, c-format
 msgid "error in object: %s"
 msgstr "对象中出错:%s"
 
-#: fetch-pack.c:373 fetch-pack.c:1297
+#: fetch-pack.c:388 fetch-pack.c:1410
 #, c-format
 msgid "no shallow found: %s"
 msgstr "未发现 shallow:%s"
 
-#: fetch-pack.c:376 fetch-pack.c:1301
+#: fetch-pack.c:391 fetch-pack.c:1414
 #, c-format
 msgid "expected shallow/unshallow, got %s"
 msgstr "应为 shallow/unshallow,却得到 %s"
 
-#: fetch-pack.c:417
+#: fetch-pack.c:431
 #, c-format
 msgid "got %s %d %s"
 msgstr "得到 %s %d %s"
 
-#: fetch-pack.c:434
+#: fetch-pack.c:448
 #, c-format
 msgid "invalid commit %s"
 msgstr "无效提交 %s"
 
-#: fetch-pack.c:465
+#: fetch-pack.c:479
 msgid "giving up"
 msgstr "放弃"
 
-#: fetch-pack.c:477 progress.c:277
+#: fetch-pack.c:492 progress.c:339
 msgid "done"
 msgstr "完成"
 
-#: fetch-pack.c:489
+#: fetch-pack.c:504
 #, c-format
 msgid "got %s (%d) %s"
 msgstr "得到 %s (%d) %s"
 
-#: fetch-pack.c:535
+#: fetch-pack.c:540
 #, c-format
 msgid "Marking %s as complete"
 msgstr "标记 %s 为完成"
 
-#: fetch-pack.c:744
+#: fetch-pack.c:755
 #, c-format
 msgid "already have %s (%s)"
 msgstr "已经有 %s(%s)"
 
-#: fetch-pack.c:783
+#: fetch-pack.c:824
 msgid "fetch-pack: unable to fork off sideband demultiplexer"
 msgstr "fetch-pack:无法派生 sideband 多路输出"
 
-#: fetch-pack.c:791
+#: fetch-pack.c:832
 msgid "protocol error: bad pack header"
 msgstr "协议错误:坏的包头"
 
-#: fetch-pack.c:859
+#: fetch-pack.c:916
 #, c-format
 msgid "fetch-pack: unable to fork off %s"
 msgstr "fetch-pack:无法派生进程 %s"
 
-#: fetch-pack.c:875
+#: fetch-pack.c:933
 #, c-format
 msgid "%s failed"
 msgstr "%s 失败"
 
-#: fetch-pack.c:877
+#: fetch-pack.c:935
 msgid "error in sideband demultiplexer"
 msgstr "sideband 多路输出出错"
 
-#: fetch-pack.c:908
+#: fetch-pack.c:978
 #, c-format
 msgid "Server version is %.*s"
 msgstr "服务器版本 %.*s"
 
-#: fetch-pack.c:913 fetch-pack.c:919 fetch-pack.c:922 fetch-pack.c:928
-#: fetch-pack.c:932 fetch-pack.c:936 fetch-pack.c:940 fetch-pack.c:944
-#: fetch-pack.c:948 fetch-pack.c:952 fetch-pack.c:956 fetch-pack.c:960
-#: fetch-pack.c:966 fetch-pack.c:972 fetch-pack.c:977 fetch-pack.c:982
+#: fetch-pack.c:983 fetch-pack.c:989 fetch-pack.c:992 fetch-pack.c:998
+#: fetch-pack.c:1002 fetch-pack.c:1006 fetch-pack.c:1010 fetch-pack.c:1014
+#: fetch-pack.c:1018 fetch-pack.c:1022 fetch-pack.c:1026 fetch-pack.c:1030
+#: fetch-pack.c:1036 fetch-pack.c:1042 fetch-pack.c:1047 fetch-pack.c:1052
 #, c-format
 msgid "Server supports %s"
 msgstr "服务器支持 %s"
 
-#: fetch-pack.c:915
+#: fetch-pack.c:985
 msgid "Server does not support shallow clients"
 msgstr "服务器不支持 shalllow 客户端"
 
-#: fetch-pack.c:975
+#: fetch-pack.c:1045
 msgid "Server does not support --shallow-since"
 msgstr "服务器不支持 --shallow-since"
 
-#: fetch-pack.c:980
+#: fetch-pack.c:1050
 msgid "Server does not support --shallow-exclude"
 msgstr "服务器不支持 --shallow-exclude"
 
-#: fetch-pack.c:984
+#: fetch-pack.c:1054
 msgid "Server does not support --deepen"
 msgstr "服务器不支持 --deepen"
 
-#: fetch-pack.c:1001
+#: fetch-pack.c:1056
+msgid "Server does not support this repository's object format"
+msgstr "服务器不支持这个仓库的对象格式"
+
+#: fetch-pack.c:1069
 msgid "no common commits"
 msgstr "没有共同的提交"
 
-#: fetch-pack.c:1013 fetch-pack.c:1462
+#: fetch-pack.c:1081 fetch-pack.c:1619
 msgid "git fetch-pack: fetch failed."
 msgstr "git fetch-pack:获取失败。"
 
-#: fetch-pack.c:1151
+#: fetch-pack.c:1205
+#, c-format
+msgid "mismatched algorithms: client %s; server %s"
+msgstr "不匹配的算法:客户端 %s,服务端 %s"
+
+#: fetch-pack.c:1209
+#, c-format
+msgid "the server does not support algorithm '%s'"
+msgstr "服务器不支持算法 '%s'"
+
+#: fetch-pack.c:1229
 msgid "Server does not support shallow requests"
 msgstr "服务器不支持 shalllow 请求"
 
-#: fetch-pack.c:1157
+#: fetch-pack.c:1236
 msgid "Server supports filter"
 msgstr "服务器支持 filter"
 
-#: fetch-pack.c:1184
+#: fetch-pack.c:1275
 msgid "unable to write request to remote"
 msgstr "无法将请求写到远程"
 
-#: fetch-pack.c:1202
+#: fetch-pack.c:1293
 #, c-format
 msgid "error reading section header '%s'"
 msgstr "读取节标题 '%s' 出错"
 
-#: fetch-pack.c:1208
+#: fetch-pack.c:1299
 #, c-format
 msgid "expected '%s', received '%s'"
 msgstr "预期 '%s',得到 '%s'"
 
-#: fetch-pack.c:1247
+#: fetch-pack.c:1360
 #, c-format
 msgid "unexpected acknowledgment line: '%s'"
 msgstr "意外的确认行:'%s'"
 
-#: fetch-pack.c:1252
+#: fetch-pack.c:1365
 #, c-format
 msgid "error processing acks: %d"
 msgstr "处理 ack 出错:%d"
 
-#: fetch-pack.c:1262
+#: fetch-pack.c:1375
 msgid "expected packfile to be sent after 'ready'"
 msgstr "预期在 'ready' 之后发送 packfile"
 
-#: fetch-pack.c:1264
+#: fetch-pack.c:1377
 msgid "expected no other sections to be sent after no 'ready'"
 msgstr "在没有 'ready' 不应该发送其它小节"
 
-#: fetch-pack.c:1306
+#: fetch-pack.c:1419
 #, c-format
 msgid "error processing shallow info: %d"
 msgstr "处理浅克隆信息出错:%d"
 
-#: fetch-pack.c:1353
+#: fetch-pack.c:1466
 #, c-format
 msgid "expected wanted-ref, got '%s'"
 msgstr "预期 wanted-ref,得到 '%s'"
 
-#: fetch-pack.c:1358
+#: fetch-pack.c:1471
 #, c-format
 msgid "unexpected wanted-ref: '%s'"
 msgstr "意外的 wanted-ref:'%s'"
 
-#: fetch-pack.c:1363
+#: fetch-pack.c:1476
 #, c-format
 msgid "error processing wanted refs: %d"
 msgstr "处理要获取的引用出错:%d"
 
-#: fetch-pack.c:1689
+#: fetch-pack.c:1506
+msgid "git fetch-pack: expected response end packet"
+msgstr "git fetch-pack:预期响应结束包"
+
+#: fetch-pack.c:1887
 msgid "no matching remote head"
 msgstr "没有匹配的远程分支"
 
-#: fetch-pack.c:1712 builtin/clone.c:686
+#: fetch-pack.c:1910 builtin/clone.c:692
 msgid "remote did not send all necessary objects"
 msgstr "远程没有发送所有必需的对象"
 
-#: fetch-pack.c:1739
+#: fetch-pack.c:1937
 #, c-format
 msgid "no such remote ref %s"
 msgstr "没有这样的远程引用 %s"
 
-#: fetch-pack.c:1742
+#: fetch-pack.c:1940
 #, c-format
 msgid "Server does not allow request for unadvertised object %s"
 msgstr "服务器不允许请求未公开的对象 %s"
 
-#: gpg-interface.c:321
-msgid "gpg failed to sign the data"
-msgstr "gpg 无法为数据签名"
-
-#: gpg-interface.c:347
+#: gpg-interface.c:272
 msgid "could not create temporary file"
 msgstr "不能创建临时文件"
 
-#: gpg-interface.c:350
+#: gpg-interface.c:275
 #, c-format
 msgid "failed writing detached signature to '%s'"
 msgstr "无法将分离式签名写入 '%s'"
 
-#: graph.c:97
+#: gpg-interface.c:457
+msgid "gpg failed to sign the data"
+msgstr "gpg 数据签名失败"
+
+#: graph.c:98
 #, c-format
 msgid "ignore invalid color '%.*s' in log.graphColors"
 msgstr "忽略 log.graphColors 中无效的颜色 '%.*s'"
 
-#: grep.c:2117
+#: grep.c:668
+msgid ""
+"given pattern contains NULL byte (via -f <file>). This is only supported "
+"with -P under PCRE v2"
+msgstr ""
+"给定的模式包含 NULL 字符(通过 -f <文件> 参数)。只有 PCRE v2 下的 -P 支持此"
+"功能"
+
+#: grep.c:2128
 #, c-format
 msgid "'%s': unable to read %s"
 msgstr "'%s':无法读取 %s"
 
-#: grep.c:2134 setup.c:164 builtin/clone.c:409 builtin/diff.c:82
+#: grep.c:2145 setup.c:176 builtin/clone.c:411 builtin/diff.c:89
 #: builtin/rm.c:135
 #, c-format
 msgid "failed to stat '%s'"
 msgstr "对 '%s' 调用 stat 失败"
 
-#: grep.c:2145
+#: grep.c:2156
 #, c-format
 msgid "'%s': short read"
 msgstr "'%s':读取不完整"
@@ -3418,48 +4252,48 @@ msgid "Low-level Commands / Interrogators"
 msgstr "低级命令/询问者"
 
 #: help.c:37
-msgid "Low-level Commands / Synching Repositories"
+msgid "Low-level Commands / Syncing Repositories"
 msgstr "低级命令/同步仓库"
 
 #: help.c:38
 msgid "Low-level Commands / Internal Helpers"
 msgstr "低级命令/内部助手"
 
-#: help.c:298
+#: help.c:300
 #, c-format
 msgid "available git commands in '%s'"
 msgstr "在 '%s' 下可用的 git 命令"
 
-#: help.c:305
+#: help.c:307
 msgid "git commands available from elsewhere on your $PATH"
 msgstr "在 $PATH 路径中的其他地方可用的 git 命令"
 
-#: help.c:314
+#: help.c:316
 msgid "These are common Git commands used in various situations:"
 msgstr "这些是各种场合常见的 Git 命令:"
 
-#: help.c:363 git.c:98
+#: help.c:365 git.c:99
 #, c-format
 msgid "unsupported command listing type '%s'"
 msgstr "不支持的命令列表类型 '%s'"
 
-#: help.c:403
-msgid "The common Git guides are:"
-msgstr "最常用的 Git 向导有:"
+#: help.c:405
+msgid "The Git concept guides are:"
+msgstr "Git 概念向导有:"
 
-#: help.c:512
+#: help.c:429
 msgid "See 'git help <command>' to read about a specific subcommand"
 msgstr "执行 'git help <command>' 来查看特定子命令"
 
-#: help.c:517
+#: help.c:434
 msgid "External commands"
 msgstr "外部命令"
 
-#: help.c:532
+#: help.c:449
 msgid "Command aliases"
 msgstr "命令别名"
 
-#: help.c:596
+#: help.c:513
 #, c-format
 msgid ""
 "'%s' appears to be a git command, but we were not\n"
@@ -3468,31 +4302,31 @@ msgstr ""
 "'%s' 像是一个 git 命令,但却无法运行。\n"
 "可能是 git-%s 受损?"
 
-#: help.c:655
+#: help.c:572
 msgid "Uh oh. Your system reports no Git commands at all."
 msgstr "唉呀,您的系统中未发现 Git 命令。"
 
-#: help.c:677
+#: help.c:594
 #, c-format
 msgid "WARNING: You called a Git command named '%s', which does not exist."
 msgstr "警告:您运行了一个并不存在的 Git 命令 '%s'。"
 
-#: help.c:682
+#: help.c:599
 #, c-format
 msgid "Continuing under the assumption that you meant '%s'."
 msgstr "假定你想要的是 '%s' 并继续。"
 
-#: help.c:687
+#: help.c:604
 #, c-format
 msgid "Continuing in %0.1f seconds, assuming that you meant '%s'."
 msgstr "假定你想要的是 '%2$s',在 %1$0.1f 秒钟后继续。"
 
-#: help.c:695
+#: help.c:612
 #, c-format
 msgid "git: '%s' is not a git command. See 'git --help'."
 msgstr "git:'%s' 不是一个 git 命令。参见 'git --help'。"
 
-#: help.c:699
+#: help.c:616
 msgid ""
 "\n"
 "The most similar command is"
@@ -3506,16 +4340,16 @@ msgstr[1] ""
 "\n"
 "最相似的命令是"
 
-#: help.c:714
+#: help.c:656
 msgid "git version [<options>]"
 msgstr "git version [<选项>]"
 
-#: help.c:782
+#: help.c:711
 #, c-format
 msgid "%s: %s - %s"
 msgstr "%s:%s - %s"
 
-#: help.c:786
+#: help.c:715
 msgid ""
 "\n"
 "Did you mean this?"
@@ -3529,7 +4363,15 @@ msgstr[1] ""
 "\n"
 "您指的是这其中的某一个么?"
 
-#: ident.c:349
+#: ident.c:353
+msgid "Author identity unknown\n"
+msgstr "作者身份未知\n"
+
+#: ident.c:356
+msgid "Committer identity unknown\n"
+msgstr "提交者身份未知\n"
+
+#: ident.c:362
 msgid ""
 "\n"
 "*** Please tell me who you are.\n"
@@ -3554,76 +4396,95 @@ msgstr ""
 "来设置您账号的缺省身份标识。\n"
 "如果仅在本仓库设置身份标识,则省略 --global 参数。\n"
 
-#: ident.c:379
+#: ident.c:397
 msgid "no email was given and auto-detection is disabled"
 msgstr "未提供邮件地址且自动探测被禁用"
 
-#: ident.c:384
+#: ident.c:402
 #, c-format
 msgid "unable to auto-detect email address (got '%s')"
 msgstr "无法自动探测邮件地址(得到 '%s')"
 
-#: ident.c:401
+#: ident.c:419
 msgid "no name was given and auto-detection is disabled"
 msgstr "未提供姓名且自动探测被禁用"
 
-#: ident.c:407
+#: ident.c:425
 #, c-format
 msgid "unable to auto-detect name (got '%s')"
 msgstr "无法自动探测姓名(得到 '%s')"
 
-#: ident.c:415
+#: ident.c:433
 #, c-format
 msgid "empty ident name (for <%s>) not allowed"
 msgstr "不允许空的姓名(对于 <%s>)"
 
-#: ident.c:421
+#: ident.c:439
 #, c-format
 msgid "name consists only of disallowed characters: %s"
 msgstr "姓名中仅包含禁用字符:%s"
 
-#: ident.c:436 builtin/commit.c:611
+#: ident.c:454 builtin/commit.c:634
 #, c-format
 msgid "invalid date format: %s"
 msgstr "无效的日期格式:%s"
 
-#: list-objects.c:129
-#, c-format
-msgid "entry '%s' in tree %s has tree mode, but is not a tree"
-msgstr "树 %2$s 中的条目 '%1$s' 具有树的属性,但不是一个树对象"
+#: list-objects-filter-options.c:81
+msgid "expected 'tree:<depth>'"
+msgstr "期望 'tree:<深度>'"
 
-#: list-objects.c:142
+#: list-objects-filter-options.c:96
+msgid "sparse:path filters support has been dropped"
+msgstr "sparse:path 过滤器支持已被删除"
+
+#: list-objects-filter-options.c:109
 #, c-format
-msgid "entry '%s' in tree %s has blob mode, but is not a blob"
-msgstr "树 %2$s 中的条目 '%1$s' 具有数据对象的属性,但不是一个数据对象"
+msgid "invalid filter-spec '%s'"
+msgstr "无效的过滤器表达式 '%s'"
 
-#: list-objects.c:378
+#: list-objects-filter-options.c:125
 #, c-format
-msgid "unable to load root tree for commit %s"
-msgstr "无法为提交 %s 加载根树"
+msgid "must escape char in sub-filter-spec: '%c'"
+msgstr "必须对 sub-filter-spec 中的字符进行转义:'%c'"
+
+#: list-objects-filter-options.c:167
+msgid "expected something after combine:"
+msgstr "期望在组合后有一些东西:"
 
-#: list-objects-filter-options.c:36
+#: list-objects-filter-options.c:249
 msgid "multiple filter-specs cannot be combined"
 msgstr "不能混用多种过滤规格"
 
-#: list-objects-filter-options.c:58
-msgid "expected 'tree:<depth>'"
-msgstr "期望 'tree:<深度>'"
+#: list-objects-filter-options.c:361
+msgid "unable to upgrade repository format to support partial clone"
+msgstr "无法升级仓库格式以支持部分克隆"
 
-#: list-objects-filter-options.c:84
-msgid "sparse:path filters support has been dropped"
-msgstr "sparse:path 过滤器支持已被删除"
+#: list-objects-filter.c:492
+#, c-format
+msgid "unable to access sparse blob in '%s'"
+msgstr "不能访问 '%s' 中的稀疏数据对象"
 
-#: list-objects-filter-options.c:94
+#: list-objects-filter.c:495
 #, c-format
-msgid "invalid filter-spec '%s'"
-msgstr "无效的过滤器表达式 '%s'"
+msgid "unable to parse sparse filter data in %s"
+msgstr "无法解析 %s 中的稀疏过滤器数据"
 
-#: list-objects-filter-options.c:158
-msgid "cannot change partial clone promisor remote"
-msgstr "无法修改部分克隆的 promisor 远程仓库"
+#: list-objects.c:127
+#, c-format
+msgid "entry '%s' in tree %s has tree mode, but is not a tree"
+msgstr "树 %2$s 中的条目 '%1$s' 具有树的模式,但不是一个树对象"
+
+#: list-objects.c:140
+#, c-format
+msgid "entry '%s' in tree %s has blob mode, but is not a blob"
+msgstr "树 %2$s 中的条目 '%1$s' 具有数据对象的模式,但不是一个数据对象"
 
-#: lockfile.c:151
+#: list-objects.c:375
+#, c-format
+msgid "unable to load root tree for commit %s"
+msgstr "无法为提交 %s 加载根树"
+
+#: lockfile.c:152
 #, c-format
 msgid ""
 "Unable to create '%s.lock': %s.\n"
@@ -3641,123 +4502,113 @@ msgstr ""
 "可能之前有一个 git 进程在这个仓库中异常退出:\n"
 "手动删除这个文件再继续。"
 
-#: lockfile.c:159
+#: lockfile.c:160
 #, c-format
 msgid "Unable to create '%s.lock': %s"
 msgstr "不能创建 '%s.lock':%s"
 
-#: merge.c:41
-msgid "failed to read the cache"
-msgstr "读取缓存失败"
-
-#: merge.c:107 rerere.c:720 builtin/am.c:1885 builtin/am.c:1919
-#: builtin/checkout.c:536 builtin/checkout.c:796 builtin/clone.c:786
-#: builtin/stash.c:264
-msgid "unable to write new index file"
-msgstr "无法写新的索引文件"
+#: ls-refs.c:109
+msgid "expected flush after ls-refs arguments"
+msgstr "在 ls-refs 参数后应该有一个 flush 包"
 
-#: merge-recursive.c:322
+#: merge-recursive.c:356
 msgid "(bad commit)\n"
 msgstr "(坏提交)\n"
 
-#: merge-recursive.c:345
+#: merge-recursive.c:379
 #, c-format
 msgid "add_cacheinfo failed for path '%s'; merge aborting."
 msgstr "add_cacheinfo 对路径 '%s' 执行失败,合并终止。"
 
-#: merge-recursive.c:354
+#: merge-recursive.c:388
 #, c-format
 msgid "add_cacheinfo failed to refresh for path '%s'; merge aborting."
 msgstr "add_cacheinfo 无法刷新路径 '%s',合并终止。"
 
-#: merge-recursive.c:437
-msgid "error building trees"
-msgstr "创建树出错"
-
-#: merge-recursive.c:863
+#: merge-recursive.c:874
 #, c-format
 msgid "failed to create path '%s'%s"
 msgstr "创建路径 '%s'%s 失败"
 
-#: merge-recursive.c:874
+#: merge-recursive.c:885
 #, c-format
 msgid "Removing %s to make room for subdirectory\n"
 msgstr "删除 %s 以便为子目录留出空间\n"
 
-#: merge-recursive.c:888 merge-recursive.c:907
+#: merge-recursive.c:899 merge-recursive.c:918
 msgid ": perhaps a D/F conflict?"
 msgstr ":可能是一个目录/文件冲突?"
 
-#: merge-recursive.c:897
+#: merge-recursive.c:908
 #, c-format
 msgid "refusing to lose untracked file at '%s'"
 msgstr "拒绝丢弃 '%s' 中的未跟踪文件"
 
-#: merge-recursive.c:938 builtin/cat-file.c:40
+#: merge-recursive.c:949 builtin/cat-file.c:41
 #, c-format
 msgid "cannot read object %s '%s'"
 msgstr "不能读取对象 %s '%s'"
 
-#: merge-recursive.c:941
+#: merge-recursive.c:954
 #, c-format
 msgid "blob expected for %s '%s'"
 msgstr "%s '%s' 应为数据对象"
 
-#: merge-recursive.c:965
+#: merge-recursive.c:979
 #, c-format
 msgid "failed to open '%s': %s"
 msgstr "打开 '%s' 失败:%s"
 
-#: merge-recursive.c:976
+#: merge-recursive.c:990
 #, c-format
 msgid "failed to symlink '%s': %s"
 msgstr "创建符号链接 '%s' 失败:%s"
 
-#: merge-recursive.c:981
+#: merge-recursive.c:995
 #, c-format
 msgid "do not know what to do with %06o %s '%s'"
 msgstr "不知道如何处理 %06o %s '%s'"
 
-#: merge-recursive.c:1177
+#: merge-recursive.c:1191
 #, c-format
 msgid "Failed to merge submodule %s (not checked out)"
 msgstr "无法合并子模组 %s (没有检出)"
 
-#: merge-recursive.c:1184
+#: merge-recursive.c:1198
 #, c-format
 msgid "Failed to merge submodule %s (commits not present)"
 msgstr "无法合并子模组 %s(提交不存在)"
 
-#: merge-recursive.c:1191
+#: merge-recursive.c:1205
 #, c-format
 msgid "Failed to merge submodule %s (commits don't follow merge-base)"
 msgstr "无法合并子模组 %s (提交未跟随合并基线)"
 
-#: merge-recursive.c:1199 merge-recursive.c:1211
+#: merge-recursive.c:1213 merge-recursive.c:1225
 #, c-format
 msgid "Fast-forwarding submodule %s to the following commit:"
 msgstr "子模组 %s 快进到如下提交:"
 
-#: merge-recursive.c:1202 merge-recursive.c:1214
+#: merge-recursive.c:1216 merge-recursive.c:1228
 #, c-format
 msgid "Fast-forwarding submodule %s"
 msgstr "快进子模组 %s"
 
-#: merge-recursive.c:1237
+#: merge-recursive.c:1251
 #, c-format
 msgid "Failed to merge submodule %s (merge following commits not found)"
 msgstr "无法合并子模组 %s (没发现合并跟随的提交)"
 
-#: merge-recursive.c:1241
+#: merge-recursive.c:1255
 #, c-format
 msgid "Failed to merge submodule %s (not fast-forward)"
 msgstr "无法合并子模组 %s(非快进)"
 
-#: merge-recursive.c:1242
+#: merge-recursive.c:1256
 msgid "Found a possible merge resolution for the submodule:\n"
 msgstr "找到子模组的一个可能的合并方案:\n"
 
-#: merge-recursive.c:1245
+#: merge-recursive.c:1259
 #, c-format
 msgid ""
 "If this is correct simply add it to the index for example\n"
@@ -3773,31 +4624,31 @@ msgstr ""
 "\n"
 "以接受此建议。\n"
 
-#: merge-recursive.c:1254
+#: merge-recursive.c:1268
 #, c-format
 msgid "Failed to merge submodule %s (multiple merges found)"
 msgstr "无法合并子模组 %s (发现多个合并)"
 
-#: merge-recursive.c:1327
+#: merge-recursive.c:1341
 msgid "Failed to execute internal merge"
 msgstr "无法执行内部合并"
 
-#: merge-recursive.c:1332
+#: merge-recursive.c:1346
 #, c-format
 msgid "Unable to add %s to database"
 msgstr "不能添加 %s 至对象库"
 
-#: merge-recursive.c:1364
+#: merge-recursive.c:1378
 #, c-format
 msgid "Auto-merging %s"
 msgstr "自动合并 %s"
 
-#: merge-recursive.c:1387
+#: merge-recursive.c:1402
 #, c-format
 msgid "Error: Refusing to lose untracked file at %s; writing to %s instead."
 msgstr "错误:拒绝丢失未跟踪文件 '%s',而是写入 %s。"
 
-#: merge-recursive.c:1459
+#: merge-recursive.c:1474
 #, c-format
 msgid ""
 "CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -3806,7 +4657,7 @@ msgstr ""
 "冲突(%1$s/删除):%2$s 在 %3$s 中被删除,在 %5$s 中被 %4$s。%7$s 的 %6$s 版"
 "本被保留。"
 
-#: merge-recursive.c:1464
+#: merge-recursive.c:1479
 #, c-format
 msgid ""
 "CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
@@ -3815,7 +4666,7 @@ msgstr ""
 "冲突(%1$s/删除):%2$s 在 %3$s 中被删除,在 %6$s 中的 %5$s 被 %4$s。%8$s 的 "
 "%7$s 版本被保留。"
 
-#: merge-recursive.c:1471
+#: merge-recursive.c:1486
 #, c-format
 msgid ""
 "CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -3824,7 +4675,7 @@ msgstr ""
 "冲突(%1$s/删除):%2$s 在 %3$s 中被删除,在 %5$s 中被 %4$s。%7$s 的 %6$s 版"
 "本保留在 %8$s 中。"
 
-#: merge-recursive.c:1476
+#: merge-recursive.c:1491
 #, c-format
 msgid ""
 "CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s "
@@ -3833,40 +4684,40 @@ msgstr ""
 "冲突(%1$s/删除):%2$s 在 %3$s 中被删除,在 %6$s 中的 %5$s 被 %4$s。%8$s 的 "
 "%7$s 版本保留在 %9$s 中。"
 
-#: merge-recursive.c:1511
+#: merge-recursive.c:1526
 msgid "rename"
 msgstr "重命名"
 
-#: merge-recursive.c:1511
+#: merge-recursive.c:1526
 msgid "renamed"
 msgstr "重命名"
 
-#: merge-recursive.c:1591 merge-recursive.c:2450 merge-recursive.c:3094
+#: merge-recursive.c:1577 merge-recursive.c:2484 merge-recursive.c:3129
 #, c-format
 msgid "Refusing to lose dirty file at %s"
 msgstr "拒绝丢失脏文件 '%s'"
 
-#: merge-recursive.c:1601
+#: merge-recursive.c:1587
 #, c-format
 msgid "Refusing to lose untracked file at %s, even though it's in the way."
 msgstr "拒绝在 '%s' 处失去未跟踪文件,即使它存在于重命名中。"
 
-#: merge-recursive.c:1659
+#: merge-recursive.c:1645
 #, c-format
 msgid "CONFLICT (rename/add): Rename %s->%s in %s.  Added %s in %s"
 msgstr "冲突(重命名/添加):在 %3$s 中重命名 %1$s->%2$s。在 %5$s 中添加 %4$s"
 
-#: merge-recursive.c:1690
+#: merge-recursive.c:1676
 #, c-format
 msgid "%s is a directory in %s adding as %s instead"
 msgstr "%s 是 %s 中的一个目录而以 %s 为名被添加"
 
-#: merge-recursive.c:1695
+#: merge-recursive.c:1681
 #, c-format
 msgid "Refusing to lose untracked file at %s; adding as %s instead"
 msgstr "拒绝丢失未跟踪文件 '%s',而是添加为 %s"
 
-#: merge-recursive.c:1714
+#: merge-recursive.c:1708
 #, c-format
 msgid ""
 "CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
@@ -3875,18 +4726,18 @@ msgstr ""
 "冲突(重命名/重命名):在分支 \"%3$s\" 中重命名 \"%1$s\"->\"%2$s\",在分支 "
 "\"%6$s\" 中重命名 \"%4$s\"->\"%5$s\"%7$s"
 
-#: merge-recursive.c:1719
+#: merge-recursive.c:1713
 msgid " (left unresolved)"
 msgstr "(留下未解决)"
 
-#: merge-recursive.c:1828
+#: merge-recursive.c:1805
 #, c-format
 msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s"
 msgstr ""
 "冲突(重命名/重命名):在 %3$s 中重命名 %1$s->%2$s,在 %6$s 中重命名 %4$s->"
 "%5$s"
 
-#: merge-recursive.c:2035
+#: merge-recursive.c:2068
 #, c-format
 msgid ""
 "CONFLICT (directory rename split): Unclear where to place %s because "
@@ -3896,7 +4747,7 @@ msgstr ""
 "冲突(分割的目录重命名):不清楚 %s 应该放在哪里,因为目录 %s 被重命名到多个"
 "其它目录,没有目录包含大部分文件。"
 
-#: merge-recursive.c:2067
+#: merge-recursive.c:2100
 #, c-format
 msgid ""
 "CONFLICT (implicit dir rename): Existing file/dir at %s in the way of "
@@ -3905,7 +4756,7 @@ msgstr ""
 "冲突(隐式目录重命名):处于隐式目录重命名的现存文件/目录 %s,将以下路径放"
 "在:%s。"
 
-#: merge-recursive.c:2077
+#: merge-recursive.c:2110
 #, c-format
 msgid ""
 "CONFLICT (implicit dir rename): Cannot map more than one path to %s; "
@@ -3914,7 +4765,7 @@ msgstr ""
 "冲突(隐式目录重命名):无法映射一个以上路径到 %s,隐式目录重命名尝试将这些路"
 "径放置于此:%s"
 
-#: merge-recursive.c:2169
+#: merge-recursive.c:2202
 #, c-format
 msgid ""
 "CONFLICT (rename/rename): Rename directory %s->%s in %s. Rename directory %s-"
@@ -3923,59 +4774,59 @@ msgstr ""
 "冲突(重命名/重命名):在 %3$s 中重命名目录 %1$s->%2$s,在 %6$s 中重命名目录 "
 "%4$s->%5$s"
 
-#: merge-recursive.c:2413
+#: 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:2938
+#: merge-recursive.c:2973
 #, c-format
 msgid "cannot read object %s"
 msgstr "不能读取对象 %s"
 
-#: merge-recursive.c:2941
+#: merge-recursive.c:2976
 #, c-format
 msgid "object %s is not a blob"
 msgstr "对象 %s 不是一个数据对象"
 
-#: merge-recursive.c:3005
+#: merge-recursive.c:3040
 msgid "modify"
 msgstr "修改"
 
-#: merge-recursive.c:3005
+#: merge-recursive.c:3040
 msgid "modified"
 msgstr "修改"
 
-#: merge-recursive.c:3017
+#: merge-recursive.c:3052
 msgid "content"
 msgstr "内容"
 
-#: merge-recursive.c:3021
+#: merge-recursive.c:3056
 msgid "add/add"
 msgstr "添加/添加"
 
-#: merge-recursive.c:3044
+#: merge-recursive.c:3079
 #, c-format
 msgid "Skipped %s (merged same as existing)"
 msgstr "略过 %s(已经做过相同合并)"
 
-#: merge-recursive.c:3066 git-submodule.sh:937
+#: merge-recursive.c:3101
 msgid "submodule"
 msgstr "子模组"
 
-#: merge-recursive.c:3067
+#: merge-recursive.c:3102
 #, c-format
 msgid "CONFLICT (%s): Merge conflict in %s"
 msgstr "冲突(%s):合并冲突于 %s"
 
-#: merge-recursive.c:3097
+#: merge-recursive.c:3132
 #, c-format
 msgid "Adding as %s instead"
 msgstr "而是以 %s 为名添加"
 
-#: merge-recursive.c:3179
+#: merge-recursive.c:3215
 #, c-format
 msgid ""
 "Path updated: %s added in %s inside a directory that was renamed in %s; "
@@ -3983,7 +4834,7 @@ msgid ""
 msgstr ""
 "路径已更新:%s 添加到 %s,位于一个被重命名到 %s 的目录中,将其移动到 %s。"
 
-#: merge-recursive.c:3182
+#: merge-recursive.c:3218
 #, c-format
 msgid ""
 "CONFLICT (file location): %s added in %s inside a directory that was renamed "
@@ -3992,7 +4843,7 @@ msgstr ""
 "冲突(文件位置):%s 添加到 %s,位于一个被重命名为 %s 的目录中,建议将其移动"
 "到 %s。"
 
-#: merge-recursive.c:3186
+#: merge-recursive.c:3222
 #, c-format
 msgid ""
 "Path updated: %s renamed to %s in %s, inside a directory that was renamed in "
@@ -4001,7 +4852,7 @@ msgstr ""
 "路径已更新:%1$s 重命名为 %3$s 中的 %2$s,而该目录被重命名到 %4$s 中,将其移"
 "动到 %5$s。"
 
-#: merge-recursive.c:3189
+#: merge-recursive.c:3225
 #, c-format
 msgid ""
 "CONFLICT (file location): %s renamed to %s in %s, inside a directory that "
@@ -4010,224 +4861,262 @@ msgstr ""
 "冲突(文件位置):%1$s 重命名为 %3$s 中的 %2$s,而该目录被重命名到 %4$s 中,"
 "建议将其移动到 %5$s。"
 
-#: merge-recursive.c:3303
+#: merge-recursive.c:3339
 #, c-format
 msgid "Removing %s"
 msgstr "删除 %s"
 
-#: merge-recursive.c:3326
+#: merge-recursive.c:3362
 msgid "file/directory"
 msgstr "文件/目录"
 
-#: merge-recursive.c:3331
+#: merge-recursive.c:3367
 msgid "directory/file"
 msgstr "目录/文件"
 
-#: merge-recursive.c:3338
+#: merge-recursive.c:3374
 #, c-format
 msgid "CONFLICT (%s): There is a directory with name %s in %s. Adding %s as %s"
 msgstr "冲突(%1$s):在 %3$s 中有一个名为 %2$s 的目录。以 %5$s 为名添加 %4$s"
 
-#: merge-recursive.c:3347
+#: merge-recursive.c:3383
 #, c-format
 msgid "Adding %s"
 msgstr "添加 %s"
 
-#: merge-recursive.c:3356
+#: merge-recursive.c:3392
 #, c-format
 msgid "CONFLICT (add/add): Merge conflict in %s"
 msgstr "冲突(add/add):合并冲突于 %s"
 
-#: merge-recursive.c:3394
-#, c-format
-msgid ""
-"Your local changes to the following files would be overwritten by merge:\n"
-"  %s"
-msgstr ""
-"您对下列文件的本地修改将被合并操作覆盖:\n"
-"  %s"
-
-#: merge-recursive.c:3405
+#: merge-recursive.c:3436
 msgid "Already up to date!"
 msgstr "已经是最新的!"
 
-#: merge-recursive.c:3414
+#: merge-recursive.c:3445
 #, c-format
 msgid "merging of trees %s and %s failed"
 msgstr "无法合并树 %s 和 %s"
 
-#: merge-recursive.c:3513
+#: merge-recursive.c:3550
 msgid "Merging:"
 msgstr "合并:"
 
-#: merge-recursive.c:3526
+#: merge-recursive.c:3563
 #, c-format
 msgid "found %u common ancestor:"
 msgid_plural "found %u common ancestors:"
 msgstr[0] "发现 %u 个共同祖先:"
 msgstr[1] "发现 %u 个共同祖先:"
 
-#: merge-recursive.c:3565
+#: merge-recursive.c:3613
 msgid "merge returned no commit"
 msgstr "合并未返回提交"
 
-#: merge-recursive.c:3631
+#: merge-recursive.c:3672
+#, c-format
+msgid ""
+"Your local changes to the following files would be overwritten by merge:\n"
+"  %s"
+msgstr ""
+"您对下列文件的本地修改将被合并操作覆盖:\n"
+"  %s"
+
+#: merge-recursive.c:3769
 #, c-format
 msgid "Could not parse object '%s'"
 msgstr "不能解析对象 '%s'"
 
-#: merge-recursive.c:3647 builtin/merge.c:698 builtin/merge.c:869
+#: merge-recursive.c:3787 builtin/merge.c:702 builtin/merge.c:881
 msgid "Unable to write index."
 msgstr "不能写入索引。"
 
-#: midx.c:69
+#: merge.c:41
+msgid "failed to read the cache"
+msgstr "读取缓存失败"
+
+#: merge.c:109 rerere.c:720 builtin/am.c:1896 builtin/am.c:1930
+#: builtin/checkout.c:560 builtin/checkout.c:816 builtin/clone.c:816
+#: builtin/stash.c:265
+msgid "unable to write new index file"
+msgstr "无法写新的索引文件"
+
+#: midx.c:79
 #, c-format
 msgid "multi-pack-index file %s is too small"
 msgstr "多包索引文件 %s 太小"
 
-#: midx.c:85
+#: midx.c:95
 #, c-format
 msgid "multi-pack-index signature 0x%08x does not match signature 0x%08x"
 msgstr "多包索引签名 0x%08x 和签名 0x%08x 不匹配"
 
-#: midx.c:90
+#: midx.c:100
 #, c-format
 msgid "multi-pack-index version %d not recognized"
 msgstr "multi-pack-index 版本 %d 不能被识别"
 
-#: midx.c:95
+#: midx.c:105
 #, c-format
-msgid "hash version %u does not match"
-msgstr "散列版本 %u 不匹配"
+msgid "multi-pack-index hash version %u does not match version %u"
+msgstr "多包索引哈希版本 %u 和版本 %u 不匹配"
 
-#: midx.c:109
+#: midx.c:122
 msgid "invalid chunk offset (too large)"
 msgstr "无效的块偏移(太大)"
 
-#: midx.c:133
+#: midx.c:146
 msgid "terminating multi-pack-index chunk id appears earlier than expected"
 msgstr "终止多包索引块 id 出现时间早于预期"
 
-#: midx.c:146
+#: midx.c:159
 msgid "multi-pack-index missing required pack-name chunk"
 msgstr "多包索引缺少必需的包名块"
 
-#: midx.c:148
+#: midx.c:161
 msgid "multi-pack-index missing required OID fanout chunk"
 msgstr "多包索引缺少必需的对象 ID 扇出块"
 
-#: midx.c:150
+#: midx.c:163
 msgid "multi-pack-index missing required OID lookup chunk"
 msgstr "多包索引缺少必需的对象 ID 查询块"
 
-#: midx.c:152
+#: midx.c:165
 msgid "multi-pack-index missing required object offsets chunk"
 msgstr "多包索引缺少必需的对象偏移块"
 
-#: midx.c:166
+#: midx.c:179
 #, c-format
 msgid "multi-pack-index pack names out of order: '%s' before '%s'"
 msgstr "多包索引包名无序:'%s' 在 '%s' 之前"
 
-#: midx.c:211
+#: midx.c:222
 #, c-format
 msgid "bad pack-int-id: %u (%u total packs)"
 msgstr "错的 pack-int-id:%u(共有 %u 个包)"
 
-#: midx.c:261
+#: midx.c:272
 msgid "multi-pack-index stores a 64-bit offset, but off_t is too small"
 msgstr "多包索引存储一个64位偏移,但是 off_t 太小"
 
-#: midx.c:289
+#: midx.c:300
 msgid "error preparing packfile from multi-pack-index"
 msgstr "从多包索引准备 packfile 出错"
 
-#: midx.c:470
+#: midx.c:485
 #, c-format
 msgid "failed to add packfile '%s'"
 msgstr "添加包文件 '%s' 失败"
 
-#: midx.c:476
+#: midx.c:491
 #, c-format
 msgid "failed to open pack-index '%s'"
 msgstr "打开包索引 '%s' 失败"
 
-#: midx.c:536
+#: midx.c:551
 #, c-format
 msgid "failed to locate object %d in packfile"
 msgstr "在包文件中定位对象 %d 失败"
 
-#: midx.c:865
+#: midx.c:853
+msgid "Adding packfiles to multi-pack-index"
+msgstr "添加包文件到多包索引"
+
+#: midx.c:886
 #, c-format
 msgid "did not see pack-file %s to drop"
 msgstr "没有看到要丢弃的包文件 %s"
 
-#: midx.c:1036
+#: midx.c:938
+msgid "no pack files to index."
+msgstr "没有要索引的包文件。"
+
+#: midx.c:990
+msgid "Writing chunks to multi-pack-index"
+msgstr "写入块到多包索引"
+
+#: midx.c:1068
 #, c-format
 msgid "failed to clear multi-pack-index at %s"
 msgstr "清理位于 %s 的多包索引失败"
 
-#: midx.c:1091
+#: midx.c:1124
+msgid "multi-pack-index file exists, but failed to parse"
+msgstr "多包索引文件存在,但无法解析"
+
+#: midx.c:1132
 msgid "Looking for referenced packfiles"
 msgstr "正在查找引用的包文件"
 
-#: midx.c:1106
+#: midx.c:1147
 #, c-format
 msgid ""
 "oid fanout out of order: fanout[%d] = %<PRIx32> > %<PRIx32> = fanout[%d]"
 msgstr "对象 ID 扇出无序:fanout[%d] = %<PRIx32> > %<PRIx32> = fanout[%d]"
 
-#: midx.c:1110
-msgid "Verifying OID order in MIDX"
-msgstr "正在校验 MIDX 中的对象 ID 顺序"
+#: midx.c:1152
+msgid "the midx contains no oid"
+msgstr "midx 不包含 oid"
+
+#: midx.c:1161
+msgid "Verifying OID order in multi-pack-index"
+msgstr "校验多包索引中的 OID 顺序"
 
-#: midx.c:1119
+#: midx.c:1170
 #, c-format
 msgid "oid lookup out of order: oid[%d] = %s >= %s = oid[%d]"
 msgstr "对象 ID 查询无序:oid[%d] = %s >= %s = oid[%d]"
 
-#: midx.c:1138
+#: midx.c:1190
 msgid "Sorting objects by packfile"
 msgstr "通过包文件为对象排序"
 
-#: midx.c:1144
+#: midx.c:1197
 msgid "Verifying object offsets"
 msgstr "校验对象偏移"
 
-#: midx.c:1160
+#: midx.c:1213
 #, c-format
 msgid "failed to load pack entry for oid[%d] = %s"
 msgstr "为 oid[%d] = %s 加载包条目失败"
 
-#: midx.c:1166
+#: midx.c:1219
 #, c-format
 msgid "failed to load pack-index for packfile %s"
 msgstr "为包文件 %s 加载包索引失败"
 
-#: midx.c:1175
+#: midx.c:1228
 #, c-format
 msgid "incorrect object offset for oid[%d] = %s: %<PRIx64> != %<PRIx64>"
 msgstr "oid[%d] = %s 错误的对象偏移:%<PRIx64> != %<PRIx64>"
 
-#: midx.c:1350
+#: midx.c:1253
+msgid "Counting referenced objects"
+msgstr "正在对引用对象计数"
+
+#: midx.c:1263
+msgid "Finding and deleting unreferenced packfiles"
+msgstr "正在查找和删除未引用的包文件"
+
+#: midx.c:1454
 msgid "could not start pack-objects"
 msgstr "不能开始 pack-objects"
 
-#: midx.c:1369
+#: midx.c:1474
 msgid "could not finish pack-objects"
 msgstr "不能结束 pack-objects"
 
-#: name-hash.c:532
+#: name-hash.c:537
 #, c-format
 msgid "unable to create lazy_dir thread: %s"
 msgstr "不能创建 lazy_dir 线程:%s"
 
-#: name-hash.c:554
+#: name-hash.c:559
 #, c-format
 msgid "unable to create lazy_name thread: %s"
 msgstr "不能创建 lazy_name 线程:%s"
 
-#: name-hash.c:560
+#: name-hash.c:565
 #, c-format
 msgid "unable to join lazy_name thread: %s"
 msgstr "不能加入 lasy_name 线程:%s"
@@ -4271,45 +5160,70 @@ msgstr "拒绝向 %s(在 refs/notes/ 之外)写入注解"
 msgid "Bad %s value: '%s'"
 msgstr "坏的 %s 值:'%s'"
 
-#: object.c:54
+#: object.c:53
 #, c-format
 msgid "invalid object type \"%s\""
 msgstr "无效的对象类型 \"%s\""
 
-#: object.c:174
+#: object.c:173
 #, c-format
 msgid "object %s is a %s, not a %s"
 msgstr "对象 %s 是一个 %s,不是一个 %s"
 
-#: object.c:234
+#: object.c:233
 #, c-format
 msgid "object %s has unknown type id %d"
 msgstr "对象 %s 有未知的类型 id %d"
 
-#: object.c:247
+#: object.c:246
 #, c-format
 msgid "unable to parse object: %s"
 msgstr "不能解析对象:%s"
 
-#: object.c:267 object.c:278
+#: object.c:266 object.c:278
 #, c-format
 msgid "hash mismatch %s"
 msgstr "哈希值与 %s 不匹配"
 
-#: packfile.c:648
+#: pack-bitmap.c:815 pack-bitmap.c:821 builtin/pack-objects.c:2216
+#, c-format
+msgid "unable to get size of %s"
+msgstr "无法得到 %s 的大小"
+
+#: packfile.c:630
 msgid "offset before end of packfile (broken .idx?)"
 msgstr "偏移量在包文件结束之前(损坏的 .idx?)"
 
-#: packfile.c:1899
+#: packfile.c:1922
 #, c-format
 msgid "offset before start of pack index for %s (corrupt index?)"
 msgstr "偏移量在 %s 的包索引开始之前(损坏的索引?)"
 
-#: packfile.c:1903
+#: packfile.c:1926
 #, c-format
 msgid "offset beyond end of pack index for %s (truncated index?)"
 msgstr "偏移量越过了 %s 的包索引的结尾(被截断的索引?)"
 
+#: parse-options-cb.c:20 parse-options-cb.c:24
+#, c-format
+msgid "option `%s' expects a numerical value"
+msgstr "选项 `%s' 期望一个数字值"
+
+#: parse-options-cb.c:41
+#, c-format
+msgid "malformed expiration date '%s'"
+msgstr "格式错误的到期时间:'%s'"
+
+#: parse-options-cb.c:54
+#, c-format
+msgid "option `%s' expects \"always\", \"auto\", or \"never\""
+msgstr "选项 `%s' 期望 \"always\"、\"auto\" 或 \"never\""
+
+#: parse-options-cb.c:132 parse-options-cb.c:149
+#, c-format
+msgid "malformed object name '%s'"
+msgstr "格式错误的对象名 '%s'"
+
 #: parse-options.c:38
 #, c-format
 msgid "%s requires a value"
@@ -4325,7 +5239,7 @@ msgstr "%s 与 %s 不兼容"
 msgid "%s : incompatible with something else"
 msgstr "%s:和其它的不兼容"
 
-#: parse-options.c:92 parse-options.c:96 parse-options.c:319
+#: parse-options.c:92 parse-options.c:96 parse-options.c:317
 #, c-format
 msgid "%s takes no value"
 msgstr "%s 不取值"
@@ -4335,41 +5249,46 @@ msgstr "%s 不取值"
 msgid "%s isn't available"
 msgstr "%s 不可用"
 
-#: parse-options.c:219
+#: 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 后缀"
 
-#: parse-options.c:389
+#: parse-options.c:386
 #, c-format
 msgid "ambiguous option: %s (could be --%s%s or --%s%s)"
 msgstr "有歧义的选项:%s(可以是 --%s%s 或 --%s%s)"
 
-#: parse-options.c:423 parse-options.c:431
+#: parse-options.c:420 parse-options.c:428
 #, c-format
-msgid "did you mean `--%s` (with two dashes ?)"
-msgstr "你的意思是 `--%s`(有两个短线?)"
+msgid "did you mean `--%s` (with two dashes)?"
+msgstr "你的意思是 `--%s`(有两个短线)?"
+
+#: parse-options.c:666 parse-options.c:971
+#, c-format
+msgid "alias of --%s"
+msgstr "--%s 的别名"
 
-#: parse-options.c:859
+#: parse-options.c:862
 #, c-format
 msgid "unknown option `%s'"
 msgstr "未知选项 `%s'"
 
-#: parse-options.c:861
+#: parse-options.c:864
 #, c-format
 msgid "unknown switch `%c'"
 msgstr "未知开关 `%c'"
 
-#: parse-options.c:863
+#: parse-options.c:866
 #, c-format
 msgid "unknown non-ascii option in string: `%s'"
 msgstr "字符串中未知的非 ascii 字符选项:`%s'"
 
-#: parse-options.c:887
+#: parse-options.c:890
 msgid "..."
 msgstr "..."
 
-#: parse-options.c:906
+#: parse-options.c:909
 #, c-format
 msgid "usage: %s"
 msgstr "用法:%s"
@@ -4377,122 +5296,102 @@ msgstr "用法:%s"
 #. TRANSLATORS: the colon here should align with the
 #. one in "usage: %s" translation.
 #.
-#: parse-options.c:912
+#: parse-options.c:915
 #, c-format
 msgid "   or: %s"
 msgstr "  或:%s"
 
 #  译者:为保证在输出中对齐,注意调整句中空格!
-#: parse-options.c:915
+#: parse-options.c:918
 #, c-format
 msgid "    %s"
 msgstr "    %s"
 
-#: parse-options.c:954
+#: parse-options.c:957
 msgid "-NUM"
 msgstr "-数字"
 
-#: parse-options.c:968
-#, c-format
-msgid "alias of --%s"
-msgstr "--%s 的别名"
-
-#: parse-options-cb.c:20 parse-options-cb.c:24
-#, c-format
-msgid "option `%s' expects a numerical value"
-msgstr "选项 `%s' 期望一个数字值"
-
-#: parse-options-cb.c:41
-#, c-format
-msgid "malformed expiration date '%s'"
-msgstr "格式错误的到期时间:'%s'"
-
-#: parse-options-cb.c:54
-#, c-format
-msgid "option `%s' expects \"always\", \"auto\", or \"never\""
-msgstr "选项 `%s' 期望 \"always\"、\"auto\" 或 \"never\""
-
-#: parse-options-cb.c:130 parse-options-cb.c:147
-#, c-format
-msgid "malformed object name '%s'"
-msgstr "格式错误的对象名 '%s'"
-
-#: path.c:897
+#: path.c:915
 #, c-format
 msgid "Could not make %s writable by group"
 msgstr "不能设置 %s 为组可写"
 
-#: pathspec.c:128
+#: pathspec.c:130
 msgid "Escape character '\\' not allowed as last character in attr value"
 msgstr "转义字符 '\\' 不能作为属性值的最后一个字符"
 
-#: pathspec.c:146
+#: pathspec.c:148
 msgid "Only one 'attr:' specification is allowed."
 msgstr "只允许一个 'attr:' 规格。"
 
-#: pathspec.c:149
+#: pathspec.c:151
 msgid "attr spec must not be empty"
 msgstr "属性规格不能为空"
 
-#: pathspec.c:192
+#: pathspec.c:194
 #, c-format
 msgid "invalid attribute name %s"
 msgstr "无效的属性名 %s"
 
-#: pathspec.c:257
+#: pathspec.c:259
 msgid "global 'glob' and 'noglob' pathspec settings are incompatible"
 msgstr "全局的 'glob' 和 'noglob' 路径规格设置不兼容"
 
-#: pathspec.c:264
+#: pathspec.c:266
 msgid ""
 "global 'literal' pathspec setting is incompatible with all other global "
 "pathspec settings"
 msgstr "全局的 'literal' 路径规格设置和其它的全局路径规格设置不兼容"
 
-#: pathspec.c:304
+#: pathspec.c:306
 msgid "invalid parameter for pathspec magic 'prefix'"
 msgstr "路径规格包含无效的神奇前缀"
 
-#: pathspec.c:325
+#: pathspec.c:327
 #, c-format
 msgid "Invalid pathspec magic '%.*s' in '%s'"
 msgstr "在路径规格 '%3$s' 中无效的神奇前缀 '%2$.*1$s'"
 
-#: pathspec.c:330
+#: pathspec.c:332
 #, c-format
 msgid "Missing ')' at the end of pathspec magic in '%s'"
 msgstr "路径规格 '%s' 的神奇前缀结尾少了一个 ')'"
 
-#: pathspec.c:368
+#: pathspec.c:370
 #, c-format
 msgid "Unimplemented pathspec magic '%c' in '%s'"
 msgstr "路径规格 '%2$s' 中包含未实现的神奇前缀 '%1$c'"
 
-#: pathspec.c:427
+#: pathspec.c:429
 #, c-format
 msgid "%s: 'literal' and 'glob' are incompatible"
 msgstr "%s:'literal' 和 'glob' 不兼容"
 
-#: pathspec.c:440
+#: pathspec.c:445
 #, c-format
-msgid "%s: '%s' is outside repository"
-msgstr "%s:'%s' 在仓库之外"
+msgid "%s: '%s' is outside repository at '%s'"
+msgstr "%s:'%s' 在位于 '%s' 的仓库之外"
 
-#: pathspec.c:514
+#: pathspec.c:521
 #, c-format
 msgid "'%s' (mnemonic: '%c')"
 msgstr "'%s'(助记符:'%c')"
 
-#: pathspec.c:524
+#: pathspec.c:531
 #, c-format
 msgid "%s: pathspec magic not supported by this command: %s"
 msgstr "%s:路径规格神奇前缀不被此命令支持:%s"
 
-#: pathspec.c:591
+#: pathspec.c:598
 #, c-format
 msgid "pathspec '%s' is beyond a symbolic link"
 msgstr "路径规格 '%s' 位于符号链接中"
 
+#: pathspec.c:643
+#, c-format
+msgid "line is badly quoted: %s"
+msgstr "行被错误地引用:%s"
+
 #: pkt-line.c:92
 msgid "unable to write flush packet"
 msgstr "无法写 flush 包"
@@ -4502,44 +5401,48 @@ msgid "unable to write delim packet"
 msgstr "无法写 delim 包"
 
 #: pkt-line.c:106
+msgid "unable to write stateless separator packet"
+msgstr "无法写入无状态分隔符数据包"
+
+#: pkt-line.c:113
 msgid "flush packet write failed"
 msgstr "flush 包写错误"
 
-#: pkt-line.c:146 pkt-line.c:232
+#: pkt-line.c:153 pkt-line.c:239
 msgid "protocol error: impossibly long line"
 msgstr "协议错误:不可能的长行"
 
-#: pkt-line.c:162 pkt-line.c:164
+#: pkt-line.c:169 pkt-line.c:171
 msgid "packet write with format failed"
 msgstr "格式化包写入错误"
 
-#: pkt-line.c:196
+#: pkt-line.c:203
 msgid "packet write failed - data exceeds max packet size"
 msgstr "写数据包失败:数据超过了包的最大长度"
 
-#: pkt-line.c:203 pkt-line.c:210
+#: pkt-line.c:210 pkt-line.c:217
 msgid "packet write failed"
 msgstr "数据包写入失败"
 
-#: pkt-line.c:295
+#: pkt-line.c:302
 msgid "read error"
 msgstr "读取错误"
 
-#: pkt-line.c:303
+#: pkt-line.c:310
 msgid "the remote end hung up unexpectedly"
 msgstr "远端意外挂断了"
 
-#: pkt-line.c:331
+#: pkt-line.c:338
 #, c-format
 msgid "protocol error: bad line length character: %.4s"
 msgstr "协议错误:错误的行长度字符串:%.4s"
 
-#: pkt-line.c:341 pkt-line.c:346
+#: pkt-line.c:352 pkt-line.c:357
 #, c-format
 msgid "protocol error: bad line length %d"
 msgstr "协议错误:错误的行长度 %d"
 
-#: pkt-line.c:362
+#: pkt-line.c:373 sideband.c:150
 #, c-format
 msgid "remote error: %s"
 msgstr "远程错误:%s"
@@ -4553,81 +5456,109 @@ msgstr "正在刷新索引"
 msgid "unable to create threaded lstat: %s"
 msgstr "无法创建线程 lstat:%s"
 
-#: pretty.c:966
+#: pretty.c:983
 msgid "unable to parse --pretty format"
 msgstr "不能解析 --pretty 格式"
 
-#: range-diff.c:70
+#: promisor-remote.c:30
+msgid "promisor-remote: unable to fork off fetch subprocess"
+msgstr "promisor-remote:无法派生 fetch 子进程"
+
+#: promisor-remote.c:35 promisor-remote.c:37
+msgid "promisor-remote: could not write to fetch subprocess"
+msgstr "promisor-remote:无法向 fetch 子进程写入"
+
+#: promisor-remote.c:41
+msgid "promisor-remote: could not close stdin to fetch subprocess"
+msgstr "promisor-remote:无法关闭至 fetch 子进程的标准输入"
+
+#: promisor-remote.c:53
+#, c-format
+msgid "promisor remote name cannot begin with '/': %s"
+msgstr "promisor 远程名称不能以 '/' 开始:%s"
+
+#: prune-packed.c:35
+msgid "Removing duplicate objects"
+msgstr "正在删除重复对象"
+
+#: range-diff.c:77
 msgid "could not start `log`"
 msgstr "不能启动 `log`"
 
-#: range-diff.c:72
+#: range-diff.c:79
 msgid "could not read `log` output"
 msgstr "不能读取 `log` 的输出"
 
-#: range-diff.c:91 sequencer.c:5021
+#: range-diff.c:98 sequencer.c:5283
 #, c-format
 msgid "could not parse commit '%s'"
 msgstr "不能解析提交 '%s'"
 
-#: range-diff.c:117
+#: range-diff.c:112
+#, c-format
+msgid ""
+"could not parse first line of `log` output: did not start with 'commit ': "
+"'%s'"
+msgstr "无法解析 `log` 输出的首行:不是以 'commit ' 开头:'%s'"
+
+#: range-diff.c:137
 #, c-format
 msgid "could not parse git header '%.*s'"
 msgstr "无法解析 git 头 '%.*s'"
 
-#: range-diff.c:274
+#: range-diff.c:301
 msgid "failed to generate diff"
 msgstr "生成 diff 失败"
 
-#: range-diff.c:506 range-diff.c:508
+#: range-diff.c:534 range-diff.c:536
 #, c-format
 msgid "could not parse log for '%s'"
 msgstr "不能解析 '%s' 的日志"
 
-#: read-cache.c:680
+#: read-cache.c:682
 #, c-format
 msgid "will not add file alias '%s' ('%s' already exists in index)"
 msgstr "将不会添加文件别名 '%s'('%s' 已经存在于索引中)"
 
-#: read-cache.c:696
+#: read-cache.c:698
 msgid "cannot create an empty blob in the object database"
 msgstr "不能在对象数据库中创建空的数据对象"
 
-#: read-cache.c:718
+#: read-cache.c:720
 #, c-format
 msgid "%s: can only add regular files, symbolic links or git-directories"
 msgstr "%s:只能添加常规文件、符号链接或 git 目录"
 
-#: read-cache.c:723
+#: read-cache.c:725
 #, c-format
 msgid "'%s' does not have a commit checked out"
 msgstr "'%s' 没有检出一个提交"
 
-#: read-cache.c:775
+#: read-cache.c:777
 #, c-format
 msgid "unable to index file '%s'"
 msgstr "无法索引文件 '%s'"
 
-#: read-cache.c:794
+#: read-cache.c:796
 #, c-format
 msgid "unable to add '%s' to index"
 msgstr "无法在索引中添加 '%s'"
 
-#: read-cache.c:805
+#: read-cache.c:807
 #, c-format
 msgid "unable to stat '%s'"
 msgstr "无法对 %s 执行 stat"
 
-#: read-cache.c:1314
+#: read-cache.c:1318
 #, c-format
 msgid "'%s' appears as both a file and as a directory"
 msgstr "'%s' 看起来既是文件又是目录"
 
-#: read-cache.c:1499
+#: read-cache.c:1524
 msgid "Refresh index"
 msgstr "刷新索引"
 
-#: read-cache.c:1613
+#: read-cache.c:1639
 #, c-format
 msgid ""
 "index.version set, but the value is invalid.\n"
@@ -4636,7 +5567,7 @@ msgstr ""
 "设置了 index.version,但是取值无效。\n"
 "使用版本 %i"
 
-#: read-cache.c:1623
+#: read-cache.c:1649
 #, c-format
 msgid ""
 "GIT_INDEX_VERSION set, but the value is invalid.\n"
@@ -4645,150 +5576,160 @@ msgstr ""
 "设置了 GIT_INDEX_VERSION,但是取值无效。\n"
 "使用版本 %i"
 
-#: read-cache.c:1679
+#: read-cache.c:1705
 #, c-format
 msgid "bad signature 0x%08x"
 msgstr "坏的签名 0x%08x"
 
-#: read-cache.c:1682
+#: read-cache.c:1708
 #, c-format
 msgid "bad index version %d"
 msgstr "坏的索引版本 %d"
 
-#: read-cache.c:1691
+#: read-cache.c:1717
 msgid "bad index file sha1 signature"
 msgstr "坏的索引文件 sha1 签名"
 
-#: read-cache.c:1721
+#: read-cache.c:1747
 #, c-format
 msgid "index uses %.4s extension, which we do not understand"
 msgstr "索引使用不被支持的 %.4s 扩展"
 
 # 	
-#: read-cache.c:1723
+#: read-cache.c:1749
 #, c-format
 msgid "ignoring %.4s extension"
 msgstr "忽略 %.4s 扩展"
 
-#: read-cache.c:1760
+#: read-cache.c:1786
 #, c-format
 msgid "unknown index entry format 0x%08x"
 msgstr "未知的索引条目格式 0x%08x"
 
-#: read-cache.c:1776
+#: read-cache.c:1802
 #, c-format
 msgid "malformed name field in the index, near path '%s'"
 msgstr "索引中靠近路径 '%s' 有错误的名称字段"
 
-#: read-cache.c:1833
+#: read-cache.c:1859
 msgid "unordered stage entries in index"
 msgstr "索引中有未排序的暂存条目"
 
-#: read-cache.c:1836
+#: read-cache.c:1862
 #, c-format
 msgid "multiple stage entries for merged file '%s'"
 msgstr "合并文件 '%s' 有多个暂存条目"
 
-#: read-cache.c:1839
+#: read-cache.c:1865
 #, c-format
 msgid "unordered stage entries for '%s'"
 msgstr "'%s' 的未排序暂存条目"
 
-#: read-cache.c:1946 read-cache.c:2234 rerere.c:565 rerere.c:599 rerere.c:1111
-#: builtin/add.c:460 builtin/check-ignore.c:178 builtin/checkout.c:467
-#: builtin/checkout.c:651 builtin/clean.c:956 builtin/commit.c:347
-#: builtin/diff-tree.c:120 builtin/grep.c:499 builtin/mv.c:145
-#: builtin/reset.c:245 builtin/rm.c:271 builtin/submodule--helper.c:330
+#: 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:489 builtin/checkout.c:675 builtin/clean.c:991
+#: builtin/commit.c:364 builtin/diff-tree.c:121 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 "索引文件损坏"
 
-#: read-cache.c:2087
+#: read-cache.c:2115
 #, c-format
 msgid "unable to create load_cache_entries thread: %s"
 msgstr "无法创建 load_cache_entries 线程:%s"
 
-#: read-cache.c:2100
+#: read-cache.c:2128
 #, c-format
 msgid "unable to join load_cache_entries thread: %s"
 msgstr "无法加入 load_cache_entries 线程:%s"
 
-#: read-cache.c:2133
+#: read-cache.c:2161
 #, c-format
 msgid "%s: index file open failed"
 msgstr "%s:打开索引文件失败"
 
-#: read-cache.c:2137
+#: read-cache.c:2165
 #, c-format
 msgid "%s: cannot stat the open index"
 msgstr "%s:不能对打开的索引执行 stat 操作"
 
-#: read-cache.c:2141
+#: read-cache.c:2169
 #, c-format
 msgid "%s: index file smaller than expected"
 msgstr "%s:索引文件比预期的小"
 
-#: read-cache.c:2145
+#: read-cache.c:2173
 #, c-format
 msgid "%s: unable to map index file"
 msgstr "%s:无法对索引文件执行 map 操作"
 
-#: read-cache.c:2187
+#: read-cache.c:2215
 #, c-format
 msgid "unable to create load_index_extensions thread: %s"
 msgstr "无法创建 load_index_extensions 线程:%s"
 
-#: read-cache.c:2214
+#: read-cache.c:2242
 #, c-format
 msgid "unable to join load_index_extensions thread: %s"
 msgstr "无法加入 load_index_extensions 线程:%s"
 
-#: read-cache.c:2246
+#: read-cache.c:2274
 #, c-format
 msgid "could not freshen shared index '%s'"
 msgstr "无法刷新共享索引 '%s'"
 
-#: read-cache.c:2293
+#: read-cache.c:2321
 #, c-format
 msgid "broken index, expect %s in %s, got %s"
 msgstr "损坏的索引,期望在 %2$s 中的 %1$s,得到 %3$s"
 
-#: read-cache.c:2989 wrapper.c:658 builtin/merge.c:1114
+#: read-cache.c:3017 strbuf.c:1171 wrapper.c:633 builtin/merge.c:1126
 #, c-format
 msgid "could not close '%s'"
 msgstr "不能关闭 '%s'"
 
-#: read-cache.c:3092 sequencer.c:2358 sequencer.c:3928
+#: read-cache.c:3120 sequencer.c:2446 sequencer.c:4185
 #, c-format
 msgid "could not stat '%s'"
 msgstr "不能对 '%s' 调用 stat"
 
-#: read-cache.c:3105
+#: read-cache.c:3133
 #, c-format
 msgid "unable to open git dir: %s"
 msgstr "不能打开 git 目录:%s"
 
-#: read-cache.c:3117
+#: read-cache.c:3145
 #, c-format
 msgid "unable to unlink: %s"
 msgstr "无法删除:%s"
 
-#: read-cache.c:3142
+#: read-cache.c:3170
 #, c-format
 msgid "cannot fix permission bits on '%s'"
 msgstr "不能修复 '%s' 的权限位"
 
-#: read-cache.c:3291
+#: read-cache.c:3319
 #, c-format
 msgid "%s: cannot drop to stage #0"
 msgstr "%s:不能落到暂存区 #0"
 
-#: rebase-interactive.c:26
+#: 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 ""
 "unrecognized setting %s for option rebase.missingCommitsCheck. Ignoring."
 msgstr "选项 rebase.missingCommitsCheck 的值 %s 无法识别。已忽略。"
 
-#: rebase-interactive.c:35
+#: rebase-interactive.c:42
 msgid ""
 "\n"
 "Commands:\n"
@@ -4828,14 +5769,14 @@ msgstr ""
 "\n"
 "可以对这些行重新排序,将从上至下执行。\n"
 
-#: rebase-interactive.c:56
+#: 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 个提交)"
 
-#: rebase-interactive.c:65 git-rebase--preserve-merges.sh:228
+#: 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"
@@ -4843,7 +5784,7 @@ msgstr ""
 "\n"
 "不要删除任意一行。使用 'drop' 显式地删除一个提交。\n"
 
-#: rebase-interactive.c:68 git-rebase--preserve-merges.sh:232
+#: rebase-interactive.c:75 git-rebase--preserve-merges.sh:222
 msgid ""
 "\n"
 "If you remove a line here THAT COMMIT WILL BE LOST.\n"
@@ -4851,7 +5792,7 @@ msgstr ""
 "\n"
 "如果您在这里删除一行,对应的提交将会丢失。\n"
 
-#: rebase-interactive.c:74 git-rebase--preserve-merges.sh:871
+#: rebase-interactive.c:81 git-rebase--preserve-merges.sh:861
 msgid ""
 "\n"
 "You are editing the todo file of an ongoing interactive rebase.\n"
@@ -4865,7 +5806,7 @@ msgstr ""
 "    git rebase --continue\n"
 "\n"
 
-#: rebase-interactive.c:79 git-rebase--preserve-merges.sh:948
+#: rebase-interactive.c:86 git-rebase--preserve-merges.sh:938
 msgid ""
 "\n"
 "However, if you remove everything, the rebase will be aborted.\n"
@@ -4875,22 +5816,19 @@ msgstr ""
 "然而,如果您删除全部内容,变基操作将会终止。\n"
 "\n"
 
-#: rebase-interactive.c:85 git-rebase--preserve-merges.sh:955
-msgid "Note that empty commits are commented out"
-msgstr "注意空提交已被注释掉"
-
-#: rebase-interactive.c:105 rerere.c:485 rerere.c:692 sequencer.c:3447
-#: sequencer.c:3473 sequencer.c:5120 builtin/fsck.c:356 builtin/rebase.c:235
+#: rebase-interactive.c:110 rerere.c:485 rerere.c:692 sequencer.c:3571
+#: sequencer.c:3597 sequencer.c:5389 builtin/fsck.c:347 builtin/rebase.c:264
 #, c-format
 msgid "could not write '%s'"
 msgstr "不能写入 '%s'"
 
-#: rebase-interactive.c:108
+#: rebase-interactive.c:116 builtin/rebase.c:196 builtin/rebase.c:222
+#: builtin/rebase.c:246
 #, c-format
-msgid "could not copy '%s' to '%s'."
-msgstr "不能拷贝 '%s' 至 '%s'。"
+msgid "could not write '%s'."
+msgstr "不能写入 '%s'。"
 
-#: rebase-interactive.c:173
+#: rebase-interactive.c:193
 #, c-format
 msgid ""
 "Warning: some commits may have been dropped accidentally.\n"
@@ -4899,7 +5837,7 @@ msgstr ""
 "警告:一些提交可能被意外丢弃。\n"
 "丢弃的提交(从新到旧):\n"
 
-#: rebase-interactive.c:180
+#: rebase-interactive.c:200
 #, c-format
 msgid ""
 "To avoid this message, use \"drop\" to explicitly remove a commit.\n"
@@ -4915,124 +5853,14 @@ msgstr ""
 "可选值有:ignore、warn、error。\n"
 "\n"
 
-#: refs.c:262
-#, c-format
-msgid "%s does not point to a valid object!"
-msgstr "%s 没有指向一个有效的对象!"
-
-#: refs.c:667
-#, c-format
-msgid "ignoring dangling symref %s"
-msgstr "忽略悬空符号引用 %s"
-
-#: refs.c:669 ref-filter.c:2092
-#, c-format
-msgid "ignoring broken ref %s"
-msgstr "忽略损坏的引用 %s"
-
-#: refs.c:804
-#, c-format
-msgid "could not open '%s' for writing: %s"
-msgstr "无法为写入打开 '%s':%s"
-
-#: refs.c:814 refs.c:865
-#, c-format
-msgid "could not read ref '%s'"
-msgstr "无法读取引用 '%s'"
-
-#: refs.c:820
-#, c-format
-msgid "ref '%s' already exists"
-msgstr "引用 '%s' 已经存在"
-
-#: refs.c:825
-#, c-format
-msgid "unexpected object ID when writing '%s'"
-msgstr "写入 '%s' 时意外的对象 ID"
-
-#: refs.c:833 sequencer.c:403 sequencer.c:2709 sequencer.c:2913
-#: sequencer.c:2927 sequencer.c:3184 sequencer.c:5037 wrapper.c:656
-#, c-format
-msgid "could not write to '%s'"
-msgstr "不能写入 '%s'"
-
-#: refs.c:860 wrapper.c:225 wrapper.c:395 builtin/am.c:715
-#: builtin/rebase.c:1003
-#, c-format
-msgid "could not open '%s' for writing"
-msgstr "无法打开 '%s' 进行写入"
-
-#: refs.c:867
-#, c-format
-msgid "unexpected object ID when deleting '%s'"
-msgstr "删除 '%s' 时意外的对象 ID"
-
-#: refs.c:998
-#, c-format
-msgid "log for ref %s has gap after %s"
-msgstr "引用 %s 的日志在 %s 之后有缺口"
-
-#: refs.c:1004
-#, c-format
-msgid "log for ref %s unexpectedly ended on %s"
-msgstr "引用 %s 的日志意外终止于 %s "
-
-#: refs.c:1063
-#, c-format
-msgid "log for %s is empty"
-msgstr "%s 的日志为空"
-
-#: refs.c:1155
-#, c-format
-msgid "refusing to update ref with bad name '%s'"
-msgstr "拒绝更新有错误名称 '%s' 的引用"
-
-#: refs.c:1231
-#, c-format
-msgid "update_ref failed for ref '%s': %s"
-msgstr "对引用 '%s' 执行 update_ref 失败:%s"
-
-#: refs.c:2012
-#, c-format
-msgid "multiple updates for ref '%s' not allowed"
-msgstr "不允许对引用 '%s' 多次更新"
-
-#: refs.c:2044
-msgid "ref updates forbidden inside quarantine environment"
-msgstr "在隔离环境中禁止更新引用"
-
-#: refs.c:2140 refs.c:2170
-#, c-format
-msgid "'%s' exists; cannot create '%s'"
-msgstr "'%s' 已存在,无法创建 '%s'"
-
-#: refs.c:2146 refs.c:2181
-#, c-format
-msgid "cannot process '%s' and '%s' at the same time"
-msgstr "无法同时处理 '%s' 和 '%s'"
-
-#: refs/files-backend.c:1234
-#, c-format
-msgid "could not remove reference %s"
-msgstr "无法删除引用 %s"
-
-#: refs/files-backend.c:1248 refs/packed-backend.c:1532
-#: refs/packed-backend.c:1542
-#, c-format
-msgid "could not delete reference %s: %s"
-msgstr "无法删除引用 %s:%s"
-
-#: refs/files-backend.c:1251 refs/packed-backend.c:1545
+#: rebase-interactive.c:233 rebase-interactive.c:238 sequencer.c:2361
+#: builtin/rebase.c:182 builtin/rebase.c:207 builtin/rebase.c:233
+#: builtin/rebase.c:258
 #, c-format
-msgid "could not delete references: %s"
-msgstr "无法删除引用:%s"
-
-#: refspec.c:137
-#, c-format
-msgid "invalid refspec '%s'"
-msgstr "无效的引用表达式:'%s'"
+msgid "could not read '%s'."
+msgstr "不能读取 '%s'。"
 
-#: ref-filter.c:42 wt-status.c:1934
+#: ref-filter.c:42 wt-status.c:1973
 msgid "gone"
 msgstr "丢失"
 
@@ -5051,280 +5879,369 @@ msgstr "落后 %d"
 msgid "ahead %d, behind %d"
 msgstr "领先 %d,落后 %d"
 
-#: ref-filter.c:162
+#: ref-filter.c:169
 #, c-format
 msgid "expected format: %%(color:<color>)"
 msgstr "期望的格式:%%(color:<颜色>)"
 
-#: ref-filter.c:164
+#: ref-filter.c:171
 #, c-format
 msgid "unrecognized color: %%(color:%s)"
 msgstr "未能识别的颜色:%%(color:%s)"
 
-#: ref-filter.c:186
+#: ref-filter.c:193
 #, c-format
 msgid "Integer value expected refname:lstrip=%s"
 msgstr "期望整数值 refname:lstrip=%s"
 
-#: ref-filter.c:190
+#: ref-filter.c:197
 #, c-format
 msgid "Integer value expected refname:rstrip=%s"
 msgstr "期望整数值 refname:rstrip=%s"
 
-#: ref-filter.c:192
+#: ref-filter.c:199
 #, c-format
 msgid "unrecognized %%(%s) argument: %s"
 msgstr "未能识别的 %%(%s) 参数:%s"
 
-#: ref-filter.c:247
+#: ref-filter.c:254
 #, c-format
 msgid "%%(objecttype) does not take arguments"
 msgstr "%%(objecttype) 不带参数"
 
-#: ref-filter.c:269
+#: ref-filter.c:276
 #, c-format
 msgid "unrecognized %%(objectsize) argument: %s"
 msgstr "未能识别的 %%(objectsize) 参数:%s"
 
-#: ref-filter.c:277
+#: ref-filter.c:284
 #, c-format
 msgid "%%(deltabase) does not take arguments"
 msgstr "%%(deltabase) 不带参数"
 
-#: ref-filter.c:289
+#: ref-filter.c:296
 #, c-format
 msgid "%%(body) does not take arguments"
 msgstr "%%(body) 不带参数"
 
-#: ref-filter.c:298
+#: ref-filter.c:309
 #, c-format
-msgid "%%(subject) does not take arguments"
-msgstr "%%(subject) 不带参数"
+msgid "unrecognized %%(subject) argument: %s"
+msgstr "未能识别的 %%(subject) 参数:%s"
 
-#: ref-filter.c:320
+#: ref-filter.c:330
 #, c-format
 msgid "unknown %%(trailers) argument: %s"
 msgstr "未知的 %%(trailers) 参数:%s"
 
-#: ref-filter.c:349
+#: ref-filter.c:363
 #, c-format
 msgid "positive value expected contents:lines=%s"
 msgstr "期望一个正数 contents:lines=%s"
 
-#: ref-filter.c:351
+#: ref-filter.c:365
 #, c-format
 msgid "unrecognized %%(contents) argument: %s"
 msgstr "未能识别的 %%(contents) 参数:%s"
 
-#: ref-filter.c:366
+#: ref-filter.c:380
 #, c-format
-msgid "positive value expected objectname:short=%s"
-msgstr "期望一个正数 objectname:short=%s"
+msgid "positive value expected '%s' in %%(%s)"
+msgstr "期望 %%(%2$s) 中的 '%1$s' 是一个正数"
 
-#: ref-filter.c:370
+#: ref-filter.c:384
 #, c-format
-msgid "unrecognized %%(objectname) argument: %s"
-msgstr "未能识别的 %%(objectname) 参数:%s"
+msgid "unrecognized argument '%s' in %%(%s)"
+msgstr "未能识别 %%(%2$s) 中的参数 '%1$s'"
 
-#: ref-filter.c:400
+#: ref-filter.c:398
+#, c-format
+msgid "unrecognized email option: %s"
+msgstr "未识别的邮件选项:%s"
+
+#: ref-filter.c:428
 #, c-format
 msgid "expected format: %%(align:<width>,<position>)"
 msgstr "期望的格式:%%(align:<宽度>,<位置>)"
 
-#: ref-filter.c:412
+#: ref-filter.c:440
 #, c-format
 msgid "unrecognized position:%s"
 msgstr "未能识别的位置:%s"
 
-#: ref-filter.c:419
+#: ref-filter.c:447
 #, c-format
 msgid "unrecognized width:%s"
 msgstr "未能识别的宽度:%s"
 
-#: ref-filter.c:428
+#: ref-filter.c:456
 #, c-format
 msgid "unrecognized %%(align) argument: %s"
 msgstr "未能识别的 %%(align) 参数:%s"
 
-#: ref-filter.c:436
+#: ref-filter.c:464
 #, c-format
 msgid "positive width expected with the %%(align) atom"
 msgstr "元素 %%(align) 需要一个正数的宽度"
 
-#: ref-filter.c:454
+#: ref-filter.c:482
 #, c-format
 msgid "unrecognized %%(if) argument: %s"
 msgstr "未能识别的 %%(if) 参数:%s"
 
-#: ref-filter.c:556
+#: ref-filter.c:584
 #, c-format
 msgid "malformed field name: %.*s"
 msgstr "格式错误的字段名:%.*s"
 
-#: ref-filter.c:583
+#: ref-filter.c:611
 #, c-format
 msgid "unknown field name: %.*s"
 msgstr "未知的字段名:%.*s"
 
-#: ref-filter.c:587
+#: ref-filter.c:615
 #, c-format
 msgid ""
 "not a git repository, but the field '%.*s' requires access to object data"
-msgstr "不是一个 git 仓库,但是字段 '%.*s' 需要访问对象数据"
+msgstr "不是 git 仓库,但是字段 '%.*s' 需要访问对象数据"
 
-#: ref-filter.c:711
+#: ref-filter.c:739
 #, c-format
 msgid "format: %%(if) atom used without a %%(then) atom"
 msgstr "格式:使用了 %%(if) 元素而没有 %%(then) 元素"
 
-#: ref-filter.c:774
+#: ref-filter.c:802
 #, c-format
 msgid "format: %%(then) atom used without an %%(if) atom"
 msgstr "格式:使用了 %%(then) 元素而没有 %%(if) 元素"
 
-#: ref-filter.c:776
+#: ref-filter.c:804
 #, c-format
 msgid "format: %%(then) atom used more than once"
 msgstr "格式:%%(then) 元素用了多次"
 
-#: ref-filter.c:778
+#: ref-filter.c:806
 #, c-format
 msgid "format: %%(then) atom used after %%(else)"
 msgstr "格式:%%(then) 元素用在了 %%(else) 之后"
 
-#: ref-filter.c:806
+#: ref-filter.c:834
 #, c-format
 msgid "format: %%(else) atom used without an %%(if) atom"
 msgstr "格式:使用了 %%(else) 元素而没有 %%(if) 元素"
 
-#: ref-filter.c:808
+#: ref-filter.c:836
 #, c-format
 msgid "format: %%(else) atom used without a %%(then) atom"
 msgstr "格式:使用了 %%(else) 元素而没有 %%(then) 元素"
 
-#: ref-filter.c:810
+#: ref-filter.c:838
 #, c-format
 msgid "format: %%(else) atom used more than once"
 msgstr "格式:%%(else) 元素用了多次"
 
-#: ref-filter.c:825
+#: ref-filter.c:853
 #, c-format
 msgid "format: %%(end) atom used without corresponding atom"
 msgstr "格式:使用了 %%(end) 元素却没有它的对应元素"
 
-#: ref-filter.c:882
+#: ref-filter.c:910
 #, c-format
 msgid "malformed format string %s"
 msgstr "错误的格式化字符串 %s"
 
-#: ref-filter.c:1485
+#: ref-filter.c:1541
 #, c-format
 msgid "no branch, rebasing %s"
 msgstr "非分支,正变基 %s"
 
-#: ref-filter.c:1488
+#: ref-filter.c:1544
 #, c-format
 msgid "no branch, rebasing detached HEAD %s"
 msgstr "非分支,正变基分离头指针 %s"
 
-#: ref-filter.c:1491
+#: ref-filter.c:1547
 #, c-format
 msgid "no branch, bisect started on %s"
 msgstr "非分支,二分查找开始于 %s"
 
-#: ref-filter.c:1501
+#: ref-filter.c:1557
 msgid "no branch"
 msgstr "非分支"
 
-#: ref-filter.c:1537 ref-filter.c:1743
+#: ref-filter.c:1591 ref-filter.c:1800
 #, c-format
 msgid "missing object %s for %s"
 msgstr "缺失 %2$s 的对象 %1$s"
 
-#: ref-filter.c:1547
+#: ref-filter.c:1601
 #, c-format
 msgid "parse_object_buffer failed on %s for %s"
 msgstr "parse_object_buffer 失败于 %2$s 的 %1$s"
 
-#: ref-filter.c:1998
+#: ref-filter.c:2054
 #, c-format
 msgid "malformed object at '%s'"
 msgstr "格式错误的对象 '%s'"
 
-#: ref-filter.c:2087
+#: ref-filter.c:2143
 #, c-format
 msgid "ignoring ref with broken name %s"
 msgstr "忽略带有错误名称 %s 的引用"
 
-#: ref-filter.c:2382
+#: ref-filter.c:2148 refs.c:657
 #, c-format
-msgid "format: %%(end) atom missing"
-msgstr "格式:缺少 %%(end) 元素"
-
-#: ref-filter.c:2482
-#, c-format
-msgid "option `%s' is incompatible with --merged"
-msgstr "选项 `%s' 和 --merged 不兼容"
+msgid "ignoring broken ref %s"
+msgstr "忽略损坏的引用 %s"
 
-#: ref-filter.c:2485
+#: ref-filter.c:2464
 #, c-format
-msgid "option `%s' is incompatible with --no-merged"
-msgstr "选项 `%s' 和 --no-merged 不兼容"
+msgid "format: %%(end) atom missing"
+msgstr "格式:缺少 %%(end) 元素"
 
-#: ref-filter.c:2495
+#: ref-filter.c:2563
 #, c-format
 msgid "malformed object name %s"
 msgstr "格式错误的对象名 %s"
 
-#: ref-filter.c:2500
+#: ref-filter.c:2568
 #, c-format
 msgid "option `%s' must point to a commit"
 msgstr "选项 `%s' 必须指向一个提交"
 
-#: remote.c:363
+#: refs.c:264
+#, c-format
+msgid "%s does not point to a valid object!"
+msgstr "%s 没有指向一个有效的对象!"
+
+#: refs.c:572
+#, c-format
+msgid "could not retrieve `%s`"
+msgstr "无法获取 `%s`"
+
+#: refs.c:579
+#, c-format
+msgid "invalid branch name: %s = %s"
+msgstr "无效的分支名:%s = %s"
+
+#: refs.c:655
+#, c-format
+msgid "ignoring dangling symref %s"
+msgstr "忽略悬空符号引用 %s"
+
+#: refs.c:892
+#, c-format
+msgid "log for ref %s has gap after %s"
+msgstr "引用 %s 的日志在 %s 之后有缺口"
+
+#: refs.c:898
+#, c-format
+msgid "log for ref %s unexpectedly ended on %s"
+msgstr "引用 %s 的日志意外终止于 %s "
+
+#: refs.c:957
+#, c-format
+msgid "log for %s is empty"
+msgstr "%s 的日志为空"
+
+#: refs.c:1049
+#, c-format
+msgid "refusing to update ref with bad name '%s'"
+msgstr "拒绝更新有错误名称 '%s' 的引用"
+
+#: refs.c:1120
+#, c-format
+msgid "update_ref failed for ref '%s': %s"
+msgstr "对引用 '%s' 执行 update_ref 失败:%s"
+
+#: refs.c:1944
+#, c-format
+msgid "multiple updates for ref '%s' not allowed"
+msgstr "不允许对引用 '%s' 多次更新"
+
+#: refs.c:2024
+msgid "ref updates forbidden inside quarantine environment"
+msgstr "在隔离环境中禁止更新引用"
+
+#: refs.c:2035
+msgid "ref updates aborted by hook"
+msgstr "引用更新被钩子中止"
+
+#: refs.c:2135 refs.c:2165
+#, c-format
+msgid "'%s' exists; cannot create '%s'"
+msgstr "'%s' 已存在,无法创建 '%s'"
+
+#: refs.c:2141 refs.c:2176
+#, c-format
+msgid "cannot process '%s' and '%s' at the same time"
+msgstr "无法同时处理 '%s' 和 '%s'"
+
+#: refs/files-backend.c:1228
+#, c-format
+msgid "could not remove reference %s"
+msgstr "无法删除引用 %s"
+
+#: refs/files-backend.c:1242 refs/packed-backend.c:1542
+#: refs/packed-backend.c:1552
+#, c-format
+msgid "could not delete reference %s: %s"
+msgstr "无法删除引用 %s:%s"
+
+#: refs/files-backend.c:1245 refs/packed-backend.c:1555
+#, c-format
+msgid "could not delete references: %s"
+msgstr "无法删除引用:%s"
+
+#: refspec.c:167
+#, c-format
+msgid "invalid refspec '%s'"
+msgstr "无效的引用表达式:'%s'"
+
+#: remote.c:351
 #, c-format
 msgid "config remote shorthand cannot begin with '/': %s"
 msgstr "配置的远程短名称不能以 '/' 开始:%s"
 
-#: remote.c:410
+#: remote.c:399
 msgid "more than one receivepack given, using the first"
 msgstr "提供了一个以上的 receivepack,使用第一个"
 
-#: remote.c:418
+#: remote.c:407
 msgid "more than one uploadpack given, using the first"
 msgstr "提供了一个以上的 uploadpack,使用第一个"
 
-#: remote.c:608
+#: remote.c:590
 #, c-format
 msgid "Cannot fetch both %s and %s to %s"
 msgstr "不能同时获取 %s 和 %s 至 %s"
 
-#: remote.c:612
+#: remote.c:594
 #, c-format
 msgid "%s usually tracks %s, not %s"
 msgstr "%s 通常跟踪 %s,而非 %s"
 
-#: remote.c:616
+#: remote.c:598
 #, c-format
 msgid "%s tracks both %s and %s"
 msgstr "%s 同时跟踪 %s 和 %s"
 
-#: remote.c:684
+#: remote.c:666
 #, c-format
 msgid "key '%s' of pattern had no '*'"
 msgstr "模式的键 '%s' 没有 '*'"
 
-#: remote.c:694
+#: remote.c:676
 #, c-format
 msgid "value '%s' of pattern has no '*'"
 msgstr "模式的值 '%s' 没有 '*'"
 
-#: remote.c:1000
+#: remote.c:1073
 #, c-format
 msgid "src refspec %s does not match any"
 msgstr "源引用表达式 %s 没有匹配"
 
-#: remote.c:1005
+#: remote.c:1078
 #, c-format
 msgid "src refspec %s matches more than one"
 msgstr "源引用表达式 %s 匹配超过一个"
@@ -5333,7 +6250,7 @@ msgstr "源引用表达式 %s 匹配超过一个"
 #. <remote> <src>:<dst>" push, and "being pushed ('%s')" is
 #. the <src>.
 #.
-#: remote.c:1020
+#: remote.c:1093
 #, c-format
 msgid ""
 "The destination you provided is not a full refname (i.e.,\n"
@@ -5355,7 +6272,7 @@ msgstr ""
 "\n"
 "都不行,所以我们已放弃。您必须给出完整的引用。"
 
-#: remote.c:1040
+#: remote.c:1113
 #, c-format
 msgid ""
 "The <src> part of the refspec is a commit object.\n"
@@ -5365,7 +6282,7 @@ msgstr ""
 "引用表达式的 <src> 是一个提交对象。您是想创建一个新的分支而向\n"
 "'%s:refs/heads/%s' 推送么?"
 
-#: remote.c:1045
+#: remote.c:1118
 #, c-format
 msgid ""
 "The <src> part of the refspec is a tag object.\n"
@@ -5375,7 +6292,7 @@ msgstr ""
 "引用表达式的 <src> 是一个标签对象。您是想创建一个新的标签而向\n"
 "'%s:refs/tags/%s' 推送么?"
 
-#: remote.c:1050
+#: remote.c:1123
 #, c-format
 msgid ""
 "The <src> part of the refspec is a tree object.\n"
@@ -5385,7 +6302,7 @@ msgstr ""
 "引用表达式的 <src> 是一个树对象。您是想为这个树对象创建标签而向\n"
 "'%s:refs/tags/%s' 推送么?"
 
-#: remote.c:1055
+#: remote.c:1128
 #, c-format
 msgid ""
 "The <src> part of the refspec is a blob object.\n"
@@ -5395,114 +6312,114 @@ msgstr ""
 "引用表达式的 <src> 是一个数据对象。您是想为这个数据对象创建标签而向\n"
 "'%s:refs/tags/%s' 推送么?"
 
-#: remote.c:1091
+#: remote.c:1164
 #, c-format
 msgid "%s cannot be resolved to branch"
 msgstr "%s 无法被解析为分支"
 
-#: remote.c:1102
+#: remote.c:1175
 #, c-format
 msgid "unable to delete '%s': remote ref does not exist"
 msgstr "无法删除 '%s':远程引用不存在"
 
-#: remote.c:1114
+#: remote.c:1187
 #, c-format
 msgid "dst refspec %s matches more than one"
 msgstr "目标引用表达式 %s 匹配超过一个"
 
-#: remote.c:1121
+#: remote.c:1194
 #, c-format
 msgid "dst ref %s receives from more than one src"
 msgstr "目标引用 %s 接收超过一个源"
 
-#: remote.c:1624 remote.c:1725
+#: remote.c:1703 remote.c:1804
 msgid "HEAD does not point to a branch"
 msgstr "HEAD 没有指向一个分支"
 
-#: remote.c:1633
+#: remote.c:1712
 #, c-format
 msgid "no such branch: '%s'"
 msgstr "没有此分支:'%s'"
 
-#: remote.c:1636
+#: remote.c:1715
 #, c-format
 msgid "no upstream configured for branch '%s'"
 msgstr "尚未给分支 '%s' 设置上游"
 
-#: remote.c:1642
+#: remote.c:1721
 #, c-format
 msgid "upstream branch '%s' not stored as a remote-tracking branch"
 msgstr "上游分支 '%s' 没有存储为一个远程跟踪分支"
 
-#: remote.c:1657
+#: remote.c:1736
 #, c-format
 msgid "push destination '%s' on remote '%s' has no local tracking branch"
 msgstr "推送目标 '%s' 至远程 '%s' 没有本地跟踪分支"
 
-#: remote.c:1669
+#: remote.c:1748
 #, c-format
 msgid "branch '%s' has no remote for pushing"
 msgstr "分支 '%s' 没有设置要推送的远程服务器"
 
-#: remote.c:1679
+#: remote.c:1758
 #, c-format
 msgid "push refspecs for '%s' do not include '%s'"
 msgstr "向 '%s' 推送引用规格未包含 '%s'"
 
-#: remote.c:1692
+#: remote.c:1771
 msgid "push has no destination (push.default is 'nothing')"
 msgstr "推送无目标(push.default 是 'nothing')"
 
-#: remote.c:1714
+#: remote.c:1793
 msgid "cannot resolve 'simple' push to a single destination"
 msgstr "无法解析 'simple' 推送至一个单独的目标"
 
-#: remote.c:1840
+#: remote.c:1922
 #, c-format
 msgid "couldn't find remote ref %s"
 msgstr "无法找到远程引用 %s"
 
-#: remote.c:1853
+#: remote.c:1935
 #, c-format
 msgid "* Ignoring funny ref '%s' locally"
 msgstr "* 在本地忽略可笑的引用 '%s'"
 
-#: remote.c:2016
+#: remote.c:2098
 #, c-format
 msgid "Your branch is based on '%s', but the upstream is gone.\n"
 msgstr "您的分支基于 '%s',但此上游分支已经不存在。\n"
 
-#: remote.c:2020
+#: remote.c:2102
 msgid "  (use \"git branch --unset-upstream\" to fixup)\n"
 msgstr "  (使用 \"git branch --unset-upstream\" 来修复)\n"
 
-#: remote.c:2023
+#: remote.c:2105
 #, c-format
 msgid "Your branch is up to date with '%s'.\n"
 msgstr "您的分支与上游分支 '%s' 一致。\n"
 
-#: remote.c:2027
+#: remote.c:2109
 #, c-format
 msgid "Your branch and '%s' refer to different commits.\n"
 msgstr "您的分支和 '%s' 指向不同的提交。\n"
 
-#: remote.c:2030
+#: remote.c:2112
 #, c-format
 msgid "  (use \"%s\" for details)\n"
 msgstr "  (使用 \"%s\" 查看详情)\n"
 
-#: remote.c:2034
+#: remote.c:2116
 #, 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"
 
-#: remote.c:2040
+#: remote.c:2122
 msgid "  (use \"git push\" to publish your local commits)\n"
 msgstr "  (使用 \"git push\" 来发布您的本地提交)\n"
 
-#: remote.c:2043
+#: remote.c:2125
 #, c-format
 msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
 msgid_plural ""
@@ -5511,11 +6428,11 @@ msgstr[0] "您的分支落后 '%s' 共 %d 个提交,并且可以快进。\n"
 msgstr[1] "您的分支落后 '%s' 共 %d 个提交,并且可以快进。\n"
 
 #  译者:注意保持前导空格
-#: remote.c:2051
+#: remote.c:2133
 msgid "  (use \"git pull\" to update your local branch)\n"
 msgstr "  (使用 \"git pull\" 来更新您的本地分支)\n"
 
-#: remote.c:2054
+#: remote.c:2136
 #, c-format
 msgid ""
 "Your branch and '%s' have diverged,\n"
@@ -5531,11 +6448,11 @@ msgstr[1] ""
 "并且分别有 %d 和 %d 处不同的提交。\n"
 
 #  译者:注意保持前导空格
-#: remote.c:2064
+#: remote.c:2146
 msgid "  (use \"git pull\" to merge the remote branch into yours)\n"
 msgstr "  (使用 \"git pull\" 来合并远程分支)\n"
 
-#: remote.c:2247
+#: remote.c:2337
 #, c-format
 msgid "cannot parse expected object name '%s'"
 msgstr "无法解析期望的对象名 '%s'"
@@ -5550,7 +6467,7 @@ msgstr "错误的替换引用名称:%s"
 msgid "duplicate replace ref: %s"
 msgstr "重复的替换引用:%s"
 
-#: replace-object.c:73
+#: replace-object.c:82
 #, c-format
 msgid "replace depth too high for object %s"
 msgstr "对象 %s 的替换层级太深"
@@ -5613,8 +6530,8 @@ msgstr "不能删除 stray '%s'"
 msgid "Recorded preimage for '%s'"
 msgstr "为 '%s' 记录 preimage"
 
-#: rerere.c:881 submodule.c:2023 builtin/log.c:1773
-#: builtin/submodule--helper.c:1418 builtin/submodule--helper.c:1428
+#: rerere.c:881 submodule.c:2082 builtin/log.c:1975
+#: builtin/submodule--helper.c:1878 builtin/submodule--helper.c:1890
 #, c-format
 msgid "could not create directory '%s'"
 msgstr "不能创建目录 '%s'"
@@ -5648,20 +6565,34 @@ msgstr "忘记 '%s' 的解决方案\n"
 msgid "unable to open rr-cache directory"
 msgstr "不能打开 rr-cache 目录"
 
-#: revision.c:2507
+#: reset.c:42
+msgid "could not determine HEAD revision"
+msgstr "不能确定 HEAD 版本"
+
+#: reset.c:70 reset.c:76 sequencer.c:3426
+#, c-format
+msgid "failed to find tree of %s"
+msgstr "无法找到 %s 指向的树。"
+
+#: revision.c:2344
+msgid "--unpacked=<packfile> no longer supported"
+msgstr "不再支持 --unpacked=<packfile>"
+
+#: revision.c:2364
+#, c-format
+msgid "unknown value for --diff-merges: %s"
+msgstr "未知的 --diff-merges 取值:%s"
+
+#: revision.c:2702
 msgid "your current branch appears to be broken"
 msgstr "您的当前分支好像被损坏"
 
-#: revision.c:2510
+#: revision.c:2705
 #, c-format
 msgid "your current branch '%s' does not have any commits yet"
 msgstr "您的当前分支 '%s' 尚无任何提交"
 
-#: revision.c:2710
-msgid "--first-parent is incompatible with --bisect"
-msgstr "--first-parent 与 --bisect 不兼容"
-
-#: revision.c:2714
+#: revision.c:2915
 msgid "-L does not yet support diff formats besides -p and -s"
 msgstr "-L 尚不支持 -p 和 -s 之外的差异格式"
 
@@ -5669,12 +6600,12 @@ msgstr "-L 尚不支持 -p 和 -s 之外的差异格式"
 msgid "open /dev/null failed"
 msgstr "不能打开 /dev/null"
 
-#: run-command.c:1269
+#: run-command.c:1270
 #, c-format
 msgid "cannot create async thread: %s"
 msgstr "不能创建 async 线程:%s"
 
-#: run-command.c:1333
+#: run-command.c:1334
 #, c-format
 msgid ""
 "The '%s' hook was ignored because it's not set as executable.\n"
@@ -5683,75 +6614,79 @@ msgstr ""
 "因为没有将钩子 '%s' 设置为可执行,钩子被忽略。您可以通过\n"
 "配置 `git config advice.ignoredHook false` 来关闭这条警告。"
 
-#: send-pack.c:141
+#: send-pack.c:145
 msgid "unexpected flush packet while reading remote unpack status"
 msgstr "读取远程解包状态时收到意外的 flush 包"
 
-#: send-pack.c:143
+#: send-pack.c:147
 #, c-format
 msgid "unable to parse remote unpack status: %s"
 msgstr "不能解析远程解包状态:%s"
 
-#: send-pack.c:145
+#: send-pack.c:149
 #, c-format
 msgid "remote unpack failed: %s"
 msgstr "远程解包失败:%s"
 
-#: send-pack.c:306
+#: send-pack.c:372
 msgid "failed to sign the push certificate"
 msgstr "为推送证书签名失败"
 
-#: send-pack.c:420
+#: send-pack.c:460
+msgid "the receiving end does not support this repository's hash algorithm"
+msgstr "接收端不支持这个仓库的哈希算法"
+
+#: send-pack.c:469
 msgid "the receiving end does not support --signed push"
 msgstr "接收端不支持签名推送"
 
-#: send-pack.c:422
+#: send-pack.c:471
 msgid ""
 "not sending a push certificate since the receiving end does not support --"
 "signed push"
 msgstr "未发送推送证书,因为接收端不支持签名推送"
 
-#: send-pack.c:434
+#: send-pack.c:483
 msgid "the receiving end does not support --atomic push"
 msgstr "接收端不支持原子推送"
 
-#: send-pack.c:439
+#: send-pack.c:488
 msgid "the receiving end does not support push options"
 msgstr "接收端不支持推送选项"
 
-#: sequencer.c:187
+#: sequencer.c:194
 #, c-format
 msgid "invalid commit message cleanup mode '%s'"
 msgstr "无效的提交信息清理模式 '%s'"
 
-#: sequencer.c:292
+#: sequencer.c:308
 #, c-format
 msgid "could not delete '%s'"
 msgstr "无法删除 '%s'"
 
-#: sequencer.c:311 builtin/rebase.c:759 builtin/rebase.c:1645 builtin/rm.c:369
+#: sequencer.c:329 builtin/rebase.c:749 builtin/rebase.c:1590 builtin/rm.c:385
 #, c-format
 msgid "could not remove '%s'"
 msgstr "无法删除 '%s'"
 
-#: sequencer.c:321
+#: sequencer.c:339
 msgid "revert"
 msgstr "还原"
 
-#: sequencer.c:323
+#: sequencer.c:341
 msgid "cherry-pick"
 msgstr "拣选"
 
-#: sequencer.c:325
-msgid "rebase -i"
-msgstr "rebase -i"
+#: sequencer.c:343
+msgid "rebase"
+msgstr "变基"
 
-#: sequencer.c:327
+#: sequencer.c:345
 #, c-format
 msgid "unknown action: %d"
 msgstr "未知动作:%d"
 
-#: sequencer.c:385
+#: sequencer.c:404
 msgid ""
 "after resolving the conflicts, mark the corrected paths\n"
 "with 'git add <paths>' or 'git rm <paths>'"
@@ -5759,7 +6694,7 @@ msgstr ""
 "冲突解决完毕后,用 'git add <路径>' 或 'git rm <路径>'\n"
 "命令标记修正后的文件"
 
-#: sequencer.c:388
+#: sequencer.c:407
 msgid ""
 "after resolving the conflicts, mark the corrected paths\n"
 "with 'git add <paths>' or 'git rm <paths>'\n"
@@ -5768,115 +6703,109 @@ msgstr ""
 "冲突解决完毕后,用 'git add <路径>' 或 'git rm <路径>'\n"
 "对修正后的文件做标记,然后用 'git commit' 提交"
 
-#: sequencer.c:401 sequencer.c:2909
+#: sequencer.c:420 sequencer.c:3028
 #, c-format
 msgid "could not lock '%s'"
 msgstr "不能锁定 '%s'"
 
-#: sequencer.c:408
+#: sequencer.c:422 sequencer.c:2827 sequencer.c:3032 sequencer.c:3046
+#: sequencer.c:3303 sequencer.c:5299 strbuf.c:1168 wrapper.c:631
+#, c-format
+msgid "could not write to '%s'"
+msgstr "不能写入 '%s'"
+
+#: sequencer.c:427
 #, c-format
 msgid "could not write eol to '%s'"
 msgstr "不能将换行符写入 '%s'"
 
-#: sequencer.c:413 sequencer.c:2714 sequencer.c:2915 sequencer.c:2929
-#: sequencer.c:3192
+#: sequencer.c:432 sequencer.c:2832 sequencer.c:3034 sequencer.c:3048
+#: sequencer.c:3311
 #, c-format
 msgid "failed to finalize '%s'"
 msgstr "无法完成 '%s'"
 
-#: sequencer.c:436 sequencer.c:981 sequencer.c:1655 sequencer.c:2734
-#: sequencer.c:3174 sequencer.c:3283 builtin/am.c:245 builtin/commit.c:763
-#: builtin/merge.c:1112 builtin/rebase.c:567
-#, c-format
-msgid "could not read '%s'"
-msgstr "不能读取 '%s'"
-
-#: sequencer.c:462
+#: sequencer.c:471
 #, c-format
 msgid "your local changes would be overwritten by %s."
 msgstr "您的本地修改将被%s覆盖。"
 
-#: sequencer.c:466
+#: sequencer.c:475
 msgid "commit your changes or stash them to proceed."
 msgstr "提交您的修改或贮藏后再继续。"
 
-#: sequencer.c:498
+#: sequencer.c:507
 #, c-format
 msgid "%s: fast-forward"
 msgstr "%s:快进"
 
-#: sequencer.c:537 builtin/tag.c:565
+#: sequencer.c:546 builtin/tag.c:566
 #, c-format
 msgid "Invalid cleanup mode %s"
 msgstr "无效的清理模式 %s"
 
 #. TRANSLATORS: %s will be "revert", "cherry-pick" or
-#. "rebase -i".
+#. "rebase".
 #.
-#: sequencer.c:632
+#: sequencer.c:640
 #, c-format
 msgid "%s: Unable to write new index file"
 msgstr "%s:无法写入新索引文件"
 
-#: sequencer.c:649
+#: sequencer.c:657
 msgid "unable to update cache tree"
 msgstr "不能更新缓存树"
 
-#: sequencer.c:663
+#: sequencer.c:671
 msgid "could not resolve HEAD commit"
 msgstr "不能解析 HEAD 提交"
 
-#: sequencer.c:743
+#: sequencer.c:751
 #, c-format
 msgid "no key present in '%.*s'"
 msgstr "在 '%.*s' 中没有 key"
 
-#: sequencer.c:754
+#: sequencer.c:762
 #, c-format
 msgid "unable to dequote value of '%s'"
 msgstr "无法为 '%s' 的值去引号"
 
-#: sequencer.c:791 wrapper.c:227 wrapper.c:397 builtin/am.c:706
-#: builtin/am.c:798 builtin/merge.c:1109 builtin/rebase.c:1045
+#: sequencer.c:799 wrapper.c:201 wrapper.c:371 builtin/am.c:724
+#: builtin/am.c:816 builtin/merge.c:1121 builtin/rebase.c:902
 #, c-format
 msgid "could not open '%s' for reading"
 msgstr "无法打开 '%s' 进行读取"
 
-#: sequencer.c:801
+#: sequencer.c:809
 msgid "'GIT_AUTHOR_NAME' already given"
 msgstr "已经给出 'GIT_AUTHOR_NAME'"
 
-#: sequencer.c:806
+#: sequencer.c:814
 msgid "'GIT_AUTHOR_EMAIL' already given"
 msgstr "已经给出 'GIT_AUTHOR_EMAIL'"
 
-#: sequencer.c:811
+#: sequencer.c:819
 msgid "'GIT_AUTHOR_DATE' already given"
 msgstr "已经给出 'GIT_AUTHOR_DATE'"
 
-#: sequencer.c:815
+#: sequencer.c:823
 #, c-format
 msgid "unknown variable '%s'"
 msgstr "未知变量 '%s'"
 
-#: sequencer.c:820
+#: sequencer.c:828
 msgid "missing 'GIT_AUTHOR_NAME'"
 msgstr "缺少 'GIT_AUTHOR_NAME'"
 
-#: sequencer.c:822
+#: sequencer.c:830
 msgid "missing 'GIT_AUTHOR_EMAIL'"
 msgstr "缺少 'GIT_AUTHOR_EMAIL'"
 
-#: sequencer.c:824
+#: sequencer.c:832
 msgid "missing 'GIT_AUTHOR_DATE'"
 msgstr "缺少 'GIT_AUTHOR_DATE'"
 
-#: sequencer.c:884
-#, c-format
-msgid "invalid date format '%s' in '%s'"
-msgstr "'%2$s' 中无效的日期格式 '%1$s'"
-
-#: sequencer.c:901
+#: sequencer.c:897
 #, c-format
 msgid ""
 "you have staged changes in your working tree\n"
@@ -5905,15 +6834,11 @@ msgstr ""
 "\n"
 "  git rebase --continue\n"
 
-#: sequencer.c:995
-msgid "writing root commit"
-msgstr "写根提交"
-
-#: sequencer.c:1216
+#: sequencer.c:1178
 msgid "'prepare-commit-msg' hook failed"
 msgstr "'prepare-commit-msg' 钩子失败"
 
-#: sequencer.c:1223
+#: sequencer.c:1184
 msgid ""
 "Your name and email address were configured automatically based\n"
 "on your username and hostname. Please check that they are accurate.\n"
@@ -5937,7 +6862,7 @@ msgstr ""
 "\n"
 "    git commit --amend --reset-author\n"
 
-#: sequencer.c:1236
+#: sequencer.c:1197
 msgid ""
 "Your name and email address were configured automatically based\n"
 "on your username and hostname. Please check that they are accurate.\n"
@@ -5960,326 +6885,339 @@ msgstr ""
 "\n"
 "    git commit --amend --reset-author\n"
 
-#: sequencer.c:1278
+#: sequencer.c:1239
 msgid "couldn't look up newly created commit"
 msgstr "无法找到新创建的提交"
 
-#: sequencer.c:1280
+#: sequencer.c:1241
 msgid "could not parse newly created commit"
 msgstr "不能解析新创建的提交"
 
-#: sequencer.c:1326
+#: sequencer.c:1287
 msgid "unable to resolve HEAD after creating commit"
 msgstr "创建提交后,不能解析 HEAD"
 
-#: sequencer.c:1328
+#: sequencer.c:1289
 msgid "detached HEAD"
 msgstr "分离头指针"
 
 #  译者:中文字符串拼接,可删除前导空格
-#: sequencer.c:1332
+#: sequencer.c:1293
 msgid " (root-commit)"
 msgstr "(根提交)"
 
-#: sequencer.c:1353
+#: sequencer.c:1314
 msgid "could not parse HEAD"
 msgstr "不能解析 HEAD"
 
-#: sequencer.c:1355
+#: sequencer.c:1316
 #, c-format
 msgid "HEAD %s is not a commit!"
 msgstr "HEAD %s 不是一个提交!"
 
-#: sequencer.c:1359 builtin/commit.c:1571
+#: sequencer.c:1320 sequencer.c:1395 builtin/commit.c:1577
 msgid "could not parse HEAD commit"
 msgstr "不能解析 HEAD 提交"
 
-#: sequencer.c:1411 sequencer.c:2004
+#: sequencer.c:1373 sequencer.c:2067
 msgid "unable to parse commit author"
 msgstr "不能解析提交作者"
 
-#: sequencer.c:1421 builtin/am.c:1573 builtin/merge.c:684
+#: sequencer.c:1384 builtin/am.c:1580 builtin/merge.c:692
 msgid "git write-tree failed to write a tree"
 msgstr "git write-tree 无法写入树对象"
 
-#: sequencer.c:1438 sequencer.c:1499
+#: sequencer.c:1417 sequencer.c:1535
 #, c-format
 msgid "unable to read commit message from '%s'"
 msgstr "不能从 '%s' 读取提交说明"
 
-#: sequencer.c:1465 builtin/am.c:1595 builtin/commit.c:1670 builtin/merge.c:878
-#: builtin/merge.c:903
+#: sequencer.c:1446 sequencer.c:1478
+#, c-format
+msgid "invalid author identity '%s'"
+msgstr "无效的作者身份 '%s'"
+
+#: sequencer.c:1452
+msgid "corrupt author: missing date information"
+msgstr "损坏的作者:缺失日期信息"
+
+#: sequencer.c:1491 builtin/am.c:1606 builtin/commit.c:1678 builtin/merge.c:890
+#: builtin/merge.c:915
 msgid "failed to write commit object"
 msgstr "写提交对象失败"
 
-#: sequencer.c:1526
+#: sequencer.c:1518 sequencer.c:4237
+#, c-format
+msgid "could not update %s"
+msgstr "不能更新 %s"
+
+#: sequencer.c:1567
 #, c-format
 msgid "could not parse commit %s"
 msgstr "不能解析提交 %s"
 
-#: sequencer.c:1531
+#: sequencer.c:1572
 #, c-format
 msgid "could not parse parent commit %s"
 msgstr "不能解析父提交 %s"
 
-#: sequencer.c:1605 sequencer.c:1715
+#: sequencer.c:1655 sequencer.c:1766
 #, c-format
 msgid "unknown command: %d"
 msgstr "未知命令:%d"
 
-#: sequencer.c:1662 sequencer.c:1687
+#: sequencer.c:1713 sequencer.c:1738
 #, c-format
 msgid "This is a combination of %d commits."
 msgstr "这是一个 %d 个提交的组合。"
 
-#: sequencer.c:1672
+#: sequencer.c:1723
 msgid "need a HEAD to fixup"
 msgstr "需要一个 HEAD 来修复"
 
-#: sequencer.c:1674 sequencer.c:3219
+#: sequencer.c:1725 sequencer.c:3338
 msgid "could not read HEAD"
 msgstr "不能读取 HEAD"
 
-#: sequencer.c:1676
+#: sequencer.c:1727
 msgid "could not read HEAD's commit message"
 msgstr "不能读取 HEAD 的提交说明"
 
-#: sequencer.c:1682
+#: sequencer.c:1733
 #, c-format
 msgid "cannot write '%s'"
 msgstr "不能写 '%s'"
 
-#: sequencer.c:1689 git-rebase--preserve-merges.sh:496
+#: sequencer.c:1740 git-rebase--preserve-merges.sh:486
 msgid "This is the 1st commit message:"
 msgstr "这是第一个提交说明:"
 
-#: sequencer.c:1697
+#: sequencer.c:1748
 #, c-format
 msgid "could not read commit message of %s"
 msgstr "不能读取 %s 的提交说明"
 
-#: sequencer.c:1704
+#: sequencer.c:1755
 #, c-format
 msgid "This is the commit message #%d:"
 msgstr "这是提交说明 #%d:"
 
-#: sequencer.c:1710
+#: sequencer.c:1761
 #, c-format
 msgid "The commit message #%d will be skipped:"
 msgstr "提交说明 #%d 将被跳过:"
 
-#: sequencer.c:1798
+#: sequencer.c:1849
 msgid "your index file is unmerged."
 msgstr "您的索引文件未完成合并。"
 
-#: sequencer.c:1805
+#: sequencer.c:1856
 msgid "cannot fixup root commit"
 msgstr "不能修复根提交"
 
-#: sequencer.c:1824
+#: sequencer.c:1875
 #, c-format
 msgid "commit %s is a merge but no -m option was given."
 msgstr "提交 %s 是一个合并提交但未提供 -m 选项。"
 
-#: sequencer.c:1832 sequencer.c:1840
+#: sequencer.c:1883 sequencer.c:1891
 #, c-format
 msgid "commit %s does not have parent %d"
 msgstr "提交 %s 没有第 %d 个父提交"
 
-#: sequencer.c:1846
+#: sequencer.c:1897
 #, c-format
 msgid "cannot get commit message for %s"
 msgstr "不能得到 %s 的提交说明"
 
 #. TRANSLATORS: The first %s will be a "todo" command like
 #. "revert" or "pick", the second %s a SHA1.
-#: sequencer.c:1865
+#: sequencer.c:1916
 #, c-format
 msgid "%s: cannot parse parent commit %s"
 msgstr "%s:不能解析父提交 %s"
 
-#: sequencer.c:1930
+#: sequencer.c:1981
 #, c-format
 msgid "could not rename '%s' to '%s'"
 msgstr "不能将 '%s' 重命名为 '%s'"
 
-#: sequencer.c:1985
+#: sequencer.c:2038
 #, c-format
 msgid "could not revert %s... %s"
 msgstr "不能还原 %s... %s"
 
-#: sequencer.c:1986
+#: sequencer.c:2039
 #, c-format
 msgid "could not apply %s... %s"
 msgstr "不能应用 %s... %s"
 
-#: sequencer.c:2045
+#: sequencer.c:2059
+#, c-format
+msgid "dropping %s %s -- patch contents already upstream\n"
+msgstr "丢弃 %s %s -- 补丁内容已在上游\n"
+
+#: sequencer.c:2117
 #, c-format
 msgid "git %s: failed to read the index"
 msgstr "git %s:无法读取索引"
 
-#: sequencer.c:2052
+#: sequencer.c:2124
 #, c-format
 msgid "git %s: failed to refresh the index"
 msgstr "git %s:无法刷新索引"
 
-#: sequencer.c:2128
+#: sequencer.c:2201
 #, c-format
 msgid "%s does not accept arguments: '%s'"
 msgstr "%s 不接受参数:'%s'"
 
-#: sequencer.c:2137
+#: sequencer.c:2210
 #, c-format
 msgid "missing arguments for %s"
 msgstr "缺少 %s 的参数"
 
-#: sequencer.c:2174
+#: sequencer.c:2241
 #, c-format
-msgid "could not parse '%.*s'"
-msgstr "无法解析 '%.*s'"
+msgid "could not parse '%s'"
+msgstr "无法解析 '%s'"
 
-#: sequencer.c:2228
+#: sequencer.c:2302
 #, c-format
 msgid "invalid line %d: %.*s"
 msgstr "无效行 %d:%.*s"
 
-#: sequencer.c:2239
+#: sequencer.c:2313
 #, c-format
 msgid "cannot '%s' without a previous commit"
 msgstr "没有父提交的情况下不能 '%s'"
 
-#: sequencer.c:2287 builtin/rebase.c:153 builtin/rebase.c:178
-#: builtin/rebase.c:204 builtin/rebase.c:229
-#, c-format
-msgid "could not read '%s'."
-msgstr "不能读取 '%s'。"
-
-#: sequencer.c:2323
+#: sequencer.c:2399
 msgid "cancelling a cherry picking in progress"
 msgstr "正在取消一个进行中的拣选"
 
-#: sequencer.c:2330
+#: sequencer.c:2408
 msgid "cancelling a revert in progress"
 msgstr "正在取消一个进行中的还原"
 
-#: sequencer.c:2364
+#: sequencer.c:2452
 msgid "please fix this using 'git rebase --edit-todo'."
 msgstr "请用 'git rebase --edit-todo' 来修改。"
 
-#: sequencer.c:2366
+#: sequencer.c:2454
 #, c-format
 msgid "unusable instruction sheet: '%s'"
 msgstr "不可用的指令清单:'%s'"
 
-#: sequencer.c:2371
+#: sequencer.c:2459
 msgid "no commits parsed."
 msgstr "没有解析提交。"
 
-#: sequencer.c:2382
+#: sequencer.c:2470
 msgid "cannot cherry-pick during a revert."
 msgstr "不能在回退中执行拣选。"
 
-#: sequencer.c:2384
+#: sequencer.c:2472
 msgid "cannot revert during a cherry-pick."
 msgstr "不能在拣选中执行回退。"
 
-#: sequencer.c:2466
+#: sequencer.c:2550
 #, c-format
 msgid "invalid value for %s: %s"
 msgstr "%s 的值无效:%s"
 
-#: sequencer.c:2553
+#: sequencer.c:2657
 msgid "unusable squash-onto"
 msgstr "不可用的 squash-onto"
 
-#: sequencer.c:2569
+#: sequencer.c:2677
 #, c-format
 msgid "malformed options sheet: '%s'"
 msgstr "格式错误的选项清单:'%s'"
 
-#: sequencer.c:2652 sequencer.c:4351
+#: sequencer.c:2769 sequencer.c:4609
 msgid "empty commit set passed"
 msgstr "提供了空的提交集"
 
-#: sequencer.c:2668
+#: sequencer.c:2786
 msgid "revert is already in progress"
 msgstr "一个还原操作已在进行"
 
-#: sequencer.c:2670
+#: sequencer.c:2788
 #, c-format
 msgid "try \"git revert (--continue | %s--abort | --quit)\""
 msgstr "尝试 \"git revert (--continue | %s--abort | --quit)\""
 
-#: sequencer.c:2673
+#: sequencer.c:2791
 msgid "cherry-pick is already in progress"
 msgstr "拣选操作已在进行"
 
-#: sequencer.c:2675
+#: sequencer.c:2793
 #, c-format
 msgid "try \"git cherry-pick (--continue | %s--abort | --quit)\""
 msgstr "尝试 \"git cherry-pick (--continue | %s--abort | --quit)\""
 
-#: sequencer.c:2689
+#: sequencer.c:2807
 #, c-format
 msgid "could not create sequencer directory '%s'"
 msgstr "不能创建序列目录 '%s'"
 
-#: sequencer.c:2704
+#: sequencer.c:2822
 msgid "could not lock HEAD"
 msgstr "不能锁定 HEAD"
 
-#: sequencer.c:2764 sequencer.c:4103
+#: sequencer.c:2882 sequencer.c:4325
 msgid "no cherry-pick or revert in progress"
 msgstr "拣选或还原操作并未进行"
 
-#: sequencer.c:2766 sequencer.c:2777
+#: sequencer.c:2884 sequencer.c:2895
 msgid "cannot resolve HEAD"
 msgstr "不能解析 HEAD"
 
-#: sequencer.c:2768 sequencer.c:2812
+#: sequencer.c:2886 sequencer.c:2930
 msgid "cannot abort from a branch yet to be born"
 msgstr "不能从尚未建立的分支终止"
 
-#: sequencer.c:2798 builtin/grep.c:734
+#: sequencer.c:2916 builtin/grep.c:745
 #, c-format
 msgid "cannot open '%s'"
 msgstr "不能打开 '%s'"
 
-#: sequencer.c:2800
+#: sequencer.c:2918
 #, c-format
 msgid "cannot read '%s': %s"
 msgstr "不能读取 '%s':%s"
 
-#: sequencer.c:2801
+#: sequencer.c:2919
 msgid "unexpected end of file"
 msgstr "意外的文件结束"
 
-#: sequencer.c:2807
+#: sequencer.c:2925
 #, c-format
 msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
 msgstr "保存拣选提交前的 HEAD 文件 '%s' 损坏"
 
-#: sequencer.c:2818
+#: sequencer.c:2936
 msgid "You seem to have moved HEAD. Not rewinding, check your HEAD!"
 msgstr "您好像移动了 HEAD。未能回退,检查您的 HEAD!"
 
-#: sequencer.c:2859
+#: sequencer.c:2977
 msgid "no revert in progress"
 msgstr "没有正在进行的还原"
 
-#: sequencer.c:2867
+#: sequencer.c:2986
 msgid "no cherry-pick in progress"
 msgstr "没有正在进行的拣选"
 
-#: sequencer.c:2877
+#: sequencer.c:2996
 msgid "failed to skip the commit"
 msgstr "无法跳过这个提交"
 
-#: sequencer.c:2884
+#: sequencer.c:3003
 msgid "there is nothing to skip"
 msgstr "没有要跳过的"
 
-#: sequencer.c:2887
+#: sequencer.c:3006
 #, c-format
 msgid ""
 "have you committed already?\n"
@@ -6288,21 +7226,16 @@ msgstr ""
 "您已经提交了么?\n"
 "试试 \"git %s --continue\""
 
-#: sequencer.c:3011 sequencer.c:4015
-#, c-format
-msgid "could not update %s"
-msgstr "不能更新 %s"
-
-#: sequencer.c:3049 sequencer.c:3995
+#: sequencer.c:3168 sequencer.c:4217
 msgid "cannot read HEAD"
 msgstr "不能读取 HEAD"
 
-#: sequencer.c:3066
+#: sequencer.c:3185
 #, c-format
 msgid "unable to copy '%s' to '%s'"
 msgstr "无法拷贝 '%s' 至 '%s'"
 
-#: sequencer.c:3074
+#: sequencer.c:3193
 #, c-format
 msgid ""
 "You can amend the commit now, with\n"
@@ -6321,28 +7254,28 @@ msgstr ""
 "\n"
 "  git rebase --continue\n"
 
-#: sequencer.c:3084
+#: sequencer.c:3203
 #, c-format
 msgid "Could not apply %s... %.*s"
 msgstr "不能应用 %s... %.*s"
 
-#: sequencer.c:3091
+#: sequencer.c:3210
 #, c-format
 msgid "Could not merge %.*s"
 msgstr "不能合并 %.*s"
 
-#: sequencer.c:3105 sequencer.c:3109 builtin/difftool.c:633
+#: sequencer.c:3224 sequencer.c:3228 builtin/difftool.c:641
 #, c-format
 msgid "could not copy '%s' to '%s'"
 msgstr "不能拷贝 '%s' 至 '%s'"
 
-#: sequencer.c:3131 sequencer.c:3558 builtin/rebase.c:849 builtin/rebase.c:1582
-#: builtin/rebase.c:1953 builtin/rebase.c:2008
-msgid "could not read index"
-msgstr "不能读取索引"
+#: sequencer.c:3240
+#, c-format
+msgid "Executing: %s\n"
+msgstr "正在执行:%s\n"
 
 #  译者:注意保持前导空格
-#: sequencer.c:3136
+#: sequencer.c:3255
 #, c-format
 msgid ""
 "execution failed: %s\n"
@@ -6357,11 +7290,11 @@ msgstr ""
 "  git rebase --continue\n"
 "\n"
 
-#: sequencer.c:3142
+#: sequencer.c:3261
 msgid "and made changes to the index and/or the working tree\n"
 msgstr "并且修改索引和/或工作区\n"
 
-#: sequencer.c:3148
+#: sequencer.c:3267
 #, c-format
 msgid ""
 "execution succeeded: %s\n"
@@ -6378,111 +7311,128 @@ msgstr ""
 "  git rebase --continue\n"
 "\n"
 
-#: sequencer.c:3209
+#: sequencer.c:3328
 #, c-format
 msgid "illegal label name: '%.*s'"
 msgstr "非法的标签名称:'%.*s'"
 
-#: sequencer.c:3263
+#: sequencer.c:3382
 msgid "writing fake root commit"
 msgstr "写伪根提交"
 
-#: sequencer.c:3268
+#: sequencer.c:3387
 msgid "writing squash-onto"
 msgstr "写入 squash-onto"
 
-#: sequencer.c:3306 builtin/rebase.c:854 builtin/rebase.c:860
-#, c-format
-msgid "failed to find tree of %s"
-msgstr "无法找到 %s 指向的树。"
-
-#: sequencer.c:3324 builtin/rebase.c:873
-msgid "could not write index"
-msgstr "不能写入索引"
-
-#: sequencer.c:3351
+#: sequencer.c:3471
 #, c-format
 msgid "could not resolve '%s'"
 msgstr "无法解析 '%s'"
 
-#: sequencer.c:3379
+#: sequencer.c:3502
 msgid "cannot merge without a current revision"
 msgstr "没有当前版本不能合并"
 
-#: sequencer.c:3401
+#: sequencer.c:3524
 #, c-format
 msgid "unable to parse '%.*s'"
 msgstr "无法解析 '%.*s'"
 
-#: sequencer.c:3410
+#: sequencer.c:3533
 #, c-format
 msgid "nothing to merge: '%.*s'"
 msgstr "无可用合并:'%.*s'"
 
-#: sequencer.c:3422
+#: sequencer.c:3545
 msgid "octopus merge cannot be executed on top of a [new root]"
 msgstr "章鱼合并不能在一个新的根提交上执行"
 
-#: sequencer.c:3437
+#: sequencer.c:3561
 #, c-format
 msgid "could not get commit message of '%s'"
 msgstr "不能获取 '%s' 的提交说明"
 
-#: sequencer.c:3590
+#: sequencer.c:3730
 #, c-format
 msgid "could not even attempt to merge '%.*s'"
 msgstr "甚至不能尝试合并 '%.*s'"
 
-#: sequencer.c:3606
+#: sequencer.c:3746
 msgid "merge: Unable to write new index file"
 msgstr "合并:无法写入新索引文件"
 
-#: sequencer.c:3675 builtin/rebase.c:711
+#: sequencer.c:3820
+msgid "Cannot autostash"
+msgstr "无法 autostash"
+
+#: sequencer.c:3823
+#, c-format
+msgid "Unexpected stash response: '%s'"
+msgstr "意外的 stash 响应:'%s'"
+
+#: sequencer.c:3829
+#, c-format
+msgid "Could not create directory for '%s'"
+msgstr "不能为 '%s' 创建目录"
+
+#: sequencer.c:3832
+#, c-format
+msgid "Created autostash: %s\n"
+msgstr "创建了 autostash:%s\n"
+
+#: sequencer.c:3836
+msgid "could not reset --hard"
+msgstr "无法 reset --hard"
+
+#: sequencer.c:3861
 #, c-format
 msgid "Applied autostash.\n"
 msgstr "已应用 autostash。\n"
 
-#: sequencer.c:3687
+#: sequencer.c:3873
 #, c-format
 msgid "cannot store %s"
 msgstr "不能存储 %s"
 
-#: sequencer.c:3690 builtin/rebase.c:727 git-rebase--preserve-merges.sh:113
+#: sequencer.c:3876
 #, c-format
 msgid ""
-"Applying autostash resulted in conflicts.\n"
+"%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 ""
-"应用 autostash 导致冲突。\n"
-"您的修改安全地保存在贮藏区中。\n"
+"%s\n"
+"您的修改在贮藏区中很安全。\n"
 "您可以在任何时候运行 \"git stash pop\" 或 \"git stash drop\"。\n"
 
-#: sequencer.c:3751
-#, c-format
-msgid "could not checkout %s"
-msgstr "不能检出 %s"
+#: sequencer.c:3881
+msgid "Applying autostash resulted in conflicts."
+msgstr "应用自动贮藏导致冲突。"
+
+#: sequencer.c:3882
+msgid "Autostash exists; creating a new stash entry."
+msgstr "自动贮藏已经存在;正在创建一个新的贮藏条目。"
 
-#: sequencer.c:3765
+#: sequencer.c:3974
 #, c-format
 msgid "%s: not a valid OID"
 msgstr "%s:不是一个有效的对象 ID"
 
-#: sequencer.c:3770 git-rebase--preserve-merges.sh:779
+#: sequencer.c:3979 git-rebase--preserve-merges.sh:769
 msgid "could not detach HEAD"
 msgstr "不能分离头指针"
 
-#: sequencer.c:3785
+#: sequencer.c:3994
 #, c-format
 msgid "Stopped at HEAD\n"
 msgstr "停止在 HEAD\n"
 
-#: sequencer.c:3787
+#: sequencer.c:3996
 #, c-format
 msgid "Stopped at %s\n"
 msgstr "停止在 %s\n"
 
-#: sequencer.c:3795
+#: sequencer.c:4004
 #, c-format
 msgid ""
 "Could not execute the todo command\n"
@@ -6502,48 +7452,58 @@ msgstr ""
 "    git rebase --edit-todo\n"
 "    git rebase --continue\n"
 
-#: sequencer.c:3877
+#: sequencer.c:4050
+#, c-format
+msgid "Rebasing (%d/%d)%s"
+msgstr "正在变基(%d/%d)%s"
+
+#: sequencer.c:4095
 #, c-format
 msgid "Stopped at %s...  %.*s\n"
 msgstr "停止在 %s... %.*s\n"
 
-#: sequencer.c:3958
+#: sequencer.c:4166
 #, c-format
 msgid "unknown command %d"
 msgstr "未知命令 %d"
 
-#: sequencer.c:4003
+#: sequencer.c:4225
 msgid "could not read orig-head"
 msgstr "不能读取 orig-head"
 
-#: sequencer.c:4008
+#: sequencer.c:4230
 msgid "could not read 'onto'"
 msgstr "不能读取 'onto'"
 
-#: sequencer.c:4022
+#: sequencer.c:4244
 #, c-format
 msgid "could not update HEAD to %s"
 msgstr "不能更新 HEAD 为 %s"
 
-#: sequencer.c:4115
+#: sequencer.c:4304
+#, c-format
+msgid "Successfully rebased and updated %s.\n"
+msgstr "成功变基并更新 %s。\n"
+
+#: sequencer.c:4337
 msgid "cannot rebase: You have unstaged changes."
 msgstr "不能变基:您有未暂存的变更。"
 
-#: sequencer.c:4124
+#: sequencer.c:4346
 msgid "cannot amend non-existing commit"
 msgstr "不能修补不存在的提交"
 
-#: sequencer.c:4126
+#: sequencer.c:4348
 #, c-format
 msgid "invalid file: '%s'"
 msgstr "无效文件:'%s'"
 
-#: sequencer.c:4128
+#: sequencer.c:4350
 #, c-format
 msgid "invalid contents: '%s'"
 msgstr "无效内容:'%s'"
 
-#: sequencer.c:4131
+#: sequencer.c:4353
 msgid ""
 "\n"
 "You have uncommitted changes in your working tree. Please, commit them\n"
@@ -6552,68 +7512,64 @@ msgstr ""
 "\n"
 "您的工作区中有未提交的变更。请先提交然后再次运行 'git rebase --continue'。"
 
-#: sequencer.c:4167 sequencer.c:4205
+#: sequencer.c:4389 sequencer.c:4428
 #, c-format
 msgid "could not write file: '%s'"
 msgstr "不能写入文件:'%s'"
 
-#: sequencer.c:4220
+#: sequencer.c:4444
 msgid "could not remove CHERRY_PICK_HEAD"
 msgstr "不能删除 CHERRY_PICK_HEAD"
 
-#: sequencer.c:4227
+#: sequencer.c:4451
 msgid "could not commit staged changes."
 msgstr "不能提交暂存的修改。"
 
-#: sequencer.c:4328
+#: sequencer.c:4477
+#, c-format
+msgid "invalid committer '%s'"
+msgstr "无效的提交者 '%s'"
+
+#: sequencer.c:4586
 #, c-format
 msgid "%s: can't cherry-pick a %s"
 msgstr "%s:不能拣选一个%s"
 
-#: sequencer.c:4332
+#: sequencer.c:4590
 #, c-format
 msgid "%s: bad revision"
 msgstr "%s:错误的版本"
 
-#: sequencer.c:4367
+#: sequencer.c:4625
 msgid "can't revert as initial commit"
 msgstr "不能作为初始提交回退"
 
-#: sequencer.c:4810
+#: sequencer.c:5102
 msgid "make_script: unhandled options"
 msgstr "make_script:有未能处理的选项"
 
-#: sequencer.c:4813
+#: sequencer.c:5105
 msgid "make_script: error preparing revisions"
 msgstr "make_script:准备版本时错误"
 
-#: sequencer.c:4971
-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"
-
-#: sequencer.c:5083 sequencer.c:5100
+#: sequencer.c:5347 sequencer.c:5364
 msgid "nothing to do"
 msgstr "无事可做"
 
-#: sequencer.c:5114
+#: sequencer.c:5383
 msgid "could not skip unnecessary pick commands"
 msgstr "无法跳过不必要的拣选"
 
-#: sequencer.c:5197
+#: sequencer.c:5480
 msgid "the script was already rearranged."
 msgstr "脚本已经重新编排。"
 
-#: setup.c:123
+#: setup.c:133
 #, c-format
-msgid "'%s' is outside repository"
-msgstr "'%s' 在仓库之外"
+msgid "'%s' is outside repository at '%s'"
+msgstr "'%s' 在位于 '%s' 的仓库之外"
 
-#: setup.c:173
+#: setup.c:185
 #, c-format
 msgid ""
 "%s: no such path in the working tree.\n"
@@ -6622,7 +7578,7 @@ msgstr ""
 "%s:工作区中无此路径。\n"
 "使用命令 'git <命令> -- <路径>...' 来指定本地不存在的路径。"
 
-#: setup.c:186
+#: setup.c:198
 #, c-format
 msgid ""
 "ambiguous argument '%s': unknown revision or path not in the working tree.\n"
@@ -6633,12 +7589,12 @@ msgstr ""
 "使用 '--' 来分隔版本和路径,例如:\n"
 "'git <命令> [<版本>...] -- [<文件>...]'"
 
-#: setup.c:235
+#: setup.c:264
 #, c-format
 msgid "option '%s' must come before non-option arguments"
 msgstr "选项 '%s' 必须在其他非选项参数之前"
 
-#: setup.c:254
+#: setup.c:283
 #, c-format
 msgid ""
 "ambiguous argument '%s': both revision and filename\n"
@@ -6649,101 +7605,105 @@ msgstr ""
 "使用 '--' 来分隔版本和路径,例如:\n"
 "'git <命令> [<版本>...] -- [<文件>...]'"
 
-#: setup.c:390
+#: setup.c:419
 msgid "unable to set up work tree using invalid config"
 msgstr "无法使用无效配置来创建工作区"
 
-#: setup.c:394
+#: setup.c:423
 msgid "this operation must be run in a work tree"
 msgstr "该操作必须在一个工作区中运行"
 
-#: setup.c:540
+#: setup.c:661
 #, c-format
 msgid "Expected git repo version <= %d, found %d"
 msgstr "期望 git 仓库版本 <= %d,却得到 %d"
 
-#: setup.c:548
+#: setup.c:669
 msgid "unknown repository extensions found:"
 msgstr "发现未知的仓库扩展:"
 
-#: setup.c:567
+#: setup.c:681
+msgid "repo version is 0, but v1-only extensions found:"
+msgstr "仓库的版本是 0,但是发现仅用于 v1 的扩展:"
+
+#: setup.c:700
 #, c-format
 msgid "error opening '%s'"
 msgstr "打开 '%s' 出错"
 
-#: setup.c:569
+#: setup.c:702
 #, c-format
 msgid "too large to be a .git file: '%s'"
 msgstr "文件太大,无法作为 .git 文件:'%s'"
 
-#: setup.c:571
+#: setup.c:704
 #, c-format
 msgid "error reading %s"
 msgstr "读取 %s 出错"
 
-#: setup.c:573
+#: setup.c:706
 #, c-format
 msgid "invalid gitfile format: %s"
 msgstr "无效的 gitfile 格式:%s"
 
-#: setup.c:575
+#: setup.c:708
 #, c-format
 msgid "no path in gitfile: %s"
 msgstr "在 gitfile 中没有路径:%s"
 
-#: setup.c:577
+#: setup.c:710
 #, c-format
 msgid "not a git repository: %s"
-msgstr "不是一个 git 仓库:%s"
+msgstr "不是 git 仓库:%s"
 
-#: setup.c:676
+#: setup.c:812
 #, c-format
 msgid "'$%s' too big"
 msgstr "'$%s' 太大"
 
-#: setup.c:690
+#: setup.c:826
 #, c-format
 msgid "not a git repository: '%s'"
-msgstr "不是一个 git 仓库:'%s'"
+msgstr "不是 git 仓库:'%s'"
 
-#: setup.c:719 setup.c:721 setup.c:752
+#: setup.c:855 setup.c:857 setup.c:888
 #, c-format
 msgid "cannot chdir to '%s'"
 msgstr "不能切换目录到 '%s'"
 
-#: setup.c:724 setup.c:780 setup.c:790 setup.c:829 setup.c:837
+#: setup.c:860 setup.c:916 setup.c:926 setup.c:965 setup.c:973
 msgid "cannot come back to cwd"
 msgstr "无法返回当前工作目录"
 
-#: setup.c:851
+#: setup.c:987
 #, c-format
 msgid "failed to stat '%*s%s%s'"
 msgstr "获取 '%*s%s%s' 状态(stat)失败"
 
-#: setup.c:1083
+#: setup.c:1225
 msgid "Unable to read current working directory"
 msgstr "不能读取当前工作目录"
 
-#: setup.c:1092 setup.c:1098
+#: setup.c:1234 setup.c:1240
 #, c-format
 msgid "cannot change to '%s'"
 msgstr "不能切换到 '%s'"
 
-#: setup.c:1103
+#: setup.c:1245
 #, c-format
 msgid "not a git repository (or any of the parent directories): %s"
-msgstr "不是一个 git 仓库(或者任何父目录):%s"
+msgstr "不是 git 仓库(或者任何父目录):%s"
 
-#: setup.c:1109
+#: setup.c:1251
 #, 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)."
 msgstr ""
-"不是一个 git 仓库(或者直至挂载点 %s 的任何父目录)\n"
+"不是 git 仓库(或者直至挂载点 %s 的任何父目录)\n"
 "停止在文件系统边界(未设置 GIT_DISCOVERY_ACROSS_FILESYSTEM)。"
 
-#: setup.c:1220
+#: setup.c:1362
 #, c-format
 msgid ""
 "problem with core.sharedRepository filemode value (0%.3o).\n"
@@ -6752,282 +7712,282 @@ msgstr ""
 "参数 core.sharedRepository 的文件属性值有问题(0%.3o)。\n"
 "文件属主必须始终拥有读写权限。"
 
-#: setup.c:1264
+#: setup.c:1409
 msgid "open /dev/null or dup failed"
 msgstr "不能打开或者复制 /dev/null"
 
-#: setup.c:1279
+#: setup.c:1424
 msgid "fork failed"
 msgstr "fork 失败"
 
-#: setup.c:1284
+#: setup.c:1429
 msgid "setsid failed"
 msgstr "setsid 失败"
 
-#: sha1-file.c:453
+#: sha1-file.c:470
 #, c-format
 msgid "object directory %s does not exist; check .git/objects/info/alternates"
 msgstr "对象目录 %s 不存在,检查 .git/objects/info/alternates"
 
-#: sha1-file.c:504
+#: sha1-file.c:521
 #, c-format
 msgid "unable to normalize alternate object path: %s"
 msgstr "无法规范化备用对象路径:%s"
 
-#: sha1-file.c:576
+#: sha1-file.c:593
 #, c-format
 msgid "%s: ignoring alternate object stores, nesting too deep"
 msgstr "%s:忽略备用对象库,嵌套太深"
 
-#: sha1-file.c:583
+#: sha1-file.c:600
 #, c-format
 msgid "unable to normalize object directory: %s"
 msgstr "无法规范化对象目录: %s"
 
-#: sha1-file.c:626
+#: sha1-file.c:643
 msgid "unable to fdopen alternates lockfile"
 msgstr "无法 fdopen 替换锁文件"
 
-#: sha1-file.c:644
+#: sha1-file.c:661
 msgid "unable to read alternates file"
 msgstr "无法读取替代文件"
 
-#: sha1-file.c:651
+#: sha1-file.c:668
 msgid "unable to move new alternates file into place"
 msgstr "无法将新的替代文件移动到位"
 
-#: sha1-file.c:686
+#: sha1-file.c:703
 #, c-format
 msgid "path '%s' does not exist"
 msgstr "路径 '%s' 不存在"
 
-#: sha1-file.c:712
+#: sha1-file.c:724
 #, c-format
 msgid "reference repository '%s' as a linked checkout is not supported yet."
 msgstr "尚不支持将参考仓库 '%s' 作为一个链接检出。"
 
-#: sha1-file.c:718
+#: sha1-file.c:730
 #, c-format
 msgid "reference repository '%s' is not a local repository."
 msgstr "参考仓库 '%s' 不是一个本地仓库。"
 
-#: sha1-file.c:724
+#: sha1-file.c:736
 #, c-format
 msgid "reference repository '%s' is shallow"
 msgstr "参考仓库 '%s' 是一个浅克隆"
 
-#: sha1-file.c:732
+#: sha1-file.c:744
 #, c-format
 msgid "reference repository '%s' is grafted"
 msgstr "参考仓库 '%s' 已被移植"
 
-#: sha1-file.c:792
+#: sha1-file.c:804
 #, c-format
 msgid "invalid line while parsing alternate refs: %s"
 msgstr "解析备用引用时无效的行:%s"
 
-#: sha1-file.c:944
+#: sha1-file.c:954
 #, c-format
 msgid "attempting to mmap %<PRIuMAX> over limit %<PRIuMAX>"
 msgstr "尝试 mmap %<PRIuMAX>,超过了最大值 %<PRIuMAX>"
 
-#: sha1-file.c:969
+#: sha1-file.c:975
 msgid "mmap failed"
 msgstr "mmap 失败"
 
-#: sha1-file.c:1133
+#: sha1-file.c:1139
 #, c-format
 msgid "object file %s is empty"
 msgstr "对象文件 %s 为空"
 
-#: sha1-file.c:1257 sha1-file.c:2396
+#: sha1-file.c:1274 sha1-file.c:2467
 #, c-format
 msgid "corrupt loose object '%s'"
 msgstr "损坏的松散对象 '%s'"
 
-#: sha1-file.c:1259 sha1-file.c:2400
+#: sha1-file.c:1276 sha1-file.c:2471
 #, c-format
 msgid "garbage at end of loose object '%s'"
 msgstr "松散对象 '%s' 后面有垃圾数据"
 
-#: sha1-file.c:1301
+#: sha1-file.c:1318
 msgid "invalid object type"
 msgstr "无效的对象类型"
 
-#: sha1-file.c:1385
+#: sha1-file.c:1402
 #, c-format
 msgid "unable to unpack %s header with --allow-unknown-type"
 msgstr "无法用 --allow-unknown-type 参数解开 %s 头信息"
 
-#: sha1-file.c:1388
+#: sha1-file.c:1405
 #, c-format
 msgid "unable to unpack %s header"
 msgstr "无法解开 %s 头部"
 
-#: sha1-file.c:1394
+#: sha1-file.c:1411
 #, c-format
 msgid "unable to parse %s header with --allow-unknown-type"
 msgstr "无法用 --allow-unknown-type 参数解析 %s 头信息"
 
-#: sha1-file.c:1397
+#: sha1-file.c:1414
 #, c-format
 msgid "unable to parse %s header"
 msgstr "无法解析 %s 头部"
 
-#: sha1-file.c:1588
+#: sha1-file.c:1641
 #, c-format
 msgid "failed to read object %s"
 msgstr "读取对象 %s 失败"
 
-#: sha1-file.c:1592
+#: sha1-file.c:1645
 #, c-format
 msgid "replacement %s not found for %s"
 msgstr "找不到 %2$s 的替代 %1$s"
 
-#: sha1-file.c:1596
+#: sha1-file.c:1649
 #, c-format
 msgid "loose object %s (stored in %s) is corrupt"
 msgstr "松散对象 %s(保存在 %s)已损坏"
 
-#: sha1-file.c:1600
+#: sha1-file.c:1653
 #, c-format
 msgid "packed object %s (stored in %s) is corrupt"
 msgstr "打包对象 %s(保存在 %s)已损坏"
 
-#: sha1-file.c:1703
+#: sha1-file.c:1758
 #, c-format
 msgid "unable to write file %s"
 msgstr "无法写文件 %s"
 
-#: sha1-file.c:1710
+#: sha1-file.c:1765
 #, c-format
 msgid "unable to set permission to '%s'"
 msgstr "无法为 '%s' 设置权限"
 
-#: sha1-file.c:1717
+#: sha1-file.c:1772
 msgid "file write error"
 msgstr "文件写错误"
 
-#: sha1-file.c:1736
+#: sha1-file.c:1792
 msgid "error when closing loose object file"
 msgstr "关闭松散对象文件时出错"
 
-#: sha1-file.c:1801
+#: sha1-file.c:1857
 #, c-format
 msgid "insufficient permission for adding an object to repository database %s"
 msgstr "权限不足,无法在仓库对象库 %s 中添加对象"
 
-#: sha1-file.c:1803
+#: sha1-file.c:1859
 msgid "unable to create temporary file"
 msgstr "无法创建临时文件"
 
-#: sha1-file.c:1827
+#: sha1-file.c:1883
 msgid "unable to write loose object file"
 msgstr "不能写松散对象文件"
 
-#: sha1-file.c:1833
+#: sha1-file.c:1889
 #, c-format
 msgid "unable to deflate new object %s (%d)"
 msgstr "不能压缩新对象 %s(%d)"
 
-#: sha1-file.c:1837
+#: sha1-file.c:1893
 #, c-format
 msgid "deflateEnd on object %s failed (%d)"
 msgstr "在对象 %s 上调用 deflateEnd 失败(%d)"
 
-#: sha1-file.c:1841
+#: sha1-file.c:1897
 #, c-format
 msgid "confused by unstable object source data for %s"
 msgstr "被 %s 的不稳定对象源数据搞糊涂了"
 
-#: sha1-file.c:1851 builtin/pack-objects.c:925
+#: sha1-file.c:1907 builtin/pack-objects.c:1086
 #, c-format
 msgid "failed utime() on %s"
 msgstr "在 %s 上调用 utime() 失败"
 
-#: sha1-file.c:1926
+#: sha1-file.c:1984
 #, c-format
 msgid "cannot read object for %s"
 msgstr "不能读取对象 %s"
 
-#: sha1-file.c:1966
+#: sha1-file.c:2035
 msgid "corrupt commit"
 msgstr "损坏的提交"
 
-#: sha1-file.c:1974
+#: sha1-file.c:2043
 msgid "corrupt tag"
 msgstr "损坏的标签"
 
-#: sha1-file.c:2073
+#: sha1-file.c:2143
 #, c-format
 msgid "read error while indexing %s"
 msgstr "索引 %s 时读取错误"
 
-#: sha1-file.c:2076
+#: sha1-file.c:2146
 #, c-format
 msgid "short read while indexing %s"
 msgstr "索引 %s 时读入不完整"
 
-#: sha1-file.c:2149 sha1-file.c:2158
+#: sha1-file.c:2219 sha1-file.c:2229
 #, c-format
 msgid "%s: failed to insert into database"
 msgstr "%s:插入数据库失败"
 
-#: sha1-file.c:2164
+#: sha1-file.c:2235
 #, c-format
 msgid "%s: unsupported file type"
 msgstr "%s:不支持的文件类型"
 
-#: sha1-file.c:2188
+#: sha1-file.c:2259
 #, c-format
 msgid "%s is not a valid object"
 msgstr "%s 不是一个有效的对象"
 
-#: sha1-file.c:2190
+#: sha1-file.c:2261
 #, c-format
 msgid "%s is not a valid '%s' object"
 msgstr "%s 不是一个有效的 '%s' 对象"
 
-#: sha1-file.c:2217 builtin/index-pack.c:155
+#: sha1-file.c:2288 builtin/index-pack.c:192
 #, c-format
 msgid "unable to open %s"
 msgstr "不能打开 %s"
 
-#: sha1-file.c:2407 sha1-file.c:2459
+#: sha1-file.c:2478 sha1-file.c:2531
 #, c-format
 msgid "hash mismatch for %s (expected %s)"
 msgstr "%s 的哈希值不匹配(预期 %s)"
 
-#: sha1-file.c:2431
+#: sha1-file.c:2502
 #, c-format
 msgid "unable to mmap %s"
 msgstr "不能 mmap %s"
 
-#: sha1-file.c:2436
+#: sha1-file.c:2507
 #, c-format
 msgid "unable to unpack header of %s"
 msgstr "无法解压缩 %s 的头部"
 
-#: sha1-file.c:2442
+#: sha1-file.c:2513
 #, c-format
 msgid "unable to parse header of %s"
 msgstr "无法解析 %s 的头部"
 
-#: sha1-file.c:2453
+#: sha1-file.c:2524
 #, c-format
 msgid "unable to unpack contents of %s"
 msgstr "无法解压缩 %s 的内容"
 
-#: sha1-name.c:490
+#: sha1-name.c:486
 #, c-format
 msgid "short SHA1 %s is ambiguous"
 msgstr "短 SHA1 %s 存在歧义"
 
-#: sha1-name.c:501
+#: sha1-name.c:497
 msgid "The candidates are:"
 msgstr "候选者有:"
 
-#: sha1-name.c:800
+#: 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"
@@ -7048,44 +8008,110 @@ msgstr ""
 "引用,可能需要删除它们。运行 \"git config advice.objectNameWarning\n"
 "false\" 命令关闭本消息通知。"
 
+#: sha1-name.c:916
+#, c-format
+msgid "log for '%.*s' only goes back to %s"
+msgstr "'%.*s' 的日志仅能回到 %s"
+
+#: sha1-name.c:924
+#, c-format
+msgid "log for '%.*s' only has %d entries"
+msgstr "'%.*s' 的日志仅有 %d 个条目"
+
+#: sha1-name.c:1702
+#, c-format
+msgid "path '%s' exists on disk, but not in '%.*s'"
+msgstr "路径 '%s' 在磁盘上,但是不在 '%.*s' 中"
+
+#: sha1-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'?"
+
+#: sha1-name.c:1717
+#, c-format
+msgid "path '%s' does not exist in '%.*s'"
+msgstr "路径 '%s' 不在 '%.*s' 中"
+
+#: sha1-name.c:1745
+#, c-format
+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'?"
+
+#: sha1-name.c:1761
+#, c-format
+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'?"
+
+#: sha1-name.c:1769
+#, c-format
+msgid "path '%s' exists on disk, but not in the index"
+msgstr "路径 '%s' 在磁盘上,但不在索引里"
+
+#: sha1-name.c:1771
+#, c-format
+msgid "path '%s' does not exist (neither on disk nor in the index)"
+msgstr "路径 '%s' 不存在(既不在磁盘上,也不在索引中)"
+
+#: sha1-name.c:1784
+msgid "relative path syntax can't be used outside working tree"
+msgstr "不能在工作区之外使用相对路径语法"
+
+#: sha1-name.c:1922
+#, c-format
+msgid "invalid object name '%.*s'."
+msgstr "无效的对象名 '%.*s'。"
+
 #. TRANSLATORS: IEC 80000-13:2008 gibibyte
-#: strbuf.c:821
+#: strbuf.c:848
 #, c-format
 msgid "%u.%2.2u GiB"
 msgstr "%u.%2.2u GiB"
 
 #. TRANSLATORS: IEC 80000-13:2008 gibibyte/second
-#: strbuf.c:823
+#: strbuf.c:850
 #, c-format
 msgid "%u.%2.2u GiB/s"
 msgstr "%u.%2.2u GiB/s"
 
 #. TRANSLATORS: IEC 80000-13:2008 mebibyte
-#: strbuf.c:831
+#: strbuf.c:858
 #, c-format
 msgid "%u.%2.2u MiB"
 msgstr "%u.%2.2u MiB"
 
 #. TRANSLATORS: IEC 80000-13:2008 mebibyte/second
-#: strbuf.c:833
+#: strbuf.c:860
 #, c-format
 msgid "%u.%2.2u MiB/s"
 msgstr "%u.%2.2u MiB/s"
 
 #. TRANSLATORS: IEC 80000-13:2008 kibibyte
-#: strbuf.c:840
+#: strbuf.c:867
 #, c-format
 msgid "%u.%2.2u KiB"
 msgstr "%u.%2.2u KiB"
 
 #. TRANSLATORS: IEC 80000-13:2008 kibibyte/second
-#: strbuf.c:842
+#: strbuf.c:869
 #, c-format
 msgid "%u.%2.2u KiB/s"
 msgstr "%u.%2.2u KiB/s"
 
 #. TRANSLATORS: IEC 80000-13:2008 byte
-#: strbuf.c:848
+#: strbuf.c:875
 #, c-format
 msgid "%u byte"
 msgid_plural "%u bytes"
@@ -7093,13 +8119,48 @@ msgstr[0] "%u 字节"
 msgstr[1] "%u 字节"
 
 #. TRANSLATORS: IEC 80000-13:2008 byte/second
-#: strbuf.c:850
+#: strbuf.c:877
 #, c-format
 msgid "%u byte/s"
 msgid_plural "%u bytes/s"
 msgstr[0] "%u 字节/秒"
 msgstr[1] "%u 字节/秒"
 
+#: strbuf.c:1166 wrapper.c:199 wrapper.c:369 builtin/am.c:733
+#: builtin/rebase.c:858
+#, c-format
+msgid "could not open '%s' for writing"
+msgstr "无法打开 '%s' 进行写入"
+
+#: strbuf.c:1175
+#, c-format
+msgid "could not edit '%s'"
+msgstr "不能编辑 '%s'"
+
+#: submodule-config.c:237
+#, c-format
+msgid "ignoring suspicious submodule name: %s"
+msgstr "忽略可疑的子模组名称:%s"
+
+#: submodule-config.c:304
+msgid "negative values not allowed for submodule.fetchjobs"
+msgstr "submodule.fetchjobs 不允许为负值"
+
+#: submodule-config.c:402
+#, c-format
+msgid "ignoring '%s' which may be interpreted as a command-line option: %s"
+msgstr "忽略可能被解析为命令行选项的 '%s':%s"
+
+#: submodule-config.c:499
+#, c-format
+msgid "invalid value for %s"
+msgstr "%s 的值无效"
+
+#: submodule-config.c:766
+#, c-format
+msgid "Could not update .gitmodules entry %s"
+msgstr "不能更新 .gitmodules 条目 %s"
+
 #: submodule.c:114 submodule.c:143
 msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first"
 msgstr "无法修改未合并的 .gitmodules,先解决合并冲突"
@@ -7128,62 +8189,139 @@ msgstr "位于未检出的子模组 '%s'"
 msgid "Pathspec '%s' is in submodule '%.*s'"
 msgstr "路径规格 '%s' 在子模组 '%.*s' 中"
 
-#: submodule.c:910
+#: submodule.c:434
+#, c-format
+msgid "bad --ignore-submodules argument: %s"
+msgstr "坏的 --ignore-submodules 参数:%s"
+
+#: submodule.c:816
+#, 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
 #, c-format
 msgid "submodule entry '%s' (%s) is a %s, not a commit"
 msgstr "子模组条目 '%s'(%s)是一个 %s,不是一个提交"
 
-#: submodule.c:1147 builtin/branch.c:680 builtin/submodule--helper.c:1989
+#: submodule.c:1004
+#, 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
+#, c-format
+msgid "process for submodule '%s' failed"
+msgstr "处理子模组 '%s' 失败"
+
+#: submodule.c:1156 builtin/branch.c:678 builtin/submodule--helper.c:2469
 msgid "Failed to resolve HEAD as a valid ref."
 msgstr "无法将 HEAD 解析为有效引用。"
 
-#: submodule.c:1481
+#: submodule.c:1167
 #, c-format
-msgid "Could not access submodule '%s'"
-msgstr "无法访问子模组 '%s'"
+msgid "Pushing submodule '%s'\n"
+msgstr "正在推送子模组 '%s'\n"
 
-#: submodule.c:1651
+#: submodule.c:1170
+#, c-format
+msgid "Unable to push submodule '%s'\n"
+msgstr "无法推送子模组 '%s'\n"
+
+#: submodule.c:1462
+#, c-format
+msgid "Fetching submodule %s%s\n"
+msgstr "正在获取子模组 %s%s\n"
+
+#: submodule.c:1492
+#, c-format
+msgid "Could not access submodule '%s'\n"
+msgstr "无法访问子模组 '%s'\n"
+
+#: submodule.c:1646
+#, c-format
+msgid ""
+"Errors during submodule fetch:\n"
+"%s"
+msgstr ""
+"获取子模组时的错误:\n"
+"%s"
+
+#: submodule.c:1671
 #, c-format
 msgid "'%s' not recognized as a git repository"
-msgstr "无法将 '%s' 识别为一个 git 仓库"
+msgstr "无法将 '%s' 识别为 git 仓库"
 
-#: submodule.c:1789
+#: submodule.c:1688
+#, c-format
+msgid "Could not run 'git status --porcelain=2' in submodule %s"
+msgstr "无法在子模组 %s 中执行 'git status --porcelain=2'"
+
+#: submodule.c:1729
+#, c-format
+msgid "'git status --porcelain=2' failed in submodule %s"
+msgstr "在子模组 %s 中执行 'git status --porcelain=2' 失败"
+
+#: submodule.c:1804
 #, c-format
 msgid "could not start 'git status' in submodule '%s'"
 msgstr "无法在子模组 '%s' 中启动 'git status'"
 
-#: submodule.c:1802
+#: submodule.c:1817
 #, c-format
 msgid "could not run 'git status' in submodule '%s'"
 msgstr "无法在子模组 '%s' 中执行 'git status'"
 
-#: submodule.c:1817
+#: submodule.c:1832
 #, c-format
 msgid "Could not unset core.worktree setting in submodule '%s'"
 msgstr "无法在子模组 '%s' 中取消 core.worktree 的设置"
 
-#: submodule.c:1907
+#: submodule.c:1859 submodule.c:2169
+#, c-format
+msgid "could not recurse into submodule '%s'"
+msgstr "无法递归进子模组路径 '%s'"
+
+#: submodule.c:1880
+msgid "could not reset submodule index"
+msgstr "无法重置子模组索引"
+
+#: submodule.c:1922
 #, c-format
 msgid "submodule '%s' has dirty index"
 msgstr "子模组 '%s' 中有脏索引"
 
-#: submodule.c:1959
+#: submodule.c:1974
 #, c-format
 msgid "Submodule '%s' could not be updated."
 msgstr "子模组 '%s' 无法被更新。"
 
-#: submodule.c:2007
+#: submodule.c:2042
+#, c-format
+msgid "submodule git dir '%s' is inside git dir '%.*s'"
+msgstr "子模组 git 目录 '%s' 位于 git 目录 '%.*s' 中"
+
+#: submodule.c:2063
 #, c-format
 msgid ""
 "relocate_gitdir for submodule '%s' with more than one worktree not supported"
 msgstr "不支持对有多个工作区的子模组 '%s' 执行 relocate_gitdir"
 
-#: submodule.c:2019 submodule.c:2074
+#: submodule.c:2075 submodule.c:2134
 #, c-format
 msgid "could not lookup name for submodule '%s'"
 msgstr "不能查询子模组 '%s' 的名称"
 
-#: submodule.c:2026
+#: submodule.c:2079
+#, c-format
+msgid "refusing to move '%s' into an existing git dir"
+msgstr "禁止移动 '%s' 到现存 git 目录中"
+
+#: submodule.c:2086
 #, c-format
 msgid ""
 "Migrating git directory of '%s%s' from\n"
@@ -7194,371 +8332,356 @@ msgstr ""
 "'%s' 迁移至\n"
 "'%s'\n"
 
-#: submodule.c:2109
-#, c-format
-msgid "could not recurse into submodule '%s'"
-msgstr "无法递归进子模组路径 '%s'"
-
-#: submodule.c:2153
+#: submodule.c:2214
 msgid "could not start ls-files in .."
 msgstr "无法在 .. 中启动 ls-files"
 
-#: submodule.c:2192
+#: submodule.c:2254
 #, c-format
 msgid "ls-tree returned unexpected return code %d"
 msgstr "ls-tree 返回未知返回值 %d"
 
-#: submodule-config.c:232
-#, c-format
-msgid "ignoring suspicious submodule name: %s"
-msgstr "忽略可疑的子模组名称:%s"
-
-#: submodule-config.c:299
-msgid "negative values not allowed for submodule.fetchjobs"
-msgstr "submodule.fetchjobs 不允许为负值"
-
-#: submodule-config.c:397
-#, c-format
-msgid "ignoring '%s' which may be interpreted as a command-line option: %s"
-msgstr "忽略可能被解析为命令行选项的 '%s':%s"
-
-#: submodule-config.c:486
-#, c-format
-msgid "invalid value for %s"
-msgstr "%s 的值无效"
-
-#: submodule-config.c:755
-#, c-format
-msgid "Could not update .gitmodules entry %s"
-msgstr "不能更新 .gitmodules 条目 %s"
-
-#: trailer.c:238
+#: trailer.c:236
 #, c-format
 msgid "running trailer command '%s' failed"
 msgstr "执行 trailer 命令 '%s' 失败"
 
-#: trailer.c:485 trailer.c:490 trailer.c:495 trailer.c:549 trailer.c:553
-#: trailer.c:557
+#: trailer.c:483 trailer.c:488 trailer.c:493 trailer.c:547 trailer.c:551
+#: trailer.c:555
 #, c-format
 msgid "unknown value '%s' for key '%s'"
 msgstr "键 '%2$s' 的未知取值 '%1$s'"
 
-#: trailer.c:539 trailer.c:544 builtin/remote.c:295
+#: trailer.c:537 trailer.c:542 builtin/remote.c:298 builtin/remote.c:323
 #, c-format
 msgid "more than one %s"
 msgstr "多于一个 %s"
 
-#: trailer.c:730
+#: trailer.c:728
 #, c-format
 msgid "empty trailer token in trailer '%.*s'"
 msgstr "签名 '%.*s' 的键为空"
 
-#: trailer.c:750
+#: trailer.c:748
 #, c-format
 msgid "could not read input file '%s'"
 msgstr "不能读取输入文件 '%s'"
 
-#: trailer.c:753
+#: trailer.c:751
 msgid "could not read from stdin"
 msgstr "不能自标准输入读取"
 
-#: trailer.c:1011 wrapper.c:701
+#: trailer.c:1009 wrapper.c:676
 #, c-format
 msgid "could not stat %s"
 msgstr "不能对 %s 调用 stat"
 
-#: trailer.c:1013
+#: trailer.c:1011
 #, c-format
 msgid "file %s is not a regular file"
 msgstr "文件 %s 不是一个正规文件"
 
-#: trailer.c:1015
+#: trailer.c:1013
 #, c-format
 msgid "file %s is not writable by user"
 msgstr "文件 %s 用户不可写"
 
-#: trailer.c:1027
+#: trailer.c:1025
 msgid "could not open temporary file"
 msgstr "不能打开临时文件"
 
-#: trailer.c:1067
+#: trailer.c:1065
 #, c-format
 msgid "could not rename temporary file to %s"
 msgstr "不能重命名临时文件为 %s"
 
-#: transport.c:116
-#, c-format
-msgid "Would set upstream of '%s' to '%s' of '%s'\n"
-msgstr "将要设置 '%1$s' 的上游为 '%3$s' 的 '%2$s'\n"
-
-#: transport.c:142
-#, c-format
-msgid "could not read bundle '%s'"
-msgstr "无法读取 bundle '%s'"
-
-#: transport.c:208
-#, c-format
-msgid "transport: invalid depth option '%s'"
-msgstr "传输:无效的深度选项 '%s'"
-
-#: transport.c:259
-msgid "see protocol.version in 'git help config' for more details"
-msgstr "查看 'git help config' 中的 protocol.version 获取更多信息"
-
-#: transport.c:260
-msgid "server options require protocol version 2 or later"
-msgstr "服务端选项需要版本 2 协议或更高"
-
-#: transport.c:625
-msgid "could not parse transport.color.* config"
-msgstr "不能解析 transport.color.* 配置"
-
-#: transport.c:698
-msgid "support for protocol v2 not implemented yet"
-msgstr "协议 v2 的支持尚未实现"
-
-#: transport.c:825
-#, c-format
-msgid "unknown value for config '%s': %s"
-msgstr "配置 '%s' 的取值未知:%s"
-
-#: transport.c:891
-#, c-format
-msgid "transport '%s' not allowed"
-msgstr "传输 '%s' 不允许"
-
-#: transport.c:945
-msgid "git-over-rsync is no longer supported"
-msgstr "不再支持 git-over-rsync"
-
-#: transport.c:1040
-#, c-format
-msgid ""
-"The following submodule paths contain changes that can\n"
-"not be found on any remote:\n"
-msgstr "下列子模组路径所包含的修改在任何远程源中都找不到:\n"
-
-#: transport.c:1044
-#, c-format
-msgid ""
-"\n"
-"Please try\n"
-"\n"
-"\tgit push --recurse-submodules=on-demand\n"
-"\n"
-"or cd to the path and use\n"
-"\n"
-"\tgit push\n"
-"\n"
-"to push them to a remote.\n"
-"\n"
-msgstr ""
-"\n"
-"请尝试\n"
-"\n"
-"\tgit push --recurse-submodules=on-demand\n"
-"\n"
-"或者进入到子目录执行\n"
-"\n"
-"\tgit push\n"
-"\n"
-"以推送至远程。\n"
-"\n"
-
-#: transport.c:1052
-msgid "Aborting."
-msgstr "正在终止。"
-
-#: transport.c:1193
-msgid "failed to push all needed submodules"
-msgstr "不能推送全部需要的子模组"
-
-#: transport.c:1340 transport-helper.c:645
-msgid "operation not supported by protocol"
-msgstr "协议不支持该操作"
-
-#: transport-helper.c:51 transport-helper.c:80
+#: transport-helper.c:62 transport-helper.c:91
 msgid "full write to remote helper failed"
 msgstr "完整写入远程助手失败"
 
-#: transport-helper.c:134
+#: transport-helper.c:145
 #, c-format
 msgid "unable to find remote helper for '%s'"
 msgstr "无法为 '%s' 找到远程助手"
 
-#: transport-helper.c:150 transport-helper.c:559
+#: transport-helper.c:161 transport-helper.c:575
 msgid "can't dup helper output fd"
 msgstr "无法复制助手输出文件句柄"
 
-#: transport-helper.c:201
+#: transport-helper.c:214
 #, c-format
 msgid ""
 "unknown mandatory capability %s; this remote helper probably needs newer "
 "version of Git"
 msgstr "未知的强制能力 %s,该远程助手可能需要新版本的Git"
 
-#: transport-helper.c:207
+#: transport-helper.c:220
 msgid "this remote helper should implement refspec capability"
 msgstr "远程助手需要实现 refspec 能力"
 
-#: transport-helper.c:274 transport-helper.c:414
+#: transport-helper.c:287 transport-helper.c:429
 #, c-format
 msgid "%s unexpectedly said: '%s'"
 msgstr "%s 意外地说:'%s'"
 
-#: transport-helper.c:403
+#: transport-helper.c:417
 #, c-format
 msgid "%s also locked %s"
 msgstr "%s 也锁定了 %s"
 
-#: transport-helper.c:481
+#: transport-helper.c:497
 msgid "couldn't run fast-import"
 msgstr "不能执行 fast-import"
 
-#: transport-helper.c:504
+#: transport-helper.c:520
 msgid "error while running fast-import"
 msgstr "执行 fast-import 出错"
 
-#: transport-helper.c:533 transport-helper.c:1105
+#: transport-helper.c:549 transport-helper.c:1226
 #, c-format
 msgid "could not read ref %s"
 msgstr "无法读取引用 %s"
 
-#: transport-helper.c:578
+#: transport-helper.c:594
 #, c-format
 msgid "unknown response to connect: %s"
 msgstr "连接时未知的响应:%s"
 
-#: transport-helper.c:600
+#: transport-helper.c:616
 msgid "setting remote service path not supported by protocol"
 msgstr "协议不支持设置远程服务路径"
 
-#: transport-helper.c:602
+#: transport-helper.c:618
 msgid "invalid remote service path"
 msgstr "无效的远程服务路径"
 
-#: transport-helper.c:648
+#: transport-helper.c:661 transport.c:1428
+msgid "operation not supported by protocol"
+msgstr "协议不支持该操作"
+
+#: transport-helper.c:664
 #, c-format
 msgid "can't connect to subservice %s"
 msgstr "不能连接到子服务 %s"
 
-#: transport-helper.c:720
+#: transport-helper.c:745
+msgid "'option' without a matching 'ok/error' directive"
+msgstr "'option' 缺乏一个匹配的 'ok/error' 指令"
+
+#: transport-helper.c:788
 #, c-format
 msgid "expected ok/error, helper said '%s'"
 msgstr "预期 ok/error,助手说 '%s'"
 
-#: transport-helper.c:773
+#: transport-helper.c:841
 #, c-format
 msgid "helper reported unexpected status of %s"
 msgstr "助手报告 %s 的意外状态"
 
-#: transport-helper.c:834
+#: transport-helper.c:924
 #, c-format
 msgid "helper %s does not support dry-run"
 msgstr "助手 %s 不支持 dry-run"
 
-#: transport-helper.c:837
+#: transport-helper.c:927
 #, c-format
 msgid "helper %s does not support --signed"
 msgstr "助手 %s 不支持 --signed"
 
-#: transport-helper.c:840
+#: transport-helper.c:930
 #, c-format
 msgid "helper %s does not support --signed=if-asked"
 msgstr "助手 %s 不支持 --signed=if-asked"
 
-#: transport-helper.c:847
+#: transport-helper.c:935
+#, c-format
+msgid "helper %s does not support --atomic"
+msgstr "助手 %s 不支持 --atomic"
+
+#: transport-helper.c:941
 #, c-format
 msgid "helper %s does not support 'push-option'"
 msgstr "助手 %s 不支持 'push-option'"
 
-#: transport-helper.c:945
+#: transport-helper.c:1040
 msgid "remote-helper doesn't support push; refspec needed"
 msgstr "remote-heper 不支持 push,需要引用表达式"
 
-#: transport-helper.c:950
+#: transport-helper.c:1045
 #, c-format
 msgid "helper %s does not support 'force'"
 msgstr "助手 %s 不支持 'force'"
 
-#: transport-helper.c:997
+#: transport-helper.c:1092
 msgid "couldn't run fast-export"
 msgstr "无法执行 fast-export"
 
-#: transport-helper.c:1002
+#: transport-helper.c:1097
 msgid "error while running fast-export"
 msgstr "执行 fast-export 时出错"
 
-#: transport-helper.c:1027
+#: transport-helper.c:1122
 #, c-format
 msgid ""
 "No refs in common and none specified; doing nothing.\n"
-"Perhaps you should specify a branch such as 'master'.\n"
+"Perhaps you should specify a branch.\n"
 msgstr ""
 "没有共同的引用并且也没有指定,什么也不会做。\n"
-"可能您应该指定一个分支如 'master'。\n"
+"也许您应该指定一个分支。\n"
+
+#: transport-helper.c:1203
+#, c-format
+msgid "unsupported object format '%s'"
+msgstr "不支持的对象格式 '%s'"
 
-#: transport-helper.c:1091
+#: transport-helper.c:1212
 #, c-format
 msgid "malformed response in ref list: %s"
 msgstr "引用列表中格式错误的响应:%s"
 
-#: transport-helper.c:1244
+#: transport-helper.c:1364
 #, c-format
 msgid "read(%s) failed"
 msgstr "读取(%s)失败"
 
-#: transport-helper.c:1271
+#: transport-helper.c:1391
 #, c-format
 msgid "write(%s) failed"
 msgstr "写(%s)失败"
 
-#: transport-helper.c:1320
+#: transport-helper.c:1440
 #, c-format
 msgid "%s thread failed"
 msgstr "%s 线程失败"
 
-#: transport-helper.c:1324
+#: transport-helper.c:1444
 #, c-format
 msgid "%s thread failed to join: %s"
 msgstr "%s 线程等待失败:%s"
 
-#: transport-helper.c:1343 transport-helper.c:1347
+#: transport-helper.c:1463 transport-helper.c:1467
 #, c-format
 msgid "can't start thread for copying data: %s"
 msgstr "不能启动线程来拷贝数据:%s"
 
-#: transport-helper.c:1384
+#: transport-helper.c:1504
 #, c-format
 msgid "%s process failed to wait"
 msgstr "%s 进程等待失败"
 
-#: transport-helper.c:1388
+#: transport-helper.c:1508
 #, c-format
 msgid "%s process failed"
 msgstr "%s 进程失败"
 
-#: transport-helper.c:1406 transport-helper.c:1415
+#: transport-helper.c:1526 transport-helper.c:1535
 msgid "can't start thread for copying data"
 msgstr "不能启动线程来拷贝数据"
 
-#: tree-walk.c:33
+#: transport.c:116
+#, c-format
+msgid "Would set upstream of '%s' to '%s' of '%s'\n"
+msgstr "将要设置 '%1$s' 的上游为 '%3$s' 的 '%2$s'\n"
+
+#: transport.c:145
+#, c-format
+msgid "could not read bundle '%s'"
+msgstr "无法读取归档包 '%s'"
+
+#: transport.c:220
+#, c-format
+msgid "transport: invalid depth option '%s'"
+msgstr "传输:无效的深度选项 '%s'"
+
+#: transport.c:269
+msgid "see protocol.version in 'git help config' for more details"
+msgstr "查看 'git help config' 中的 protocol.version 获取更多信息"
+
+#: transport.c:270
+msgid "server options require protocol version 2 or later"
+msgstr "服务端选项需要版本 2 协议或更高"
+
+#: transport.c:712
+msgid "could not parse transport.color.* config"
+msgstr "不能解析 transport.color.* 配置"
+
+#: transport.c:785
+msgid "support for protocol v2 not implemented yet"
+msgstr "协议 v2 的支持尚未实现"
+
+#: transport.c:919
+#, c-format
+msgid "unknown value for config '%s': %s"
+msgstr "配置 '%s' 的取值未知:%s"
+
+#: transport.c:985
+#, c-format
+msgid "transport '%s' not allowed"
+msgstr "传输 '%s' 不允许"
+
+#: transport.c:1038
+msgid "git-over-rsync is no longer supported"
+msgstr "不再支持 git-over-rsync"
+
+#: transport.c:1140
+#, c-format
+msgid ""
+"The following submodule paths contain changes that can\n"
+"not be found on any remote:\n"
+msgstr "下列子模组路径所包含的修改在任何远程源中都找不到:\n"
+
+#: transport.c:1144
+#, c-format
+msgid ""
+"\n"
+"Please try\n"
+"\n"
+"\tgit push --recurse-submodules=on-demand\n"
+"\n"
+"or cd to the path and use\n"
+"\n"
+"\tgit push\n"
+"\n"
+"to push them to a remote.\n"
+"\n"
+msgstr ""
+"\n"
+"请尝试\n"
+"\n"
+"\tgit push --recurse-submodules=on-demand\n"
+"\n"
+"或者进入到子目录执行\n"
+"\n"
+"\tgit push\n"
+"\n"
+"以推送至远程。\n"
+"\n"
+
+#: transport.c:1152
+msgid "Aborting."
+msgstr "正在终止。"
+
+#: transport.c:1297
+msgid "failed to push all needed submodules"
+msgstr "不能推送全部需要的子模组"
+
+#: tree-walk.c:32
 msgid "too-short tree object"
 msgstr "太短的树对象"
 
-#: tree-walk.c:39
+#: tree-walk.c:38
 msgid "malformed mode in tree entry"
 msgstr "树对象中的条目模式错误"
 
-#: tree-walk.c:43
+#: tree-walk.c:42
 msgid "empty filename in tree entry"
 msgstr "树对象条目中空的文件名"
 
-#: tree-walk.c:118
+#: tree-walk.c:117
 msgid "too-short tree file"
 msgstr "太短的树文件"
 
-#: unpack-trees.c:111
+#: unpack-trees.c:113
 #, c-format
 msgid ""
 "Your local changes to the following files would be overwritten by checkout:\n"
@@ -7567,7 +8690,7 @@ msgstr ""
 "您对下列文件的本地修改将被检出操作覆盖:\n"
 "%%s请在切换分支前提交或贮藏您的修改。"
 
-#: unpack-trees.c:113
+#: unpack-trees.c:115
 #, c-format
 msgid ""
 "Your local changes to the following files would be overwritten by checkout:\n"
@@ -7576,7 +8699,7 @@ msgstr ""
 "您对下列文件的本地修改将被检出操作覆盖:\n"
 "%%s"
 
-#: unpack-trees.c:116
+#: unpack-trees.c:118
 #, c-format
 msgid ""
 "Your local changes to the following files would be overwritten by merge:\n"
@@ -7585,7 +8708,7 @@ msgstr ""
 "您对下列文件的本地修改将被合并操作覆盖:\n"
 "%%s请在合并前提交或贮藏您的修改。"
 
-#: unpack-trees.c:118
+#: unpack-trees.c:120
 #, c-format
 msgid ""
 "Your local changes to the following files would be overwritten by merge:\n"
@@ -7594,7 +8717,7 @@ msgstr ""
 "您对下列文件的本地修改将被合并操作覆盖:\n"
 "%%s"
 
-#: unpack-trees.c:121
+#: unpack-trees.c:123
 #, c-format
 msgid ""
 "Your local changes to the following files would be overwritten by %s:\n"
@@ -7603,7 +8726,7 @@ msgstr ""
 "您对下列文件的本地修改将被 %s 覆盖:\n"
 "%%s请在 %s 之前提交或贮藏您的修改。"
 
-#: unpack-trees.c:123
+#: unpack-trees.c:125
 #, c-format
 msgid ""
 "Your local changes to the following files would be overwritten by %s:\n"
@@ -7612,7 +8735,7 @@ msgstr ""
 "您对下列文件的本地修改将被 %s 覆盖:\n"
 "%%s"
 
-#: unpack-trees.c:128
+#: unpack-trees.c:130
 #, c-format
 msgid ""
 "Updating the following directories would lose untracked files in them:\n"
@@ -7621,7 +8744,7 @@ msgstr ""
 "更新如下目录将会丢失其中未跟踪的文件:\n"
 "%s"
 
-#: unpack-trees.c:132
+#: unpack-trees.c:134
 #, c-format
 msgid ""
 "The following untracked working tree files would be removed by checkout:\n"
@@ -7630,7 +8753,7 @@ msgstr ""
 "工作区中下列未跟踪的文件将会因为检出操作而被删除:\n"
 "%%s请在切换分支之前移动或删除。"
 
-#: unpack-trees.c:134
+#: unpack-trees.c:136
 #, c-format
 msgid ""
 "The following untracked working tree files would be removed by checkout:\n"
@@ -7639,7 +8762,7 @@ msgstr ""
 "工作区中下列未跟踪的文件将会因为检出操作而被删除:\n"
 "%%s"
 
-#: unpack-trees.c:137
+#: unpack-trees.c:139
 #, c-format
 msgid ""
 "The following untracked working tree files would be removed by merge:\n"
@@ -7648,7 +8771,7 @@ msgstr ""
 "工作区中下列未跟踪的文件将会因为合并操作而被删除:\n"
 "%%s请在合并前移动或删除。"
 
-#: unpack-trees.c:139
+#: unpack-trees.c:141
 #, c-format
 msgid ""
 "The following untracked working tree files would be removed by merge:\n"
@@ -7657,7 +8780,7 @@ msgstr ""
 "工作区中下列未跟踪的文件将会因为合并操作而被删除:\n"
 "%%s"
 
-#: unpack-trees.c:142
+#: unpack-trees.c:144
 #, c-format
 msgid ""
 "The following untracked working tree files would be removed by %s:\n"
@@ -7666,7 +8789,7 @@ msgstr ""
 "工作区中下列未跟踪的文件将会因为 %s 操作而被删除:\n"
 "%%s请在 %s 前移动或删除。"
 
-#: unpack-trees.c:144
+#: unpack-trees.c:146
 #, c-format
 msgid ""
 "The following untracked working tree files would be removed by %s:\n"
@@ -7675,7 +8798,7 @@ msgstr ""
 "工作区中下列未跟踪的文件将会因为 %s 操作而被删除:\n"
 "%%s"
 
-#: unpack-trees.c:150
+#: unpack-trees.c:152
 #, c-format
 msgid ""
 "The following untracked working tree files would be overwritten by "
@@ -7685,7 +8808,7 @@ msgstr ""
 "工作区中下列未跟踪的文件将会因为检出操作而被覆盖:\n"
 "%%s请在切换分支前移动或删除。"
 
-#: unpack-trees.c:152
+#: unpack-trees.c:154
 #, c-format
 msgid ""
 "The following untracked working tree files would be overwritten by "
@@ -7695,7 +8818,7 @@ msgstr ""
 "工作区中下列未跟踪的文件将会因为检出操作而被覆盖:\n"
 "%%s"
 
-#: unpack-trees.c:155
+#: unpack-trees.c:157
 #, c-format
 msgid ""
 "The following untracked working tree files would be overwritten by merge:\n"
@@ -7704,7 +8827,7 @@ msgstr ""
 "工作区中下列未跟踪的文件将会因为合并操作而被覆盖:\n"
 "%%s请在合并前移动或删除。"
 
-#: unpack-trees.c:157
+#: unpack-trees.c:159
 #, c-format
 msgid ""
 "The following untracked working tree files would be overwritten by merge:\n"
@@ -7713,7 +8836,7 @@ msgstr ""
 "工作区中下列未跟踪的文件将会因为合并操作而被覆盖:\n"
 "%%s"
 
-#: unpack-trees.c:160
+#: unpack-trees.c:162
 #, c-format
 msgid ""
 "The following untracked working tree files would be overwritten by %s:\n"
@@ -7722,7 +8845,7 @@ msgstr ""
 "工作区中下列未跟踪的文件将会因为 %s 操作而被覆盖:\n"
 "%%s请在 %s 前移动或删除。"
 
-#: unpack-trees.c:162
+#: unpack-trees.c:164
 #, c-format
 msgid ""
 "The following untracked working tree files would be overwritten by %s:\n"
@@ -7731,59 +8854,66 @@ msgstr ""
 "工作区中下列未跟踪的文件将会因为 %s 操作而被覆盖:\n"
 "%%s"
 
-#: unpack-trees.c:170
+#: unpack-trees.c:172
 #, c-format
 msgid "Entry '%s' overlaps with '%s'.  Cannot bind."
 msgstr "条目 '%s' 和 '%s' 重叠。无法合并。"
 
-#: unpack-trees.c:173
+#: unpack-trees.c:175
 #, c-format
 msgid ""
-"Cannot update sparse checkout: the following entries are not up to date:\n"
+"Cannot update submodule:\n"
 "%s"
 msgstr ""
-"无法更新稀疏检出:如下条目不是最新:\n"
+"无法更新子模组:\n"
 "%s"
 
-#: unpack-trees.c:175
+#: unpack-trees.c:178
 #, c-format
 msgid ""
-"The following working tree files would be overwritten by sparse checkout "
-"update:\n"
+"The following paths are not up to date and were left despite sparse "
+"patterns:\n"
 "%s"
 msgstr ""
-"工作区中下列文件将被稀疏检出更新所覆盖:\n"
+"尽管存在稀疏检出模板,以下路径不是最新,因而保留:\n"
 "%s"
 
-#: unpack-trees.c:177
+#: unpack-trees.c:180
 #, c-format
 msgid ""
-"The following working tree files would be removed by sparse checkout "
-"update:\n"
+"The following paths are unmerged and were left despite sparse patterns:\n"
 "%s"
 msgstr ""
-"工作区中下列文件将被稀疏检出更新所删除:\n"
+"尽管存在稀疏检出模板,以下路径处于未合并状态,因而保留:\n"
 "%s"
 
-#: unpack-trees.c:179
+#: unpack-trees.c:182
 #, c-format
 msgid ""
-"Cannot update submodule:\n"
+"The following paths were already present and thus not updated despite sparse "
+"patterns:\n"
 "%s"
 msgstr ""
-"无法更新子模组:\n"
+"尽管存在稀疏检出模板,以下路径已经存在,因而未更新:\n"
 "%s"
 
-#: unpack-trees.c:256
+#: unpack-trees.c:262
 #, c-format
 msgid "Aborting\n"
 msgstr "正在终止\n"
 
-#: unpack-trees.c:318
+#: unpack-trees.c:289
+#, c-format
+msgid ""
+"After fixing the above paths, you may want to run `git sparse-checkout "
+"reapply`.\n"
+msgstr "在修复上述路径之后,你可能要执行 `git sparse-checkout reapply`。\n"
+
+#: unpack-trees.c:350
 msgid "Updating files"
 msgstr "正在更新文件"
 
-#: unpack-trees.c:350
+#: unpack-trees.c:382
 msgid ""
 "the following paths have collided (e.g. case-sensitive paths\n"
 "on a case-insensitive filesystem) and only one from the same\n"
@@ -7792,6 +8922,14 @@ msgstr ""
 "以下路径发生碰撞(如:在不区分大小写的文件系统上的区分大小写的路径),\n"
 "并且碰撞组中只有一个文件存在工作区中:\n"
 
+#: unpack-trees.c:1498
+msgid "Updating index flags"
+msgstr "正在更新索引标志"
+
+#: upload-pack.c:1516
+msgid "expected flush after fetch arguments"
+msgstr "在 fetch 参数之后应该有一个 flush 包"
+
 #: urlmatch.c:163
 msgid "invalid URL scheme name or missing '://' suffix"
 msgstr "无效的 URL 方案名称或丢失 '://' 后缀"
@@ -7821,47 +8959,87 @@ msgstr "无效的端口号"
 msgid "invalid '..' path segment"
 msgstr "无效的 '..' 路径片段"
 
-#: worktree.c:258 builtin/am.c:2095
+#: walker.c:170
+msgid "Fetching objects"
+msgstr "正在获取对象"
+
+#: worktree.c:236 builtin/am.c:2116
 #, c-format
 msgid "failed to read '%s'"
 msgstr "读取 '%s' 失败"
 
-#: worktree.c:304
+#: worktree.c:283
 #, c-format
 msgid "'%s' at main working tree is not the repository directory"
 msgstr "在主工作区的 '%s' 不是仓库目录"
 
-#: worktree.c:315
+#: worktree.c:294
 #, c-format
 msgid "'%s' file does not contain absolute path to the working tree location"
 msgstr "文件 '%s' 不包含工作区的绝对路径"
 
-#: worktree.c:327
+#: worktree.c:306
 #, c-format
 msgid "'%s' does not exist"
 msgstr "'%s' 不存在"
 
-#: worktree.c:333
+#: worktree.c:312
 #, c-format
 msgid "'%s' is not a .git file, error code %d"
 msgstr "'%s' 不是一个 .git 文件,错误码 %d"
 
-#: worktree.c:341
+#: worktree.c:321
 #, c-format
 msgid "'%s' does not point back to '%s'"
 msgstr "'%s' 没有指回到 '%s'"
 
-#: wrapper.c:223 wrapper.c:393
+#: worktree.c:587
+msgid "not a directory"
+msgstr "不是一个目录"
+
+#: worktree.c:596
+msgid ".git is not a file"
+msgstr ".git 不是一个文件"
+
+#: worktree.c:598
+msgid ".git file broken"
+msgstr ".git 文件损坏"
+
+#: worktree.c:600
+msgid ".git file incorrect"
+msgstr ".git 文件不正确"
+
+#: worktree.c:670
+msgid "not a valid path"
+msgstr "不是一个有效的路径"
+
+#: worktree.c:676
+msgid "unable to locate repository; .git is not a file"
+msgstr "无法定位仓库,.git 不是一个文件"
+
+#: worktree.c:679
+msgid "unable to locate repository; .git file broken"
+msgstr "无法定位仓库,.git 文件损坏"
+
+#: worktree.c:685
+msgid "gitdir unreadable"
+msgstr "gitdir 不可读"
+
+#: worktree.c:689
+msgid "gitdir incorrect"
+msgstr "gitdir 不正确"
+
+#: wrapper.c:197 wrapper.c:367
 #, c-format
 msgid "could not open '%s' for reading and writing"
 msgstr "无法打开 '%s' 进行读写"
 
-#: wrapper.c:424 wrapper.c:624
+#: wrapper.c:398 wrapper.c:599
 #, c-format
 msgid "unable to access '%s'"
 msgstr "不能访问 '%s'"
 
-#: wrapper.c:632
+#: wrapper.c:607
 msgid "unable to get current working directory"
 msgstr "不能获取当前工作目录"
 
@@ -7900,11 +9078,11 @@ msgstr "  (酌情使用 \"git add/rm <文件>...\" 标记解决方案)"
 msgid "  (use \"git rm <file>...\" to mark resolution)"
 msgstr "  (使用 \"git rm <文件>...\" 标记解决方案)"
 
-#: wt-status.c:211 wt-status.c:1074
+#: wt-status.c:211 wt-status.c:1070
 msgid "Changes to be committed:"
 msgstr "要提交的变更:"
 
-#: wt-status.c:234 wt-status.c:1083
+#: wt-status.c:234 wt-status.c:1079
 msgid "Changes not staged for commit:"
 msgstr "尚未暂存以备提交的变更:"
 
@@ -7935,97 +9113,97 @@ msgstr "  (提交或丢弃子模组中未跟踪或修改的内容)"
 msgid "  (use \"git %s <file>...\" to include in what will be committed)"
 msgstr "  (使用 \"git %s <文件>...\" 以包含要提交的内容)"
 
-#: wt-status.c:268
+#: wt-status.c:266
 msgid "both deleted:"
 msgstr "双方删除:"
 
-#: wt-status.c:270
+#: wt-status.c:268
 msgid "added by us:"
 msgstr "由我们添加:"
 
-#: wt-status.c:272
+#: wt-status.c:270
 msgid "deleted by them:"
 msgstr "由他们删除:"
 
-#: wt-status.c:274
+#: wt-status.c:272
 msgid "added by them:"
 msgstr "由他们添加:"
 
-#: wt-status.c:276
+#: wt-status.c:274
 msgid "deleted by us:"
 msgstr "由我们删除:"
 
-#: wt-status.c:278
+#: wt-status.c:276
 msgid "both added:"
 msgstr "双方添加:"
 
-#: wt-status.c:280
+#: wt-status.c:278
 msgid "both modified:"
 msgstr "双方修改:"
 
-#: wt-status.c:290
+#: wt-status.c:288
 msgid "new file:"
 msgstr "新文件:"
 
-#: wt-status.c:292
+#: wt-status.c:290
 msgid "copied:"
 msgstr "拷贝:"
 
-#: wt-status.c:294
+#: wt-status.c:292
 msgid "deleted:"
 msgstr "删除:"
 
-#: wt-status.c:296
+#: wt-status.c:294
 msgid "modified:"
 msgstr "修改:"
 
-#: wt-status.c:298
+#: wt-status.c:296
 msgid "renamed:"
 msgstr "重命名:"
 
-#: wt-status.c:300
+#: wt-status.c:298
 msgid "typechange:"
 msgstr "类型变更:"
 
-#: wt-status.c:302
+#: wt-status.c:300
 msgid "unknown:"
 msgstr "未知:"
 
-#: wt-status.c:304
+#: wt-status.c:302
 msgid "unmerged:"
 msgstr "未合并:"
 
 #  译者:末尾两个字节可能被删减,如果翻译为中文标点会出现半个汉字
-#: wt-status.c:384
+#: wt-status.c:382
 msgid "new commits, "
 msgstr "新提交, "
 
 #  译者:末尾两个字节可能被删减,如果翻译为中文标点会出现半个汉字
-#: wt-status.c:386
+#: wt-status.c:384
 msgid "modified content, "
 msgstr "修改的内容, "
 
 #  译者:末尾两个字节可能被删减,如果翻译为中文标点会出现半个汉字
-#: wt-status.c:388
+#: wt-status.c:386
 msgid "untracked content, "
 msgstr "未跟踪的内容, "
 
-#: wt-status.c:906
+#: wt-status.c:903
 #, 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:938
+#: wt-status.c:934
 msgid "Submodules changed but not updated:"
 msgstr "子模组已修改但尚未更新:"
 
-#: wt-status.c:940
+#: wt-status.c:936
 msgid "Submodule changes to be committed:"
 msgstr "要提交的子模组变更:"
 
-#: wt-status.c:1022
+#: wt-status.c:1018
 msgid ""
 "Do not modify or remove the line above.\n"
 "Everything below it will be ignored."
@@ -8033,7 +9211,7 @@ msgstr ""
 "不要改动或删除上面的一行。\n"
 "其下所有内容都将被忽略。"
 
-#: wt-status.c:1114
+#: wt-status.c:1110
 #, c-format
 msgid ""
 "\n"
@@ -8044,77 +9222,77 @@ msgstr ""
 "花了 %.2f 秒才计算出分支的领先/落后范围。\n"
 "为避免,您可以使用 '--no-ahead-behind'。\n"
 
-#: wt-status.c:1144
+#: wt-status.c:1140
 msgid "You have unmerged paths."
 msgstr "您有尚未合并的路径。"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1147
+#: wt-status.c:1143
 msgid "  (fix conflicts and run \"git commit\")"
 msgstr "  (解决冲突并运行 \"git commit\")"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1149
+#: wt-status.c:1145
 msgid "  (use \"git merge --abort\" to abort the merge)"
 msgstr "  (使用 \"git merge --abort\" 终止合并)"
 
-#: wt-status.c:1153
+#: wt-status.c:1149
 msgid "All conflicts fixed but you are still merging."
 msgstr "所有冲突已解决但您仍处于合并中。"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1156
+#: wt-status.c:1152
 msgid "  (use \"git commit\" to conclude merge)"
 msgstr "  (使用 \"git commit\" 结束合并)"
 
-#: wt-status.c:1165
+#: wt-status.c:1161
 msgid "You are in the middle of an am session."
 msgstr "您正处于 am 操作过程中。"
 
-#: wt-status.c:1168
+#: wt-status.c:1164
 msgid "The current patch is empty."
 msgstr "当前的补丁为空。"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1172
+#: wt-status.c:1168
 msgid "  (fix conflicts and then run \"git am --continue\")"
 msgstr "  (解决冲突,然后运行 \"git am --continue\")"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1174
+#: wt-status.c:1170
 msgid "  (use \"git am --skip\" to skip this patch)"
 msgstr "  (使用 \"git am --skip\" 跳过此补丁)"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1176
+#: wt-status.c:1172
 msgid "  (use \"git am --abort\" to restore the original branch)"
 msgstr "  (使用 \"git am --abort\" 恢复原有分支)"
 
-#: wt-status.c:1309
+#: wt-status.c:1305
 msgid "git-rebase-todo is missing."
 msgstr "git-rebase-todo 丢失。"
 
-#: wt-status.c:1311
+#: wt-status.c:1307
 msgid "No commands done."
 msgstr "没有命令被执行。"
 
-#: wt-status.c:1314
+#: wt-status.c:1310
 #, 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:1325
+#: wt-status.c:1321
 #, c-format
 msgid "  (see more in file %s)"
 msgstr "  (更多参见文件 %s)"
 
-#: wt-status.c:1330
+#: wt-status.c:1326
 msgid "No commands remaining."
 msgstr "未剩下任何命令。"
 
-#: wt-status.c:1333
+#: wt-status.c:1329
 #, c-format
 msgid "Next command to do (%d remaining command):"
 msgid_plural "Next commands to do (%d remaining commands):"
@@ -8122,128 +9300,138 @@ msgstr[0] "接下来要执行的命令(剩余 %d 条命令):"
 msgstr[1] "接下来要执行的命令(剩余 %d 条命令):"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1341
+#: wt-status.c:1337
 msgid "  (use \"git rebase --edit-todo\" to view and edit)"
 msgstr "  (使用 \"git rebase --edit-todo\" 来查看和编辑)"
 
-#: wt-status.c:1353
+#: wt-status.c:1349
 #, c-format
 msgid "You are currently rebasing branch '%s' on '%s'."
 msgstr "您在执行将分支 '%s' 变基到 '%s' 的操作。"
 
-#: wt-status.c:1358
+#: wt-status.c:1354
 msgid "You are currently rebasing."
 msgstr "您在执行变基操作。"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1371
+#: wt-status.c:1367
 msgid "  (fix conflicts and then run \"git rebase --continue\")"
 msgstr "  (解决冲突,然后运行 \"git rebase --continue\")"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1373
+#: wt-status.c:1369
 msgid "  (use \"git rebase --skip\" to skip this patch)"
 msgstr "  (使用 \"git rebase --skip\" 跳过此补丁)"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1375
+#: wt-status.c:1371
 msgid "  (use \"git rebase --abort\" to check out the original branch)"
 msgstr "  (使用 \"git rebase --abort\" 以检出原有分支)"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1382
+#: wt-status.c:1378
 msgid "  (all conflicts fixed: run \"git rebase --continue\")"
 msgstr "  (所有冲突已解决:运行 \"git rebase --continue\")"
 
-#: wt-status.c:1386
+#: wt-status.c:1382
 #, c-format
 msgid ""
 "You are currently splitting a commit while rebasing branch '%s' on '%s'."
 msgstr "您在执行将分支 '%s' 变基到 '%s' 的操作时拆分提交。"
 
-#: wt-status.c:1391
+#: wt-status.c:1387
 msgid "You are currently splitting a commit during a rebase."
 msgstr "您在执行变基操作时拆分提交。"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1394
+#: wt-status.c:1390
 msgid "  (Once your working directory is clean, run \"git rebase --continue\")"
 msgstr "  (一旦您工作目录提交干净后,运行 \"git rebase --continue\")"
 
-#: wt-status.c:1398
+#: wt-status.c:1394
 #, c-format
 msgid "You are currently editing a commit while rebasing branch '%s' on '%s'."
 msgstr "您在执行将分支 '%s' 变基到 '%s' 的操作时编辑提交。"
 
-#: wt-status.c:1403
+#: wt-status.c:1399
 msgid "You are currently editing a commit during a rebase."
 msgstr "您在执行变基操作时编辑提交。"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1406
+#: wt-status.c:1402
 msgid "  (use \"git commit --amend\" to amend the current commit)"
 msgstr "  (使用 \"git commit --amend\" 修补当前提交)"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1408
+#: wt-status.c:1404
 msgid ""
 "  (use \"git rebase --continue\" once you are satisfied with your changes)"
 msgstr "  (当您对您的修改满意后执行 \"git rebase --continue\")"
 
-#: wt-status.c:1419
+#: wt-status.c:1415
 msgid "Cherry-pick currently in progress."
 msgstr "拣选操作正在进行中。"
 
-#: wt-status.c:1422
+#: wt-status.c:1418
 #, c-format
 msgid "You are currently cherry-picking commit %s."
 msgstr "您在执行拣选提交 %s 的操作。"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1429
+#: wt-status.c:1425
 msgid "  (fix conflicts and run \"git cherry-pick --continue\")"
 msgstr "  (解决冲突并运行 \"git cherry-pick --continue\")"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1432
+#: wt-status.c:1428
 msgid "  (run \"git cherry-pick --continue\" to continue)"
 msgstr "  (执行 \"git cherry-pick --continue\" 以继续)"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1435
+#: wt-status.c:1431
 msgid "  (all conflicts fixed: run \"git cherry-pick --continue\")"
 msgstr "  (所有冲突已解决:运行 \"git cherry-pick --continue\")"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1437
+#: wt-status.c:1433
+msgid "  (use \"git cherry-pick --skip\" to skip this patch)"
+msgstr "  (使用 \"git cherry-pick --skip\" 跳过此补丁)"
+
+#  译者:注意保持前导空格
+#: wt-status.c:1435
 msgid "  (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)"
 msgstr "  (使用 \"git cherry-pick --abort\" 以取消拣选操作)"
 
-#: wt-status.c:1447
+#: wt-status.c:1445
 msgid "Revert currently in progress."
 msgstr "还原操作正在行中。"
 
-#: wt-status.c:1450
+#: wt-status.c:1448
 #, c-format
 msgid "You are currently reverting commit %s."
 msgstr "您在执行反转提交 %s 的操作。"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1456
+#: wt-status.c:1454
 msgid "  (fix conflicts and run \"git revert --continue\")"
 msgstr "  (解决冲突并执行 \"git revert --continue\")"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1459
+#: wt-status.c:1457
 msgid "  (run \"git revert --continue\" to continue)"
 msgstr "  (执行 \"git revert --continue\" 以继续)"
 
 #  译者:注意保持前导空格
-#: wt-status.c:1462
+#: wt-status.c:1460
 msgid "  (all conflicts fixed: run \"git revert --continue\")"
 msgstr "  (所有冲突已解决:执行 \"git revert --continue\")"
 
 #  译者:注意保持前导空格
+#: wt-status.c:1462
+msgid "  (use \"git revert --skip\" to skip this patch)"
+msgstr "  (使用 \"git revert --skip\" 跳过此补丁)"
+
+#  译者:注意保持前导空格
 #: wt-status.c:1464
 msgid "  (use \"git revert --abort\" to cancel the revert operation)"
 msgstr "  (使用 \"git revert --abort\" 以取消反转提交操作)"
@@ -8262,39 +9450,44 @@ msgstr "您在执行二分查找操作。"
 msgid "  (use \"git bisect reset\" to get back to the original branch)"
 msgstr "  (使用 \"git bisect reset\" 以回到原有分支)"
 
-#: wt-status.c:1690
+#: wt-status.c:1492
+#, c-format
+msgid "You are in a sparse checkout with %d%% of tracked files present."
+msgstr "您处于稀疏签出状态,包含 %d%% 的跟踪文件"
+
+#: wt-status.c:1731
 msgid "On branch "
 msgstr "位于分支 "
 
-#: wt-status.c:1697
+#: wt-status.c:1738
 msgid "interactive rebase in progress; onto "
 msgstr "交互式变基操作正在进行中;至 "
 
-#: wt-status.c:1699
+#: wt-status.c:1740
 msgid "rebase in progress; onto "
 msgstr "变基操作正在进行中;至 "
 
-#: wt-status.c:1709
+#: wt-status.c:1750
 msgid "Not currently on any branch."
 msgstr "当前不在任何分支上。"
 
-#: wt-status.c:1726
+#: wt-status.c:1767
 msgid "Initial commit"
 msgstr "初始提交"
 
-#: wt-status.c:1727
+#: wt-status.c:1768
 msgid "No commits yet"
 msgstr "尚无提交"
 
-#: wt-status.c:1741
+#: wt-status.c:1782
 msgid "Untracked files"
 msgstr "未跟踪的文件"
 
-#: wt-status.c:1743
+#: wt-status.c:1784
 msgid "Ignored files"
 msgstr "忽略的文件"
 
-#: wt-status.c:1747
+#: wt-status.c:1788
 #, c-format
 msgid ""
 "It took %.2f seconds to enumerate untracked files. 'status -uno'\n"
@@ -8304,221 +9497,230 @@ msgstr ""
 "耗费了 %.2f 秒以枚举未跟踪的文件。'status -uno' 也许能提高速度,\n"
 "但您需要小心不要忘了添加新文件(参见 'git help status')。"
 
-#: wt-status.c:1753
+#: wt-status.c:1794
 #, c-format
 msgid "Untracked files not listed%s"
 msgstr "未跟踪的文件没有列出%s"
 
 #  译者:中文字符串拼接,可删除前导空格
-#: wt-status.c:1755
+#: wt-status.c:1796
 msgid " (use -u option to show untracked files)"
 msgstr "(使用 -u 参数显示未跟踪的文件)"
 
-#: wt-status.c:1761
+#: wt-status.c:1802
 msgid "No changes"
 msgstr "没有修改"
 
-#: wt-status.c:1766
+#: wt-status.c:1807
 #, 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:1769
+#: wt-status.c:1811
 #, c-format
 msgid "no changes added to commit\n"
 msgstr "修改尚未加入提交\n"
 
-#: wt-status.c:1772
+#: wt-status.c:1815
 #, c-format
 msgid ""
 "nothing added to commit but untracked files present (use \"git add\" to "
 "track)\n"
 msgstr "提交为空,但是存在尚未跟踪的文件(使用 \"git add\" 建立跟踪)\n"
 
-#: wt-status.c:1775
+#: wt-status.c:1819
 #, c-format
 msgid "nothing added to commit but untracked files present\n"
 msgstr "提交为空,但是存在尚未跟踪的文件\n"
 
 #  译者:中文字符串拼接,可删除前导空格
-#: wt-status.c:1778
+#: wt-status.c:1823
 #, c-format
 msgid "nothing to commit (create/copy files and use \"git add\" to track)\n"
 msgstr "无文件要提交(创建/拷贝文件并使用 \"git add\" 建立跟踪)\n"
 
-#: wt-status.c:1781 wt-status.c:1786
+#: wt-status.c:1827 wt-status.c:1833
 #, c-format
 msgid "nothing to commit\n"
 msgstr "无文件要提交\n"
 
 #  译者:中文字符串拼接,可删除前导空格
-#: wt-status.c:1784
+#: wt-status.c:1830
 #, c-format
 msgid "nothing to commit (use -u to show untracked files)\n"
 msgstr "无文件要提交(使用 -u 显示未跟踪的文件)\n"
 
 #  译者:中文字符串拼接,可删除前导空格
-#: wt-status.c:1788
+#: wt-status.c:1835
 #, c-format
 msgid "nothing to commit, working tree clean\n"
 msgstr "无文件要提交,干净的工作区\n"
 
-#: wt-status.c:1901
+#: wt-status.c:1940
 msgid "No commits yet on "
 msgstr "尚无提交在 "
 
-#: wt-status.c:1905
+#: wt-status.c:1944
 msgid "HEAD (no branch)"
 msgstr "HEAD(非分支)"
 
-#: wt-status.c:1936
+#: wt-status.c:1975
 msgid "different"
 msgstr "不同"
 
 #  译者:注意保持句尾空格
-#: wt-status.c:1938 wt-status.c:1946
+#: wt-status.c:1977 wt-status.c:1985
 msgid "behind "
 msgstr "落后 "
 
-#: wt-status.c:1941 wt-status.c:1944
+#: wt-status.c:1980 wt-status.c:1983
 msgid "ahead "
 msgstr "领先 "
 
 #. TRANSLATORS: the action is e.g. "pull with rebase"
-#: wt-status.c:2466
+#: wt-status.c:2505
 #, c-format
 msgid "cannot %s: You have unstaged changes."
 msgstr "不能%s:您有未暂存的变更。"
 
-#: wt-status.c:2472
+#: wt-status.c:2511
 msgid "additionally, your index contains uncommitted changes."
 msgstr "另外,您的索引中包含未提交的变更。"
 
-#: wt-status.c:2474
+#: wt-status.c:2513
 #, c-format
 msgid "cannot %s: Your index contains uncommitted changes."
 msgstr "不能%s:您的索引中包含未提交的变更。"
 
-#: builtin/add.c:25
+#: compat/precompose_utf8.c:58 builtin/clone.c:456
+#, c-format
+msgid "failed to unlink '%s'"
+msgstr "删除 '%s' 失败"
+
+#: builtin/add.c:26
 msgid "git add [<options>] [--] <pathspec>..."
 msgstr "git add [<选项>] [--] <路径规格>..."
 
-#: builtin/add.c:84
+#: builtin/add.c:88
 #, c-format
 msgid "unexpected diff status %c"
 msgstr "意外的差异状态 %c"
 
-#: builtin/add.c:89 builtin/commit.c:288
+#: builtin/add.c:93 builtin/commit.c:285
 msgid "updating files failed"
 msgstr "更新文件失败"
 
-#: builtin/add.c:99
+#: builtin/add.c:103
 #, c-format
 msgid "remove '%s'\n"
 msgstr "删除 '%s'\n"
 
-#: builtin/add.c:174
+#: builtin/add.c:178
 msgid "Unstaged changes after refreshing the index:"
 msgstr "刷新索引之后尚未被暂存的变更:"
 
-#: builtin/add.c:234 builtin/rev-parse.c:896
+#: builtin/add.c:272 builtin/rev-parse.c:904
 msgid "Could not read the index"
 msgstr "不能读取索引"
 
-#: builtin/add.c:245
+#: builtin/add.c:283
 #, c-format
 msgid "Could not open '%s' for writing."
 msgstr "无法为写入打开 '%s'。"
 
-#: builtin/add.c:249
+#: builtin/add.c:287
 msgid "Could not write patch"
 msgstr "不能生成补丁"
 
-#: builtin/add.c:252
+#: builtin/add.c:290
 msgid "editing patch failed"
 msgstr "编辑补丁失败"
 
-#: builtin/add.c:255
+#: builtin/add.c:293
 #, c-format
 msgid "Could not stat '%s'"
 msgstr "不能对 '%s' 调用 stat"
 
-#: builtin/add.c:257
+#: builtin/add.c:295
 msgid "Empty patch. Aborted."
 msgstr "空补丁。异常终止。"
 
-#: builtin/add.c:262
+#: builtin/add.c:300
 #, c-format
 msgid "Could not apply '%s'"
 msgstr "不能应用 '%s'"
 
-#: builtin/add.c:270
+#: builtin/add.c:308
 msgid "The following paths are ignored by one of your .gitignore files:\n"
 msgstr "下列路径根据您的一个 .gitignore 文件而被忽略:\n"
 
-#: builtin/add.c:290 builtin/clean.c:909 builtin/fetch.c:147 builtin/mv.c:124
-#: builtin/prune-packed.c:56 builtin/pull.c:222 builtin/push.c:560
-#: builtin/remote.c:1345 builtin/rm.c:241 builtin/send-pack.c:165
+#: builtin/add.c:328 builtin/clean.c:904 builtin/fetch.c:166 builtin/mv.c:124
+#: builtin/prune-packed.c:14 builtin/pull.c:204 builtin/push.c:538
+#: builtin/remote.c:1422 builtin/rm.c:242 builtin/send-pack.c:184
 msgid "dry run"
 msgstr "演习"
 
-#: builtin/add.c:293
+#: builtin/add.c:331
 msgid "interactive picking"
 msgstr "交互式拣选"
 
-#: builtin/add.c:294 builtin/checkout.c:1480 builtin/reset.c:306
+#: builtin/add.c:332 builtin/checkout.c:1529 builtin/reset.c:308
 msgid "select hunks interactively"
 msgstr "交互式挑选数据块"
 
-#: builtin/add.c:295
+#: builtin/add.c:333
 msgid "edit current diff and apply"
 msgstr "编辑当前差异并应用"
 
-#: builtin/add.c:296
+#: builtin/add.c:334
 msgid "allow adding otherwise ignored files"
 msgstr "允许添加忽略的文件"
 
-#: builtin/add.c:297
+#: builtin/add.c:335
 msgid "update tracked files"
 msgstr "更新已跟踪的文件"
 
-#: builtin/add.c:298
+#: builtin/add.c:336
 msgid "renormalize EOL of tracked files (implies -u)"
 msgstr "对已跟踪文件(暗含 -u)重新归一换行符"
 
-#: builtin/add.c:299
+#: builtin/add.c:337
 msgid "record only the fact that the path will be added later"
 msgstr "只记录,该路径稍后再添加"
 
-#: builtin/add.c:300
+#: builtin/add.c:338
 msgid "add changes from all tracked and untracked files"
 msgstr "添加所有改变的已跟踪文件和未跟踪文件"
 
-#: builtin/add.c:303
+#: builtin/add.c:341
 msgid "ignore paths removed in the working tree (same as --no-all)"
 msgstr "忽略工作区中移除的路径(和 --no-all 相同)"
 
-#: builtin/add.c:305
+#: builtin/add.c:343
 msgid "don't add, only refresh the index"
 msgstr "不添加,只刷新索引"
 
-#: builtin/add.c:306
+#: builtin/add.c:344
 msgid "just skip files which cannot be added because of errors"
 msgstr "跳过因出错不能添加的文件"
 
-#: builtin/add.c:307
+#: builtin/add.c:345
 msgid "check if - even missing - files are ignored in dry run"
 msgstr "检查在演习模式下文件(即使不存在)是否被忽略"
 
-#: builtin/add.c:309 builtin/update-index.c:1001
+#: builtin/add.c:347 builtin/update-index.c:1004
 msgid "override the executable bit of the listed files"
 msgstr "覆盖列表里文件的可执行位"
 
-#: builtin/add.c:311
+#: builtin/add.c:349
 msgid "warn when adding an embedded repository"
 msgstr "创建一个嵌入式仓库时给予警告"
 
-#: builtin/add.c:326
+#: builtin/add.c:351
+msgid "backend for `git stash -p`"
+msgstr "`git stash -p` 的后端"
+
+#: builtin/add.c:369
 #, c-format
 msgid ""
 "You've added another git repository inside your current repository.\n"
@@ -8535,9 +9737,8 @@ msgid ""
 "\n"
 "See \"git help submodule\" for more information."
 msgstr ""
-"您在当前仓库中添加了另外一个Git仓库。克隆外层的仓库将不包含嵌入仓库的内容,并"
-"且不知道该如何获取它。\n"
-"如果您要添加一个子模组,使用:\n"
+"您在当前仓库中添加了另一个Git仓库。克隆外层的仓库将不包含嵌入仓库的\n"
+"内容,并且不知道该如何获取它。如果您要添加一个子模组,使用:\n"
 "\n"
 "\tgit submodule add <url> %s\n"
 "\n"
@@ -8547,146 +9748,175 @@ msgstr ""
 "\n"
 "参见 \"git help submodule\" 获取更多信息。"
 
-#: builtin/add.c:354
+#: builtin/add.c:397
 #, c-format
 msgid "adding embedded git repository: %s"
 msgstr "正在添加嵌入式 git 仓库:%s"
 
-#: builtin/add.c:372
-#, c-format
-msgid "Use -f if you really want to add them.\n"
-msgstr "使用 -f 参数如果您确实要添加它们。\n"
+#: builtin/add.c:416
+msgid ""
+"Use -f if you really want to add them.\n"
+"Turn this message off by running\n"
+"\"git config advice.addIgnoredFile false\""
+msgstr ""
+"如果您确实要添加它们,使用 -f 参数。\n"
+"运行下面的命令来关闭本消息\n"
+"\"git config advice.addIgnoredFile false\""
 
-#: builtin/add.c:379
+#: builtin/add.c:425
 msgid "adding files failed"
 msgstr "添加文件失败"
 
-#: builtin/add.c:419
+#: builtin/add.c:453 builtin/commit.c:345
+msgid "--pathspec-from-file is incompatible with --interactive/--patch"
+msgstr "--pathspec-from-file 与 --interactive/--patch 不兼容"
+
+#: builtin/add.c:470
+msgid "--pathspec-from-file is incompatible with --edit"
+msgstr "--pathspec-from-file 与 --edit 不兼容"
+
+#: builtin/add.c:482
 msgid "-A and -u are mutually incompatible"
 msgstr "-A 和 -u 选项互斥"
 
-#: builtin/add.c:426
+#: builtin/add.c:485
 msgid "Option --ignore-missing can only be used together with --dry-run"
 msgstr "选项 --ignore-missing 只能和 --dry-run 同时使用"
 
-#: builtin/add.c:430
+#: builtin/add.c:489
 #, c-format
 msgid "--chmod param '%s' must be either -x or +x"
 msgstr "参数 --chmod 取值 '%s' 必须是 -x 或 +x"
 
-#: builtin/add.c:445
+#: builtin/add.c:507 builtin/checkout.c:1697 builtin/commit.c:351
+#: builtin/reset.c:328 builtin/rm.c:272 builtin/stash.c:1503
+msgid "--pathspec-from-file is incompatible with pathspec arguments"
+msgstr "--pathspec-from-file 与路径表达式参数不兼容"
+
+#: builtin/add.c:514 builtin/checkout.c:1709 builtin/commit.c:357
+#: builtin/reset.c:334 builtin/rm.c:278 builtin/stash.c:1509
+msgid "--pathspec-file-nul requires --pathspec-from-file"
+msgstr "--pathspec-file-nul 需要 --pathspec-from-file"
+
+#: builtin/add.c:518
 #, c-format
 msgid "Nothing specified, nothing added.\n"
 msgstr "没有指定文件,也没有文件被添加。\n"
 
-#: builtin/add.c:446
+#: builtin/add.c:520
+msgid ""
+"Maybe you wanted to say 'git add .'?\n"
+"Turn this message off by running\n"
+"\"git config advice.addEmptyPathspec false\""
+msgstr ""
+"也许您想要执行 'git add .'?\n"
+"运行下面的命令来关闭本消息\n"
+"\"git config advice.addEmptyPathspec false\""
+
+#: builtin/am.c:160
 #, c-format
-msgid "Maybe you wanted to say 'git add .'?\n"
-msgstr "也许您想要执行 'git add .'?\n"
+msgid "invalid committer: %s"
+msgstr "无效的提交者:%s"
 
-#: builtin/am.c:348
+#: builtin/am.c:366
 msgid "could not parse author script"
 msgstr "不能解析作者脚本"
 
-#: builtin/am.c:432
+#: builtin/am.c:450
 #, c-format
 msgid "'%s' was deleted by the applypatch-msg hook"
 msgstr "'%s' 被 applypatch-msg 钩子删除"
 
-#: builtin/am.c:474
+#: builtin/am.c:492
 #, c-format
 msgid "Malformed input line: '%s'."
 msgstr "非法的输入行:'%s'。"
 
-#: builtin/am.c:512
+#: builtin/am.c:530
 #, c-format
 msgid "Failed to copy notes from '%s' to '%s'"
 msgstr "从 '%s' 拷贝注解到 '%s' 时失败"
 
-#: builtin/am.c:538
+#: builtin/am.c:556
 msgid "fseek failed"
 msgstr "fseek 失败"
 
-#: builtin/am.c:726
+#: builtin/am.c:744
 #, c-format
 msgid "could not parse patch '%s'"
 msgstr "无法解析补丁 '%s'"
 
-#: builtin/am.c:791
+#: builtin/am.c:809
 msgid "Only one StGIT patch series can be applied at once"
 msgstr "一次只能有一个 StGIT 补丁队列被应用"
 
-#: builtin/am.c:839
+#: builtin/am.c:857
 msgid "invalid timestamp"
 msgstr "无效的时间戳"
 
-#: builtin/am.c:844 builtin/am.c:856
+#: builtin/am.c:862 builtin/am.c:874
 msgid "invalid Date line"
 msgstr "无效的日期行"
 
-#: builtin/am.c:851
+#: builtin/am.c:869
 msgid "invalid timezone offset"
 msgstr "无效的时区偏移值"
 
-#: builtin/am.c:944
+#: builtin/am.c:962
 msgid "Patch format detection failed."
 msgstr "补丁格式探测失败。"
 
-#: builtin/am.c:949 builtin/clone.c:407
+#: builtin/am.c:967 builtin/clone.c:409
 #, c-format
 msgid "failed to create directory '%s'"
 msgstr "创建目录 '%s' 失败"
 
-#: builtin/am.c:954
+#: builtin/am.c:972
 msgid "Failed to split patches."
 msgstr "拆分补丁失败。"
 
-#: builtin/am.c:1084 builtin/commit.c:374
-msgid "unable to write index file"
-msgstr "无法写入索引文件"
-
-#: builtin/am.c:1098
+#: builtin/am.c:1103
 #, c-format
 msgid "When you have resolved this problem, run \"%s --continue\"."
 msgstr "当您解决这一问题,执行 \"%s --continue\"。"
 
-#: builtin/am.c:1099
+#: builtin/am.c:1104
 #, c-format
 msgid "If you prefer to skip this patch, run \"%s --skip\" instead."
 msgstr "如果您想要跳过这一补丁,则执行 \"%s --skip\"。"
 
-#: builtin/am.c:1100
+#: builtin/am.c:1105
 #, c-format
 msgid "To restore the original branch and stop patching, run \"%s --abort\"."
 msgstr "若要复原至原始分支并停止补丁操作,执行 \"%s --abort\"。"
 
-#: builtin/am.c:1183
+#: builtin/am.c:1188
 msgid "Patch sent with format=flowed; space at the end of lines might be lost."
 msgstr "补丁使用 format=flowed 格式发送,行尾的空格可能会丢失。"
 
-#: builtin/am.c:1211
+#: builtin/am.c:1216
 msgid "Patch is empty."
 msgstr "补丁为空。"
 
-#: builtin/am.c:1277
+#: builtin/am.c:1281
 #, c-format
-msgid "invalid ident line: %.*s"
-msgstr "无效的身份标识:%.*s"
+msgid "missing author line in commit %s"
+msgstr "在提交 %s 中缺失作者行"
 
-#: builtin/am.c:1299
+#: builtin/am.c:1284
 #, c-format
-msgid "unable to parse commit %s"
-msgstr "不能解析提交 %s"
+msgid "invalid ident line: %.*s"
+msgstr "无效的身份标识:%.*s"
 
-#: builtin/am.c:1496
+#: builtin/am.c:1503
 msgid "Repository lacks necessary blobs to fall back on 3-way merge."
 msgstr "仓库缺乏必要的数据对象以进行三方合并。"
 
-#: builtin/am.c:1498
+#: builtin/am.c:1505
 msgid "Using index info to reconstruct a base tree..."
 msgstr "使用索引来重建一个(三方合并的)基础目录树..."
 
-#: builtin/am.c:1517
+#: builtin/am.c:1524
 msgid ""
 "Did you hand edit your patch?\n"
 "It does not apply to blobs recorded in its index."
@@ -8694,24 +9924,24 @@ msgstr ""
 "您是否曾手动编辑过您的补丁?\n"
 "无法应用补丁到索引中的数据对象上。"
 
-#: builtin/am.c:1523
+#: builtin/am.c:1530
 msgid "Falling back to patching base and 3-way merge..."
 msgstr "回落到基础版本上打补丁及进行三方合并..."
 
-#: builtin/am.c:1549
+#: builtin/am.c:1556
 msgid "Failed to merge in the changes."
 msgstr "无法合并变更。"
 
-#: builtin/am.c:1581
+#: builtin/am.c:1588
 msgid "applying to an empty history"
 msgstr "正应用到一个空历史上"
 
-#: builtin/am.c:1628 builtin/am.c:1632
+#: builtin/am.c:1639 builtin/am.c:1643
 #, c-format
 msgid "cannot resume: %s does not exist."
 msgstr "无法继续:%s 不存在。"
 
-#: builtin/am.c:1650
+#: builtin/am.c:1661
 msgid "Commit Body is:"
 msgstr "提交内容为:"
 
@@ -8720,35 +9950,39 @@ msgstr "提交内容为:"
 #. in your translation. The program will only accept English
 #. input at this point.
 #.
-#: builtin/am.c:1660
+#: builtin/am.c:1671
 #, c-format
 msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: "
 msgstr "应用?是[y]/否[n]/编辑[e]/查看补丁[v]/应用所有[a]:"
 
-#: builtin/am.c:1710
+#: builtin/am.c:1717 builtin/commit.c:395
+msgid "unable to write index file"
+msgstr "无法写入索引文件"
+
+#: builtin/am.c:1721
 #, c-format
 msgid "Dirty index: cannot apply patches (dirty: %s)"
 msgstr "脏索引:不能应用补丁(脏文件:%s)"
 
-#: builtin/am.c:1750 builtin/am.c:1818
+#: builtin/am.c:1761 builtin/am.c:1829
 #, c-format
 msgid "Applying: %.*s"
 msgstr "应用:%.*s"
 
-#: builtin/am.c:1767
+#: builtin/am.c:1778
 msgid "No changes -- Patch already applied."
 msgstr "没有变更 —— 补丁已经应用过。"
 
-#: builtin/am.c:1773
+#: builtin/am.c:1784
 #, c-format
 msgid "Patch failed at %s %.*s"
 msgstr "打补丁失败于 %s %.*s"
 
-#: builtin/am.c:1777
-msgid "Use 'git am --show-current-patch' to see the failed patch"
-msgstr "用 'git am --show-current-patch' 命令查看失败的补丁"
+#: builtin/am.c:1788
+msgid "Use 'git am --show-current-patch=diff' to see the failed patch"
+msgstr "用 'git am --show-current-patch=diff' 命令查看失败的补丁"
 
-#: builtin/am.c:1821
+#: builtin/am.c:1832
 msgid ""
 "No changes - did you forget to use 'git add'?\n"
 "If there is nothing left to stage, chances are that something else\n"
@@ -8758,7 +9992,7 @@ msgstr ""
 "如果没有什么要添加到暂存区的,则很可能是其它提交已经引入了相同的变更。\n"
 "您也许想要跳过这个补丁。"
 
-#: builtin/am.c:1828
+#: builtin/am.c:1839
 msgid ""
 "You still have unmerged paths in your index.\n"
 "You should 'git add' each file with resolved conflicts to mark them as "
@@ -8769,159 +10003,171 @@ msgstr ""
 "您应该对已经冲突解决的每一个文件执行 'git add' 来标记已经完成。 \n"
 "你可以对 \"由他们删除\" 的文件执行 `git rm` 命令。"
 
-#: builtin/am.c:1935 builtin/am.c:1939 builtin/am.c:1951 builtin/reset.c:329
-#: builtin/reset.c:337
+#: builtin/am.c:1946 builtin/am.c:1950 builtin/am.c:1962 builtin/reset.c:347
+#: builtin/reset.c:355
 #, c-format
 msgid "Could not parse object '%s'."
 msgstr "不能解析对象 '%s'。"
 
-#: builtin/am.c:1987
+#: builtin/am.c:1998
 msgid "failed to clean index"
 msgstr "清空索引失败"
 
-#: builtin/am.c:2031
+#: builtin/am.c:2042
 msgid ""
 "You seem to have moved HEAD since the last 'am' failure.\n"
 "Not rewinding to ORIG_HEAD"
 msgstr "您好像在上一次 'am' 失败后移动了 HEAD。未回退至 ORIG_HEAD"
 
-#: builtin/am.c:2128
+#: builtin/am.c:2149
 #, c-format
 msgid "Invalid value for --patch-format: %s"
 msgstr "无效的 --patch-format 值:%s"
 
-#: builtin/am.c:2164
+#: builtin/am.c:2191
+#, c-format
+msgid "Invalid value for --show-current-patch: %s"
+msgstr "无效的 --show-current-patch 值:%s"
+
+#: builtin/am.c:2195
+#, c-format
+msgid "--show-current-patch=%s is incompatible with --show-current-patch=%s"
+msgstr "--show-current-patch=%s 和 --show-current-patch=%s 不兼容"
+
+#: builtin/am.c:2226
 msgid "git am [<options>] [(<mbox> | <Maildir>)...]"
 msgstr "git am [<选项>] [(<mbox> | <Maildir>)...]"
 
-#: builtin/am.c:2165
+#: builtin/am.c:2227
 msgid "git am [<options>] (--continue | --skip | --abort)"
 msgstr "git am [<选项>] (--continue | --skip | --abort)"
 
-#: builtin/am.c:2171
+#: builtin/am.c:2233
 msgid "run interactively"
 msgstr "以交互式方式运行"
 
-#: builtin/am.c:2173
+#: builtin/am.c:2235
 msgid "historical option -- no-op"
 msgstr "老的参数 —— 无作用"
 
-#: builtin/am.c:2175
+#: builtin/am.c:2237
 msgid "allow fall back on 3way merging if needed"
 msgstr "如果必要,允许使用三方合并。"
 
-#: builtin/am.c:2176 builtin/init-db.c:494 builtin/prune-packed.c:58
-#: builtin/repack.c:296 builtin/stash.c:806
+#: builtin/am.c:2238 builtin/init-db.c:558 builtin/prune-packed.c:16
+#: builtin/repack.c:309 builtin/stash.c:816
 msgid "be quiet"
 msgstr "静默模式"
 
-#: builtin/am.c:2178
+#: builtin/am.c:2240
 msgid "add a Signed-off-by line to the commit message"
 msgstr "在提交说明中添加一个 Signed-off-by 签名"
 
-#: builtin/am.c:2181
+#: builtin/am.c:2243
 msgid "recode into utf8 (default)"
 msgstr "使用 utf8 字符集(默认)"
 
-#: builtin/am.c:2183
+#: builtin/am.c:2245
 msgid "pass -k flag to git-mailinfo"
 msgstr "向 git-mailinfo 传递 -k 参数"
 
-#: builtin/am.c:2185
+#: builtin/am.c:2247
 msgid "pass -b flag to git-mailinfo"
 msgstr "向 git-mailinfo 传递 -b 参数"
 
-#: builtin/am.c:2187
+#: builtin/am.c:2249
 msgid "pass -m flag to git-mailinfo"
 msgstr "向 git-mailinfo 传递 -m 参数"
 
-#: builtin/am.c:2189
+#: builtin/am.c:2251
 msgid "pass --keep-cr flag to git-mailsplit for mbox format"
 msgstr "针对 mbox 格式,向 git-mailsplit 传递 --keep-cr 参数"
 
-#: builtin/am.c:2192
+#: builtin/am.c:2254
 msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"
 msgstr "不向 git-mailsplit 传递 --keep-cr 参数,覆盖 am.keepcr 的设置"
 
-#: builtin/am.c:2195
+#: builtin/am.c:2257
 msgid "strip everything before a scissors line"
 msgstr "丢弃裁切线前的所有内容"
 
-#: builtin/am.c:2197 builtin/am.c:2200 builtin/am.c:2203 builtin/am.c:2206
-#: builtin/am.c:2209 builtin/am.c:2212 builtin/am.c:2215 builtin/am.c:2218
-#: builtin/am.c:2224
+#: builtin/am.c:2259 builtin/am.c:2262 builtin/am.c:2265 builtin/am.c:2268
+#: builtin/am.c:2271 builtin/am.c:2274 builtin/am.c:2277 builtin/am.c:2280
+#: builtin/am.c:2286
 msgid "pass it through git-apply"
 msgstr "传递给 git-apply"
 
-#: builtin/am.c:2214 builtin/commit.c:1368 builtin/fmt-merge-msg.c:671
-#: builtin/fmt-merge-msg.c:674 builtin/grep.c:881 builtin/merge.c:249
-#: builtin/pull.c:159 builtin/pull.c:218 builtin/rebase.c:1418
-#: builtin/repack.c:307 builtin/repack.c:311 builtin/repack.c:313
-#: builtin/show-branch.c:650 builtin/show-ref.c:172 builtin/tag.c:403
-#: parse-options.h:141 parse-options.h:162 parse-options.h:312
+#: builtin/am.c:2276 builtin/commit.c:1395 builtin/fmt-merge-msg.c:17
+#: builtin/fmt-merge-msg.c:20 builtin/grep.c:892 builtin/merge.c:251
+#: builtin/pull.c:141 builtin/pull.c:200 builtin/pull.c:217
+#: builtin/rebase.c:1335 builtin/repack.c:320 builtin/repack.c:324
+#: builtin/repack.c:326 builtin/show-branch.c:650 builtin/show-ref.c:172
+#: builtin/tag.c:404 parse-options.h:154 parse-options.h:175
+#: parse-options.h:316
 msgid "n"
 msgstr "n"
 
-#: builtin/am.c:2220 builtin/branch.c:661 builtin/for-each-ref.c:38
-#: builtin/replace.c:554 builtin/tag.c:437 builtin/verify-tag.c:38
+#: builtin/am.c:2282 builtin/branch.c:659 builtin/bugreport.c:135
+#: builtin/for-each-ref.c:38 builtin/replace.c:556 builtin/tag.c:438
+#: builtin/verify-tag.c:38
 msgid "format"
 msgstr "格式"
 
-#: builtin/am.c:2221
+#: builtin/am.c:2283
 msgid "format the patch(es) are in"
 msgstr "补丁的格式"
 
-#: builtin/am.c:2227
+#: builtin/am.c:2289
 msgid "override error message when patch failure occurs"
 msgstr "打补丁失败时显示的错误信息"
 
-#: builtin/am.c:2229
+#: builtin/am.c:2291
 msgid "continue applying patches after resolving a conflict"
 msgstr "冲突解决后继续应用补丁"
 
-#: builtin/am.c:2232
+#: builtin/am.c:2294
 msgid "synonyms for --continue"
 msgstr "和 --continue 同义"
 
-#: builtin/am.c:2235
+#: builtin/am.c:2297
 msgid "skip the current patch"
 msgstr "跳过当前补丁"
 
-#: builtin/am.c:2238
+#: builtin/am.c:2300
 msgid "restore the original branch and abort the patching operation."
 msgstr "恢复原始分支并终止打补丁操作。"
 
-#: builtin/am.c:2241
+#: builtin/am.c:2303
 msgid "abort the patching operation but keep HEAD where it is."
 msgstr "终止补丁操作但保持 HEAD 不变。"
 
-#: builtin/am.c:2244
-msgid "show the patch being applied."
-msgstr "显示正在应用的补丁。"
+#: builtin/am.c:2307
+msgid "show the patch being applied"
+msgstr "显示正在应用的补丁"
 
-#: builtin/am.c:2248
+#: builtin/am.c:2312
 msgid "lie about committer date"
 msgstr "将作者日期作为提交日期"
 
-#: builtin/am.c:2250
+#: builtin/am.c:2314
 msgid "use current timestamp for author date"
 msgstr "用当前时间作为作者日期"
 
-#: builtin/am.c:2252 builtin/commit-tree.c:120 builtin/commit.c:1511
-#: builtin/merge.c:286 builtin/pull.c:193 builtin/rebase.c:489
-#: builtin/rebase.c:1459 builtin/revert.c:117 builtin/tag.c:418
+#: builtin/am.c:2316 builtin/commit-tree.c:120 builtin/commit.c:1515
+#: builtin/merge.c:288 builtin/pull.c:175 builtin/rebase.c:530
+#: builtin/rebase.c:1388 builtin/revert.c:117 builtin/tag.c:419
 msgid "key-id"
 msgstr "key-id"
 
-#: builtin/am.c:2253 builtin/rebase.c:490 builtin/rebase.c:1460
+#: builtin/am.c:2317 builtin/rebase.c:531 builtin/rebase.c:1389
 msgid "GPG-sign commits"
 msgstr "使用 GPG 签名提交"
 
-#: builtin/am.c:2256
+#: builtin/am.c:2320
 msgid "(internal use for git-rebase)"
 msgstr "(内部使用,用于 git-rebase)"
 
-#: builtin/am.c:2274
+#: builtin/am.c:2338
 msgid ""
 "The -b/--binary option has been a no-op for long time, and\n"
 "it will be removed. Please do not use it anymore."
@@ -8929,16 +10175,16 @@ msgstr ""
 "参数 -b/--binary 已经很长时间不做任何实质操作了,并且将被移除。\n"
 "请不要再使用它了。"
 
-#: builtin/am.c:2281
+#: builtin/am.c:2345
 msgid "failed to read the index"
 msgstr "读取索引失败"
 
-#: builtin/am.c:2296
+#: builtin/am.c:2360
 #, c-format
 msgid "previous rebase directory %s still exists but mbox given."
 msgstr "之前的变基目录 %s 仍然存在,但却提供了 mbox。"
 
-#: builtin/am.c:2320
+#: builtin/am.c:2384
 #, c-format
 msgid ""
 "Stray %s directory found.\n"
@@ -8947,11 +10193,11 @@ msgstr ""
 "发现了错误的 %s 目录。\n"
 "使用 \"git am --abort\" 删除它。"
 
-#: builtin/am.c:2326
+#: builtin/am.c:2390
 msgid "Resolve operation not in progress, we are not resuming."
 msgstr "解决操作未进行,我们不会继续。"
 
-#: builtin/am.c:2336
+#: builtin/am.c:2400
 msgid "interactive mode requires patches on the command line"
 msgstr "交互式模式需要命令行上提供补丁"
 
@@ -8989,23 +10235,23 @@ msgstr "git archive:协议错误"
 msgid "git archive: expected a flush"
 msgstr "git archive:应有一个 flush 包"
 
-#: builtin/bisect--helper.c:22
-msgid "git bisect--helper --next-all [--no-checkout]"
-msgstr "git bisect--helper --next-all [--no-checkout]"
-
 #: builtin/bisect--helper.c:23
+msgid "git bisect--helper --next-all"
+msgstr "git bisect--helper --next-all"
+
+#: builtin/bisect--helper.c:24
 msgid "git bisect--helper --write-terms <bad_term> <good_term>"
 msgstr "git bisect--helper --write-terms <坏-术语> <好-术语>"
 
-#: builtin/bisect--helper.c:24
+#: builtin/bisect--helper.c:25
 msgid "git bisect--helper --bisect-clean-state"
 msgstr "git bisect--helper --bisect-clean-state"
 
-#: builtin/bisect--helper.c:25
+#: builtin/bisect--helper.c:26
 msgid "git bisect--helper --bisect-reset [<commit>]"
 msgstr "git bisect--helper --bisect-reset [<提交>]"
 
-#: builtin/bisect--helper.c:26
+#: builtin/bisect--helper.c:27
 msgid ""
 "git bisect--helper --bisect-write [--no-log] <state> <revision> <good_term> "
 "<bad_term>"
@@ -9013,18 +10259,18 @@ msgstr ""
 "git bisect--helper --bisect-write [--no-log] <状态> <版本> <好-术语> <坏-术语"
 ">"
 
-#: builtin/bisect--helper.c:27
+#: builtin/bisect--helper.c:28
 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:28
+#: builtin/bisect--helper.c:29
 msgid "git bisect--helper --bisect-next-check <good_term> <bad_term> [<term>]"
 msgstr "git bisect--helper --bisect-next-check <好-术语> <坏-术语> [<术语>]"
 
-#: builtin/bisect--helper.c:29
+#: builtin/bisect--helper.c:30
 msgid ""
 "git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad | --"
 "term-new]"
@@ -9032,74 +10278,93 @@ msgstr ""
 "git bisect--helper --bisect-terms [--term-good | --term-old | --term-bad | --"
 "term-new]"
 
-#: builtin/bisect--helper.c:30
+#: builtin/bisect--helper.c:31
 msgid ""
-"git bisect--helper --bisect-start [--term-{old,good}=<term> --term-{new,bad}"
-"=<term>][--no-checkout] [<bad> [<good>...]] [--] [<paths>...]"
+"git bisect--helper --bisect-start [--term-{new,bad}=<term> --term-{old,good}"
+"=<term>] [--no-checkout] [--first-parent] [<bad> [<good>...]] [--] "
+"[<paths>...]"
 msgstr ""
-"git bisect--helper --bisect-start [--term-{old,good}=<术语> --term-{new,bad}"
-"=<术语>][--no-checkout] [<坏> [<好>...]] [--] [<路径>...]"
+"git bisect--helper --bisect-start [--term-{new,bad}=<术语> --term-{old,good}"
+"=<术语>] [--no-checkout] [--first-parent] [<坏> [<好>...]] [--] [<路径>...]"
+
+#: builtin/bisect--helper.c:33
+msgid "git bisect--helper --bisect-next"
+msgstr "git bisect--helper --bisect-next"
+
+#: builtin/bisect--helper.c:34
+msgid "git bisect--helper --bisect-auto-next"
+msgstr "git bisect--helper --bisect-auto-next"
+
+#: builtin/bisect--helper.c:35
+msgid "git bisect--helper --bisect-autostart"
+msgstr "git bisect--helper --bisect-autostart"
+
+#: builtin/bisect--helper.c:97
+#, c-format
+msgid "cannot open file '%s' in mode '%s'"
+msgstr "不能以 '%2$s' 模式打开文件 '%1$s'"
+
+#: builtin/bisect--helper.c:104
+#, c-format
+msgid "could not write to file '%s'"
+msgstr "不能写入文件 '%s'"
 
-#: builtin/bisect--helper.c:86
+#: builtin/bisect--helper.c:143
 #, c-format
 msgid "'%s' is not a valid term"
 msgstr "'%s' 不是一个有效的术语"
 
-#: builtin/bisect--helper.c:90
+#: builtin/bisect--helper.c:147
 #, c-format
 msgid "can't use the builtin command '%s' as a term"
 msgstr "不能使用内置命令 '%s' 作为术语"
 
-#: builtin/bisect--helper.c:100
+#: builtin/bisect--helper.c:157
 #, c-format
 msgid "can't change the meaning of the term '%s'"
 msgstr "不能修改术语 '%s' 的含义"
 
-#: builtin/bisect--helper.c:111
+#: builtin/bisect--helper.c:167
 msgid "please use two different terms"
 msgstr "请使用两个不同的术语"
 
-#: builtin/bisect--helper.c:118
-msgid "could not open the file BISECT_TERMS"
-msgstr "不能打开文件 BISECT_TERMS"
-
-#: builtin/bisect--helper.c:155
+#: builtin/bisect--helper.c:207
 #, c-format
 msgid "We are not bisecting.\n"
 msgstr "我们没有在二分查找。\n"
 
-#: builtin/bisect--helper.c:163
+#: builtin/bisect--helper.c:215
 #, c-format
 msgid "'%s' is not a valid commit"
 msgstr "'%s' 不是一个有效的提交"
 
-#: builtin/bisect--helper.c:174
+#: builtin/bisect--helper.c:224
 #, 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:215
+#: builtin/bisect--helper.c:268
 #, c-format
 msgid "Bad bisect_write argument: %s"
 msgstr "坏的 bisect_write 参数:%s"
 
-#: builtin/bisect--helper.c:220
+#: builtin/bisect--helper.c:273
 #, c-format
 msgid "couldn't get the oid of the rev '%s'"
 msgstr "无法获取版本 '%s' 的对象 ID"
 
-#: builtin/bisect--helper.c:232
+#: builtin/bisect--helper.c:285
 #, c-format
 msgid "couldn't open the file '%s'"
 msgstr "无法打开文件 '%s'"
 
-#: builtin/bisect--helper.c:258
+#: builtin/bisect--helper.c:311
 #, c-format
 msgid "Invalid command: you're currently in a %s/%s bisect"
 msgstr "无效的命令:您当前正处于一个 %s/%s 二分查找中"
 
-#: builtin/bisect--helper.c:285
+#: builtin/bisect--helper.c:338
 #, c-format
 msgid ""
 "You need to give me at least one %s and %s revision.\n"
@@ -9108,7 +10373,7 @@ msgstr ""
 "您需要给我至少一个 %s 和一个 %s 版本。\n"
 "为此您可以用 \"git bisect %s\" 和 \"git bisect %s\"。"
 
-#: builtin/bisect--helper.c:289
+#: builtin/bisect--helper.c:342
 #, c-format
 msgid ""
 "You need to start by \"git bisect start\".\n"
@@ -9119,7 +10384,7 @@ msgstr ""
 "然后需要提供我至少一个 %s 和一个 %s 版本。\n"
 "为此您可以用 \"git bisect %s\" 和 \"git bisect %s\" 命令。"
 
-#: builtin/bisect--helper.c:321
+#: builtin/bisect--helper.c:362
 #, c-format
 msgid "bisecting only with a %s commit"
 msgstr "在只有一个 %s 提交的情况下二分查找"
@@ -9129,22 +10394,22 @@ msgstr "在只有一个 %s 提交的情况下二分查找"
 #. translation. The program will only accept English input
 #. at this point.
 #.
-#: builtin/bisect--helper.c:329
+#: builtin/bisect--helper.c:370
 msgid "Are you sure [Y/n]? "
 msgstr "您确认么[Y/n]? "
 
-#: builtin/bisect--helper.c:376
+#: builtin/bisect--helper.c:431
 msgid "no terms defined"
 msgstr "未定义术语"
 
-#: builtin/bisect--helper.c:379
+#: builtin/bisect--helper.c:434
 #, 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:389
+#: builtin/bisect--helper.c:444
 #, c-format
 msgid ""
 "invalid argument %s for 'git bisect terms'.\n"
@@ -9153,114 +10418,160 @@ msgstr ""
 "命令 'git bisect terms' 的参数 %s 无效。\n"
 "支持的选项有:--term-good|--term-old 和 --term-bad|--term-new。"
 
-#: builtin/bisect--helper.c:475
+#: builtin/bisect--helper.c:511
+msgid "revision walk setup failed\n"
+msgstr "版本遍历设置失败\n"
+
+#: builtin/bisect--helper.c:533
+#, c-format
+msgid "could not open '%s' for appending"
+msgstr "无法打开 '%s' 进行追加"
+
+#: builtin/bisect--helper.c:651 builtin/bisect--helper.c:664
+msgid "'' is not a valid term"
+msgstr "'' 不是一个有效的术语"
+
+#: builtin/bisect--helper.c:674
 #, c-format
 msgid "unrecognized option: '%s'"
 msgstr "未识别的选项:'%s'"
 
-#: builtin/bisect--helper.c:479
+#: builtin/bisect--helper.c:678
 #, c-format
 msgid "'%s' does not appear to be a valid revision"
 msgstr "'%s' 看起来不是一个有效的版本"
 
-#: builtin/bisect--helper.c:511
+#: builtin/bisect--helper.c:709
 msgid "bad HEAD - I need a HEAD"
 msgstr "坏的 HEAD - 我需要一个 HEAD"
 
-#: builtin/bisect--helper.c:526
+#: builtin/bisect--helper.c:724
 #, c-format
 msgid "checking out '%s' failed. Try 'git bisect start <valid-branch>'."
 msgstr "检出 '%s' 失败。尝试 'git bisect start <有效分支>'。"
 
-#: builtin/bisect--helper.c:547
+#: builtin/bisect--helper.c:745
 msgid "won't bisect on cg-seek'ed tree"
 msgstr "不会在做了 cg-seek 的树上做二分查找"
 
-#: builtin/bisect--helper.c:550
+#: builtin/bisect--helper.c:748
 msgid "bad HEAD - strange symbolic ref"
 msgstr "坏的 HEAD - 奇怪的符号引用"
 
-#: builtin/bisect--helper.c:574
+#: builtin/bisect--helper.c:775
 #, c-format
 msgid "invalid ref: '%s'"
 msgstr "无效的引用:'%s'"
 
-#: builtin/bisect--helper.c:630
+#: builtin/bisect--helper.c:827
+msgid "You need to start by \"git bisect start\"\n"
+msgstr "您需要执行 \"git bisect start\" 来开始\n"
+
+#  译者:注意保持句尾空格
+#. TRANSLATORS: Make sure to include [Y] and [n] in your
+#. translation. The program will only accept English input
+#. at this point.
+#.
+#: builtin/bisect--helper.c:838
+msgid "Do you want me to do it for you [Y/n]? "
+msgstr "您想让我为您这样做么[Y/n]? "
+
+#: builtin/bisect--helper.c:866
 msgid "perform 'git bisect next'"
 msgstr "执行 'git bisect next'"
 
-#: builtin/bisect--helper.c:632
+#: builtin/bisect--helper.c:868
 msgid "write the terms to .git/BISECT_TERMS"
 msgstr "将术语写入 .git/BISECT_TERMS"
 
-#: builtin/bisect--helper.c:634
+#: builtin/bisect--helper.c:870
 msgid "cleanup the bisection state"
 msgstr "清除二分查找状态"
 
-#: builtin/bisect--helper.c:636
+#: builtin/bisect--helper.c:872
 msgid "check for expected revs"
 msgstr "检查预期的版本"
 
-#: builtin/bisect--helper.c:638
+#: builtin/bisect--helper.c:874
 msgid "reset the bisection state"
 msgstr "清除二分查找状态"
 
-#: builtin/bisect--helper.c:640
+#: builtin/bisect--helper.c:876
 msgid "write out the bisection state in BISECT_LOG"
 msgstr "将二分查找的状态写入 BISECT_LOG"
 
-#: builtin/bisect--helper.c:642
+#: builtin/bisect--helper.c:878
 msgid "check and set terms in a bisection state"
 msgstr "在一个二分查找状态中检查和设置术语"
 
-#: builtin/bisect--helper.c:644
+#: builtin/bisect--helper.c:880
 msgid "check whether bad or good terms exist"
 msgstr "检查坏的或好的术语是否存在"
 
-#: builtin/bisect--helper.c:646
+#: builtin/bisect--helper.c:882
 msgid "print out the bisect terms"
 msgstr "打印二分查找术语"
 
-#: builtin/bisect--helper.c:648
+#: builtin/bisect--helper.c:884
 msgid "start the bisect session"
 msgstr "启动二分查找过程"
 
-#: builtin/bisect--helper.c:650
-msgid "update BISECT_HEAD instead of checking out the current commit"
-msgstr "更新 BISECT_HEAD 而非检出当前提交"
+#: builtin/bisect--helper.c:886
+msgid "find the next bisection commit"
+msgstr "查询下一个二分查找提交"
+
+#: builtin/bisect--helper.c:888
+msgid "verify the next bisection state then checkout the next bisection commit"
+msgstr "校验下一个二分查找状态然后检出下一个二分查找提交"
 
-#: builtin/bisect--helper.c:652
+#: builtin/bisect--helper.c:890
+msgid "start the bisection if it has not yet been started"
+msgstr "如果二分查找尚未启动,则启动之"
+
+#: builtin/bisect--helper.c:892
 msgid "no log for BISECT_WRITE"
 msgstr "BISECT_WRITE 无日志"
 
-#: builtin/bisect--helper.c:669
+#: builtin/bisect--helper.c:910
 msgid "--write-terms requires two arguments"
 msgstr "--write-terms 需要两个参数"
 
-#: builtin/bisect--helper.c:673
+#: builtin/bisect--helper.c:914
 msgid "--bisect-clean-state requires no arguments"
 msgstr "--bisect-clean-state 不带参数"
 
-#: builtin/bisect--helper.c:680
+#: builtin/bisect--helper.c:921
 msgid "--bisect-reset requires either no argument or a commit"
 msgstr "--bisect-reset 无需参数或者需要一个提交"
 
-#: builtin/bisect--helper.c:684
+#: builtin/bisect--helper.c:925
 msgid "--bisect-write requires either 4 or 5 arguments"
 msgstr "--bisect-write 需要 4 或 5 个参数"
 
-#: builtin/bisect--helper.c:690
+#: builtin/bisect--helper.c:931
 msgid "--check-and-set-terms requires 3 arguments"
 msgstr "--check-and-set-terms 需要 3 个参数"
 
-#: builtin/bisect--helper.c:696
+#: builtin/bisect--helper.c:937
 msgid "--bisect-next-check requires 2 or 3 arguments"
 msgstr "--bisect-next-check 需要 2 或 3 个参数"
 
-#: builtin/bisect--helper.c:702
+#: builtin/bisect--helper.c:943
 msgid "--bisect-terms requires 0 or 1 argument"
 msgstr "--bisect-terms 需要 0 或 1 个参数"
 
+#: builtin/bisect--helper.c:952
+msgid "--bisect-next requires 0 arguments"
+msgstr "--bisect-next 需要 0 个参数"
+
+#: builtin/bisect--helper.c:958
+msgid "--bisect-auto-next requires 0 arguments"
+msgstr "--bisect-auto-next 需要 0 个参数"
+
+#: builtin/bisect--helper.c:964
+msgid "--bisect-autostart does not accept arguments"
+msgstr "--bisect-autostart 不带参数"
+
 #: builtin/blame.c:32
 msgid "git blame [<options>] [<rev-opts>] [<rev>] [--] <file>"
 msgstr "git blame [<选项>] [<版本选项>] [<版本>] [--] <文件>"
@@ -9287,132 +10598,128 @@ msgstr "设置 color.blame.repeatedLines 中的无效颜色 '%s'"
 msgid "invalid value for blame.coloring"
 msgstr "设置 blame.coloring 中的无效取值"
 
-#: builtin/blame.c:823
+#: builtin/blame.c:845
 #, c-format
 msgid "cannot find revision %s to ignore"
 msgstr "不能找到要忽略的版本 %s"
 
-#: builtin/blame.c:845
+#: builtin/blame.c:867
 msgid "Show blame entries as we find them, incrementally"
 msgstr "增量式地显示发现的 blame 条目"
 
-#: builtin/blame.c:846
-msgid "Show blank SHA-1 for boundary commits (Default: off)"
-msgstr "边界提交显示空的 SHA-1(默认:关闭)"
+#: builtin/blame.c:868
+msgid "Do not show object names of boundary commits (Default: off)"
+msgstr "不显示边界提交的对象名(默认:关闭)"
 
-#: builtin/blame.c:847
+#: builtin/blame.c:869
 msgid "Do not treat root commits as boundaries (Default: off)"
 msgstr "不把根提交作为边界(默认:关闭)"
 
-#: builtin/blame.c:848
+#: builtin/blame.c:870
 msgid "Show work cost statistics"
 msgstr "显示命令消耗统计"
 
-#: builtin/blame.c:849
+#: builtin/blame.c:871
 msgid "Force progress reporting"
 msgstr "强制进度显示"
 
-#: builtin/blame.c:850
+#: builtin/blame.c:872
 msgid "Show output score for blame entries"
 msgstr "显示判断 blame 条目位移的得分诊断信息"
 
-#: builtin/blame.c:851
+#: builtin/blame.c:873
 msgid "Show original filename (Default: auto)"
 msgstr "显示原始文件名(默认:自动)"
 
-#: builtin/blame.c:852
+#: builtin/blame.c:874
 msgid "Show original linenumber (Default: off)"
 msgstr "显示原始的行号(默认:关闭)"
 
-#: builtin/blame.c:853
+#: builtin/blame.c:875
 msgid "Show in a format designed for machine consumption"
 msgstr "显示为一个适合机器读取的格式"
 
-#: builtin/blame.c:854
+#: builtin/blame.c:876
 msgid "Show porcelain format with per-line commit information"
 msgstr "为每一行显示机器适用的提交信息"
 
-#: builtin/blame.c:855
+#: builtin/blame.c:877
 msgid "Use the same output mode as git-annotate (Default: off)"
 msgstr "使用和 git-annotate 相同的输出模式(默认:关闭)"
 
-#: builtin/blame.c:856
+#: builtin/blame.c:878
 msgid "Show raw timestamp (Default: off)"
 msgstr "显示原始时间戳(默认:关闭)"
 
-#: builtin/blame.c:857
+#: builtin/blame.c:879
 msgid "Show long commit SHA1 (Default: off)"
 msgstr "显示长的 SHA1 提交号(默认:关闭)"
 
-#: builtin/blame.c:858
+#: builtin/blame.c:880
 msgid "Suppress author name and timestamp (Default: off)"
 msgstr "隐藏作者名字和时间戳(默认:关闭)"
 
-#: builtin/blame.c:859
+#: builtin/blame.c:881
 msgid "Show author email instead of name (Default: off)"
 msgstr "显示作者的邮箱而不是名字(默认:关闭)"
 
-#: builtin/blame.c:860
+#: builtin/blame.c:882
 msgid "Ignore whitespace differences"
 msgstr "忽略空白差异"
 
-#: builtin/blame.c:861 builtin/log.c:1629
+#: builtin/blame.c:883 builtin/log.c:1808
 msgid "rev"
 msgstr "版本"
 
-#: builtin/blame.c:861
+#: builtin/blame.c:883
 msgid "Ignore <rev> when blaming"
 msgstr "在执行 blame 操作时忽略 <版本>"
 
-#: builtin/blame.c:862
+#: builtin/blame.c:884
 msgid "Ignore revisions from <file>"
 msgstr "忽略来自 <文件> 中的版本"
 
-#: builtin/blame.c:863
+#: builtin/blame.c:885
 msgid "color redundant metadata from previous line differently"
 msgstr "使用颜色间隔输出与前一行不同的重复元信息"
 
-#: builtin/blame.c:864
+#: builtin/blame.c:886
 msgid "color lines by age"
 msgstr "依据时间着色"
 
-#: builtin/blame.c:871
-msgid "Use an experimental heuristic to improve diffs"
-msgstr "使用一个试验性的启发式算法改进差异显示"
-
-#: builtin/blame.c:873
+#: builtin/blame.c:887
 msgid "Spend extra cycles to find better match"
 msgstr "花费额外的循环来找到更好的匹配"
 
-#: builtin/blame.c:874
+#: builtin/blame.c:888
 msgid "Use revisions from <file> instead of calling git-rev-list"
 msgstr "使用来自 <文件> 的修订集而不是调用 git-rev-list"
 
-#: builtin/blame.c:875
+#: builtin/blame.c:889
 msgid "Use <file>'s contents as the final image"
 msgstr "使用 <文件> 的内容作为最终的图片"
 
-#: builtin/blame.c:876 builtin/blame.c:877
+#: builtin/blame.c:890 builtin/blame.c:891
 msgid "score"
 msgstr "得分"
 
-#: builtin/blame.c:876
+#: builtin/blame.c:890
 msgid "Find line copies within and across files"
 msgstr "找到文件内及跨文件的行拷贝"
 
-#: builtin/blame.c:877
+#: builtin/blame.c:891
 msgid "Find line movements within and across files"
 msgstr "找到文件内及跨文件的行移动"
 
-#: builtin/blame.c:878
+#: builtin/blame.c:892
 msgid "n,m"
 msgstr "n,m"
 
-#: builtin/blame.c:878
+#: builtin/blame.c:892
 msgid "Process only line range n,m, counting from 1"
 msgstr "只处理行范围在 n 和 m 之间的,从 1 开始"
 
-#: builtin/blame.c:929
+#: builtin/blame.c:944
 msgid "--progress can't be used with --incremental or porcelain formats"
 msgstr "--progress 不能和 --incremental 或 --porcelain 同时使用"
 
@@ -9424,24 +10731,24 @@ msgstr "--progress 不能和 --incremental 或 --porcelain 同时使用"
 #. your language may need more or fewer display
 #. columns.
 #.
-#: builtin/blame.c:980
+#: builtin/blame.c:995
 msgid "4 years, 11 months ago"
 msgstr "4 年 11 个月前"
 
-#: builtin/blame.c:1087
+#: builtin/blame.c:1110
 #, 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:1133
+#: builtin/blame.c:1156
 msgid "Blaming lines"
 msgstr "追踪代码行"
 
 #: builtin/branch.c:29
-msgid "git branch [<options>] [-r | -a] [--merged | --no-merged]"
-msgstr "git branch [<选项>] [-r | -a] [--merged | --no-merged]"
+msgid "git branch [<options>] [-r | -a] [--merged] [--no-merged]"
+msgstr "git branch [<选项>] [-r | -a] [--merged] [--no-merged]"
 
 #: builtin/branch.c:30
 msgid "git branch [<options>] [-l] [-f] <branch-name> [<start-point>]"
@@ -9646,7 +10953,7 @@ msgstr "设置跟踪模式(参见 git-pull(1))"
 msgid "do not use"
 msgstr "不要使用"
 
-#: builtin/branch.c:626 builtin/rebase.c:485
+#: builtin/branch.c:626 builtin/rebase.c:526
 msgid "upstream"
 msgstr "上游"
 
@@ -9655,7 +10962,7 @@ msgid "change the upstream info"
 msgstr "改变上游信息"
 
 #: builtin/branch.c:627
-msgid "Unset the upstream info"
+msgid "unset the upstream info"
 msgstr "取消上游信息的设置"
 
 #: builtin/branch.c:628
@@ -9738,97 +11045,97 @@ msgstr "只打印尚未合并的分支"
 msgid "list branches in columns"
 msgstr "以列的方式显示分支"
 
-#: builtin/branch.c:657 builtin/for-each-ref.c:42 builtin/notes.c:415
+#: builtin/branch.c:656 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:433
+#: builtin/tag.c:434
 msgid "object"
 msgstr "对象"
 
-#: builtin/branch.c:658
+#: builtin/branch.c:657
 msgid "print only branches of the object"
 msgstr "只打印指向该对象的分支"
 
-#: builtin/branch.c:660 builtin/for-each-ref.c:48 builtin/tag.c:440
+#: builtin/branch.c:658 builtin/for-each-ref.c:48 builtin/tag.c:441
 msgid "sorting and filtering are case insensitive"
 msgstr "排序和过滤属于大小写不敏感"
 
-#: builtin/branch.c:661 builtin/for-each-ref.c:38 builtin/tag.c:438
+#: builtin/branch.c:659 builtin/for-each-ref.c:38 builtin/tag.c:439
 #: builtin/verify-tag.c:38
 msgid "format to use for the output"
 msgstr "输出格式"
 
-#: builtin/branch.c:684 builtin/clone.c:761
+#: builtin/branch.c:682 builtin/clone.c:789
 msgid "HEAD not found below refs/heads!"
 msgstr "HEAD 没有位于 /refs/heads 之下!"
 
-#: builtin/branch.c:708
+#: builtin/branch.c:706
 msgid "--column and --verbose are incompatible"
 msgstr "--column 和 --verbose 不兼容"
 
-#: builtin/branch.c:723 builtin/branch.c:777 builtin/branch.c:786
+#: builtin/branch.c:721 builtin/branch.c:775 builtin/branch.c:784
 msgid "branch name required"
 msgstr "必须提供分支名"
 
-#: builtin/branch.c:753
+#: builtin/branch.c:751
 msgid "Cannot give description to detached HEAD"
 msgstr "不能向分离头指针提供描述"
 
-#: builtin/branch.c:758
+#: builtin/branch.c:756
 msgid "cannot edit description of more than one branch"
 msgstr "不能为一个以上的分支编辑描述"
 
-#: builtin/branch.c:765
+#: builtin/branch.c:763
 #, c-format
 msgid "No commit on branch '%s' yet."
 msgstr "分支 '%s' 尚无提交。"
 
-#: builtin/branch.c:768
+#: builtin/branch.c:766
 #, c-format
 msgid "No branch named '%s'."
 msgstr "没有分支 '%s'。"
 
-#: builtin/branch.c:783
+#: builtin/branch.c:781
 msgid "too many branches for a copy operation"
 msgstr "为拷贝操作提供了太多的分支名"
 
-#: builtin/branch.c:792
+#: builtin/branch.c:790
 msgid "too many arguments for a rename operation"
 msgstr "为重命名操作提供了太多的参数"
 
-#: builtin/branch.c:797
+#: builtin/branch.c:795
 msgid "too many arguments to set new upstream"
 msgstr "为设置新上游提供了太多的参数"
 
-#: builtin/branch.c:801
+#: builtin/branch.c:799
 #, 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:802 builtin/branch.c:825
 #, c-format
 msgid "no such branch '%s'"
 msgstr "没有此分支 '%s'"
 
-#: builtin/branch.c:808
+#: builtin/branch.c:806
 #, c-format
 msgid "branch '%s' does not exist"
 msgstr "分支 '%s' 不存在"
 
-#: builtin/branch.c:821
+#: builtin/branch.c:819
 msgid "too many arguments to unset upstream"
 msgstr "为取消上游设置操作提供了太多的参数"
 
-#: builtin/branch.c:825
+#: builtin/branch.c:823
 msgid "could not unset upstream of HEAD when it does not point to any branch."
 msgstr "无法取消 HEAD 的上游设置因为它没有指向一个分支"
 
-#: builtin/branch.c:831
+#: builtin/branch.c:829
 #, c-format
 msgid "Branch '%s' has no upstream information"
 msgstr "分支 '%s' 没有上游信息"
 
-#: builtin/branch.c:841
+#: builtin/branch.c:839
 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>?"
@@ -9836,27 +11143,171 @@ msgstr ""
 "'git branch' 的 -a 和 -r 选项不带一个分支名。\n"
 "您是否想要使用:-a|-r --list <模式>?"
 
-#: builtin/branch.c:845
+#: builtin/branch.c:843
 msgid ""
 "the '--set-upstream' option is no longer supported. Please use '--track' or "
 "'--set-upstream-to' instead."
 msgstr ""
 "不再支持选项 '--set-upstream'。请使用 '--track' 或 '--set-upstream-to'。"
 
-#: builtin/bundle.c:45
+#: builtin/bugreport.c:15
+msgid "git version:\n"
+msgstr "git 版本:\n"
+
+#: builtin/bugreport.c:21
 #, c-format
-msgid "%s is okay\n"
-msgstr "%s 可以\n"
+msgid "uname() failed with error '%s' (%d)\n"
+msgstr "uname() 失败,错误为 '%s'(%d)\n"
 
-#: builtin/bundle.c:58
+#: builtin/bugreport.c:31
+msgid "compiler info: "
+msgstr "编译器信息:"
+
+#: builtin/bugreport.c:34
+msgid "libc info: "
+msgstr "libc 信息:"
+
+#: builtin/bugreport.c:80
+msgid "not run from a git repository - no hooks to show\n"
+msgstr "不是在 git 仓库中执行 - 没有可显示的钩子\n"
+
+#: builtin/bugreport.c:90
+msgid "git bugreport [-o|--output-directory <file>] [-s|--suffix <format>]"
+msgstr "git bugreport [-o|--output-directory <文件>] [-s|--suffix <格式>]"
+
+#: builtin/bugreport.c:97
+msgid ""
+"Thank you for filling out a Git bug report!\n"
+"Please answer the following questions to help us understand your issue.\n"
+"\n"
+"What did you do before the bug happened? (Steps to reproduce your issue)\n"
+"\n"
+"What did you expect to happen? (Expected behavior)\n"
+"\n"
+"What happened instead? (Actual behavior)\n"
+"\n"
+"What's different between what you expected and what actually happened?\n"
+"\n"
+"Anything else you want to add:\n"
+"\n"
+"Please review the rest of the bug report below.\n"
+"You can delete any lines you don't wish to share.\n"
+msgstr ""
+"感谢您填写 Git 错误报告!\n"
+"请填写以下问卷,以帮助我们了解您的问题。\n"
+"\n"
+"在错误发生之前,您做了什么?(重现问题的步骤)\n"
+"\n"
+"您期望发生什么?(预期行为)\n"
+"\n"
+"实际发生了什么?(实际行为)\n"
+"\n"
+"您所期望的与实际发生的有什么不同?\n"
+"\n"
+"您想要补充的其它内容:\n"
+"\n"
+"请检查下面错误报告中余下的内容。\n"
+"您可以删除任何您不想共享的内容。\n"
+
+#: builtin/bugreport.c:134
+msgid "specify a destination for the bugreport file"
+msgstr "指定错误报告文件的目标位置"
+
+#: builtin/bugreport.c:136
+msgid "specify a strftime format suffix for the filename"
+msgstr "指定文件的 strftime 格式后缀"
+
+#: builtin/bugreport.c:158
+#, c-format
+msgid "could not create leading directories for '%s'"
+msgstr "不能为 '%s' 创建先导目录"
+
+#: builtin/bugreport.c:165
+msgid "System Info"
+msgstr "系统信息"
+
+#: builtin/bugreport.c:168
+msgid "Enabled Hooks"
+msgstr "启用的钩子"
+
+#: builtin/bugreport.c:175
+#, c-format
+msgid "couldn't create a new file at '%s'"
+msgstr "不能在 '%s' 创建新文件"
+
+#: builtin/bugreport.c:178
+#, c-format
+msgid "unable to write to %s"
+msgstr "无法写入 %s"
+
+#: builtin/bugreport.c:188
+#, c-format
+msgid "Created new report at '%s'.\n"
+msgstr "在 '%s' 创建了新报告。\n"
+
+#: builtin/bundle.c:15 builtin/bundle.c:23
+msgid "git bundle create [<options>] <file> <git-rev-list args>"
+msgstr "git bundle create [<选项>] <文件> <git-rev-list 参数>"
+
+#: builtin/bundle.c:16 builtin/bundle.c:28
+msgid "git bundle verify [<options>] <file>"
+msgstr "git bundle verify [<选项>] <文件>"
+
+#: builtin/bundle.c:17 builtin/bundle.c:33
+msgid "git bundle list-heads <file> [<refname>...]"
+msgstr "git bundle list-heads <文件> [<引用名>...]"
+
+#: builtin/bundle.c:18 builtin/bundle.c:38
+msgid "git bundle unbundle <file> [<refname>...]"
+msgstr "git bundle unbundle <文件> [<引用名>...]"
+
+#: builtin/bundle.c:67 builtin/pack-objects.c:3480
+msgid "do not show progress meter"
+msgstr "不显示进度表"
+
+#: builtin/bundle.c:69 builtin/pack-objects.c:3482
+msgid "show progress meter"
+msgstr "显示进度表"
+
+#: builtin/bundle.c:71 builtin/pack-objects.c:3484
+msgid "show progress meter during object writing phase"
+msgstr "在对象写入阶段显示进度表"
+
+#: builtin/bundle.c:74 builtin/pack-objects.c:3487
+msgid "similar to --all-progress when progress meter is shown"
+msgstr "当进度表显示时类似于 --all-progress"
+
+#: builtin/bundle.c:76
+msgid "specify bundle format version"
+msgstr "指定归档包的格式版本"
+
+#: builtin/bundle.c:96
 msgid "Need a repository to create a bundle."
-msgstr "需要一个仓库来创建包。"
+msgstr "需要一个仓库来创建归档包。"
+
+#: builtin/bundle.c:107
+msgid "do not show bundle details"
+msgstr "不显示归档包的细节"
+
+#: builtin/bundle.c:122
+#, c-format
+msgid "%s is okay\n"
+msgstr "%s 可以\n"
 
-#: builtin/bundle.c:62
+#: builtin/bundle.c:163
 msgid "Need a repository to unbundle."
-msgstr "需要一个仓库来解包。"
+msgstr "需要一个仓库来解开归档包。"
 
-#: builtin/cat-file.c:594
+#: builtin/bundle.c:171 builtin/remote.c:1687
+msgid "be verbose; must be placed before a subcommand"
+msgstr "冗长输出;必须置于子命令之前"
+
+#: builtin/bundle.c:193 builtin/remote.c:1718
+#, c-format
+msgid "Unknown subcommand: %s"
+msgstr "未知子命令:%s"
+
+#: builtin/cat-file.c:598
 msgid ""
 "git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -"
 "p | <type> | --textconv | --filters) [--path=<path>] <object>"
@@ -9864,79 +11315,79 @@ msgstr ""
 "git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -"
 "p | <类型> | --textconv | --filters) [--path=<路径>] <对象>"
 
-#: builtin/cat-file.c:595
+#: builtin/cat-file.c:599
 msgid ""
-"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --"
-"filters]"
+"git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-"
+"symlinks] [--textconv | --filters]"
 msgstr ""
-"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --"
-"filters]"
+"git cat-file (--batch[=<格式>] | --batch-check[=<格式>]) [--follow-symlinks] "
+"[--textconv | --filters]"
 
-#: builtin/cat-file.c:616
+#: builtin/cat-file.c:620
 msgid "only one batch option may be specified"
 msgstr "只能指定一个批处理选项"
 
-#: builtin/cat-file.c:634
+#: builtin/cat-file.c:638
 msgid "<type> can be one of: blob, tree, commit, tag"
 msgstr "<类型> 可以是其中之一:blob、tree、commit、tag"
 
-#: builtin/cat-file.c:635
+#: builtin/cat-file.c:639
 msgid "show object type"
 msgstr "显示对象类型"
 
-#: builtin/cat-file.c:636
+#: builtin/cat-file.c:640
 msgid "show object size"
 msgstr "显示对象大小"
 
-#: builtin/cat-file.c:638
+#: builtin/cat-file.c:642
 msgid "exit with zero when there's no error"
 msgstr "当没有错误时退出并返回零"
 
-#: builtin/cat-file.c:639
+#: builtin/cat-file.c:643
 msgid "pretty-print object's content"
 msgstr "美观地打印对象的内容"
 
-#: builtin/cat-file.c:641
+#: builtin/cat-file.c:645
 msgid "for blob objects, run textconv on object's content"
 msgstr "对于数据对象,对其内容做文本转换"
 
-#: builtin/cat-file.c:643
+#: builtin/cat-file.c:647
 msgid "for blob objects, run filters on object's content"
 msgstr "对于数据对象,对其内容做过滤"
 
-#: builtin/cat-file.c:644 git-submodule.sh:936
+#: builtin/cat-file.c:648
 msgid "blob"
 msgstr "数据对象"
 
-#: builtin/cat-file.c:645
+#: builtin/cat-file.c:649
 msgid "use a specific path for --textconv/--filters"
 msgstr "对于 --textconv/--filters 使用一个特定的路径"
 
-#: builtin/cat-file.c:647
+#: builtin/cat-file.c:651
 msgid "allow -s and -t to work with broken/corrupt objects"
 msgstr "允许 -s 和 -t 对损坏的对象生效"
 
-#: builtin/cat-file.c:648
+#: builtin/cat-file.c:652
 msgid "buffer --batch output"
 msgstr "缓冲 --batch 的输出"
 
-#: builtin/cat-file.c:650
+#: builtin/cat-file.c:654
 msgid "show info and content of objects fed from the standard input"
 msgstr "显示从标准输入提供的对象的信息和内容"
 
-#: builtin/cat-file.c:654
+#: builtin/cat-file.c:658
 msgid "show info about objects fed from the standard input"
 msgstr "显示从标准输入提供的对象的信息"
 
-#: builtin/cat-file.c:658
+#: builtin/cat-file.c:662
 msgid "follow in-tree symlinks (used with --batch or --batch-check)"
 msgstr "跟随树内符号链接(和 --batch 或 --batch-check 共用)"
 
-#: builtin/cat-file.c:660
+#: builtin/cat-file.c:664
 msgid "show all objects with --batch or --batch-check"
 msgstr "使用 --batch 或 --batch-check 参数显示所有对象"
 
-#: builtin/cat-file.c:662
+#: builtin/cat-file.c:666
 msgid "do not order --batch-all-objects output"
 msgstr "不要对 --batch-all-objects 的输出排序"
 
@@ -9964,8 +11415,8 @@ msgstr "从标准输入读出文件名"
 msgid "terminate input and output records by a NUL character"
 msgstr "输入和输出的记录使用 NUL 字符终结"
 
-#: builtin/check-ignore.c:21 builtin/checkout.c:1433 builtin/gc.c:538
-#: builtin/worktree.c:507
+#: builtin/check-ignore.c:21 builtin/checkout.c:1482 builtin/gc.c:538
+#: builtin/worktree.c:561
 msgid "suppress progress reporting"
 msgstr "不显示进度报告"
 
@@ -9977,27 +11428,27 @@ msgstr "显示未匹配的输入路径"
 msgid "ignore index when checking"
 msgstr "检查时忽略索引"
 
-#: builtin/check-ignore.c:160
+#: builtin/check-ignore.c:163
 msgid "cannot specify pathnames with --stdin"
 msgstr "不能同时指定路径及 --stdin 参数"
 
-#: builtin/check-ignore.c:163
+#: builtin/check-ignore.c:166
 msgid "-z only makes sense with --stdin"
 msgstr "-z 需要和 --stdin 参数共用才有意义"
 
-#: builtin/check-ignore.c:165
+#: builtin/check-ignore.c:168
 msgid "no path specified"
 msgstr "未指定路径"
 
-#: builtin/check-ignore.c:169
+#: builtin/check-ignore.c:172
 msgid "--quiet is only valid with a single pathname"
 msgstr "参数 --quiet 只在提供一个路径名时有效"
 
-#: builtin/check-ignore.c:171
+#: builtin/check-ignore.c:174
 msgid "cannot have both --quiet and --verbose"
 msgstr "不能同时提供 --quiet 和 --verbose 参数"
 
-#: builtin/check-ignore.c:174
+#: builtin/check-ignore.c:177
 msgid "--non-matching is only valid with --verbose"
 msgstr "--non-matching 选项只在使用 --verbose 时有效"
 
@@ -10055,9 +11506,9 @@ msgid "write the content to temporary files"
 msgstr "将内容写入临时文件"
 
 #: builtin/checkout-index.c:178 builtin/column.c:31
-#: builtin/submodule--helper.c:1373 builtin/submodule--helper.c:1376
-#: builtin/submodule--helper.c:1384 builtin/submodule--helper.c:1857
-#: builtin/worktree.c:680
+#: builtin/submodule--helper.c:1824 builtin/submodule--helper.c:1827
+#: builtin/submodule--helper.c:1835 builtin/submodule--helper.c:2333
+#: builtin/worktree.c:754
 msgid "string"
 msgstr "字符串"
 
@@ -10085,98 +11536,98 @@ msgstr "git switch [<选项>] [<分支>]"
 msgid "git restore [<options>] [--source=<branch>] <file>..."
 msgstr "git restore [<选项>] [--source=<分支>] <文件>..."
 
-#: builtin/checkout.c:172 builtin/checkout.c:211
+#: builtin/checkout.c:188 builtin/checkout.c:227
 #, c-format
 msgid "path '%s' does not have our version"
 msgstr "路径 '%s' 没有我们的版本"
 
-#: builtin/checkout.c:174 builtin/checkout.c:213
+#: builtin/checkout.c:190 builtin/checkout.c:229
 #, c-format
 msgid "path '%s' does not have their version"
 msgstr "路径 '%s' 没有他们的版本"
 
-#: builtin/checkout.c:190
+#: builtin/checkout.c:206
 #, c-format
 msgid "path '%s' does not have all necessary versions"
 msgstr "路径 '%s' 没有全部必需的版本"
 
-#: builtin/checkout.c:240
+#: builtin/checkout.c:258
 #, c-format
 msgid "path '%s' does not have necessary versions"
 msgstr "路径 '%s' 没有必需的版本"
 
-#: builtin/checkout.c:258
+#: builtin/checkout.c:275
 #, c-format
 msgid "path '%s': cannot merge"
 msgstr "path '%s':无法合并"
 
-#: builtin/checkout.c:274
+#: builtin/checkout.c:291
 #, c-format
 msgid "Unable to add merge result for '%s'"
 msgstr "无法为 '%s' 添加合并结果"
 
-#: builtin/checkout.c:374
+#: builtin/checkout.c:396
 #, c-format
 msgid "Recreated %d merge conflict"
 msgid_plural "Recreated %d merge conflicts"
 msgstr[0] "重新创建了 %d 个合并冲突"
 msgstr[1] "重新创建了 %d 个合并冲突"
 
-#: builtin/checkout.c:379
+#: builtin/checkout.c:401
 #, c-format
 msgid "Updated %d path from %s"
 msgid_plural "Updated %d paths from %s"
 msgstr[0] "从 %2$s 更新了 %1$d 个路径"
 msgstr[1] "从 %2$s 更新了 %1$d 个路径"
 
-#: builtin/checkout.c:386
+#: builtin/checkout.c:408
 #, c-format
 msgid "Updated %d path from the index"
 msgid_plural "Updated %d paths from the index"
 msgstr[0] "从索引区更新了 %d 个路径"
 msgstr[1] "从索引区更新了 %d 个路径"
 
-#: builtin/checkout.c:409 builtin/checkout.c:412 builtin/checkout.c:415
-#: builtin/checkout.c:419
+#: builtin/checkout.c:431 builtin/checkout.c:434 builtin/checkout.c:437
+#: builtin/checkout.c:441
 #, c-format
 msgid "'%s' cannot be used with updating paths"
 msgstr "'%s' 不能在更新路径时使用"
 
-#: builtin/checkout.c:422 builtin/checkout.c:425
+#: builtin/checkout.c:444 builtin/checkout.c:447
 #, c-format
 msgid "'%s' cannot be used with %s"
 msgstr "'%s' 不能和 %s 同时使用"
 
-#: builtin/checkout.c:429
+#: builtin/checkout.c:451
 #, c-format
 msgid "Cannot update paths and switch to branch '%s' at the same time."
 msgstr "不能同时更新路径并切换到分支'%s'。"
 
-#: builtin/checkout.c:433
+#: builtin/checkout.c:455
 #, c-format
 msgid "neither '%s' or '%s' is specified"
 msgstr "'%s' 或 '%s' 都没有指定"
 
-#: builtin/checkout.c:437
+#: builtin/checkout.c:459
 #, c-format
 msgid "'%s' must be used when '%s' is not specified"
 msgstr "未指定 '%2$s' 时,必须使用 '%1$s'"
 
-#: builtin/checkout.c:442 builtin/checkout.c:447
+#: builtin/checkout.c:464 builtin/checkout.c:469
 #, c-format
 msgid "'%s' or '%s' cannot be used with %s"
 msgstr "'%s' 或 '%s' 不能和 %s 一起使用"
 
-#: builtin/checkout.c:506 builtin/checkout.c:513
+#: builtin/checkout.c:528 builtin/checkout.c:535
 #, c-format
 msgid "path '%s' is unmerged"
 msgstr "路径 '%s' 未合并"
 
-#: builtin/checkout.c:679
+#: builtin/checkout.c:703
 msgid "you need to resolve your current index first"
 msgstr "您需要先解决当前索引的冲突"
 
-#: builtin/checkout.c:729
+#: builtin/checkout.c:757
 #, c-format
 msgid ""
 "cannot continue with staged changes in the following files:\n"
@@ -10185,56 +11636,51 @@ msgstr ""
 "不能继续,下列文件有暂存的修改:\n"
 "%s"
 
-#: builtin/checkout.c:736
-#, c-format
-msgid "staged changes in the following files may be lost: %s"
-msgstr "下列文件暂存的修改可能会丢失:%s"
-
-#: builtin/checkout.c:833
+#: builtin/checkout.c:853
 #, c-format
 msgid "Can not do reflog for '%s': %s\n"
 msgstr "不能对 '%s' 执行 reflog 操作:%s\n"
 
-#: builtin/checkout.c:875
+#: builtin/checkout.c:895
 msgid "HEAD is now at"
 msgstr "HEAD 目前位于"
 
-#: builtin/checkout.c:879 builtin/clone.c:714
+#: builtin/checkout.c:899 builtin/clone.c:720
 msgid "unable to update HEAD"
 msgstr "不能更新 HEAD"
 
-#: builtin/checkout.c:883
+#: builtin/checkout.c:903
 #, c-format
 msgid "Reset branch '%s'\n"
 msgstr "重置分支 '%s'\n"
 
-#: builtin/checkout.c:886
+#: builtin/checkout.c:906
 #, c-format
 msgid "Already on '%s'\n"
 msgstr "已经位于 '%s'\n"
 
-#: builtin/checkout.c:890
+#: builtin/checkout.c:910
 #, c-format
 msgid "Switched to and reset branch '%s'\n"
 msgstr "切换并重置分支 '%s'\n"
 
-#: builtin/checkout.c:892 builtin/checkout.c:1289
+#: builtin/checkout.c:912 builtin/checkout.c:1338
 #, c-format
 msgid "Switched to a new branch '%s'\n"
 msgstr "切换到一个新分支 '%s'\n"
 
-#: builtin/checkout.c:894
+#: builtin/checkout.c:914
 #, c-format
 msgid "Switched to branch '%s'\n"
 msgstr "切换到分支 '%s'\n"
 
 #  译者:注意保持前导空格
-#: builtin/checkout.c:945
+#: builtin/checkout.c:965
 #, c-format
 msgid " ... and %d more.\n"
 msgstr " ... 及其它 %d 个。\n"
 
-#: builtin/checkout.c:951
+#: builtin/checkout.c:971
 #, c-format
 msgid ""
 "Warning: you are leaving %d commit behind, not connected to\n"
@@ -10255,7 +11701,7 @@ msgstr[1] ""
 "\n"
 "%s\n"
 
-#: builtin/checkout.c:970
+#: builtin/checkout.c:990
 #, c-format
 msgid ""
 "If you want to keep it by creating a new branch, this may be a good time\n"
@@ -10282,28 +11728,19 @@ msgstr[1] ""
 " git branch <新分支名> %s\n"
 "\n"
 
-#: builtin/checkout.c:1005
+#: builtin/checkout.c:1025
 msgid "internal error in revision walk"
 msgstr "在版本遍历时遇到内部错误"
 
-#: builtin/checkout.c:1009
+#: builtin/checkout.c:1029
 msgid "Previous HEAD position was"
 msgstr "之前的 HEAD 位置是"
 
-#: builtin/checkout.c:1049 builtin/checkout.c:1284
+#: builtin/checkout.c:1069 builtin/checkout.c:1333
 msgid "You are on a branch yet to be born"
 msgstr "您位于一个尚未初始化的分支"
 
-#: builtin/checkout.c:1176
-msgid "only one reference expected"
-msgstr "预期只有一个引用"
-
-#: builtin/checkout.c:1193
-#, c-format
-msgid "only one reference expected, %d given."
-msgstr "应只有一个引用,却给出了 %d 个"
-
-#: builtin/checkout.c:1230
+#: builtin/checkout.c:1146
 #, c-format
 msgid ""
 "'%s' could be both a local file and a tracking branch.\n"
@@ -10312,37 +11749,70 @@ msgstr ""
 "'%s' 既可以是一个本地文件,也可以是一个跟踪分支。\n"
 "请使用 --(和可选的 --no-guess)来消除歧义"
 
-#: builtin/checkout.c:1243 builtin/worktree.c:291 builtin/worktree.c:456
+#: builtin/checkout.c:1153
+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"
+"\n"
+"    git checkout --track origin/<name>\n"
+"\n"
+"If you'd like to always have checkouts of an ambiguous <name> prefer\n"
+"one remote, e.g. the 'origin' remote, consider setting\n"
+"checkout.defaultRemote=origin in your config."
+msgstr ""
+"如果您想要检出一个远程跟踪分支,例如在 'origin' 上的,您可以使用分支\n"
+"全名和 --track 选项:\n"
+"\n"
+"    git checkout --track origin/<名称>\n"
+"\n"
+"如果您总是喜欢使用模糊的简短分支名 <名称>,而不喜欢如 'origin' 的远程\n"
+"名称,可以在配置中设置 checkout.defaultRemote=origin。"
+
+#: builtin/checkout.c:1163
+#, c-format
+msgid "'%s' matched multiple (%d) remote tracking branches"
+msgstr "'%s' 匹配多个(%d 个)远程跟踪分支"
+
+#: builtin/checkout.c:1229
+msgid "only one reference expected"
+msgstr "只期望一个引用"
+
+#: builtin/checkout.c:1246
+#, c-format
+msgid "only one reference expected, %d given."
+msgstr "应只有一个引用,却给出了 %d 个"
+
+#: builtin/checkout.c:1292 builtin/worktree.c:342 builtin/worktree.c:510
 #, c-format
 msgid "invalid reference: %s"
 msgstr "无效引用:%s"
 
-#: builtin/checkout.c:1256 builtin/checkout.c:1618
+#: builtin/checkout.c:1305 builtin/checkout.c:1671
 #, c-format
 msgid "reference is not a tree: %s"
 msgstr "引用不是一个树:%s"
 
-#: builtin/checkout.c:1303
+#: builtin/checkout.c:1352
 #, c-format
 msgid "a branch is expected, got tag '%s'"
 msgstr "期望一个分支,得到标签 '%s'"
 
-#: builtin/checkout.c:1305
+#: builtin/checkout.c:1354
 #, c-format
 msgid "a branch is expected, got remote branch '%s'"
 msgstr "期望一个分支,得到远程分支 '%s'"
 
-#: builtin/checkout.c:1306 builtin/checkout.c:1314
+#: builtin/checkout.c:1355 builtin/checkout.c:1363
 #, c-format
 msgid "a branch is expected, got '%s'"
 msgstr "期望一个分支,得到 '%s'"
 
-#: builtin/checkout.c:1309
+#: builtin/checkout.c:1358
 #, c-format
 msgid "a branch is expected, got commit '%s'"
 msgstr "期望一个分支,得到提交 '%s'"
 
-#: builtin/checkout.c:1325
+#: builtin/checkout.c:1374
 msgid ""
 "cannot switch branch while merging\n"
 "Consider \"git merge --quit\" or \"git worktree add\"."
@@ -10350,7 +11820,7 @@ msgstr ""
 "不能在合并时切换分支\n"
 "考虑使用 \"git merge --quit\" 或 \"git worktree add\"。"
 
-#: builtin/checkout.c:1329
+#: builtin/checkout.c:1378
 msgid ""
 "cannot switch branch in the middle of an am session\n"
 "Consider \"git am --quit\" or \"git worktree add\"."
@@ -10358,7 +11828,7 @@ msgstr ""
 "不能在一个 am 会话期间切换分支\n"
 "考虑使用 \"git am --quit\" 或 \"git worktree add\"。"
 
-#: builtin/checkout.c:1333
+#: builtin/checkout.c:1382
 msgid ""
 "cannot switch branch while rebasing\n"
 "Consider \"git rebase --quit\" or \"git worktree add\"."
@@ -10366,7 +11836,7 @@ msgstr ""
 "不能在变基时切换分支\n"
 "考虑使用 \"git rebase --quit\" 或 \"git worktree add\"。"
 
-#: builtin/checkout.c:1337
+#: builtin/checkout.c:1386
 msgid ""
 "cannot switch branch while cherry-picking\n"
 "Consider \"git cherry-pick --quit\" or \"git worktree add\"."
@@ -10374,7 +11844,7 @@ msgstr ""
 "不能在拣选时切换分支\n"
 "考虑使用 \"git cherry-pick --quit\" 或 \"git worktree add\"。"
 
-#: builtin/checkout.c:1341
+#: builtin/checkout.c:1390
 msgid ""
 "cannot switch branch while reverting\n"
 "Consider \"git revert --quit\" or \"git worktree add\"."
@@ -10382,270 +11852,254 @@ msgstr ""
 "不能在还原时切换分支\n"
 "考虑使用 \"git revert --quit\" 或 \"git worktree add\"。"
 
-#: builtin/checkout.c:1345
+#: builtin/checkout.c:1394
 msgid "you are switching branch while bisecting"
 msgstr "您在执行二分查找时切换分支"
 
-#: builtin/checkout.c:1352
+#: builtin/checkout.c:1401
 msgid "paths cannot be used with switching branches"
 msgstr "路径不能和切换分支同时使用"
 
-#: builtin/checkout.c:1355 builtin/checkout.c:1359 builtin/checkout.c:1363
+#: builtin/checkout.c:1404 builtin/checkout.c:1408 builtin/checkout.c:1412
 #, c-format
 msgid "'%s' cannot be used with switching branches"
 msgstr "'%s' 不能和切换分支同时使用"
 
-#: builtin/checkout.c:1367 builtin/checkout.c:1370 builtin/checkout.c:1373
-#: builtin/checkout.c:1378 builtin/checkout.c:1383
+#: builtin/checkout.c:1416 builtin/checkout.c:1419 builtin/checkout.c:1422
+#: builtin/checkout.c:1427 builtin/checkout.c:1432
 #, c-format
 msgid "'%s' cannot be used with '%s'"
 msgstr "'%s' 不能和 '%s' 同时使用"
 
-#: builtin/checkout.c:1380
+#: builtin/checkout.c:1429
 #, c-format
 msgid "'%s' cannot take <start-point>"
 msgstr "'%s' 不带 <起始点>"
 
-#: builtin/checkout.c:1388
+#: builtin/checkout.c:1437
 #, c-format
 msgid "Cannot switch branch to a non-commit '%s'"
 msgstr "不能切换分支到一个非提交 '%s'"
 
-#: builtin/checkout.c:1395
+#: builtin/checkout.c:1444
 msgid "missing branch or commit argument"
 msgstr "缺少分支或提交参数"
 
-#: builtin/checkout.c:1437 builtin/clone.c:91 builtin/fetch.c:151
-#: builtin/merge.c:285 builtin/pull.c:137 builtin/push.c:575
-#: builtin/send-pack.c:174
+#: builtin/checkout.c:1486 builtin/clone.c:91 builtin/commit-graph.c:84
+#: builtin/commit-graph.c:222 builtin/fetch.c:172 builtin/merge.c:287
+#: builtin/multi-pack-index.c:27 builtin/pull.c:119 builtin/push.c:551
+#: builtin/send-pack.c:192
 msgid "force progress reporting"
 msgstr "强制显示进度报告"
 
-#: builtin/checkout.c:1438
+#: builtin/checkout.c:1487
 msgid "perform a 3-way merge with the new branch"
 msgstr "和新的分支执行三方合并"
 
-#: builtin/checkout.c:1439 builtin/log.c:1617 parse-options.h:318
+#: builtin/checkout.c:1488 builtin/log.c:1795 parse-options.h:322
 msgid "style"
 msgstr "风格"
 
-#: builtin/checkout.c:1440
+#: builtin/checkout.c:1489
 msgid "conflict style (merge or diff3)"
 msgstr "冲突输出风格(merge 或 diff3)"
 
-#: builtin/checkout.c:1452 builtin/worktree.c:504
+#: builtin/checkout.c:1501 builtin/worktree.c:558
 msgid "detach HEAD at named commit"
 msgstr "HEAD 从指定的提交分离"
 
-#: builtin/checkout.c:1453
+#: builtin/checkout.c:1502
 msgid "set upstream info for new branch"
 msgstr "为新的分支设置上游信息"
 
-#: builtin/checkout.c:1455
+#: builtin/checkout.c:1504
 msgid "force checkout (throw away local modifications)"
 msgstr "强制检出(丢弃本地修改)"
 
-#: builtin/checkout.c:1457
+#: builtin/checkout.c:1506
 msgid "new-branch"
 msgstr "新分支"
 
-#: builtin/checkout.c:1457
+#: builtin/checkout.c:1506
 msgid "new unparented branch"
 msgstr "新的没有父提交的分支"
 
-#: builtin/checkout.c:1459 builtin/merge.c:288
+#: builtin/checkout.c:1508 builtin/merge.c:291
 msgid "update ignored files (default)"
 msgstr "更新忽略的文件(默认)"
 
-#: builtin/checkout.c:1462
+#: builtin/checkout.c:1511
 msgid "do not check if another worktree is holding the given ref"
 msgstr "不检查指定的引用是否被其他工作区所占用"
 
-#: builtin/checkout.c:1475
+#: builtin/checkout.c:1524
 msgid "checkout our version for unmerged files"
 msgstr "对尚未合并的文件检出我们的版本"
 
-#: builtin/checkout.c:1478
+#: builtin/checkout.c:1527
 msgid "checkout their version for unmerged files"
 msgstr "对尚未合并的文件检出他们的版本"
 
-#: builtin/checkout.c:1482
+#: builtin/checkout.c:1531
 msgid "do not limit pathspecs to sparse entries only"
 msgstr "对路径不做稀疏检出的限制"
 
-#: builtin/checkout.c:1533
-msgid "-b, -B and --orphan are mutually exclusive"
-msgstr "-b、-B 和 --orphan 是互斥的"
+#: builtin/checkout.c:1586
+#, c-format
+msgid "-%c, -%c and --orphan are mutually exclusive"
+msgstr "-%c、-%c 和 --orphan 是互斥的"
 
-#: builtin/checkout.c:1536
+#: builtin/checkout.c:1590
 msgid "-p and --overlay are mutually exclusive"
 msgstr "-p 和 --overlay 互斥"
 
-#: builtin/checkout.c:1573
+#: builtin/checkout.c:1627
 msgid "--track needs a branch name"
 msgstr "--track 需要一个分支名"
 
-#: builtin/checkout.c:1578
-msgid "missing branch name; try -b"
-msgstr "缺少分支名,尝试 -b"
+#: builtin/checkout.c:1632
+#, c-format
+msgid "missing branch name; try -%c"
+msgstr "缺少分支名,尝试 -%c"
 
-#: builtin/checkout.c:1611
+#: builtin/checkout.c:1664
 #, c-format
 msgid "could not resolve %s"
 msgstr "无法解析 %s"
 
-#: builtin/checkout.c:1623
-msgid "you must specify path(s) to restore"
-msgstr "您必须指定一个要恢复的路径"
-
-#: builtin/checkout.c:1631
+#: builtin/checkout.c:1680
 msgid "invalid path specification"
 msgstr "无效的路径规格"
 
-#: builtin/checkout.c:1638
+#: builtin/checkout.c:1687
 #, c-format
 msgid "'%s' is not a commit and a branch '%s' cannot be created from it"
 msgstr "'%s' 不是一个提交,不能基于它创建分支 '%s'"
 
-#: builtin/checkout.c:1642
+#: builtin/checkout.c:1691
 #, c-format
 msgid "git checkout: --detach does not take a path argument '%s'"
 msgstr "git checkout:--detach 不能接收路径参数 '%s'"
 
-#: builtin/checkout.c:1646
+#: builtin/checkout.c:1700
+msgid "--pathspec-from-file is incompatible with --detach"
+msgstr "--pathspec-from-file 与 --detach 不兼容"
+
+#: builtin/checkout.c:1703 builtin/reset.c:325 builtin/stash.c:1500
+msgid "--pathspec-from-file is incompatible with --patch"
+msgstr "--pathspec-from-file 与 --patch 不兼容"
+
+#: builtin/checkout.c:1716
 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:1666
-#, c-format
-msgid ""
-"'%s' matched more than one remote tracking branch.\n"
-"We found %d remotes with a reference that matched. So we fell back\n"
-"on trying to resolve the argument as a path, but failed there too!\n"
-"\n"
-"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"
-"\n"
-"    git checkout --track origin/<name>\n"
-"\n"
-"If you'd like to always have checkouts of an ambiguous <name> prefer\n"
-"one remote, e.g. the 'origin' remote, consider setting\n"
-"checkout.defaultRemote=origin in your config."
-msgstr ""
-"'%s' 匹配了一个以上的远程跟踪分支。\n"
-"我们发现 %d 个远程仓库具有同名分支。所以我们转而尝试将这个参数解析为\n"
-"路径,但是也失败了!\n"
-"\n"
-"如果您想要检出一个远程跟踪分支,例如在远程仓库 'origin' 上的,您可以\n"
-"使用分支全名和 --track 选项:\n"
-"\n"
-"    git checkout --track origin/<name>\n"
-"\n"
-"如果您总是喜欢使用模糊的简短分支名 <name>,而不喜欢如 'origin' 的远程\n"
-"仓库名,可以在配置中设置 checkout.defaultRemote=origin。"
+#: builtin/checkout.c:1721
+msgid "you must specify path(s) to restore"
+msgstr "您必须指定一个要恢复的路径"
 
-#: builtin/checkout.c:1691 builtin/checkout.c:1693 builtin/checkout.c:1733
-#: builtin/checkout.c:1735 builtin/clone.c:121 builtin/remote.c:169
-#: builtin/remote.c:171 builtin/worktree.c:500 builtin/worktree.c:502
+#: builtin/checkout.c:1747 builtin/checkout.c:1749 builtin/checkout.c:1798
+#: builtin/checkout.c:1800 builtin/clone.c:121 builtin/remote.c:170
+#: builtin/remote.c:172 builtin/submodule--helper.c:2719 builtin/worktree.c:554
+#: builtin/worktree.c:556
 msgid "branch"
 msgstr "分支"
 
-#: builtin/checkout.c:1692
+#: builtin/checkout.c:1748
 msgid "create and checkout a new branch"
 msgstr "创建并检出一个新的分支"
 
-#: builtin/checkout.c:1694
+#: builtin/checkout.c:1750
 msgid "create/reset and checkout a branch"
 msgstr "创建/重置并检出一个分支"
 
-#: builtin/checkout.c:1695
+#: builtin/checkout.c:1751
 msgid "create reflog for new branch"
 msgstr "为新的分支创建引用日志"
 
-#: builtin/checkout.c:1697
+#: builtin/checkout.c:1753
 msgid "second guess 'git checkout <no-such-branch>' (default)"
 msgstr "二次猜测 'git checkout <无此分支>'(默认)"
 
-#: builtin/checkout.c:1698
+#: builtin/checkout.c:1754
 msgid "use overlay mode (default)"
 msgstr "使用叠加模式(默认)"
 
-#: builtin/checkout.c:1734
+#: builtin/checkout.c:1799
 msgid "create and switch to a new branch"
 msgstr "创建并切换一个新分支"
 
-#: builtin/checkout.c:1736
+#: builtin/checkout.c:1801
 msgid "create/reset and switch to a branch"
 msgstr "创建/重置并切换一个分支"
 
-#: builtin/checkout.c:1738
+#: builtin/checkout.c:1803
 msgid "second guess 'git switch <no-such-branch>'"
 msgstr "二次猜测 'git switch <无此分支>'"
 
-#: builtin/checkout.c:1740
+#: builtin/checkout.c:1805
 msgid "throw away local modifications"
 msgstr "丢弃本地修改"
 
-#: builtin/checkout.c:1772
+#: builtin/checkout.c:1839
 msgid "which tree-ish to checkout from"
 msgstr "要检出哪一个树"
 
-#: builtin/checkout.c:1774
+#: builtin/checkout.c:1841
 msgid "restore the index"
 msgstr "恢复索引"
 
-#: builtin/checkout.c:1776
+#: builtin/checkout.c:1843
 msgid "restore the working tree (default)"
 msgstr "恢复工作区(默认)"
 
-#: builtin/checkout.c:1778
+#: builtin/checkout.c:1845
 msgid "ignore unmerged entries"
 msgstr "忽略未合并条目"
 
-#: builtin/checkout.c:1779
+#: builtin/checkout.c:1846
 msgid "use overlay mode"
 msgstr "使用叠加模式"
 
-#: builtin/clean.c:28
+#: builtin/clean.c:29
 msgid ""
 "git clean [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x | -X] [--] <paths>..."
 msgstr ""
 "git clean [-d] [-f] [-i] [-n] [-q] [-e <模式>] [-x | -X] [--] <路径>..."
 
-#: builtin/clean.c:32
+#: builtin/clean.c:33
 #, c-format
 msgid "Removing %s\n"
 msgstr "正删除 %s\n"
 
-#: builtin/clean.c:33
+#: builtin/clean.c:34
 #, c-format
 msgid "Would remove %s\n"
 msgstr "将删除 %s\n"
 
-#: builtin/clean.c:34
+#: builtin/clean.c:35
 #, c-format
 msgid "Skipping repository %s\n"
 msgstr "忽略仓库 %s\n"
 
-#: builtin/clean.c:35
+#: builtin/clean.c:36
 #, c-format
 msgid "Would skip repository %s\n"
 msgstr "将忽略仓库 %s\n"
 
-#: builtin/clean.c:36
+#: builtin/clean.c:37
 #, c-format
 msgid "failed to remove %s"
 msgstr "删除 %s 失败"
 
-#: builtin/clean.c:37
+#: builtin/clean.c:38
 #, c-format
 msgid "could not lstat %s\n"
 msgstr "不能对 %s 调用 lstat\n"
 
-#: builtin/clean.c:300 git-add--interactive.perl:593
+#: builtin/clean.c:302 git-add--interactive.perl:595
 #, c-format
 msgid ""
 "Prompt help:\n"
@@ -10658,7 +12112,7 @@ msgstr ""
 "foo        - 通过唯一前缀选择一个选项\n"
 "           - (空)什么也不选择\n"
 
-#: builtin/clean.c:304 git-add--interactive.perl:602
+#: builtin/clean.c:306 git-add--interactive.perl:604
 #, c-format
 msgid ""
 "Prompt help:\n"
@@ -10679,38 +12133,33 @@ msgstr ""
 "*          - 选择所有选项\n"
 "           - (空)结束选择\n"
 
-#: builtin/clean.c:520 git-add--interactive.perl:568
-#: git-add--interactive.perl:573
+#: builtin/clean.c:521 git-add--interactive.perl:570
+#: git-add--interactive.perl:575
 #, c-format, perl-format
 msgid "Huh (%s)?\n"
 msgstr "嗯(%s)?\n"
 
-#: builtin/clean.c:662
+#: builtin/clean.c:661
 #, c-format
 msgid "Input ignore patterns>> "
 msgstr "输入模版以排除条目>> "
 
-#: builtin/clean.c:699
+#: builtin/clean.c:696
 #, c-format
 msgid "WARNING: Cannot find items matched by: %s"
 msgstr "警告:无法找到和 %s 匹配的条目"
 
-#: builtin/clean.c:720
+#: builtin/clean.c:717
 msgid "Select items to delete"
 msgstr "选择要删除的条目"
 
 #. TRANSLATORS: Make sure to keep [y/N] as is
-#: builtin/clean.c:761
+#: builtin/clean.c:758
 #, c-format
 msgid "Remove %s [y/N]? "
 msgstr "删除 %s [y/N]?"
 
-#: builtin/clean.c:786 git-add--interactive.perl:1763
-#, c-format
-msgid "Bye.\n"
-msgstr "再见。\n"
-
-#: builtin/clean.c:794
+#: builtin/clean.c:789
 msgid ""
 "clean               - start cleaning\n"
 "filter by pattern   - exclude items from deletion\n"
@@ -10728,78 +12177,70 @@ msgstr ""
 "help                - 显示本帮助\n"
 "?                   - 显示如何在提示符下选择的帮助"
 
-#: builtin/clean.c:821 git-add--interactive.perl:1849
-msgid "*** Commands ***"
-msgstr "*** 命令 ***"
-
-#: builtin/clean.c:822 git-add--interactive.perl:1846
-msgid "What now"
-msgstr "请选择"
-
-#: builtin/clean.c:830
+#: builtin/clean.c:825
 msgid "Would remove the following item:"
 msgid_plural "Would remove the following items:"
 msgstr[0] "将删除如下条目:"
 msgstr[1] "将删除如下条目:"
 
-#: builtin/clean.c:846
+#: builtin/clean.c:841
 msgid "No more files to clean, exiting."
 msgstr "没有要清理的文件,退出。"
 
-#: builtin/clean.c:908
+#: builtin/clean.c:903
 msgid "do not print names of files removed"
 msgstr "不打印删除文件的名称"
 
-#: builtin/clean.c:910
+#: builtin/clean.c:905
 msgid "force"
 msgstr "强制"
 
-#: builtin/clean.c:911
+#: builtin/clean.c:906
 msgid "interactive cleaning"
 msgstr "交互式清除"
 
-#: builtin/clean.c:913
+#: builtin/clean.c:908
 msgid "remove whole directories"
 msgstr "删除整个目录"
 
-#: builtin/clean.c:914 builtin/describe.c:546 builtin/describe.c:548
-#: builtin/grep.c:899 builtin/log.c:176 builtin/log.c:178
-#: builtin/ls-files.c:557 builtin/name-rev.c:413 builtin/name-rev.c:415
+#: builtin/clean.c:909 builtin/describe.c:565 builtin/describe.c:567
+#: builtin/grep.c:910 builtin/log.c:181 builtin/log.c:183
+#: builtin/ls-files.c:558 builtin/name-rev.c:526 builtin/name-rev.c:528
 #: builtin/show-ref.c:179
 msgid "pattern"
 msgstr "模式"
 
-#: builtin/clean.c:915
+#: builtin/clean.c:910
 msgid "add <pattern> to ignore rules"
 msgstr "添加 <模式> 到忽略规则"
 
-#: builtin/clean.c:916
+#: builtin/clean.c:911
 msgid "remove ignored files, too"
 msgstr "也删除忽略的文件"
 
-#: builtin/clean.c:918
+#: builtin/clean.c:913
 msgid "remove only ignored files"
 msgstr "只删除忽略的文件"
 
-#: builtin/clean.c:936
-msgid "-x and -X cannot be used together"
-msgstr "-x 和 -X 不能同时使用"
-
-#: builtin/clean.c:940
+#: builtin/clean.c:929
 msgid ""
 "clean.requireForce set to true and neither -i, -n, nor -f given; refusing to "
 "clean"
 msgstr ""
 "clean.requireForce 设置为 true 且未提供 -i、-n 或 -f 选项,拒绝执行清理动作"
 
-#: builtin/clean.c:943
+#: builtin/clean.c:932
 msgid ""
 "clean.requireForce defaults to true and neither -i, -n, nor -f given; "
 "refusing to clean"
 msgstr ""
 "clean.requireForce 默认为 true 且未提供 -i、-n 或 -f 选项,拒绝执行清理动作"
 
-#: builtin/clone.c:46
+#: builtin/clean.c:944
+msgid "-x and -X cannot be used together"
+msgstr "-x 和 -X 不能同时使用"
+
+#: builtin/clone.c:45
 msgid "git clone [<options>] [--] <repo> [<dir>]"
 msgstr "git clone [<选项>] [--] <仓库> [<路径>]"
 
@@ -10807,7 +12248,7 @@ msgstr "git clone [<选项>] [--] <仓库> [<路径>]"
 msgid "don't create a checkout"
 msgstr "不创建一个检出"
 
-#: builtin/clone.c:94 builtin/clone.c:96 builtin/init-db.c:489
+#: builtin/clone.c:94 builtin/clone.c:96 builtin/init-db.c:553
 msgid "create a bare repository"
 msgstr "创建一个纯仓库"
 
@@ -10827,11 +12268,11 @@ msgstr "不使用本地硬链接,始终复制"
 msgid "setup as shared repository"
 msgstr "设置为共享仓库"
 
-#: builtin/clone.c:107
+#: builtin/clone.c:106
 msgid "pathspec"
 msgstr "路径规格"
 
-#: builtin/clone.c:107
+#: builtin/clone.c:106
 msgid "initialize submodules in the clone"
 msgstr "在克隆时初始化子模组"
 
@@ -10839,26 +12280,26 @@ msgstr "在克隆时初始化子模组"
 msgid "number of submodules cloned in parallel"
 msgstr "并发克隆的子模组的数量"
 
-#: builtin/clone.c:111 builtin/init-db.c:486
+#: builtin/clone.c:111 builtin/init-db.c:550
 msgid "template-directory"
 msgstr "模板目录"
 
-#: builtin/clone.c:112 builtin/init-db.c:487
+#: builtin/clone.c:112 builtin/init-db.c:551
 msgid "directory from which templates will be used"
 msgstr "模板目录将被使用"
 
-#: builtin/clone.c:114 builtin/clone.c:116 builtin/submodule--helper.c:1380
-#: builtin/submodule--helper.c:1860
+#: builtin/clone.c:114 builtin/clone.c:116 builtin/submodule--helper.c:1831
+#: builtin/submodule--helper.c:2336
 msgid "reference repository"
 msgstr "参考仓库"
 
-#: builtin/clone.c:118 builtin/submodule--helper.c:1382
-#: builtin/submodule--helper.c:1862
+#: builtin/clone.c:118 builtin/submodule--helper.c:1833
+#: builtin/submodule--helper.c:2338
 msgid "use --reference only while cloning"
 msgstr "仅在克隆时参考 --reference 指向的本地仓库"
 
-#: builtin/clone.c:119 builtin/column.c:27 builtin/merge-file.c:46
-#: builtin/pack-objects.c:3314 builtin/repack.c:319
+#: builtin/clone.c:119 builtin/column.c:27 builtin/init-db.c:561
+#: builtin/merge-file.c:46 builtin/pack-objects.c:3546 builtin/repack.c:332
 msgid "name"
 msgstr "名称"
 
@@ -10874,8 +12315,8 @@ msgstr "检出 <分支> 而不是远程 HEAD"
 msgid "path to git-upload-pack on the remote"
 msgstr "远程 git-upload-pack 路径"
 
-#: builtin/clone.c:125 builtin/fetch.c:152 builtin/grep.c:838
-#: builtin/pull.c:226
+#: builtin/clone.c:125 builtin/fetch.c:173 builtin/grep.c:849
+#: builtin/pull.c:208
 msgid "depth"
 msgstr "深度"
 
@@ -10883,7 +12324,8 @@ msgstr "深度"
 msgid "create a shallow clone of that depth"
 msgstr "创建一个指定深度的浅克隆"
 
-#: builtin/clone.c:127 builtin/fetch.c:154 builtin/pack-objects.c:3303
+#: builtin/clone.c:127 builtin/fetch.c:175 builtin/pack-objects.c:3535
+#: builtin/pull.c:211
 msgid "time"
 msgstr "时间"
 
@@ -10891,16 +12333,17 @@ msgstr "时间"
 msgid "create a shallow clone since a specific time"
 msgstr "从一个特定时间创建一个浅克隆"
 
-#: builtin/clone.c:129 builtin/fetch.c:156 builtin/fetch.c:179
-#: builtin/rebase.c:1395
+#: builtin/clone.c:129 builtin/fetch.c:177 builtin/fetch.c:200
+#: builtin/pull.c:214 builtin/pull.c:239 builtin/rebase.c:1311
 msgid "revision"
 msgstr "版本"
 
-#: builtin/clone.c:130 builtin/fetch.c:157
+#: builtin/clone.c:130 builtin/fetch.c:178 builtin/pull.c:215
 msgid "deepen history of shallow clone, excluding rev"
 msgstr "深化浅克隆的历史,除了特定版本"
 
-#: builtin/clone.c:132
+#: builtin/clone.c:132 builtin/submodule--helper.c:1843
+#: builtin/submodule--helper.c:2352
 msgid "clone only one branch, HEAD or --branch"
 msgstr "只克隆一个分支、HEAD 或 --branch"
 
@@ -10912,11 +12355,11 @@ msgstr "不要克隆任何标签,并且后续获取操作也不下载它们"
 msgid "any cloned submodules will be shallow"
 msgstr "子模组将以浅下载模式克隆"
 
-#: builtin/clone.c:137 builtin/init-db.c:495
+#: builtin/clone.c:137 builtin/init-db.c:559
 msgid "gitdir"
 msgstr "git目录"
 
-#: builtin/clone.c:138 builtin/init-db.c:496
+#: builtin/clone.c:138 builtin/init-db.c:560
 msgid "separate git dir from working tree"
 msgstr "git目录和工作区分离"
 
@@ -10928,23 +12371,23 @@ msgstr "key=value"
 msgid "set config inside the new repository"
 msgstr "在新仓库中设置配置信息"
 
-#: builtin/clone.c:142 builtin/fetch.c:174 builtin/ls-remote.c:76
-#: builtin/push.c:585 builtin/send-pack.c:172
+#: builtin/clone.c:142 builtin/fetch.c:195 builtin/ls-remote.c:76
+#: builtin/pull.c:230 builtin/push.c:560 builtin/send-pack.c:190
 msgid "server-specific"
 msgstr "server-specific"
 
-#: builtin/clone.c:142 builtin/fetch.c:174 builtin/ls-remote.c:76
-#: builtin/push.c:585 builtin/send-pack.c:173
+#: builtin/clone.c:142 builtin/fetch.c:195 builtin/ls-remote.c:76
+#: builtin/pull.c:231 builtin/push.c:560 builtin/send-pack.c:191
 msgid "option to transmit"
 msgstr "传输选项"
 
-#: builtin/clone.c:143 builtin/fetch.c:175 builtin/pull.c:239
-#: builtin/push.c:586
+#: builtin/clone.c:143 builtin/fetch.c:196 builtin/pull.c:234
+#: builtin/push.c:561
 msgid "use IPv4 addresses only"
 msgstr "只使用 IPv4 地址"
 
-#: builtin/clone.c:145 builtin/fetch.c:177 builtin/pull.c:242
-#: builtin/push.c:588
+#: builtin/clone.c:145 builtin/fetch.c:198 builtin/pull.c:237
+#: builtin/push.c:563
 msgid "use IPv6 addresses only"
 msgstr "只使用 IPv6 地址"
 
@@ -10952,7 +12395,11 @@ msgstr "只使用 IPv6 地址"
 msgid "any cloned submodules will use their remote-tracking branch"
 msgstr "任何克隆的子模组将使用它们的远程跟踪分支"
 
-#: builtin/clone.c:285
+#: builtin/clone.c:151
+msgid "initialize sparse-checkout file to include only files at root"
+msgstr "初始化稀疏检出文件,只包含根目录文件"
+
+#: builtin/clone.c:287
 msgid ""
 "No directory name could be guessed.\n"
 "Please specify a directory on the command line"
@@ -10960,47 +12407,42 @@ msgstr ""
 "无法猜到目录名。\n"
 "请在命令行指定一个目录"
 
-#: builtin/clone.c:338
+#: builtin/clone.c:340
 #, c-format
 msgid "info: Could not add alternate for '%s': %s\n"
 msgstr "info: 不能为 '%s' 添加一个备用:%s\n"
 
-#: builtin/clone.c:411
+#: builtin/clone.c:413
 #, c-format
 msgid "%s exists and is not a directory"
 msgstr "%s 存在且不是一个目录"
 
-#: builtin/clone.c:428
+#: builtin/clone.c:431
 #, c-format
 msgid "failed to start iterator over '%s'"
 msgstr "无法在 '%s' 上启动迭代器"
 
-#: builtin/clone.c:453
-#, c-format
-msgid "failed to unlink '%s'"
-msgstr "删除 '%s' 失败"
-
-#: builtin/clone.c:458
+#: builtin/clone.c:462
 #, c-format
 msgid "failed to create link '%s'"
 msgstr "创建链接 '%s' 失败"
 
-#: builtin/clone.c:462
+#: builtin/clone.c:466
 #, c-format
 msgid "failed to copy file to '%s'"
 msgstr "拷贝文件至 '%s' 失败"
 
-#: builtin/clone.c:467
+#: builtin/clone.c:471
 #, c-format
 msgid "failed to iterate over '%s'"
 msgstr "无法在 '%s' 上迭代"
 
-#: builtin/clone.c:492
+#: builtin/clone.c:498
 #, c-format
 msgid "done.\n"
 msgstr "完成。\n"
 
-#: builtin/clone.c:506
+#: builtin/clone.c:512
 msgid ""
 "Clone succeeded, but checkout failed.\n"
 "You can inspect what was checked out with 'git status'\n"
@@ -11010,130 +12452,139 @@ msgstr ""
 "您可以通过 'git status' 检查哪些已被检出,然后使用命令\n"
 "'git restore --source=HEAD :/' 重试\n"
 
-#: builtin/clone.c:583
+#: builtin/clone.c:589
 #, c-format
 msgid "Could not find remote branch %s to clone."
 msgstr "不能发现要克隆的远程分支 %s。"
 
-#: builtin/clone.c:702
+#: builtin/clone.c:708
 #, c-format
 msgid "unable to update %s"
 msgstr "不能更新 %s"
 
-#: builtin/clone.c:752
+#: builtin/clone.c:756
+msgid "failed to initialize sparse-checkout"
+msgstr "无法初始化稀疏检出"
+
+#: builtin/clone.c:779
 msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
 msgstr "远程 HEAD 指向一个不存在的引用,无法检出。\n"
 
-#: builtin/clone.c:783
+#: builtin/clone.c:811
 msgid "unable to checkout working tree"
 msgstr "不能检出工作区"
 
-#: builtin/clone.c:833
+#: builtin/clone.c:868
 msgid "unable to write parameters to config file"
 msgstr "无法将参数写入配置文件"
 
-#: builtin/clone.c:896
+#: builtin/clone.c:931
 msgid "cannot repack to clean up"
 msgstr "无法执行 repack 来清理"
 
-#: builtin/clone.c:898
+#: builtin/clone.c:933
 msgid "cannot unlink temporary alternates file"
 msgstr "无法删除临时的 alternates 文件"
 
-#: builtin/clone.c:938 builtin/receive-pack.c:1950
+#: builtin/clone.c:970 builtin/receive-pack.c:2434
 msgid "Too many arguments."
 msgstr "太多参数。"
 
-#: builtin/clone.c:942
+#: builtin/clone.c:974
 msgid "You must specify a repository to clone."
 msgstr "您必须指定一个仓库来克隆。"
 
-#: builtin/clone.c:955
+#: builtin/clone.c:987
 #, c-format
 msgid "--bare and --origin %s options are incompatible."
 msgstr "--bare 和 --origin %s 选项不兼容。"
 
-#: builtin/clone.c:958
+#: builtin/clone.c:990
 msgid "--bare and --separate-git-dir are incompatible."
 msgstr "--bare 和 --separate-git-dir 选项不兼容。"
 
-#: builtin/clone.c:971
+#: builtin/clone.c:1006
 #, c-format
 msgid "repository '%s' does not exist"
 msgstr "仓库 '%s' 不存在"
 
-#: builtin/clone.c:977 builtin/fetch.c:1660
+#: builtin/clone.c:1010 builtin/fetch.c:1841
 #, c-format
 msgid "depth %s is not a positive number"
 msgstr "深度 %s 不是一个正数"
 
-#: builtin/clone.c:987
+#: builtin/clone.c:1020
 #, c-format
 msgid "destination path '%s' already exists and is not an empty directory."
 msgstr "目标路径 '%s' 已经存在,并且不是一个空目录。"
 
-#: builtin/clone.c:997
+#: builtin/clone.c:1026
+#, c-format
+msgid "repository path '%s' already exists and is not an empty directory."
+msgstr "仓库路径 '%s' 已经存在,并且不是一个空目录。"
+
+#: builtin/clone.c:1040
 #, c-format
 msgid "working tree '%s' already exists."
 msgstr "工作区 '%s' 已经存在。"
 
-#: builtin/clone.c:1012 builtin/clone.c:1033 builtin/difftool.c:264
-#: builtin/worktree.c:303 builtin/worktree.c:335
+#: builtin/clone.c:1055 builtin/clone.c:1076 builtin/difftool.c:271
+#: builtin/log.c:1970 builtin/worktree.c:354 builtin/worktree.c:386
 #, c-format
 msgid "could not create leading directories of '%s'"
 msgstr "不能为 '%s' 创建先导目录"
 
-#: builtin/clone.c:1017
+#: builtin/clone.c:1060
 #, c-format
 msgid "could not create work tree dir '%s'"
 msgstr "不能创建工作区目录 '%s'"
 
-#: builtin/clone.c:1037
+#: builtin/clone.c:1080
 #, c-format
 msgid "Cloning into bare repository '%s'...\n"
 msgstr "克隆到纯仓库 '%s'...\n"
 
-#: builtin/clone.c:1039
+#: builtin/clone.c:1082
 #, c-format
 msgid "Cloning into '%s'...\n"
 msgstr "正克隆到 '%s'...\n"
 
-#: builtin/clone.c:1063
+#: builtin/clone.c:1106
 msgid ""
 "clone --recursive is not compatible with both --reference and --reference-if-"
 "able"
 msgstr "clone --recursive 和 --reference 以及 --reference-if-able 不兼容"
 
-#: builtin/clone.c:1124
+#: builtin/clone.c:1170
 msgid "--depth is ignored in local clones; use file:// instead."
 msgstr "--depth 在本地克隆时被忽略,请改用 file:// 协议。"
 
-#: builtin/clone.c:1126
+#: builtin/clone.c:1172
 msgid "--shallow-since is ignored in local clones; use file:// instead."
 msgstr "--shallow-since 在本地克隆时被忽略,请改用 file:// 协议。"
 
-#: builtin/clone.c:1128
+#: builtin/clone.c:1174
 msgid "--shallow-exclude is ignored in local clones; use file:// instead."
 msgstr "--shallow-exclude 在本地克隆时被忽略,请改用 file:// 协议。"
 
-#: builtin/clone.c:1130
+#: builtin/clone.c:1176
 msgid "--filter is ignored in local clones; use file:// instead."
 msgstr "--filter 在本地克隆时被忽略,请改用 file:// 协议。"
 
-#: builtin/clone.c:1133
+#: builtin/clone.c:1179
 msgid "source repository is shallow, ignoring --local"
 msgstr "源仓库是浅克隆,忽略 --local"
 
-#: builtin/clone.c:1138
+#: builtin/clone.c:1184
 msgid "--local is ignored"
 msgstr "--local 被忽略"
 
-#: builtin/clone.c:1215 builtin/clone.c:1223
+#: builtin/clone.c:1268 builtin/clone.c:1276
 #, c-format
 msgid "Remote branch %s not found in upstream %s"
 msgstr "远程分支 %s 在上游 %s 未发现"
 
-#: builtin/clone.c:1226
+#: builtin/clone.c:1279
 msgid "You appear to have cloned an empty repository."
 msgstr "您似乎克隆了一个空仓库。"
 
@@ -11169,6 +12620,110 @@ msgstr "两列之间的填充空间"
 msgid "--command must be the first argument"
 msgstr "--command 必须是第一个参数"
 
+#: builtin/commit-graph.c:13 builtin/commit-graph.c:22
+msgid ""
+"git commit-graph verify [--object-dir <objdir>] [--shallow] [--[no-]progress]"
+msgstr ""
+"git commit-graph verify [--object-dir <对象目录>] [--shallow] [--"
+"[no-]progress]"
+
+#: builtin/commit-graph.c:14 builtin/commit-graph.c:27
+msgid ""
+"git commit-graph write [--object-dir <objdir>] [--append] [--"
+"split[=<strategy>]] [--reachable|--stdin-packs|--stdin-commits] [--changed-"
+"paths] [--[no-]max-new-filters <n>] [--[no-]progress] <split options>"
+msgstr ""
+"git commit-graph write [--object-dir <对象目录>] [--append] [--split[=<策略"
+">]] [--reachable|--stdin-packs|--stdin-commits] [--changed-paths] [--"
+"[no-]max-new-filters <n>] [--[no-]progress] <切分选项>"
+
+#: builtin/commit-graph.c:64
+#, c-format
+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:1764
+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"
+msgstr "保存图形的对象目录"
+
+#: builtin/commit-graph.c:83
+msgid "if the commit-graph is split, only verify the tip file"
+msgstr "如果提交图形被拆分,只验证头一个文件"
+
+#: builtin/commit-graph.c:106
+#, c-format
+msgid "Could not open commit-graph '%s'"
+msgstr "无法打开提交图形 '%s'"
+
+#: builtin/commit-graph.c:142
+#, c-format
+msgid "unrecognized --split argument, %s"
+msgstr "未能识别的 --split 参数,%s"
+
+#: builtin/commit-graph.c:155
+#, c-format
+msgid "unexpected non-hex object ID: %s"
+msgstr "意外的非十六进制对象 ID:%s"
+
+#: builtin/commit-graph.c:160
+#, c-format
+msgid "invalid object: %s"
+msgstr "无效对象:%s"
+
+#: builtin/commit-graph.c:213
+msgid "start walk at all refs"
+msgstr "开始遍历所有引用"
+
+#: builtin/commit-graph.c:215
+msgid "scan pack-indexes listed by stdin for commits"
+msgstr "从标准输入中的包索引文件列表中扫描提交"
+
+#: builtin/commit-graph.c:217
+msgid "start walk at commits listed by stdin"
+msgstr "从标准输入中的提交开始扫描"
+
+#: builtin/commit-graph.c:219
+msgid "include all commits already in the commit-graph file"
+msgstr "包含 commit-graph 文件中已有所有提交"
+
+#: builtin/commit-graph.c:221
+msgid "enable computation for changed paths"
+msgstr "启用变更路径的计算"
+
+#: builtin/commit-graph.c:224
+msgid "allow writing an incremental commit-graph file"
+msgstr "允许写一个增量提交图形文件"
+
+#: builtin/commit-graph.c:228
+msgid "maximum number of commits in a non-base split commit-graph"
+msgstr "在非基本拆分提交图形中的最大提交数"
+
+#: builtin/commit-graph.c:230
+msgid "maximum ratio between two levels of a split commit-graph"
+msgstr "一个拆分提交图形的两个级别之间的最大比率"
+
+#: builtin/commit-graph.c:232
+msgid "only expire files older than a given date-time"
+msgstr "只让早于给定时间的文件过期"
+
+#: builtin/commit-graph.c:234
+msgid "maximum number of changed-path Bloom filters to compute"
+msgstr "要计算的变更路径布隆过滤器的最大数"
+
+#: builtin/commit-graph.c:255
+msgid "use at most one of --reachable, --stdin-commits, or --stdin-packs"
+msgstr "不能同时使用 --reachable、--stdin-commits 或 --stdin-packs"
+
+#: builtin/commit-graph.c:287
+msgid "Collecting commits from input"
+msgstr "正从标准输入收集提交"
+
 #: builtin/commit-tree.c:18
 msgid ""
 "git commit-tree [(-p <parent>)...] [-S[<keyid>]] [(-m <message>)...] [(-F "
@@ -11182,7 +12737,7 @@ msgstr ""
 msgid "duplicate parent %s ignored"
 msgstr "忽略重复的父提交 %s"
 
-#: builtin/commit-tree.c:56 builtin/commit-tree.c:136 builtin/log.c:525
+#: builtin/commit-tree.c:56 builtin/commit-tree.c:136 builtin/log.c:546
 #, c-format
 msgid "not a valid object name %s"
 msgstr "不是一个有效的对象名 %s"
@@ -11210,13 +12765,13 @@ msgstr "父提交"
 msgid "id of a parent commit object"
 msgstr "父提交对象 ID"
 
-#: builtin/commit-tree.c:114 builtin/commit.c:1500 builtin/merge.c:270
-#: builtin/notes.c:409 builtin/notes.c:575 builtin/stash.c:1460
-#: builtin/tag.c:412
+#: builtin/commit-tree.c:114 builtin/commit.c:1504 builtin/merge.c:272
+#: builtin/notes.c:409 builtin/notes.c:575 builtin/stash.c:1471
+#: builtin/tag.c:413
 msgid "message"
 msgstr "说明"
 
-#: builtin/commit-tree.c:115 builtin/commit.c:1500
+#: builtin/commit-tree.c:115 builtin/commit.c:1504
 msgid "commit message"
 msgstr "提交说明"
 
@@ -11224,8 +12779,8 @@ msgstr "提交说明"
 msgid "read commit log message from file"
 msgstr "从文件中读取提交说明"
 
-#: builtin/commit-tree.c:121 builtin/commit.c:1512 builtin/merge.c:287
-#: builtin/pull.c:194 builtin/revert.c:118
+#: builtin/commit-tree.c:121 builtin/commit.c:1516 builtin/merge.c:289
+#: builtin/pull.c:176 builtin/revert.c:118
 msgid "GPG sign commit"
 msgstr "GPG 提交签名"
 
@@ -11269,10 +12824,14 @@ msgstr ""
 "\n"
 
 #: builtin/commit.c:63
+msgid "Otherwise, please use 'git rebase --skip'\n"
+msgstr "否则,请使用 'git rebase --skip'\n"
+
+#: builtin/commit.c:66
 msgid "Otherwise, please use 'git cherry-pick --skip'\n"
 msgstr "否则,请使用 'git cherry-pick --skip'\n"
 
-#: builtin/commit.c:66
+#: builtin/commit.c:69
 msgid ""
 "and then use:\n"
 "\n"
@@ -11293,126 +12852,136 @@ msgstr ""
 "    git cherry-pick --skip\n"
 "\n"
 
-#: builtin/commit.c:315
+#: builtin/commit.c:312
 msgid "failed to unpack HEAD tree object"
 msgstr "解包 HEAD 树对象失败"
 
-#: builtin/commit.c:356
+#: builtin/commit.c:348
+msgid "--pathspec-from-file with -a does not make sense"
+msgstr "--pathspec-from-file 和 -a 在一起没有意义"
+
+#: builtin/commit.c:361
+msgid "No paths with --include/--only does not make sense."
+msgstr "参数 --include/--only 不跟路径没有意义。"
+
+#: builtin/commit.c:373
 msgid "unable to create temporary index"
 msgstr "不能创建临时索引"
 
-#: builtin/commit.c:362
+#: builtin/commit.c:382
 msgid "interactive add failed"
 msgstr "交互式添加失败"
 
-#: builtin/commit.c:376
+#: builtin/commit.c:397
 msgid "unable to update temporary index"
 msgstr "无法更新临时索引"
 
-#: builtin/commit.c:378
+#: builtin/commit.c:399
 msgid "Failed to update main cache tree"
 msgstr "不能更新树的主缓存"
 
-#: builtin/commit.c:403 builtin/commit.c:426 builtin/commit.c:472
+#: builtin/commit.c:424 builtin/commit.c:447 builtin/commit.c:495
 msgid "unable to write new_index file"
 msgstr "无法写 new_index 文件"
 
-#: builtin/commit.c:455
+#: builtin/commit.c:476
 msgid "cannot do a partial commit during a merge."
 msgstr "在合并过程中不能做部分提交。"
 
-#: builtin/commit.c:457
+#: builtin/commit.c:478
 msgid "cannot do a partial commit during a cherry-pick."
 msgstr "在拣选过程中不能做部分提交。"
 
-#: builtin/commit.c:465
+#: builtin/commit.c:480
+msgid "cannot do a partial commit during a rebase."
+msgstr "在变基过程中不能做部分提交。"
+
+#: builtin/commit.c:488
 msgid "cannot read the index"
 msgstr "无法读取索引"
 
-#: builtin/commit.c:484
+#: builtin/commit.c:507
 msgid "unable to write temporary index file"
 msgstr "无法写临时索引文件"
 
-#: builtin/commit.c:582
+#: builtin/commit.c:605
 #, c-format
 msgid "commit '%s' lacks author header"
 msgstr "提交 '%s' 缺少作者信息"
 
-#: builtin/commit.c:584
+#: builtin/commit.c:607
 #, c-format
 msgid "commit '%s' has malformed author line"
 msgstr "提交 '%s' 有格式错误的作者信息"
 
-#: builtin/commit.c:603
+#: builtin/commit.c:626
 msgid "malformed --author parameter"
 msgstr "格式错误的 --author 参数"
 
-#: builtin/commit.c:656
+#: builtin/commit.c:679
 msgid ""
 "unable to select a comment character that is not used\n"
 "in the current commit message"
 msgstr "无法选择一个未被当前提交说明使用的注释字符"
 
-#: builtin/commit.c:694 builtin/commit.c:727 builtin/commit.c:1072
+#: builtin/commit.c:717 builtin/commit.c:750 builtin/commit.c:1097
 #, c-format
 msgid "could not lookup commit %s"
 msgstr "不能查询提交 %s"
 
-#: builtin/commit.c:706 builtin/shortlog.c:319
+#: builtin/commit.c:729 builtin/shortlog.c:478
 #, c-format
 msgid "(reading log message from standard input)\n"
 msgstr "(正从标准输入中读取日志信息)\n"
 
-#: builtin/commit.c:708
+#: builtin/commit.c:731
 msgid "could not read log from standard input"
 msgstr "不能从标准输入中读取日志信息"
 
-#: builtin/commit.c:712
+#: builtin/commit.c:735
 #, c-format
 msgid "could not read log file '%s'"
 msgstr "不能读取日志文件 '%s'"
 
-#: builtin/commit.c:743 builtin/commit.c:759
+#: builtin/commit.c:766 builtin/commit.c:782
 msgid "could not read SQUASH_MSG"
 msgstr "不能读取 SQUASH_MSG"
 
-#: builtin/commit.c:750
+#: builtin/commit.c:773
 msgid "could not read MERGE_MSG"
 msgstr "不能读取 MERGE_MSG"
 
-#: builtin/commit.c:810
+#: builtin/commit.c:833
 msgid "could not write commit template"
 msgstr "不能写提交模版"
 
-#: builtin/commit.c:829
-#, c-format
+#: builtin/commit.c:853
 msgid ""
 "\n"
 "It looks like you may be committing a merge.\n"
-"If this is not correct, please remove the file\n"
-"\t%s\n"
+"If this is not correct, please run\n"
+"\tgit update-ref -d MERGE_HEAD\n"
 "and try again.\n"
 msgstr ""
 "\n"
-"似乎您正在做一个合并提交。如果不对,请删除文件\n"
-"\t%s\n"
+"似乎您正在做一个合并提交。如果不对,请运行\n"
+"\tgit update-ref -d MERGE_HEAD\n"
 "然后重试。\n"
 
-#: builtin/commit.c:834
-#, c-format
+#: builtin/commit.c:858
 msgid ""
 "\n"
 "It looks like you may be committing a cherry-pick.\n"
-"If this is not correct, please remove the file\n"
-"\t%s\n"
+"If this is not correct, please run\n"
+"\tgit update-ref -d CHERRY_PICK_HEAD\n"
 "and try again.\n"
 msgstr ""
 "\n"
-"似乎您正在做一个拣选提交。如果不对,请删除文件\n"
-"\t%s\n"
+"似乎您正在做一个拣选提交。如果不对,请运行\n"
+"\tgit update-ref -d CHERRY_PICK_HEAD\n"
 "然后重试。\n"
 
-#: builtin/commit.c:847
+#: builtin/commit.c:868
 #, c-format
 msgid ""
 "Please enter the commit message for your changes. Lines starting\n"
@@ -11421,7 +12990,7 @@ msgstr ""
 "请为您的变更输入提交说明。以 '%c' 开始的行将被忽略,而一个空的提交\n"
 "说明将会终止提交。\n"
 
-#: builtin/commit.c:855
+#: builtin/commit.c:876
 #, c-format
 msgid ""
 "Please enter the commit message for your changes. Lines starting\n"
@@ -11432,324 +13001,324 @@ msgstr ""
 "也可以删除它们。一个空的提交说明将会终止提交。\n"
 
 #  译者:为保证在输出中对齐,注意调整句中空格!
-#: builtin/commit.c:872
+#: builtin/commit.c:893
 #, c-format
 msgid "%sAuthor:    %.*s <%.*s>"
 msgstr "%s作者:  %.*s <%.*s>"
 
 #  译者:为保证在输出中对齐,注意调整句中空格!
-#: builtin/commit.c:880
+#: builtin/commit.c:901
 #, c-format
 msgid "%sDate:      %s"
 msgstr "%s日期:  %s"
 
 #  译者:为保证在输出中对齐,注意调整句中空格!
-#: builtin/commit.c:887
+#: builtin/commit.c:908
 #, c-format
 msgid "%sCommitter: %.*s <%.*s>"
 msgstr "%s提交者:%.*s <%.*s>"
 
-#: builtin/commit.c:905
+#: builtin/commit.c:926
 msgid "Cannot read index"
 msgstr "无法读取索引"
 
-#: builtin/commit.c:972
+#: builtin/commit.c:997
 msgid "Error building trees"
 msgstr "无法创建树对象"
 
-#: builtin/commit.c:986 builtin/tag.c:275
+#: builtin/commit.c:1011 builtin/tag.c:276
 #, c-format
 msgid "Please supply the message using either -m or -F option.\n"
 msgstr "请使用 -m 或 -F 选项提供提交说明。\n"
 
-#: builtin/commit.c:1030
+#: builtin/commit.c:1055
 #, c-format
 msgid "--author '%s' is not 'Name <email>' and matches no existing author"
 msgstr "--author '%s' 不是 '姓名 <邮箱>' 格式,且未能在现有作者中找到匹配"
 
-#: builtin/commit.c:1044
+#: builtin/commit.c:1069
 #, c-format
 msgid "Invalid ignored mode '%s'"
 msgstr "无效的忽略模式 '%s'"
 
-#: builtin/commit.c:1062 builtin/commit.c:1304
+#: builtin/commit.c:1087 builtin/commit.c:1331
 #, c-format
 msgid "Invalid untracked files mode '%s'"
 msgstr "无效的未追踪文件参数 '%s'"
 
-#: builtin/commit.c:1102
+#: builtin/commit.c:1127
 msgid "--long and -z are incompatible"
 msgstr "--long 和 -z 选项不兼容"
 
-#: builtin/commit.c:1146
+#: builtin/commit.c:1171
 msgid "Using both --reset-author and --author does not make sense"
 msgstr "同时使用 --reset-author 和 --author 没有意义"
 
-#: builtin/commit.c:1155
+#: builtin/commit.c:1180
 msgid "You have nothing to amend."
 msgstr "您没有可修补的提交。"
 
-#: builtin/commit.c:1158
+#: builtin/commit.c:1183
 msgid "You are in the middle of a merge -- cannot amend."
 msgstr "您正处于一个合并过程中 -- 无法修补提交。"
 
-#: builtin/commit.c:1160
+#: builtin/commit.c:1185
 msgid "You are in the middle of a cherry-pick -- cannot amend."
 msgstr "您正处于一个拣选过程中 -- 无法修补提交。"
 
-#: builtin/commit.c:1163
+#: builtin/commit.c:1187
+msgid "You are in the middle of a rebase -- cannot amend."
+msgstr "您正处于一个变基过程中 -- 无法修补提交。"
+
+#: builtin/commit.c:1190
 msgid "Options --squash and --fixup cannot be used together"
 msgstr "选项 --squash 和 --fixup 不能同时使用"
 
-#: builtin/commit.c:1173
+#: builtin/commit.c:1200
 msgid "Only one of -c/-C/-F/--fixup can be used."
 msgstr "只能用一个 -c/-C/-F/--fixup 选项。"
 
-#: builtin/commit.c:1175
+#: builtin/commit.c:1202
 msgid "Option -m cannot be combined with -c/-C/-F."
 msgstr "选项 -m 不能和 -c/-C/-F 同时使用。"
 
-#: builtin/commit.c:1183
+#: builtin/commit.c:1211
 msgid "--reset-author can be used only with -C, -c or --amend."
 msgstr "--reset-author 只能和 -C、-c 或 --amend 同时使用。"
 
-#: builtin/commit.c:1200
+#: builtin/commit.c:1229
 msgid "Only one of --include/--only/--all/--interactive/--patch can be used."
 msgstr "只能用一个 --include/--only/--all/--interactive/--patch 选项。"
 
-#: builtin/commit.c:1202
-msgid "No paths with --include/--only does not make sense."
-msgstr "参数 --include/--only 不跟路径没有意义。"
-
-#: builtin/commit.c:1208
+#: builtin/commit.c:1235
 #, c-format
 msgid "paths '%s ...' with -a does not make sense"
 msgstr "路径  '%s ...' 和 -a 选项同时使用没有意义"
 
-#: builtin/commit.c:1339 builtin/commit.c:1523
+#: builtin/commit.c:1366 builtin/commit.c:1527
 msgid "show status concisely"
 msgstr "以简洁的格式显示状态"
 
-#: builtin/commit.c:1341 builtin/commit.c:1525
+#: builtin/commit.c:1368 builtin/commit.c:1529
 msgid "show branch information"
 msgstr "显示分支信息"
 
-#: builtin/commit.c:1343
+#: builtin/commit.c:1370
 msgid "show stash information"
 msgstr "显示贮藏区信息"
 
-#: builtin/commit.c:1345 builtin/commit.c:1527
+#: builtin/commit.c:1372 builtin/commit.c:1531
 msgid "compute full ahead/behind values"
 msgstr "计算完整的领先/落后值"
 
-#: builtin/commit.c:1347
+#: builtin/commit.c:1374
 msgid "version"
 msgstr "版本"
 
-#: builtin/commit.c:1347 builtin/commit.c:1529 builtin/push.c:561
-#: builtin/worktree.c:651
+#: builtin/commit.c:1374 builtin/commit.c:1533 builtin/push.c:539
+#: builtin/worktree.c:722
 msgid "machine-readable output"
 msgstr "机器可读的输出"
 
-#: builtin/commit.c:1350 builtin/commit.c:1531
+#: builtin/commit.c:1377 builtin/commit.c:1535
 msgid "show status in long format (default)"
 msgstr "以长格式显示状态(默认)"
 
-#: builtin/commit.c:1353 builtin/commit.c:1534
+#: builtin/commit.c:1380 builtin/commit.c:1538
 msgid "terminate entries with NUL"
 msgstr "条目以 NUL 字符结尾"
 
-#: builtin/commit.c:1355 builtin/commit.c:1359 builtin/commit.c:1537
-#: builtin/fast-export.c:1125 builtin/fast-export.c:1128
-#: builtin/fast-export.c:1131 builtin/rebase.c:1471 parse-options.h:332
+#: builtin/commit.c:1382 builtin/commit.c:1386 builtin/commit.c:1541
+#: builtin/fast-export.c:1199 builtin/fast-export.c:1202
+#: builtin/fast-export.c:1205 builtin/rebase.c:1400 parse-options.h:336
 msgid "mode"
 msgstr "模式"
 
-#: builtin/commit.c:1356 builtin/commit.c:1537
+#: builtin/commit.c:1383 builtin/commit.c:1541
 msgid "show untracked files, optional modes: all, normal, no. (Default: all)"
 msgstr "显示未跟踪的文件,“模式”的可选参数:all、normal、no。(默认:all)"
 
-#: builtin/commit.c:1360
+#: builtin/commit.c:1387
 msgid ""
 "show ignored files, optional modes: traditional, matching, no. (Default: "
 "traditional)"
 msgstr ""
 "显示已忽略的文件,可选模式:traditional、matching、no。(默认:traditional)"
 
-#: builtin/commit.c:1362 parse-options.h:179
+#: builtin/commit.c:1389 parse-options.h:192
 msgid "when"
 msgstr "何时"
 
-#: builtin/commit.c:1363
+#: builtin/commit.c:1390
 msgid ""
 "ignore changes to submodules, optional when: all, dirty, untracked. "
 "(Default: all)"
 msgstr ""
 "忽略子模组的更改,“何时”的可选参数:all、dirty、untracked。(默认:all)"
 
-#: builtin/commit.c:1365
+#: builtin/commit.c:1392
 msgid "list untracked files in columns"
 msgstr "以列的方式显示未跟踪的文件"
 
-#: builtin/commit.c:1366
+#: builtin/commit.c:1393
 msgid "do not detect renames"
 msgstr "不检测重命名"
 
-#: builtin/commit.c:1368
+#: builtin/commit.c:1395
 msgid "detect renames, optionally set similarity index"
 msgstr "检测重命名,可以设置索引相似度"
 
-#: builtin/commit.c:1388
+#: builtin/commit.c:1415
 msgid "Unsupported combination of ignored and untracked-files arguments"
 msgstr "不支持已忽略和未跟踪文件参数的组合"
 
-#: builtin/commit.c:1493
+#: builtin/commit.c:1497
 msgid "suppress summary after successful commit"
 msgstr "提交成功后不显示概述信息"
 
-#: builtin/commit.c:1494
+#: builtin/commit.c:1498
 msgid "show diff in commit message template"
 msgstr "在提交说明模板里显示差异"
 
-#: builtin/commit.c:1496
+#: builtin/commit.c:1500
 msgid "Commit message options"
 msgstr "提交说明选项"
 
-#: builtin/commit.c:1497 builtin/merge.c:274 builtin/tag.c:414
+#: builtin/commit.c:1501 builtin/merge.c:276 builtin/tag.c:415
 msgid "read message from file"
 msgstr "从文件中读取提交说明"
 
-#: builtin/commit.c:1498
+#: builtin/commit.c:1502
 msgid "author"
 msgstr "作者"
 
-#: builtin/commit.c:1498
+#: builtin/commit.c:1502
 msgid "override author for commit"
 msgstr "提交时覆盖作者"
 
-#: builtin/commit.c:1499 builtin/gc.c:539
+#: builtin/commit.c:1503 builtin/gc.c:539
 msgid "date"
 msgstr "日期"
 
-#: builtin/commit.c:1499
+#: builtin/commit.c:1503
 msgid "override date for commit"
 msgstr "提交时覆盖日期"
 
-#: builtin/commit.c:1501 builtin/commit.c:1502 builtin/commit.c:1503
-#: builtin/commit.c:1504 parse-options.h:324 ref-filter.h:92
+#: builtin/commit.c:1505 builtin/commit.c:1506 builtin/commit.c:1507
+#: builtin/commit.c:1508 parse-options.h:328 ref-filter.h:87
 msgid "commit"
 msgstr "提交"
 
-#: builtin/commit.c:1501
+#: builtin/commit.c:1505
 msgid "reuse and edit message from specified commit"
 msgstr "重用并编辑指定提交的提交说明"
 
-#: builtin/commit.c:1502
+#: builtin/commit.c:1506
 msgid "reuse message from specified commit"
 msgstr "重用指定提交的提交说明"
 
-#: builtin/commit.c:1503
+#: builtin/commit.c:1507
 msgid "use autosquash formatted message to fixup specified commit"
 msgstr "使用 autosquash 格式的提交说明用以修正指定的提交"
 
-#: builtin/commit.c:1504
+#: builtin/commit.c:1508
 msgid "use autosquash formatted message to squash specified commit"
 msgstr "使用 autosquash 格式的提交说明用以压缩至指定的提交"
 
-#: builtin/commit.c:1505
+#: builtin/commit.c:1509
 msgid "the commit is authored by me now (used with -C/-c/--amend)"
 msgstr "现在将该提交的作者改为我(和 -C/-c/--amend 参数共用)"
 
-#: builtin/commit.c:1506 builtin/log.c:1564 builtin/merge.c:289
-#: builtin/pull.c:163 builtin/revert.c:110
+#: builtin/commit.c:1510 builtin/log.c:1741 builtin/merge.c:292
+#: builtin/pull.c:145 builtin/revert.c:110
 msgid "add Signed-off-by:"
 msgstr "添加 Signed-off-by: 签名"
 
-#: builtin/commit.c:1507
+#: builtin/commit.c:1511
 msgid "use specified template file"
 msgstr "使用指定的模板文件"
 
-#: builtin/commit.c:1508
+#: builtin/commit.c:1512
 msgid "force edit of commit"
 msgstr "强制编辑提交"
 
-#: builtin/commit.c:1510
+#: builtin/commit.c:1514
 msgid "include status in commit message template"
 msgstr "在提交说明模板里包含状态信息"
 
-#: builtin/commit.c:1515
+#: builtin/commit.c:1519
 msgid "Commit contents options"
 msgstr "提交内容选项"
 
-#: builtin/commit.c:1516
+#: builtin/commit.c:1520
 msgid "commit all changed files"
 msgstr "提交所有改动的文件"
 
-#: builtin/commit.c:1517
+#: builtin/commit.c:1521
 msgid "add specified files to index for commit"
 msgstr "添加指定的文件到索引区等待提交"
 
-#: builtin/commit.c:1518
+#: builtin/commit.c:1522
 msgid "interactively add files"
 msgstr "交互式添加文件"
 
-#: builtin/commit.c:1519
+#: builtin/commit.c:1523
 msgid "interactively add changes"
 msgstr "交互式添加变更"
 
-#: builtin/commit.c:1520
+#: builtin/commit.c:1524
 msgid "commit only specified files"
 msgstr "只提交指定的文件"
 
-#: builtin/commit.c:1521
+#: builtin/commit.c:1525
 msgid "bypass pre-commit and commit-msg hooks"
 msgstr "绕过 pre-commit 和 commit-msg 钩子"
 
-#: builtin/commit.c:1522
+#: builtin/commit.c:1526
 msgid "show what would be committed"
 msgstr "显示将要提交的内容"
 
-#: builtin/commit.c:1535
+#: builtin/commit.c:1539
 msgid "amend previous commit"
 msgstr "修改先前的提交"
 
-#: builtin/commit.c:1536
+#: builtin/commit.c:1540
 msgid "bypass post-rewrite hook"
 msgstr "绕过 post-rewrite 钩子"
 
-#: builtin/commit.c:1541
+#: builtin/commit.c:1547
 msgid "ok to record an empty change"
 msgstr "允许一个空提交"
 
-#: builtin/commit.c:1543
+#: builtin/commit.c:1549
 msgid "ok to record a change with an empty message"
 msgstr "允许空的提交说明"
 
-#: builtin/commit.c:1616
+#: builtin/commit.c:1622
 #, c-format
 msgid "Corrupt MERGE_HEAD file (%s)"
 msgstr "损坏的 MERGE_HEAD 文件(%s)"
 
-#: builtin/commit.c:1623
+#: builtin/commit.c:1629
 msgid "could not read MERGE_MODE"
 msgstr "不能读取 MERGE_MODE"
 
-#: builtin/commit.c:1642
+#: builtin/commit.c:1650
 #, c-format
 msgid "could not read commit message: %s"
 msgstr "不能读取提交说明:%s"
 
-#: builtin/commit.c:1649
+#: builtin/commit.c:1657
 #, c-format
 msgid "Aborting commit due to empty commit message.\n"
 msgstr "终止提交因为提交说明为空。\n"
 
-#: builtin/commit.c:1654
+#: builtin/commit.c:1662
 #, c-format
 msgid "Aborting commit; you did not edit the message.\n"
 msgstr "终止提交;您未更改来自模版的提交说明。\n"
 
-#: builtin/commit.c:1688
+#: builtin/commit.c:1696
 msgid ""
 "repository has been updated, but unable to write\n"
 "new_index file. Check that disk is not full and quota is\n"
@@ -11758,279 +13327,217 @@ msgstr ""
 "仓库已更新,但无法写 new_index 文件。检查是否磁盘已满或\n"
 "磁盘配额已耗尽,然后执行 \"git restore --staged :/\" 恢复。"
 
-#: builtin/commit-graph.c:11
-msgid "git commit-graph [--object-dir <objdir>]"
-msgstr "git commit-graph [--object-dir <对象目录>]"
-
-#: builtin/commit-graph.c:12 builtin/commit-graph.c:24
-msgid "git commit-graph read [--object-dir <objdir>]"
-msgstr "git commit-graph read [--object-dir <对象目录>]"
-
-#: builtin/commit-graph.c:13 builtin/commit-graph.c:19
-msgid "git commit-graph verify [--object-dir <objdir>] [--shallow]"
-msgstr "git commit-graph verify [--object-dir <对象目录>] [--shallow]"
-
-#: builtin/commit-graph.c:14 builtin/commit-graph.c:29
-msgid ""
-"git commit-graph write [--object-dir <objdir>] [--append|--split] [--"
-"reachable|--stdin-packs|--stdin-commits] <split options>"
-msgstr "git commit-graph write [--object-dir <对象目录>] [--append|--split] [--reachable|--stdin-packs|--stdin-commits] <split options>"
-
-#: builtin/commit-graph.c:54 builtin/commit-graph.c:100
-#: builtin/commit-graph.c:161 builtin/commit-graph.c:237 builtin/fetch.c:163
-#: builtin/log.c:1584
-msgid "dir"
-msgstr "目录"
-
-#: builtin/commit-graph.c:55 builtin/commit-graph.c:101
-#: builtin/commit-graph.c:162 builtin/commit-graph.c:238
-msgid "The object directory to store the graph"
-msgstr "保存图形的对象目录"
-
-#: builtin/commit-graph.c:57
-msgid "if the commit-graph is split, only verify the tip file"
-msgstr "如果提交图形被拆分,只验证头一个文件"
-
-#: builtin/commit-graph.c:73 builtin/commit-graph.c:116
-#, c-format
-msgid "Could not open commit-graph '%s'"
-msgstr "无法打开提交图形 '%s'"
-
-#: builtin/commit-graph.c:164
-msgid "start walk at all refs"
-msgstr "开始遍历所有引用"
-
-#: builtin/commit-graph.c:166
-msgid "scan pack-indexes listed by stdin for commits"
-msgstr "从标准输入中的包索引文件列表中扫描提交"
-
-#: builtin/commit-graph.c:168
-msgid "start walk at commits listed by stdin"
-msgstr "从标准输入中的提交开始扫描"
-
-#: builtin/commit-graph.c:170
-msgid "include all commits already in the commit-graph file"
-msgstr "包含 commit-graph 文件中已有所有提交"
-
-#: builtin/commit-graph.c:172
-msgid "allow writing an incremental commit-graph file"
-msgstr "允许写一个增量提交图形文件"
-
-#: builtin/commit-graph.c:174 builtin/commit-graph.c:178
-msgid "maximum number of commits in a non-base split commit-graph"
-msgstr "在非基本拆分提交图形中的最大提交数"
-
-#: builtin/commit-graph.c:176
-msgid "maximum ratio between two levels of a split commit-graph"
-msgstr "一个拆分提交图形的两个级别之间的最大比率"
-
-#: builtin/commit-graph.c:191
-msgid "use at most one of --reachable, --stdin-commits, or --stdin-packs"
-msgstr "不能同时使用 --reachable、--stdin-commits 或 --stdin-packs"
-
 #: builtin/config.c:11
 msgid "git config [<options>]"
 msgstr "git config [<选项>]"
 
-#: builtin/config.c:103 builtin/env--helper.c:23
+#: builtin/config.c:107 builtin/env--helper.c:27
 #, c-format
 msgid "unrecognized --type argument, %s"
 msgstr "未能识别的 --type 参数,%s"
 
-#: builtin/config.c:115
+#: builtin/config.c:119
 msgid "only one type at a time"
 msgstr "一次只能一个类型"
 
-#: builtin/config.c:124
+#: builtin/config.c:128
 msgid "Config file location"
 msgstr "配置文件位置"
 
-#: builtin/config.c:125
+#: builtin/config.c:129
 msgid "use global config file"
 msgstr "使用全局配置文件"
 
-#: builtin/config.c:126
+#: builtin/config.c:130
 msgid "use system config file"
 msgstr "使用系统级配置文件"
 
-#: builtin/config.c:127
+#: builtin/config.c:131
 msgid "use repository config file"
 msgstr "使用仓库级配置文件"
 
-#: builtin/config.c:128
+#: builtin/config.c:132
 msgid "use per-worktree config file"
 msgstr "使用工作区级别的配置文件"
 
-#: builtin/config.c:129
+#: builtin/config.c:133
 msgid "use given config file"
 msgstr "使用指定的配置文件"
 
-#: builtin/config.c:130
+#: builtin/config.c:134
 msgid "blob-id"
 msgstr "数据对象 ID"
 
-#: builtin/config.c:130
+#: builtin/config.c:134
 msgid "read config from given blob object"
 msgstr "从给定的数据对象读取配置"
 
-#: builtin/config.c:131
+#: builtin/config.c:135
 msgid "Action"
 msgstr "操作"
 
-#: builtin/config.c:132
+#: builtin/config.c:136
 msgid "get value: name [value-regex]"
 msgstr "获取值:name [value-regex]"
 
-#: builtin/config.c:133
+#: builtin/config.c:137
 msgid "get all values: key [value-regex]"
 msgstr "获得所有的值:key [value-regex]"
 
-#: builtin/config.c:134
+#: builtin/config.c:138
 msgid "get values for regexp: name-regex [value-regex]"
 msgstr "根据正则表达式获得值:name-regex [value-regex]"
 
-#: builtin/config.c:135
+#: builtin/config.c:139
 msgid "get value specific for the URL: section[.var] URL"
 msgstr "获得 URL 取值:section[.var] URL"
 
-#: builtin/config.c:136
+#: builtin/config.c:140
 msgid "replace all matching variables: name value [value_regex]"
 msgstr "替换所有匹配的变量:name value [value_regex]"
 
-#: builtin/config.c:137
+#: builtin/config.c:141
 msgid "add a new variable: name value"
 msgstr "添加一个新的变量:name value"
 
-#: builtin/config.c:138
+#: builtin/config.c:142
 msgid "remove a variable: name [value-regex]"
 msgstr "删除一个变量:name [value-regex]"
 
-#: builtin/config.c:139
+#: builtin/config.c:143
 msgid "remove all matches: name [value-regex]"
 msgstr "删除所有匹配项:name [value-regex]"
 
-#: builtin/config.c:140
+#: builtin/config.c:144
 msgid "rename section: old-name new-name"
 msgstr "重命名小节:old-name new-name"
 
-#: builtin/config.c:141
+#: builtin/config.c:145
 msgid "remove a section: name"
 msgstr "删除一个小节:name"
 
-#: builtin/config.c:142
+#: builtin/config.c:146
 msgid "list all"
 msgstr "列出所有"
 
-#: builtin/config.c:143
+#: builtin/config.c:147
 msgid "open an editor"
 msgstr "打开一个编辑器"
 
-#: builtin/config.c:144
+#: builtin/config.c:148
 msgid "find the color configured: slot [default]"
 msgstr "获得配置的颜色:配置 [默认]"
 
-#: builtin/config.c:145
+#: builtin/config.c:149
 msgid "find the color setting: slot [stdout-is-tty]"
 msgstr "获得颜色设置:配置 [stdout-is-tty]"
 
-#: builtin/config.c:146
+#: builtin/config.c:150
 msgid "Type"
 msgstr "类型"
 
-#: builtin/config.c:147 builtin/env--helper.c:38
+#: builtin/config.c:151 builtin/env--helper.c:43
 msgid "value is given this type"
 msgstr "取值为该类型"
 
-#: builtin/config.c:148
+#: builtin/config.c:152
 msgid "value is \"true\" or \"false\""
 msgstr "值是 \"true\" 或 \"false\""
 
-#: builtin/config.c:149
+#: builtin/config.c:153
 msgid "value is decimal number"
 msgstr "值是十进制数"
 
-#: builtin/config.c:150
+#: builtin/config.c:154
 msgid "value is --bool or --int"
-msgstr "值是 --bool or --int"
+msgstr "值是 --bool 或 --int"
+
+#: builtin/config.c:155
+msgid "value is --bool or string"
+msgstr "值是 --bool 或字符串"
 
-#: builtin/config.c:151
+#: builtin/config.c:156
 msgid "value is a path (file or directory name)"
 msgstr "值是一个路径(文件或目录名)"
 
-#: builtin/config.c:152
+#: builtin/config.c:157
 msgid "value is an expiry date"
 msgstr "值是一个到期日期"
 
-#: builtin/config.c:153
+#: builtin/config.c:158
 msgid "Other"
 msgstr "其它"
 
-#: builtin/config.c:154
+#: builtin/config.c:159
 msgid "terminate values with NUL byte"
 msgstr "终止值是 NUL 字节"
 
-#: builtin/config.c:155
+#: builtin/config.c:160
 msgid "show variable names only"
 msgstr "只显示变量名"
 
-#: builtin/config.c:156
+#: builtin/config.c:161
 msgid "respect include directives on lookup"
 msgstr "查询时参照 include 指令递归查找"
 
-#: builtin/config.c:157
+#: builtin/config.c:162
 msgid "show origin of config (file, standard input, blob, command line)"
 msgstr "显示配置的来源(文件、标准输入、数据对象,或命令行)"
 
-#: builtin/config.c:158 builtin/env--helper.c:40
+#: builtin/config.c:163
+msgid "show scope of config (worktree, local, global, system, command)"
+msgstr "显示配置的作用域(工作区、本地、全局、系统、命令)"
+
+#: builtin/config.c:164 builtin/env--helper.c:45
 msgid "value"
 msgstr "取值"
 
-#: builtin/config.c:158
+#: builtin/config.c:164
 msgid "with --get, use default value when missing entry"
 msgstr "使用 --get 参数,当缺少设置时使用默认值"
 
-#: builtin/config.c:172
+#: builtin/config.c:178
 #, c-format
 msgid "wrong number of arguments, should be %d"
 msgstr "错误的参数个数,应该为 %d 个"
 
-#: builtin/config.c:174
+#: builtin/config.c:180
 #, c-format
 msgid "wrong number of arguments, should be from %d to %d"
 msgstr "错误的参数个数,应该为从 %d 个到 %d 个"
 
-#: builtin/config.c:308
+#: builtin/config.c:334
 #, c-format
 msgid "invalid key pattern: %s"
 msgstr "无效键名模式:%s"
 
-#: builtin/config.c:344
+#: builtin/config.c:370
 #, c-format
 msgid "failed to format default config value: %s"
 msgstr "格式化默认配置值失败:%s"
 
-#: builtin/config.c:401
+#: builtin/config.c:434
 #, c-format
 msgid "cannot parse color '%s'"
 msgstr "无法解析颜色 '%s'"
 
-#: builtin/config.c:443
+#: builtin/config.c:476
 msgid "unable to parse default color value"
 msgstr "无法解析默认颜色值"
 
-#: builtin/config.c:496 builtin/config.c:742
+#: builtin/config.c:529 builtin/config.c:789
 msgid "not in a git directory"
 msgstr "不在 git 仓库中"
 
-#: builtin/config.c:499
+#: builtin/config.c:532
 msgid "writing to stdin is not supported"
 msgstr "不支持写到标准输入"
 
-#: builtin/config.c:502
+#: builtin/config.c:535
 msgid "writing config blobs is not supported"
 msgstr "不支持写到配置数据对象"
 
-#: builtin/config.c:587
+#: builtin/config.c:620
 #, c-format
 msgid ""
 "# This is Git's per-user configuration file.\n"
@@ -12045,23 +13552,27 @@ msgstr ""
 "#\tname = %s\n"
 "#\temail = %s\n"
 
-#: builtin/config.c:611
+#: builtin/config.c:644
 msgid "only one config file at a time"
 msgstr "一次只能有一个配置文件"
 
-#: builtin/config.c:616
+#: builtin/config.c:650
 msgid "--local can only be used inside a git repository"
-msgstr "--local 只能在一个仓库内使用"
+msgstr "--local 只能在 git 仓库内使用"
 
-#: builtin/config.c:619
+#: builtin/config.c:652
 msgid "--blob can only be used inside a git repository"
-msgstr "--blob 只能在一个仓库内使用"
+msgstr "--blob 只能在 git 仓库内使用"
 
-#: builtin/config.c:638
+#: builtin/config.c:654
+msgid "--worktree can only be used inside a git repository"
+msgstr "--worktree 只能在 git 仓库内使用"
+
+#: builtin/config.c:676
 msgid "$HOME not set"
 msgstr "$HOME 未设置"
 
-#: builtin/config.c:658
+#: builtin/config.c:700
 msgid ""
 "--worktree cannot be used with multiple working trees unless the config\n"
 "extension worktreeConfig is enabled. Please read \"CONFIGURATION FILE\"\n"
@@ -12070,51 +13581,51 @@ msgstr ""
 "不能和多个工作区一起使用 --worktree,除非启用 worktreeConfig 配置扩展。\n"
 "详情请阅读“git help worktree”的“CONFIGURATION FILE”小节"
 
-#: builtin/config.c:688
+#: builtin/config.c:735
 msgid "--get-color and variable type are incoherent"
 msgstr "--get-color 和变量类型不兼容"
 
-#: builtin/config.c:693
+#: builtin/config.c:740
 msgid "only one action at a time"
 msgstr "一次只能有一个动作"
 
-#: builtin/config.c:706
+#: builtin/config.c:753
 msgid "--name-only is only applicable to --list or --get-regexp"
 msgstr "--name-only 仅适用于 --list 或 --get-regexp"
 
-#: builtin/config.c:712
+#: builtin/config.c:759
 msgid ""
 "--show-origin is only applicable to --get, --get-all, --get-regexp, and --"
 "list"
 msgstr "--show-origin 仅适用于 --get、--get-all、--get-regexp 和 --list"
 
-#: builtin/config.c:718
+#: builtin/config.c:765
 msgid "--default is only applicable to --get"
 msgstr "--default 仅适用于 --get"
 
-#: builtin/config.c:731
+#: builtin/config.c:778
 #, c-format
 msgid "unable to read config file '%s'"
 msgstr "无法读取配置文件 '%s'"
 
-#: builtin/config.c:734
+#: builtin/config.c:781
 msgid "error processing config file(s)"
 msgstr "处理配置文件出错"
 
-#: builtin/config.c:744
+#: builtin/config.c:791
 msgid "editing stdin is not supported"
 msgstr "不支持编辑标准输入"
 
-#: builtin/config.c:746
+#: builtin/config.c:793
 msgid "editing blobs is not supported"
 msgstr "不支持编辑数据对象"
 
-#: builtin/config.c:760
+#: builtin/config.c:807
 #, c-format
 msgid "cannot create configuration file %s"
 msgstr "不能创建配置文件 %s"
 
-#: builtin/config.c:773
+#: builtin/config.c:820
 #, c-format
 msgid ""
 "cannot overwrite multiple values with a single value\n"
@@ -12123,7 +13634,7 @@ msgstr ""
 "无法用一个值覆盖多个值\n"
 "       使用一个正则表达式、--add 或 --replace-all 来修改 %s。"
 
-#: builtin/config.c:847 builtin/config.c:858
+#: builtin/config.c:894 builtin/config.c:905
 #, c-format
 msgid "no such section: %s"
 msgstr "无此小节:%s"
@@ -12136,11 +13647,36 @@ msgstr "git count-objects [-v] [-H | --human-readable]"
 msgid "print sizes in human readable format"
 msgstr "以用户可读的格式显示大小"
 
-#: builtin/describe.c:27
+#: builtin/credential-cache--daemon.c:226
+#, c-format
+msgid ""
+"The permissions on your socket directory are too loose; other\n"
+"users may be able to read your cached credentials. Consider running:\n"
+"\n"
+"\tchmod 0700 %s"
+msgstr ""
+"您的 socket 目录权限过于宽松,其他用户可能会读取您缓存的认证信息。考虑执"
+"行:\n"
+"\n"
+"\tchmod 0700 %s"
+
+#: builtin/credential-cache--daemon.c:275
+msgid "print debugging messages to stderr"
+msgstr "输出调试信息到标准错误"
+
+#: builtin/credential-cache--daemon.c:315
+msgid "credential-cache--daemon unavailable; no unix socket support"
+msgstr "credential-cache--daemon 不可用,不支持 unix 套接字"
+
+#: builtin/credential-cache.c:154
+msgid "credential-cache unavailable; no unix socket support"
+msgstr "credential-cache 不可用,不支持 unix 套接字"
+
+#: builtin/describe.c:26
 msgid "git describe [<options>] [<commit-ish>...]"
 msgstr "git describe [<选项>] [<提交号>...]"
 
-#: builtin/describe.c:28
+#: builtin/describe.c:27
 msgid "git describe [<options>] --dirty"
 msgstr "git describe [<选项>] --dirty"
 
@@ -12156,37 +13692,32 @@ msgstr "轻量级的"
 msgid "annotated"
 msgstr "附注的"
 
-#: builtin/describe.c:273
+#: builtin/describe.c:277
 #, c-format
 msgid "annotated tag %s not available"
 msgstr "附注标签 %s 无效"
 
-#: builtin/describe.c:277
-#, c-format
-msgid "annotated tag %s has no embedded name"
-msgstr "附注标签 %s 没有嵌入名称"
-
-#: builtin/describe.c:279
+#: builtin/describe.c:281
 #, c-format
-msgid "tag '%s' is really '%s' here"
-msgstr "标签 '%s' 的确是在 '%s'"
+msgid "tag '%s' is externally known as '%s'"
+msgstr "标签 '%s' 在外部被认为是 '%s'"
 
-#: builtin/describe.c:323
+#: builtin/describe.c:328
 #, c-format
 msgid "no tag exactly matches '%s'"
 msgstr "没有标签准确匹配 '%s'"
 
-#: builtin/describe.c:325
+#: builtin/describe.c:330
 #, c-format
 msgid "No exact match on refs or tags, searching to describe\n"
 msgstr "没有精确匹配到引用或标签,继续搜索进行描述\n"
 
-#: builtin/describe.c:379
+#: builtin/describe.c:397
 #, c-format
 msgid "finished search at %s\n"
 msgstr "完成搜索 %s\n"
 
-#: builtin/describe.c:405
+#: builtin/describe.c:424
 #, c-format
 msgid ""
 "No annotated tags can describe '%s'.\n"
@@ -12195,7 +13726,7 @@ msgstr ""
 "没有附注标签能描述 '%s'。\n"
 "然而,存在未附注标签:尝试 --tags。"
 
-#: builtin/describe.c:409
+#: builtin/describe.c:428
 #, c-format
 msgid ""
 "No tags can describe '%s'.\n"
@@ -12204,12 +13735,12 @@ msgstr ""
 "没有标签能描述 '%s'。\n"
 "尝试 --always,或者创建一些标签。"
 
-#: builtin/describe.c:439
+#: builtin/describe.c:458
 #, c-format
 msgid "traversed %lu commits\n"
 msgstr "已遍历 %lu 个提交\n"
 
-#: builtin/describe.c:442
+#: builtin/describe.c:461
 #, c-format
 msgid ""
 "more than %i tags found; listed %i most recent\n"
@@ -12218,147 +13749,157 @@ msgstr ""
 "发现多于 %i 个标签,列出最近的 %i 个\n"
 "在 %s 放弃搜索\n"
 
-#: builtin/describe.c:510
+#: builtin/describe.c:529
 #, c-format
 msgid "describe %s\n"
 msgstr "描述 %s\n"
 
-#: builtin/describe.c:513
+#: builtin/describe.c:532
 #, c-format
 msgid "Not a valid object name %s"
 msgstr "不是一个有效的对象名 %s"
 
-#: builtin/describe.c:521
+#: builtin/describe.c:540
 #, c-format
 msgid "%s is neither a commit nor blob"
 msgstr "%s 既不是提交也不是数据对象"
 
-#: builtin/describe.c:535
+#: builtin/describe.c:554
 msgid "find the tag that comes after the commit"
 msgstr "寻找该提交之后的标签"
 
-#: builtin/describe.c:536
+#: builtin/describe.c:555
 msgid "debug search strategy on stderr"
 msgstr "在标准错误上调试搜索策略"
 
-#: builtin/describe.c:537
+#: builtin/describe.c:556
 msgid "use any ref"
 msgstr "使用任意引用"
 
-#: builtin/describe.c:538
+#: builtin/describe.c:557
 msgid "use any tag, even unannotated"
 msgstr "使用任意标签,即使未附带注释"
 
-#: builtin/describe.c:539
+#: builtin/describe.c:558
 msgid "always use long format"
 msgstr "始终使用长提交号格式"
 
-#: builtin/describe.c:540
+#: builtin/describe.c:559
 msgid "only follow first parent"
 msgstr "只跟随第一个父提交"
 
-#: builtin/describe.c:543
+#: builtin/describe.c:562
 msgid "only output exact matches"
 msgstr "只输出精确匹配"
 
-#: builtin/describe.c:545
+#: builtin/describe.c:564
 msgid "consider <n> most recent tags (default: 10)"
 msgstr "考虑最近 <n> 个标签(默认:10)"
 
-#: builtin/describe.c:547
+#: builtin/describe.c:566
 msgid "only consider tags matching <pattern>"
 msgstr "只考虑匹配 <模式> 的标签"
 
-#: builtin/describe.c:549
+#: builtin/describe.c:568
 msgid "do not consider tags matching <pattern>"
 msgstr "不考虑匹配 <模式> 的标签"
 
-#: builtin/describe.c:551 builtin/name-rev.c:422
+#: builtin/describe.c:570 builtin/name-rev.c:535
 msgid "show abbreviated commit object as fallback"
 msgstr "显示简写的提交号作为后备"
 
-#: builtin/describe.c:552 builtin/describe.c:555
+#: builtin/describe.c:571 builtin/describe.c:574
 msgid "mark"
 msgstr "标记"
 
-#: builtin/describe.c:553
+#: builtin/describe.c:572
 msgid "append <mark> on dirty working tree (default: \"-dirty\")"
 msgstr "对于脏工作区,追加 <标记>(默认:\"-dirty\")"
 
-#: builtin/describe.c:556
+#: builtin/describe.c:575
 msgid "append <mark> on broken working tree (default: \"-broken\")"
 msgstr "对于损坏的工作区,追加 <标记>(默认:\"-broken\")"
 
-#: builtin/describe.c:574
+#: builtin/describe.c:593
 msgid "--long is incompatible with --abbrev=0"
 msgstr "--long 与 --abbrev=0 不兼容"
 
-#: builtin/describe.c:603
+#: builtin/describe.c:622
 msgid "No names found, cannot describe anything."
 msgstr "没有发现名称,无法描述任何东西。"
 
-#: builtin/describe.c:654
+#: builtin/describe.c:673
 msgid "--dirty is incompatible with commit-ishes"
 msgstr "--dirty 与提交号不兼容"
 
-#: builtin/describe.c:656
+#: builtin/describe.c:675
 msgid "--broken is incompatible with commit-ishes"
 msgstr "--broken 与提交号不兼容"
 
-#: builtin/diff.c:84
+#: builtin/diff.c:91
 #, c-format
 msgid "'%s': not a regular file or symlink"
 msgstr "'%s':不是一个正规文件或符号链接"
 
-#: builtin/diff.c:235
+#: builtin/diff.c:241
 #, c-format
 msgid "invalid option: %s"
 msgstr "无效选项:%s"
 
-#: builtin/diff.c:350
+#: builtin/diff.c:358
+#, c-format
+msgid "%s...%s: no merge base"
+msgstr "%s...%s:无合并基线"
+
+#: builtin/diff.c:468
 msgid "Not a git repository"
-msgstr "不是一个 git 仓库"
+msgstr "不是 git 仓库"
 
-#: builtin/diff.c:394
+#: builtin/diff.c:513
 #, c-format
 msgid "invalid object '%s' given."
 msgstr "提供了无效对象 '%s'。"
 
-#: builtin/diff.c:403
+#: builtin/diff.c:524
 #, c-format
 msgid "more than two blobs given: '%s'"
 msgstr "提供了超过两个数据对象:'%s'"
 
-#: builtin/diff.c:408
+#: builtin/diff.c:529
 #, c-format
 msgid "unhandled object '%s' given."
 msgstr "无法处理的对象 '%s'。"
 
+#: builtin/diff.c:563
+#, c-format
+msgid "%s...%s: multiple merge bases, using %s"
+msgstr "%s...%s:多条合并基线,使用 %s"
+
 #: builtin/difftool.c:30
 msgid "git difftool [<options>] [<commit> [<commit>]] [--] [<path>...]"
 msgstr "git difftool [<选项>] [<提交> [<提交>]] [--] [<路径>...]"
 
-#: builtin/difftool.c:253
+#: builtin/difftool.c:260
 #, c-format
 msgid "failed: %d"
 msgstr "失败:%d"
 
-#: builtin/difftool.c:295
+#: builtin/difftool.c:302
 #, c-format
 msgid "could not read symlink %s"
 msgstr "无法读取符号链接 %s"
 
-#: builtin/difftool.c:297
+#: builtin/difftool.c:304
 #, c-format
 msgid "could not read symlink file %s"
 msgstr "无法读取符号链接文件 %s"
 
-#: builtin/difftool.c:305
+#: builtin/difftool.c:312
 #, c-format
 msgid "could not read object %s for symlink %s"
 msgstr "无法读取符号链接 %2$s 指向的对象 %1$s"
 
-#: builtin/difftool.c:406
+#: builtin/difftool.c:413
 msgid ""
 "combined diff formats('-c' and '--cc') are not supported in\n"
 "directory diff mode('-d' and '--dir-diff')."
@@ -12366,83 +13907,83 @@ msgstr ""
 "不支持在目录比较模式('-d' 和 '--dir-diff')中采用组合差异格式('-c' 和 '--"
 "cc')。"
 
-#: builtin/difftool.c:626
+#: builtin/difftool.c:634
 #, c-format
 msgid "both files modified: '%s' and '%s'."
 msgstr "两个文件都被修改:'%s' 和 '%s'。"
 
-#: builtin/difftool.c:628
+#: builtin/difftool.c:636
 msgid "working tree file has been left."
 msgstr "工作区文件被留了下来。"
 
-#: builtin/difftool.c:639
+#: builtin/difftool.c:647
 #, c-format
 msgid "temporary files exist in '%s'."
 msgstr "临时文件存在于 '%s'。"
 
-#: builtin/difftool.c:640
+#: builtin/difftool.c:648
 msgid "you may want to cleanup or recover these."
 msgstr "您可能想要清理或者恢复它们。"
 
-#: builtin/difftool.c:689
+#: builtin/difftool.c:697
 msgid "use `diff.guitool` instead of `diff.tool`"
 msgstr "使用 `diff.guitool` 代替 `diff.tool`"
 
-#: builtin/difftool.c:691
+#: builtin/difftool.c:699
 msgid "perform a full-directory diff"
 msgstr "执行一个全目录差异比较"
 
-#: builtin/difftool.c:693
+#: builtin/difftool.c:701
 msgid "do not prompt before launching a diff tool"
 msgstr "启动差异比较工具之前不提示"
 
-#: builtin/difftool.c:698
+#: builtin/difftool.c:706
 msgid "use symlinks in dir-diff mode"
 msgstr "在 dir-diff 模式中使用符号链接"
 
-#: builtin/difftool.c:699
+#: builtin/difftool.c:707
 msgid "tool"
 msgstr "工具"
 
-#: builtin/difftool.c:700
+#: builtin/difftool.c:708
 msgid "use the specified diff tool"
 msgstr "使用指定的差异比较工具"
 
-#: builtin/difftool.c:702
+#: builtin/difftool.c:710
 msgid "print a list of diff tools that may be used with `--tool`"
 msgstr "显示可以用在 `--tool` 参数后的差异工具列表"
 
-#: builtin/difftool.c:705
+#: builtin/difftool.c:713
 msgid ""
 "make 'git-difftool' exit when an invoked diff tool returns a non - zero exit "
 "code"
 msgstr "当执行 diff 工具返回非零退出码时,使 'git-difftool' 退出"
 
-#: builtin/difftool.c:708
+#: builtin/difftool.c:716
 msgid "specify a custom command for viewing diffs"
 msgstr "指定一个用于查看差异的自定义命令"
 
-#: builtin/difftool.c:709
+#: builtin/difftool.c:717
 msgid "passed to `diff`"
 msgstr "传递给 `diff`"
 
-#: builtin/difftool.c:724
+#: builtin/difftool.c:732
 msgid "difftool requires worktree or --no-index"
 msgstr "difftool 要求工作区或者 --no-index"
 
-#: builtin/difftool.c:731
+#: builtin/difftool.c:739
 msgid "--dir-diff is incompatible with --no-index"
 msgstr "--dir-diff 和 --no-index 不兼容"
 
-#: builtin/difftool.c:734
+#: builtin/difftool.c:742
 msgid "--gui, --tool and --extcmd are mutually exclusive"
 msgstr "--gui、--tool 和 --extcmd 互斥"
 
-#: builtin/difftool.c:742
+#: builtin/difftool.c:750
 msgid "no <tool> given for --tool=<tool>"
 msgstr "没有为 --tool=<工具> 参数提供 <工具>"
 
-#: builtin/difftool.c:749
+#: builtin/difftool.c:757
 msgid "no <cmd> given for --extcmd=<cmd>"
 msgstr "没有为 --extcmd=<命令> 参数提供 <命令>"
 
@@ -12450,24 +13991,24 @@ msgstr "没有为 --extcmd=<命令> 参数提供 <命令>"
 msgid "git env--helper --type=[bool|ulong] <options> <env-var>"
 msgstr "git env--helper --type=[bool|ulong] <选项> <环境变量>"
 
-#: builtin/env--helper.c:37 builtin/hash-object.c:98
+#: builtin/env--helper.c:42 builtin/hash-object.c:98
 msgid "type"
 msgstr "类型"
 
-#: builtin/env--helper.c:41
+#: builtin/env--helper.c:46
 msgid "default for git_env_*(...) to fall back on"
 msgstr "git_env_*(...) 的默认值"
 
-#: builtin/env--helper.c:43
+#: builtin/env--helper.c:48
 msgid "be quiet only use git_env_*() value as exit code"
 msgstr "安静模式,只使用 git_env_*() 的值作为退出码"
 
-#: builtin/env--helper.c:62
+#: builtin/env--helper.c:67
 #, c-format
 msgid "option `--default' expects a boolean value with `--type=bool`, not `%s`"
 msgstr "选项 `--default' 和 `type=bool` 期望一个布尔值,不是 `%s`"
 
-#: builtin/env--helper.c:77
+#: builtin/env--helper.c:82
 #, c-format
 msgid ""
 "option `--default' expects an unsigned long value with `--type=ulong`, not `"
@@ -12478,245 +14019,332 @@ msgstr "选项 `--default' 和 `type=ulong` 期望一个无符号长整型,不
 msgid "git fast-export [rev-list-opts]"
 msgstr "git fast-export [rev-list-opts]"
 
-#: builtin/fast-export.c:1124
+#: builtin/fast-export.c:868
+msgid "Error: Cannot export nested tags unless --mark-tags is specified."
+msgstr "错误:除非指定 --mark-tags,否则无法导出嵌套标签。"
+
+#: builtin/fast-export.c:1178
+msgid "--anonymize-map token cannot be empty"
+msgstr "--anonymize-map 取值不能为空"
+
+#: builtin/fast-export.c:1198
 msgid "show progress after <n> objects"
 msgstr "在 <n> 个对象之后显示进度"
 
-#: builtin/fast-export.c:1126
+#: builtin/fast-export.c:1200
 msgid "select handling of signed tags"
 msgstr "选择如何处理签名标签"
 
-#: builtin/fast-export.c:1129
+#: builtin/fast-export.c:1203
 msgid "select handling of tags that tag filtered objects"
 msgstr "选择当标签指向被过滤对象时该标签的处理方式"
 
-#: builtin/fast-export.c:1132
+#: builtin/fast-export.c:1206
 msgid "select handling of commit messages in an alternate encoding"
 msgstr "选择使用备用编码处理提交说明"
 
-#: builtin/fast-export.c:1135
+#: builtin/fast-export.c:1209
 msgid "Dump marks to this file"
 msgstr "把标记存储到这个文件"
 
-#: builtin/fast-export.c:1137
+#: builtin/fast-export.c:1211
 msgid "Import marks from this file"
 msgstr "从这个文件导入标记"
 
-#: builtin/fast-export.c:1139
+#: builtin/fast-export.c:1215
+msgid "Import marks from this file if it exists"
+msgstr "从该文件导入标记(如果存在的话)"
+
+#: builtin/fast-export.c:1217
 msgid "Fake a tagger when tags lack one"
 msgstr "当标签缺少标记者字段时,假装提供一个"
 
-#: builtin/fast-export.c:1141
+#: builtin/fast-export.c:1219
 msgid "Output full tree for each commit"
 msgstr "每次提交都输出整个树"
 
-#: builtin/fast-export.c:1143
+#: builtin/fast-export.c:1221
 msgid "Use the done feature to terminate the stream"
 msgstr "使用 done 功能来终止流"
 
-#: builtin/fast-export.c:1144
+#: builtin/fast-export.c:1222
 msgid "Skip output of blob data"
 msgstr "跳过数据对象的输出"
 
-#: builtin/fast-export.c:1145 builtin/log.c:1632
+#: builtin/fast-export.c:1223 builtin/log.c:1811
 msgid "refspec"
 msgstr "引用规格"
 
-#: builtin/fast-export.c:1146
+#: builtin/fast-export.c:1224
 msgid "Apply refspec to exported refs"
 msgstr "对导出的引用应用引用规格"
 
-#: builtin/fast-export.c:1147
+#: builtin/fast-export.c:1225
 msgid "anonymize output"
 msgstr "匿名输出"
 
-#: builtin/fast-export.c:1149
+#: builtin/fast-export.c:1226
+msgid "from:to"
+msgstr "from:to"
+
+#: builtin/fast-export.c:1227
+msgid "convert <from> to <to> in anonymized output"
+msgstr "在匿名输出中将 <from> 转换为 <to>"
+
+#: builtin/fast-export.c:1230
 msgid "Reference parents which are not in fast-export stream by object id"
 msgstr "引用父对象 ID 不在 fast-export 流中"
 
-#: builtin/fast-export.c:1151
+#: builtin/fast-export.c:1232
 msgid "Show original object ids of blobs/commits"
 msgstr "显示数据对象/提交的原始对象 ID"
 
-#: builtin/fetch.c:30
+#: builtin/fast-export.c:1234
+msgid "Label tags with mark ids"
+msgstr "对带有标记 ID 的标签做标记"
+
+#: builtin/fast-export.c:1257
+msgid "--anonymize-map without --anonymize does not make sense"
+msgstr "--anonymize-map 而没有 --anonymize 没有意义"
+
+#: builtin/fast-export.c:1272
+msgid "Cannot pass both --import-marks and --import-marks-if-exists"
+msgstr "不能同时传递参数 --import-marks 和 --import-marks-if-exists"
+
+#: builtin/fast-import.c:3086
+#, c-format
+msgid "Missing from marks for submodule '%s'"
+msgstr "子模组 '%s' 缺少 from 标记"
+
+#: builtin/fast-import.c:3088
+#, c-format
+msgid "Missing to marks for submodule '%s'"
+msgstr "子模组 '%s' 缺少 to 标记"
+
+#: builtin/fast-import.c:3223
+#, c-format
+msgid "Expected 'mark' command, got %s"
+msgstr "预期 'mark' 命令,得到 %s"
+
+#: builtin/fast-import.c:3228
+#, c-format
+msgid "Expected 'to' command, got %s"
+msgstr "预期 'to' 命令,得到 %s"
+
+#: builtin/fast-import.c:3320
+msgid "Expected format name:filename for submodule rewrite option"
+msgstr "子模组重写选项的预期格式为 name:filename"
+
+#: builtin/fast-import.c:3374
+#, c-format
+msgid "feature '%s' forbidden in input without --allow-unsafe-features"
+msgstr "不带 --allow-unsafe-features 的输入中禁止使用功能 '%s'"
+
+#: builtin/fetch-pack.c:241
+#, c-format
+msgid "Lockfile created but not reported: %s"
+msgstr "Lockfile 已创建但未报告:%s"
+
+#: builtin/fetch.c:35
 msgid "git fetch [<options>] [<repository> [<refspec>...]]"
 msgstr "git fetch [<选项>] [<仓库> [<引用规格>...]]"
 
-#: builtin/fetch.c:31
+#: builtin/fetch.c:36
 msgid "git fetch [<options>] <group>"
 msgstr "git fetch [<选项>] <组>"
 
-#: builtin/fetch.c:32
+#: builtin/fetch.c:37
 msgid "git fetch --multiple [<options>] [(<repository> | <group>)...]"
 msgstr "git fetch --multiple [<选项>] [(<仓库> | <组>)...]"
 
-#: builtin/fetch.c:33
+#: builtin/fetch.c:38
 msgid "git fetch --all [<options>]"
 msgstr "git fetch --all [<选项>]"
 
-#: builtin/fetch.c:125 builtin/pull.c:203
+#: builtin/fetch.c:119
+msgid "fetch.parallel cannot be negative"
+msgstr "fetch.parallel 不能为负数"
+
+#: builtin/fetch.c:142 builtin/pull.c:185
 msgid "fetch from all remotes"
 msgstr "从所有的远程抓取"
 
-#: builtin/fetch.c:127 builtin/pull.c:206
+#: builtin/fetch.c:144 builtin/pull.c:245
+msgid "set upstream for git pull/fetch"
+msgstr "为 git pull/fetch 设置上游"
+
+#: builtin/fetch.c:146 builtin/pull.c:188
 msgid "append to .git/FETCH_HEAD instead of overwriting"
 msgstr "追加到 .git/FETCH_HEAD 而不是覆盖它"
 
-#: builtin/fetch.c:129 builtin/pull.c:209
+#: builtin/fetch.c:148 builtin/pull.c:191
 msgid "path to upload pack on remote end"
 msgstr "上传包到远程的路径"
 
-#: builtin/fetch.c:130
+#: builtin/fetch.c:149
 msgid "force overwrite of local reference"
 msgstr "强制覆盖本地引用"
 
-#: builtin/fetch.c:132
+#: builtin/fetch.c:151
 msgid "fetch from multiple remotes"
 msgstr "从多个远程抓取"
 
-#: builtin/fetch.c:134 builtin/pull.c:213
+#: builtin/fetch.c:153 builtin/pull.c:195
 msgid "fetch all tags and associated objects"
 msgstr "抓取所有的标签和关联对象"
 
-#: builtin/fetch.c:136
+#: builtin/fetch.c:155
 msgid "do not fetch all tags (--no-tags)"
 msgstr "不抓取任何标签(--no-tags)"
 
-#: builtin/fetch.c:138
+#: builtin/fetch.c:157
 msgid "number of submodules fetched in parallel"
 msgstr "子模组获取的并发数"
 
-#: builtin/fetch.c:140 builtin/pull.c:216
+#: builtin/fetch.c:159 builtin/pull.c:198
 msgid "prune remote-tracking branches no longer on remote"
 msgstr "清除远程已经不存在的分支的跟踪分支"
 
-#: builtin/fetch.c:142
+#: builtin/fetch.c:161
 msgid "prune local tags no longer on remote and clobber changed tags"
 msgstr "清除远程不存在的本地标签,并且替换变更标签"
 
 #  译者:可选值,不能翻译
-#: builtin/fetch.c:143 builtin/fetch.c:166 builtin/pull.c:140
+#: builtin/fetch.c:162 builtin/fetch.c:187 builtin/pull.c:122
 msgid "on-demand"
 msgstr "on-demand"
 
-#: builtin/fetch.c:144
+#: builtin/fetch.c:163
 msgid "control recursive fetching of submodules"
 msgstr "控制子模组的递归抓取"
 
-#: builtin/fetch.c:148 builtin/pull.c:224
+#: builtin/fetch.c:168
+msgid "write fetched references to the FETCH_HEAD file"
+msgstr "将获取到的引用写入 FETCH_HEAD 文件"
+
+#: builtin/fetch.c:169 builtin/pull.c:206
 msgid "keep downloaded pack"
 msgstr "保持下载包"
 
-#: builtin/fetch.c:150
+#: builtin/fetch.c:171
 msgid "allow updating of HEAD ref"
 msgstr "允许更新 HEAD 引用"
 
-#: builtin/fetch.c:153 builtin/fetch.c:159 builtin/pull.c:227
+#: builtin/fetch.c:174 builtin/fetch.c:180 builtin/pull.c:209
+#: builtin/pull.c:218
 msgid "deepen history of shallow clone"
 msgstr "深化浅克隆的历史"
 
-#: builtin/fetch.c:155
+#: builtin/fetch.c:176 builtin/pull.c:212
 msgid "deepen history of shallow repository based on time"
 msgstr "基于时间来深化浅克隆的历史"
 
-#: builtin/fetch.c:161 builtin/pull.c:230
+#: builtin/fetch.c:182 builtin/pull.c:221
 msgid "convert to a complete repository"
 msgstr "转换为一个完整的仓库"
 
-#: builtin/fetch.c:164
+#: builtin/fetch.c:185
 msgid "prepend this to submodule path output"
 msgstr "在子模组路径输出的前面加上此目录"
 
-#: builtin/fetch.c:167
+#: builtin/fetch.c:188
 msgid ""
 "default for recursive fetching of submodules (lower priority than config "
 "files)"
 msgstr "递归获取子模组的缺省值(比配置文件优先级低)"
 
-#: builtin/fetch.c:171 builtin/pull.c:233
+#: builtin/fetch.c:192 builtin/pull.c:224
 msgid "accept refs that update .git/shallow"
 msgstr "接受更新 .git/shallow 的引用"
 
-#: builtin/fetch.c:172 builtin/pull.c:235
+#: builtin/fetch.c:193 builtin/pull.c:226
 msgid "refmap"
 msgstr "引用映射"
 
-#: builtin/fetch.c:173 builtin/pull.c:236
+#: builtin/fetch.c:194 builtin/pull.c:227
 msgid "specify fetch refmap"
 msgstr "指定获取操作的引用映射"
 
-#: builtin/fetch.c:180
+#: builtin/fetch.c:201 builtin/pull.c:240
 msgid "report that we have only objects reachable from this object"
 msgstr "报告我们只拥有从该对象开始可达的对象"
 
-#: builtin/fetch.c:183
-msgid "run 'gc --auto' after fetching"
-msgstr "获取后执行 'gc --auto'"
+#: builtin/fetch.c:204 builtin/fetch.c:206
+msgid "run 'maintenance --auto' after fetching"
+msgstr "获取后执行 'maintenance --auto'"
 
-#: builtin/fetch.c:185 builtin/pull.c:245
+#: builtin/fetch.c:208 builtin/pull.c:243
 msgid "check for forced-updates on all updated branches"
 msgstr "在所有更新分支上检查强制更新"
 
-#: builtin/fetch.c:491
+#: builtin/fetch.c:210
+msgid "write the commit-graph after fetching"
+msgstr "抓取后写提交图"
+
+#: builtin/fetch.c:212
+msgid "accept refspecs from stdin"
+msgstr "从标准输入获取引用表达式"
+
+#: builtin/fetch.c:523
 msgid "Couldn't find remote ref HEAD"
 msgstr "无法发现远程 HEAD 引用"
 
-#: builtin/fetch.c:630
+#: builtin/fetch.c:677
 #, c-format
 msgid "configuration fetch.output contains invalid value %s"
 msgstr "配置变量 fetch.output 包含无效值 %s"
 
-#: builtin/fetch.c:728
+#: builtin/fetch.c:775
 #, c-format
 msgid "object %s not found"
 msgstr "对象 %s 未发现"
 
-#: builtin/fetch.c:732
+#: builtin/fetch.c:779
 msgid "[up to date]"
 msgstr "[最新]"
 
-#: builtin/fetch.c:745 builtin/fetch.c:761 builtin/fetch.c:833
+#: builtin/fetch.c:792 builtin/fetch.c:808 builtin/fetch.c:880
 msgid "[rejected]"
 msgstr "[已拒绝]"
 
-#: builtin/fetch.c:746
+#: builtin/fetch.c:793
 msgid "can't fetch in current branch"
 msgstr "当前分支下不能执行获取操作"
 
-#: builtin/fetch.c:756
+#: builtin/fetch.c:803
 msgid "[tag update]"
 msgstr "[标签更新]"
 
-#: builtin/fetch.c:757 builtin/fetch.c:794 builtin/fetch.c:816
-#: builtin/fetch.c:828
+#: builtin/fetch.c:804 builtin/fetch.c:841 builtin/fetch.c:863
+#: builtin/fetch.c:875
 msgid "unable to update local ref"
 msgstr "不能更新本地引用"
 
-#: builtin/fetch.c:761
+#: builtin/fetch.c:808
 msgid "would clobber existing tag"
 msgstr "会破坏现有的标签"
 
-#: builtin/fetch.c:783
+#: builtin/fetch.c:830
 msgid "[new tag]"
 msgstr "[新标签]"
 
-#: builtin/fetch.c:786
+#: builtin/fetch.c:833
 msgid "[new branch]"
 msgstr "[新分支]"
 
-#: builtin/fetch.c:789
+#: builtin/fetch.c:836
 msgid "[new ref]"
 msgstr "[新引用]"
 
-#: builtin/fetch.c:828
+#: builtin/fetch.c:875
 msgid "forced update"
 msgstr "强制更新"
 
-#: builtin/fetch.c:833
+#: builtin/fetch.c:880
 msgid "non-fast-forward"
 msgstr "非快进"
 
-#: builtin/fetch.c:854
+#: builtin/fetch.c:901
 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"
@@ -12726,7 +14354,7 @@ msgstr ""
 "要重新启用,请使用 '--show-forced-updates' 选项或运行\n"
 "'git config fetch.showForcedUpdates true'。"
 
-#: builtin/fetch.c:858
+#: builtin/fetch.c:905
 #, c-format
 msgid ""
 "It took %.2f seconds to check forced updates. You can use\n"
@@ -12737,22 +14365,22 @@ msgstr ""
 "花了 %.2f 秒来检查强制更新。您可以使用 '--no-show-forced-updates'\n"
 "或运行 'git config fetch.showForcedUpdates false' 以避免此项检查。\n"
 
-#: builtin/fetch.c:888
+#: builtin/fetch.c:939
 #, c-format
 msgid "%s did not send all necessary objects\n"
 msgstr "%s 未发送所有必需的对象\n"
 
-#: builtin/fetch.c:909
+#: builtin/fetch.c:960
 #, c-format
 msgid "reject %s because shallow roots are not allowed to be updated"
 msgstr "拒绝 %s 因为浅克隆不允许被更新"
 
-#: builtin/fetch.c:1000 builtin/fetch.c:1131
+#: builtin/fetch.c:1053 builtin/fetch.c:1191
 #, c-format
 msgid "From %.*s\n"
 msgstr "来自 %.*s\n"
 
-#: builtin/fetch.c:1011
+#: builtin/fetch.c:1064
 #, c-format
 msgid ""
 "some local refs could not be updated; try running\n"
@@ -12762,127 +14390,154 @@ msgstr ""
 " 'git remote prune %s' 来删除旧的、有冲突的分支"
 
 #  译者:注意保持前导空格
-#: builtin/fetch.c:1101
+#: builtin/fetch.c:1161
 #, c-format
 msgid "   (%s will become dangling)"
 msgstr "   (%s 将成为悬空状态)"
 
 #  译者:注意保持前导空格
-#: builtin/fetch.c:1102
+#: builtin/fetch.c:1162
 #, c-format
 msgid "   (%s has become dangling)"
 msgstr "   (%s 已成为悬空状态)"
 
-#: builtin/fetch.c:1134
+#: builtin/fetch.c:1194
 msgid "[deleted]"
 msgstr "[已删除]"
 
-#: builtin/fetch.c:1135 builtin/remote.c:1036
+#: builtin/fetch.c:1195 builtin/remote.c:1113
 msgid "(none)"
 msgstr "(无)"
 
-#: builtin/fetch.c:1158
+#: builtin/fetch.c:1218
 #, c-format
 msgid "Refusing to fetch into current branch %s of non-bare repository"
 msgstr "拒绝获取到非纯仓库的当前分支 %s"
 
-#: builtin/fetch.c:1177
+#: builtin/fetch.c:1237
 #, c-format
 msgid "Option \"%s\" value \"%s\" is not valid for %s"
 msgstr "选项 \"%s\" 的值 \"%s\" 对于 %s 是无效的"
 
-#: builtin/fetch.c:1180
+#: builtin/fetch.c:1240
 #, c-format
 msgid "Option \"%s\" is ignored for %s\n"
 msgstr "选项 \"%s\" 为 %s 所忽略\n"
 
-#: builtin/fetch.c:1484
+#: builtin/fetch.c:1448
+msgid "multiple branches detected, incompatible with --set-upstream"
+msgstr "检测到多分支,和 --set-upstream 不兼容"
+
+#: builtin/fetch.c:1463
+msgid "not setting upstream for a remote remote-tracking branch"
+msgstr "没有为一个远程跟踪分支设置上游"
+
+#: builtin/fetch.c:1465
+msgid "not setting upstream for a remote tag"
+msgstr "没有为一个远程标签设置上游"
+
+#: builtin/fetch.c:1467
+msgid "unknown branch type"
+msgstr "未知的分支类型"
+
+#: builtin/fetch.c:1469
+msgid ""
+"no source branch found.\n"
+"you need to specify exactly one branch with the --set-upstream option."
+msgstr ""
+"未发现源分支。\n"
+"您需要使用 --set-upstream 选项指定一个分支。"
+
+#: builtin/fetch.c:1598 builtin/fetch.c:1661
 #, c-format
 msgid "Fetching %s\n"
 msgstr "正在获取 %s\n"
 
-#: builtin/fetch.c:1486 builtin/remote.c:100
+#: builtin/fetch.c:1608 builtin/fetch.c:1663 builtin/remote.c:101
 #, c-format
 msgid "Could not fetch %s"
 msgstr "不能获取 %s"
 
-#: builtin/fetch.c:1532
-msgid ""
-"--filter can only be used with the remote configured in extensions."
-"partialClone"
-msgstr "只可以将 --filter 用于在 extensions.partialClone 中配置的远程仓库"
+#: builtin/fetch.c:1620
+#, c-format
+msgid "could not fetch '%s' (exit code: %d)\n"
+msgstr "无法获取 '%s'(退出码:%d)\n"
 
-#: builtin/fetch.c:1556
+#: builtin/fetch.c:1724
 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:1593
+#: builtin/fetch.c:1760
 msgid "You need to specify a tag name."
 msgstr "您需要指定一个标签名称。"
 
-#: builtin/fetch.c:1644
+#: builtin/fetch.c:1825
 msgid "Negative depth in --deepen is not supported"
 msgstr "--deepen 不支持负数深度"
 
-#: builtin/fetch.c:1646
+#: builtin/fetch.c:1827
 msgid "--deepen and --depth are mutually exclusive"
 msgstr "--deepen 和 --depth 是互斥的"
 
-#: builtin/fetch.c:1651
+#: builtin/fetch.c:1832
 msgid "--depth and --unshallow cannot be used together"
 msgstr "--depth 和 --unshallow 不能同时使用"
 
-#: builtin/fetch.c:1653
+#: builtin/fetch.c:1834
 msgid "--unshallow on a complete repository does not make sense"
 msgstr "对于一个完整的仓库,参数 --unshallow 没有意义"
 
-#: builtin/fetch.c:1669
+#: builtin/fetch.c:1851
 msgid "fetch --all does not take a repository argument"
 msgstr "fetch --all 不能带一个仓库参数"
 
-#: builtin/fetch.c:1671
+#: builtin/fetch.c:1853
 msgid "fetch --all does not make sense with refspecs"
 msgstr "fetch --all 带引用规格没有任何意义"
 
-#: builtin/fetch.c:1680
+#: builtin/fetch.c:1862
 #, c-format
 msgid "No such remote or remote group: %s"
 msgstr "没有这样的远程或远程组:%s"
 
-#: builtin/fetch.c:1687
+#: builtin/fetch.c:1869
 msgid "Fetching a group and specifying refspecs does not make sense"
 msgstr "获取组并指定引用规格没有意义"
 
-#: builtin/fetch.c:1703
+#: builtin/fetch.c:1887
 msgid ""
 "--filter can only be used with the remote configured in extensions."
 "partialclone"
 msgstr "只可以将 --filter 用于在 extensions.partialClone 中配置的远程仓库"
 
-#: builtin/fmt-merge-msg.c:18
+#: builtin/fetch.c:1891
+msgid "--stdin can only be used when fetching from one remote"
+msgstr "--stdin 仅在从一个远程仓库获取的时候可用"
+
+#: builtin/fmt-merge-msg.c:7
 msgid ""
 "git fmt-merge-msg [-m <message>] [--log[=<n>] | --no-log] [--file <file>]"
 msgstr "git fmt-merge-msg [-m <说明>] [--log[=<n>] | --no-log] [--file <文件>]"
 
-#: builtin/fmt-merge-msg.c:672
+#: builtin/fmt-merge-msg.c:18
 msgid "populate log with at most <n> entries from shortlog"
 msgstr "向提交说明中最多复制指定条目(合并而来的提交)的简短说明"
 
-#: builtin/fmt-merge-msg.c:675
+#: builtin/fmt-merge-msg.c:21
 msgid "alias for --log (deprecated)"
 msgstr "参数 --log 的别名(已弃用)"
 
-#: builtin/fmt-merge-msg.c:678
+#: builtin/fmt-merge-msg.c:24
 msgid "text"
 msgstr "文本"
 
-#: builtin/fmt-merge-msg.c:679
+#: builtin/fmt-merge-msg.c:25
 msgid "use <text> as start of message"
 msgstr "使用 <文本> 作为提交说明的开始"
 
-#: builtin/fmt-merge-msg.c:680
+#: builtin/fmt-merge-msg.c:26
 msgid "file to read from"
 msgstr "从文件中读取"
 
@@ -12895,8 +14550,8 @@ msgid "git for-each-ref [--points-at <object>]"
 msgstr "git for-each-ref [--points-at <对象>]"
 
 #: builtin/for-each-ref.c:12
-msgid "git for-each-ref [(--merged | --no-merged) [<commit>]]"
-msgstr "git for-each-ref [(--merged | --no-merged) [<提交>]]"
+msgid "git for-each-ref [--merged [<commit>]] [--no-merged [<commit>]]"
+msgstr "git for-each-ref [--merged [<提交>]] [--no-merged [<提交>]]"
 
 #: builtin/for-each-ref.c:13
 msgid "git for-each-ref [--contains [<commit>]] [--no-contains [<commit>]]"
@@ -12922,7 +14577,7 @@ msgstr "引用占位符适用于 Tcl"
 msgid "show only <n> matched refs"
 msgstr "只显示 <n> 个匹配的引用"
 
-#: builtin/for-each-ref.c:39 builtin/tag.c:439
+#: builtin/for-each-ref.c:39 builtin/tag.c:440
 msgid "respect format colors"
 msgstr "遵照格式中的颜色输出"
 
@@ -12946,32 +14601,32 @@ msgstr "只打印包含该提交的引用"
 msgid "print only refs which don't contain the commit"
 msgstr "只打印不包含该提交的引用"
 
-#: builtin/fsck.c:88 builtin/fsck.c:160 builtin/fsck.c:161
+#: builtin/fsck.c:69 builtin/fsck.c:148 builtin/fsck.c:149
 msgid "unknown"
 msgstr "未知"
 
 #. TRANSLATORS: e.g. error in tree 01bfda: <more explanation>
-#: builtin/fsck.c:120 builtin/fsck.c:136
+#: builtin/fsck.c:101 builtin/fsck.c:121
 #, c-format
 msgid "error in %s %s: %s"
 msgstr "%s %s 错误:%s"
 
 #. TRANSLATORS: e.g. warning in tree 01bfda: <more explanation>
-#: builtin/fsck.c:131
+#: builtin/fsck.c:115
 #, c-format
 msgid "warning in %s %s: %s"
 msgstr "%s %s 警告:%s"
 
-#: builtin/fsck.c:157 builtin/fsck.c:159
+#: builtin/fsck.c:144 builtin/fsck.c:147
 #, c-format
 msgid "broken link from %7s %s"
 msgstr "来自 %7s %s 的损坏的链接"
 
-#: builtin/fsck.c:168
+#: builtin/fsck.c:156
 msgid "wrong object type in link"
 msgstr "链接中错误的对象类型"
 
-#: builtin/fsck.c:184
+#: builtin/fsck.c:172
 #, c-format
 msgid ""
 "broken link from %7s %s\n"
@@ -12980,235 +14635,235 @@ msgstr ""
 "损坏的链接来自于 %7s %s\n"
 "              到 %7s %s"
 
-#: builtin/fsck.c:295
+#: builtin/fsck.c:283
 #, c-format
 msgid "missing %s %s"
 msgstr "缺失 %s %s"
 
-#: builtin/fsck.c:321
+#: builtin/fsck.c:310
 #, c-format
 msgid "unreachable %s %s"
 msgstr "不可达 %s %s"
 
-#: builtin/fsck.c:340
+#: builtin/fsck.c:330
 #, c-format
 msgid "dangling %s %s"
 msgstr "悬空 %s %s"
 
-#: builtin/fsck.c:349
+#: builtin/fsck.c:340
 msgid "could not create lost-found"
 msgstr "不能创建 lost-found"
 
-#: builtin/fsck.c:360
+#: builtin/fsck.c:351
 #, c-format
 msgid "could not finish '%s'"
 msgstr "不能完成 '%s'"
 
-#: builtin/fsck.c:377
+#: builtin/fsck.c:368
 #, c-format
 msgid "Checking %s"
 msgstr "正在检查 %s"
 
-#: builtin/fsck.c:415
+#: builtin/fsck.c:406
 #, c-format
 msgid "Checking connectivity (%d objects)"
 msgstr "正在检查连通性(%d 个对象)"
 
-#: builtin/fsck.c:434
+#: builtin/fsck.c:425
 #, c-format
 msgid "Checking %s %s"
 msgstr "正在检查 %s %s"
 
-#: builtin/fsck.c:438
+#: builtin/fsck.c:430
 msgid "broken links"
 msgstr "损坏的链接"
 
-#: builtin/fsck.c:447
+#: builtin/fsck.c:439
 #, c-format
 msgid "root %s"
 msgstr "根 %s"
 
-#: builtin/fsck.c:455
+#: builtin/fsck.c:447
 #, c-format
 msgid "tagged %s %s (%s) in %s"
 msgstr "标记 %s %s (%s) 于 %s"
 
-#: builtin/fsck.c:484
+#: builtin/fsck.c:476
 #, c-format
 msgid "%s: object corrupt or missing"
 msgstr "%s:对象损坏或丢失"
 
-#: builtin/fsck.c:509
+#: builtin/fsck.c:501
 #, c-format
 msgid "%s: invalid reflog entry %s"
 msgstr "%s:无效的引用日志条目 %s"
 
-#: builtin/fsck.c:523
+#: builtin/fsck.c:515
 #, c-format
 msgid "Checking reflog %s->%s"
 msgstr "正在检查引用日志 %s->%s"
 
-#: builtin/fsck.c:557
+#: builtin/fsck.c:549
 #, c-format
 msgid "%s: invalid sha1 pointer %s"
 msgstr "%s:无效的 sha1 指针 %s"
 
-#: builtin/fsck.c:564
+#: builtin/fsck.c:556
 #, c-format
 msgid "%s: not a commit"
 msgstr "%s:不是一个提交"
 
-#: builtin/fsck.c:619
+#: builtin/fsck.c:610
 msgid "notice: No default references"
 msgstr "注意:无默认引用"
 
-#: builtin/fsck.c:634
+#: builtin/fsck.c:625
 #, c-format
 msgid "%s: object corrupt or missing: %s"
 msgstr "%s:对象损坏或丢失:%s"
 
-#: builtin/fsck.c:647
+#: builtin/fsck.c:638
 #, c-format
 msgid "%s: object could not be parsed: %s"
 msgstr "%s:不能解析对象:%s"
 
-#: builtin/fsck.c:667
+#: builtin/fsck.c:658
 #, c-format
 msgid "bad sha1 file: %s"
 msgstr "坏的 sha1 文件:%s"
 
-#: builtin/fsck.c:682
+#: builtin/fsck.c:673
 msgid "Checking object directory"
 msgstr "正在检查对象目录"
 
-#: builtin/fsck.c:685
+#: builtin/fsck.c:676
 msgid "Checking object directories"
 msgstr "正在检查对象目录"
 
-#: builtin/fsck.c:700
+#: builtin/fsck.c:691
 #, c-format
 msgid "Checking %s link"
 msgstr "正在检查 %s 链接"
 
-#: builtin/fsck.c:705 builtin/index-pack.c:842
+#: builtin/fsck.c:696 builtin/index-pack.c:865
 #, c-format
 msgid "invalid %s"
 msgstr "无效的 %s"
 
-#: builtin/fsck.c:712
+#: builtin/fsck.c:703
 #, c-format
 msgid "%s points to something strange (%s)"
 msgstr "%s 指向奇怪的东西(%s)"
 
-#: builtin/fsck.c:718
+#: builtin/fsck.c:709
 #, c-format
 msgid "%s: detached HEAD points at nothing"
 msgstr "%s:分离头指针的指向不存在"
 
-#: builtin/fsck.c:722
+#: builtin/fsck.c:713
 #, c-format
 msgid "notice: %s points to an unborn branch (%s)"
 msgstr "注意:%s 指向一个尚未诞生的分支(%s)"
 
-#: builtin/fsck.c:734
+#: builtin/fsck.c:725
 msgid "Checking cache tree"
 msgstr "正在检查缓存树"
 
-#: builtin/fsck.c:739
+#: builtin/fsck.c:730
 #, c-format
 msgid "%s: invalid sha1 pointer in cache-tree"
 msgstr "%s:cache-tree 中无效的 sha1 指针"
 
-#: builtin/fsck.c:750
+#: builtin/fsck.c:739
 msgid "non-tree in cache-tree"
 msgstr "cache-tree 中非树对象"
 
-#: builtin/fsck.c:781
+#: builtin/fsck.c:770
 msgid "git fsck [<options>] [<object>...]"
 msgstr "git fsck [<选项>] [<对象>...]"
 
-#: builtin/fsck.c:787
+#: builtin/fsck.c:776
 msgid "show unreachable objects"
 msgstr "显示不可达的对象"
 
-#: builtin/fsck.c:788
+#: builtin/fsck.c:777
 msgid "show dangling objects"
 msgstr "显示悬空的对象"
 
-#: builtin/fsck.c:789
+#: builtin/fsck.c:778
 msgid "report tags"
 msgstr "报告标签"
 
-#: builtin/fsck.c:790
+#: builtin/fsck.c:779
 msgid "report root nodes"
 msgstr "报告根节点"
 
-#: builtin/fsck.c:791
+#: builtin/fsck.c:780
 msgid "make index objects head nodes"
 msgstr "将索引亦作为检查的头节点"
 
-#: builtin/fsck.c:792
+#: builtin/fsck.c:781
 msgid "make reflogs head nodes (default)"
 msgstr "将引用日志作为检查的头节点(默认)"
 
-#: builtin/fsck.c:793
+#: builtin/fsck.c:782
 msgid "also consider packs and alternate objects"
 msgstr "也考虑包和备用对象"
 
-#: builtin/fsck.c:794
+#: builtin/fsck.c:783
 msgid "check only connectivity"
 msgstr "仅检查连通性"
 
-#: builtin/fsck.c:795
+#: builtin/fsck.c:784
 msgid "enable more strict checking"
 msgstr "启用更严格的检查"
 
-#: builtin/fsck.c:797
+#: builtin/fsck.c:786
 msgid "write dangling objects in .git/lost-found"
 msgstr "将悬空对象写入 .git/lost-found 中"
 
-#: builtin/fsck.c:798 builtin/prune.c:132
+#: builtin/fsck.c:787 builtin/prune.c:134
 msgid "show progress"
 msgstr "显示进度"
 
-#: builtin/fsck.c:799
+#: builtin/fsck.c:788
 msgid "show verbose names for reachable objects"
 msgstr "显示可达对象的详细名称"
 
-#: builtin/fsck.c:859 builtin/index-pack.c:225
+#: builtin/fsck.c:847 builtin/index-pack.c:261
 msgid "Checking objects"
 msgstr "正在检查对象"
 
-#: builtin/fsck.c:887
+#: builtin/fsck.c:875
 #, c-format
 msgid "%s: object missing"
 msgstr "%s:对象缺失"
 
-#: builtin/fsck.c:899
+#: builtin/fsck.c:886
 #, c-format
 msgid "invalid parameter: expected sha1, got '%s'"
 msgstr "无效的参数:期望 sha1,得到 '%s'"
 
-#: builtin/gc.c:34
+#: builtin/gc.c:36
 msgid "git gc [<options>]"
 msgstr "git gc [<选项>]"
 
-#: builtin/gc.c:90
+#: builtin/gc.c:91
 #, c-format
 msgid "Failed to fstat %s: %s"
 msgstr "对 %s 调用 fstat 失败:%s"
 
-#: builtin/gc.c:126
+#: builtin/gc.c:127
 #, c-format
 msgid "failed to parse '%s' value '%s'"
 msgstr "无法解析 '%s' 值 '%s'"
 
-#: builtin/gc.c:476 builtin/init-db.c:55
+#: builtin/gc.c:476 builtin/init-db.c:58
 #, c-format
 msgid "cannot stat '%s'"
 msgstr "不能对 '%s' 调用 stat"
 
-#: builtin/gc.c:485 builtin/notes.c:240 builtin/tag.c:529
+#: builtin/gc.c:485 builtin/notes.c:240 builtin/tag.c:530
 #, c-format
 msgid "cannot read '%s'"
 msgstr "不能读取 '%s'"
@@ -13284,7 +14939,60 @@ msgid ""
 "There are too many unreachable loose objects; run 'git prune' to remove them."
 msgstr "有太多不可达的松散对象,运行 'git prune' 删除它们。"
 
-#: builtin/grep.c:29
+#: builtin/gc.c:705
+msgid "git maintenance run [--auto] [--[no-]quiet] [--task=<task>]"
+msgstr "git maintenance run [--auto] [--[no-]quiet] [--task=<任务>]"
+
+#: builtin/gc.c:812
+msgid "failed to write commit-graph"
+msgstr "无法写入提交图"
+
+#: builtin/gc.c:905
+#, c-format
+msgid "lock file '%s' exists, skipping maintenance"
+msgstr "锁文件 '%s' 已存在,跳过维护"
+
+#: builtin/gc.c:932
+#, c-format
+msgid "task '%s' failed"
+msgstr "任务 '%s' 失败"
+
+#: builtin/gc.c:979
+#, c-format
+msgid "'%s' is not a valid task"
+msgstr "'%s' 不是一个有效的任务"
+
+#: builtin/gc.c:984
+#, c-format
+msgid "task '%s' cannot be selected multiple times"
+msgstr "任务 '%s' 不能被多次选择"
+
+#: builtin/gc.c:999
+msgid "run tasks based on the state of the repository"
+msgstr "基于仓库状态来运行任务"
+
+#: builtin/gc.c:1001
+msgid "do not report progress or other information over stderr"
+msgstr "不通过标准错误报告进度或其它信息"
+
+#: builtin/gc.c:1002
+msgid "task"
+msgstr "任务"
+
+#: builtin/gc.c:1003
+msgid "run a specific task"
+msgstr "运行一个特定的任务"
+
+#: builtin/gc.c:1026
+msgid "git maintenance run [<options>]"
+msgstr "git maintenance run [<选项>]"
+
+#: builtin/gc.c:1037
+#, c-format
+msgid "invalid subcommand: %s"
+msgstr "无效子命令:%s"
+
+#: builtin/grep.c:30
 msgid "git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]"
 msgstr "git grep [<选项>] [-e] <模式> [<版本>...] [[--] <路径>...]"
 
@@ -13302,259 +15010,259 @@ msgstr "为 %2$s 设定的线程数 (%1$d) 无效"
 #. variable for tweaking threads, currently
 #. grep.threads
 #.
-#: builtin/grep.c:287 builtin/index-pack.c:1534 builtin/index-pack.c:1727
-#: builtin/pack-objects.c:2728
+#: builtin/grep.c:287 builtin/index-pack.c:1576 builtin/index-pack.c:1766
+#: builtin/pack-objects.c:2936
 #, c-format
 msgid "no threads support, ignoring %s"
 msgstr "没有线程支持,忽略 %s"
 
-#: builtin/grep.c:467 builtin/grep.c:591 builtin/grep.c:633
+#: builtin/grep.c:475 builtin/grep.c:600 builtin/grep.c:640
 #, c-format
 msgid "unable to read tree (%s)"
 msgstr "无法读取树(%s)"
 
-#: builtin/grep.c:648
+#: builtin/grep.c:655
 #, c-format
 msgid "unable to grep from object of type %s"
 msgstr "无法抓取来自于 %s 类型的对象"
 
-#: builtin/grep.c:714
+#: builtin/grep.c:725
 #, c-format
 msgid "switch `%c' expects a numerical value"
 msgstr "开关 `%c' 期望一个数字值"
 
-#: builtin/grep.c:813
+#: builtin/grep.c:824
 msgid "search in index instead of in the work tree"
 msgstr "在索引区搜索而不是在工作区"
 
-#: builtin/grep.c:815
+#: builtin/grep.c:826
 msgid "find in contents not managed by git"
 msgstr "在未被 git 管理的内容中查找"
 
 #  译者:中文字符串拼接,可删除前导空格
-#: builtin/grep.c:817
+#: builtin/grep.c:828
 msgid "search in both tracked and untracked files"
 msgstr "在跟踪和未跟踪的文件中搜索"
 
-#: builtin/grep.c:819
+#: builtin/grep.c:830
 msgid "ignore files specified via '.gitignore'"
 msgstr "忽略 '.gitignore' 包含的文件"
 
-#: builtin/grep.c:821
+#: builtin/grep.c:832
 msgid "recursively search in each submodule"
 msgstr "在每一个子模组中递归搜索"
 
-#: builtin/grep.c:824
+#: builtin/grep.c:835
 msgid "show non-matching lines"
 msgstr "显示未匹配的行"
 
-#: builtin/grep.c:826
+#: builtin/grep.c:837
 msgid "case insensitive matching"
 msgstr "不区分大小写匹配"
 
-#: builtin/grep.c:828
+#: builtin/grep.c:839
 msgid "match patterns only at word boundaries"
 msgstr "只在单词边界匹配模式"
 
-#: builtin/grep.c:830
+#: builtin/grep.c:841
 msgid "process binary files as text"
 msgstr "把二进制文件当做文本处理"
 
-#: builtin/grep.c:832
+#: builtin/grep.c:843
 msgid "don't match patterns in binary files"
 msgstr "不在二进制文件中匹配模式"
 
-#: builtin/grep.c:835
+#: builtin/grep.c:846
 msgid "process binary files with textconv filters"
 msgstr "用 textconv 过滤器处理二进制文件"
 
-#: builtin/grep.c:837
+#: builtin/grep.c:848
 msgid "search in subdirectories (default)"
 msgstr "在子目录中寻找(默认)"
 
-#: builtin/grep.c:839
+#: builtin/grep.c:850
 msgid "descend at most <depth> levels"
 msgstr "最多以指定的深度向下寻找"
 
-#: builtin/grep.c:843
+#: builtin/grep.c:854
 msgid "use extended POSIX regular expressions"
 msgstr "使用扩展的 POSIX 正则表达式"
 
-#: builtin/grep.c:846
+#: builtin/grep.c:857
 msgid "use basic POSIX regular expressions (default)"
 msgstr "使用基本的 POSIX 正则表达式(默认)"
 
-#: builtin/grep.c:849
+#: builtin/grep.c:860
 msgid "interpret patterns as fixed strings"
 msgstr "把模式解析为固定的字符串"
 
-#: builtin/grep.c:852
+#: builtin/grep.c:863
 msgid "use Perl-compatible regular expressions"
 msgstr "使用 Perl 兼容的正则表达式"
 
-#: builtin/grep.c:855
+#: builtin/grep.c:866
 msgid "show line numbers"
 msgstr "显示行号"
 
-#: builtin/grep.c:856
+#: builtin/grep.c:867
 msgid "show column number of first match"
 msgstr "显示第一个匹配的列号"
 
-#: builtin/grep.c:857
+#: builtin/grep.c:868
 msgid "don't show filenames"
 msgstr "不显示文件名"
 
-#: builtin/grep.c:858
+#: builtin/grep.c:869
 msgid "show filenames"
 msgstr "显示文件名"
 
-#: builtin/grep.c:860
+#: builtin/grep.c:871
 msgid "show filenames relative to top directory"
 msgstr "显示相对于顶级目录的文件名"
 
-#: builtin/grep.c:862
+#: builtin/grep.c:873
 msgid "show only filenames instead of matching lines"
 msgstr "只显示文件名而不显示匹配的行"
 
-#: builtin/grep.c:864
+#: builtin/grep.c:875
 msgid "synonym for --files-with-matches"
 msgstr "和 --files-with-matches 同义"
 
-#: builtin/grep.c:867
+#: builtin/grep.c:878
 msgid "show only the names of files without match"
 msgstr "只显示未匹配的文件名"
 
-#: builtin/grep.c:869
+#: builtin/grep.c:880
 msgid "print NUL after filenames"
 msgstr "在文件名后输出 NUL 字符"
 
-#: builtin/grep.c:872
+#: builtin/grep.c:883
 msgid "show only matching parts of a line"
 msgstr "只显示行中的匹配的部分"
 
-#: builtin/grep.c:874
+#: builtin/grep.c:885
 msgid "show the number of matches instead of matching lines"
 msgstr "显示总匹配行数,而不显示匹配的行"
 
-#: builtin/grep.c:875
+#: builtin/grep.c:886
 msgid "highlight matches"
 msgstr "高亮显示匹配项"
 
-#: builtin/grep.c:877
+#: builtin/grep.c:888
 msgid "print empty line between matches from different files"
 msgstr "在不同文件的匹配项之间打印空行"
 
-#: builtin/grep.c:879
+#: builtin/grep.c:890
 msgid "show filename only once above matches from same file"
 msgstr "只在同一文件的匹配项的上面显示一次文件名"
 
-#: builtin/grep.c:882
+#: builtin/grep.c:893
 msgid "show <n> context lines before and after matches"
 msgstr "显示匹配项前后的 <n> 行上下文"
 
-#: builtin/grep.c:885
+#: builtin/grep.c:896
 msgid "show <n> context lines before matches"
 msgstr "显示匹配项前 <n> 行上下文"
 
-#: builtin/grep.c:887
+#: builtin/grep.c:898
 msgid "show <n> context lines after matches"
 msgstr "显示匹配项后 <n> 行上下文"
 
-#: builtin/grep.c:889
+#: builtin/grep.c:900
 msgid "use <n> worker threads"
 msgstr "使用 <n> 个工作线程"
 
-#: builtin/grep.c:890
+#: builtin/grep.c:901
 msgid "shortcut for -C NUM"
 msgstr "快捷键 -C 数字"
 
-#: builtin/grep.c:893
+#: builtin/grep.c:904
 msgid "show a line with the function name before matches"
 msgstr "在匹配的前面显示一行函数名"
 
-#: builtin/grep.c:895
+#: builtin/grep.c:906
 msgid "show the surrounding function"
 msgstr "显示所在函数的前后内容"
 
-#: builtin/grep.c:898
+#: builtin/grep.c:909
 msgid "read patterns from file"
 msgstr "从文件读取模式"
 
-#: builtin/grep.c:900
+#: builtin/grep.c:911
 msgid "match <pattern>"
 msgstr "匹配 <模式>"
 
-#: builtin/grep.c:902
+#: builtin/grep.c:913
 msgid "combine patterns specified with -e"
 msgstr "组合用 -e 参数设定的模式"
 
-#: builtin/grep.c:914
+#: builtin/grep.c:925
 msgid "indicate hit with exit status without output"
 msgstr "不输出,而用退出码标识命中状态"
 
-#: builtin/grep.c:916
+#: builtin/grep.c:927
 msgid "show only matches from files that match all patterns"
 msgstr "只显示匹配所有模式的文件中的匹配"
 
-#: builtin/grep.c:918
+#: builtin/grep.c:929
 msgid "show parse tree for grep expression"
 msgstr "显示 grep 表达式的解析树"
 
-#: builtin/grep.c:922
+#: builtin/grep.c:933
 msgid "pager"
 msgstr "分页"
 
-#: builtin/grep.c:922
+#: builtin/grep.c:933
 msgid "show matching files in the pager"
 msgstr "分页显示匹配的文件"
 
-#: builtin/grep.c:926
+#: builtin/grep.c:937
 msgid "allow calling of grep(1) (ignored by this build)"
 msgstr "允许调用 grep(1)(本次构建忽略)"
 
-#: builtin/grep.c:990
+#: builtin/grep.c:1004
 msgid "no pattern given"
 msgstr "未提供匹配模式"
 
-#: builtin/grep.c:1026
+#: builtin/grep.c:1040
 msgid "--no-index or --untracked cannot be used with revs"
 msgstr "--no-index 或 --untracked 不能和版本同时使用"
 
-#: builtin/grep.c:1034
+#: builtin/grep.c:1048
 #, c-format
 msgid "unable to resolve revision: %s"
 msgstr "不能解析版本:%s"
 
-#: builtin/grep.c:1065
+#: builtin/grep.c:1078
+msgid "--untracked not supported with --recurse-submodules"
+msgstr "--untracked 不支持和 --recurse-submodules 共用"
+
+#: builtin/grep.c:1082
 msgid "invalid option combination, ignoring --threads"
 msgstr "无效的选项组合,忽略 --threads"
 
-#: builtin/grep.c:1068 builtin/pack-objects.c:3416
+#: builtin/grep.c:1085 builtin/pack-objects.c:3655
 msgid "no threads support, ignoring --threads"
 msgstr "没有线程支持,忽略 --threads"
 
-#: builtin/grep.c:1071 builtin/index-pack.c:1531 builtin/pack-objects.c:2725
+#: builtin/grep.c:1088 builtin/index-pack.c:1573 builtin/pack-objects.c:2933
 #, c-format
 msgid "invalid number of threads specified (%d)"
 msgstr "指定的线程数无效(%d)"
 
-#: builtin/grep.c:1094
+#: builtin/grep.c:1122
 msgid "--open-files-in-pager only works on the worktree"
 msgstr "--open-files-in-pager 仅用于工作区"
 
-#: builtin/grep.c:1117
-msgid "option not supported with --recurse-submodules"
-msgstr "选项不支持和 --recurse-submodules 共用"
-
-#: builtin/grep.c:1123
+#: builtin/grep.c:1148
 msgid "--cached or --untracked cannot be used with --no-index"
 msgstr "--cached 或 --untracked 不能与 --no-index 同时使用"
 
-#: builtin/grep.c:1129
+#: builtin/grep.c:1154
 msgid "--[no-]exclude-standard cannot be used for tracked contents"
 msgstr "--[no-]exclude-standard 不能用于已跟踪内容"
 
-#: builtin/grep.c:1137
+#: builtin/grep.c:1162
 msgid "both --cached and trees are given"
 msgstr "同时给出了 --cached 和树对象"
 
@@ -13595,66 +15303,66 @@ msgstr "允许对任意随机垃圾数据做散列来创建损坏的对象以便
 msgid "process file as it were from this path"
 msgstr "处理文件并假设其来自于此路径"
 
-#: builtin/help.c:46
+#: builtin/help.c:47
 msgid "print all available commands"
 msgstr "打印所有可用的命令"
 
-#: builtin/help.c:47
+#: builtin/help.c:48
 msgid "exclude guides"
 msgstr "排除向导"
 
-#: builtin/help.c:48
+#: builtin/help.c:49
 msgid "print list of useful guides"
 msgstr "显示有用的指南列表"
 
-#: builtin/help.c:49
+#: builtin/help.c:50
 msgid "print all configuration variable names"
 msgstr "打印所有配置变量名称"
 
-#: builtin/help.c:51
+#: builtin/help.c:52
 msgid "show man page"
 msgstr "显示 man 手册"
 
-#: builtin/help.c:52
+#: builtin/help.c:53
 msgid "show manual in web browser"
 msgstr "在 web 浏览器中显示手册"
 
-#: builtin/help.c:54
+#: builtin/help.c:55
 msgid "show info page"
 msgstr "显示 info 手册"
 
-#: builtin/help.c:56
+#: builtin/help.c:57
 msgid "print command description"
 msgstr "打印命令描述"
 
-#: builtin/help.c:61
+#: builtin/help.c:62
 msgid "git help [--all] [--guides] [--man | --web | --info] [<command>]"
 msgstr "git help [--all] [--guides] [--man | --web | --info] [<命令>]"
 
-#: builtin/help.c:77
+#: builtin/help.c:163
 #, c-format
 msgid "unrecognized help format '%s'"
 msgstr "未能识别的帮助格式 '%s'"
 
-#: builtin/help.c:104
+#: builtin/help.c:190
 msgid "Failed to start emacsclient."
 msgstr "无法启动 emacsclient。"
 
-#: builtin/help.c:117
+#: builtin/help.c:203
 msgid "Failed to parse emacsclient version."
 msgstr "无法解析 emacsclient 版本。"
 
-#: builtin/help.c:125
+#: builtin/help.c:211
 #, c-format
 msgid "emacsclient version '%d' too old (< 22)."
 msgstr "emacsclient 版本 '%d' 太老(< 22)。"
 
-#: builtin/help.c:143 builtin/help.c:165 builtin/help.c:175 builtin/help.c:183
+#: builtin/help.c:229 builtin/help.c:251 builtin/help.c:261 builtin/help.c:269
 #, c-format
 msgid "failed to exec '%s'"
 msgstr "执行 '%s' 失败"
 
-#: builtin/help.c:221
+#: builtin/help.c:307
 #, c-format
 msgid ""
 "'%s': path for unsupported man viewer.\n"
@@ -13663,7 +15371,7 @@ msgstr ""
 "'%s':不支持的 man 手册查看器的路径。\n"
 "请使用 'man.<工具>.cmd'。"
 
-#: builtin/help.c:233
+#: builtin/help.c:319
 #, c-format
 msgid ""
 "'%s': cmd for supported man viewer.\n"
@@ -13672,396 +15380,424 @@ msgstr ""
 "'%s': 支持的 man 手册查看器命令。\n"
 "请使用 'man.<工具>.path'。"
 
-#: builtin/help.c:350
+#: builtin/help.c:436
 #, c-format
 msgid "'%s': unknown man viewer."
 msgstr "'%s':未知的 man 查看器。"
 
-#: builtin/help.c:367
+#: builtin/help.c:453
 msgid "no man viewer handled the request"
 msgstr "没有 man 查看器处理此请求"
 
-#: builtin/help.c:375
+#: builtin/help.c:461
 msgid "no info viewer handled the request"
 msgstr "没有 info 查看器处理此请求"
 
-#: builtin/help.c:434 builtin/help.c:445 git.c:336
+#: builtin/help.c:520 builtin/help.c:531 git.c:337
 #, c-format
 msgid "'%s' is aliased to '%s'"
 msgstr "'%s' 是 '%s' 的别名"
 
-#: builtin/help.c:448 git.c:365
+#: builtin/help.c:534 git.c:369
 #, c-format
 msgid "bad alias.%s string: %s"
 msgstr "坏的 alias.%s 字符串:%s"
 
-#: builtin/help.c:477 builtin/help.c:507
+#: builtin/help.c:563 builtin/help.c:593
 #, c-format
 msgid "usage: %s%s"
 msgstr "用法:%s%s"
 
-#: builtin/help.c:491
+#: builtin/help.c:577
 msgid "'git help config' for more information"
 msgstr "'git help config' 获取更多信息"
 
-#: builtin/index-pack.c:185
+#: builtin/index-pack.c:221
 #, c-format
 msgid "object type mismatch at %s"
 msgstr "%s 的对象类型不匹配"
 
-#: builtin/index-pack.c:205
+#: builtin/index-pack.c:241
 #, c-format
 msgid "did not receive expected object %s"
 msgstr "未能获取预期的对象 %s"
 
-#: builtin/index-pack.c:208
+#: builtin/index-pack.c:244
 #, c-format
 msgid "object %s: expected type %s, found %s"
 msgstr "对象 %s:应为类型 %s,却是 %s"
 
-#: builtin/index-pack.c:258
+#: builtin/index-pack.c:294
 #, c-format
 msgid "cannot fill %d byte"
 msgid_plural "cannot fill %d bytes"
 msgstr[0] "无法填充 %d 字节"
 msgstr[1] "无法填充 %d 字节"
 
-#: builtin/index-pack.c:268
+#: builtin/index-pack.c:304
 msgid "early EOF"
 msgstr "过早的文件结束符(EOF)"
 
-#: builtin/index-pack.c:269
+#: builtin/index-pack.c:305
 msgid "read error on input"
 msgstr "输入上的读错误"
 
-#: builtin/index-pack.c:281
+#: builtin/index-pack.c:317
 msgid "used more bytes than were available"
 msgstr "用掉了超过可用的字节"
 
-#: builtin/index-pack.c:288 builtin/pack-objects.c:604
+#: builtin/index-pack.c:324 builtin/pack-objects.c:619
 msgid "pack too large for current definition of off_t"
 msgstr "包太大超过了当前 off_t 的定义"
 
-#: builtin/index-pack.c:291 builtin/unpack-objects.c:94
+#: builtin/index-pack.c:327 builtin/unpack-objects.c:95
 msgid "pack exceeds maximum allowed size"
 msgstr "包超过了最大允许值"
 
-#: builtin/index-pack.c:312
+#: builtin/index-pack.c:342 builtin/repack.c:254
+#, c-format
+msgid "unable to create '%s'"
+msgstr "不能创建 '%s'"
+
+#: builtin/index-pack.c:348
 #, c-format
 msgid "cannot open packfile '%s'"
 msgstr "无法打开包文件 '%s'"
 
-#: builtin/index-pack.c:326
+#: builtin/index-pack.c:362
 msgid "pack signature mismatch"
 msgstr "包签名不匹配"
 
-#: builtin/index-pack.c:328
+#: builtin/index-pack.c:364
 #, c-format
 msgid "pack version %<PRIu32> unsupported"
 msgstr "不支持包版本 %<PRIu32>"
 
-#: builtin/index-pack.c:346
+#: builtin/index-pack.c:382
 #, c-format
 msgid "pack has bad object at offset %<PRIuMAX>: %s"
 msgstr "包中有错误的对象位于偏移量 %<PRIuMAX>:%s"
 
-#: builtin/index-pack.c:466
+#: builtin/index-pack.c:488
 #, c-format
 msgid "inflate returned %d"
 msgstr "解压缩返回 %d"
 
-#: builtin/index-pack.c:515
+#: builtin/index-pack.c:537
 msgid "offset value overflow for delta base object"
 msgstr "偏移值覆盖了 delta 基准对象"
 
-#: builtin/index-pack.c:523
+#: builtin/index-pack.c:545
 msgid "delta base offset is out of bound"
 msgstr "delta 基准偏移越界"
 
-#: builtin/index-pack.c:531
+#: builtin/index-pack.c:553
 #, c-format
 msgid "unknown object type %d"
 msgstr "未知对象类型 %d"
 
-#: builtin/index-pack.c:562
+#: builtin/index-pack.c:584
 msgid "cannot pread pack file"
 msgstr "无法读取包文件"
 
-#: builtin/index-pack.c:564
+#: builtin/index-pack.c:586
 #, c-format
 msgid "premature end of pack file, %<PRIuMAX> byte missing"
 msgid_plural "premature end of pack file, %<PRIuMAX> bytes missing"
 msgstr[0] "包文件过早结束,缺少 %<PRIuMAX> 字节"
 msgstr[1] "包文件过早结束,缺少 %<PRIuMAX> 字节"
 
-#: builtin/index-pack.c:590
+#: builtin/index-pack.c:612
 msgid "serious inflate inconsistency"
 msgstr "解压缩严重的不一致"
 
-#: builtin/index-pack.c:735 builtin/index-pack.c:741 builtin/index-pack.c:764
-#: builtin/index-pack.c:803 builtin/index-pack.c:812
+#: builtin/index-pack.c:757 builtin/index-pack.c:763 builtin/index-pack.c:787
+#: builtin/index-pack.c:826 builtin/index-pack.c:835
 #, c-format
 msgid "SHA1 COLLISION FOUND WITH %s !"
 msgstr "发现 %s 出现 SHA1 冲突!"
 
-#: builtin/index-pack.c:738 builtin/pack-objects.c:157
-#: builtin/pack-objects.c:217 builtin/pack-objects.c:311
+#: builtin/index-pack.c:760 builtin/pack-objects.c:171
+#: builtin/pack-objects.c:231 builtin/pack-objects.c:326
 #, c-format
 msgid "unable to read %s"
 msgstr "不能读 %s"
 
-#: builtin/index-pack.c:801
+#: builtin/index-pack.c:824
 #, c-format
 msgid "cannot read existing object info %s"
 msgstr "不能读取现存对象信息 %s"
 
-#: builtin/index-pack.c:809
+#: builtin/index-pack.c:832
 #, c-format
 msgid "cannot read existing object %s"
 msgstr "不能读取现存对象 %s"
 
-#: builtin/index-pack.c:823
+#: builtin/index-pack.c:846
 #, c-format
 msgid "invalid blob object %s"
 msgstr "无效的数据对象 %s"
 
-#: builtin/index-pack.c:826 builtin/index-pack.c:845
+#: builtin/index-pack.c:849 builtin/index-pack.c:868
 msgid "fsck error in packed object"
 msgstr "对打包对象 fsck 检查出错"
 
-#: builtin/index-pack.c:847
+#: builtin/index-pack.c:870
 #, c-format
 msgid "Not all child objects of %s are reachable"
 msgstr "%s 的所有子对象并非都可达"
 
-#: builtin/index-pack.c:919 builtin/index-pack.c:950
+#: builtin/index-pack.c:931 builtin/index-pack.c:978
 msgid "failed to apply delta"
 msgstr "应用 delta 失败"
 
-#: builtin/index-pack.c:1118
+#: builtin/index-pack.c:1161
 msgid "Receiving objects"
 msgstr "接收对象中"
 
-#: builtin/index-pack.c:1118
+#: builtin/index-pack.c:1161
 msgid "Indexing objects"
 msgstr "索引对象中"
 
-#: builtin/index-pack.c:1152
+#: builtin/index-pack.c:1195
 msgid "pack is corrupted (SHA1 mismatch)"
 msgstr "包冲突(SHA1 不匹配)"
 
-#: builtin/index-pack.c:1157
+#: builtin/index-pack.c:1200
 msgid "cannot fstat packfile"
 msgstr "不能对包文件调用 fstat"
 
-#: builtin/index-pack.c:1160
+#: builtin/index-pack.c:1203
 msgid "pack has junk at the end"
 msgstr "包的结尾有垃圾数据"
 
-#: builtin/index-pack.c:1172
+#: builtin/index-pack.c:1215
 msgid "confusion beyond insanity in parse_pack_objects()"
 msgstr "parse_pack_objects() 中遇到不可理喻的问题"
 
-#: builtin/index-pack.c:1195
+#: builtin/index-pack.c:1238
 msgid "Resolving deltas"
 msgstr "处理 delta 中"
 
-#: builtin/index-pack.c:1205 builtin/pack-objects.c:2497
+#: builtin/index-pack.c:1249 builtin/pack-objects.c:2697
 #, c-format
 msgid "unable to create thread: %s"
 msgstr "不能创建线程:%s"
 
-#: builtin/index-pack.c:1246
+#: builtin/index-pack.c:1282
 msgid "confusion beyond insanity"
 msgstr "不可理喻"
 
-#: builtin/index-pack.c:1252
+#: builtin/index-pack.c:1288
 #, c-format
 msgid "completed with %d local object"
 msgid_plural "completed with %d local objects"
 msgstr[0] "完成 %d 个本地对象"
 msgstr[1] "完成 %d 个本地对象"
 
-#: builtin/index-pack.c:1264
+#: builtin/index-pack.c:1300
 #, c-format
 msgid "Unexpected tail checksum for %s (disk corruption?)"
 msgstr "对 %s 的尾部校验出现意外(磁盘损坏?)"
 
-#: builtin/index-pack.c:1268
+#: builtin/index-pack.c:1304
 #, c-format
 msgid "pack has %d unresolved delta"
 msgid_plural "pack has %d unresolved deltas"
 msgstr[0] "包有 %d 个未解决的 delta"
 msgstr[1] "包有 %d 个未解决的 delta"
 
-#: builtin/index-pack.c:1292
+#: builtin/index-pack.c:1328
 #, c-format
 msgid "unable to deflate appended object (%d)"
 msgstr "不能压缩附加对象(%d)"
 
-#: builtin/index-pack.c:1388
+#: builtin/index-pack.c:1424
 #, c-format
 msgid "local object %s is corrupt"
 msgstr "本地对象 %s 已损坏"
 
-#: builtin/index-pack.c:1402
+#: builtin/index-pack.c:1444
 #, c-format
 msgid "packfile name '%s' does not end with '.pack'"
 msgstr "包文件名 '%s' 没有以 '.pack' 结尾"
 
-#: builtin/index-pack.c:1427
+#: builtin/index-pack.c:1469
 #, c-format
 msgid "cannot write %s file '%s'"
 msgstr "无法写入 %s 文件 '%s'"
 
-#: builtin/index-pack.c:1435
+#: builtin/index-pack.c:1477
 #, c-format
 msgid "cannot close written %s file '%s'"
 msgstr "无法关闭已写入的 %s 文件 '%s'"
 
-#: builtin/index-pack.c:1459
+#: builtin/index-pack.c:1501
 msgid "error while closing pack file"
 msgstr "关闭包文件时出错"
 
-#: builtin/index-pack.c:1473
+#: builtin/index-pack.c:1515
 msgid "cannot store pack file"
 msgstr "无法存储包文件"
 
-#: builtin/index-pack.c:1481
+#: builtin/index-pack.c:1523
 msgid "cannot store index file"
 msgstr "无法存储索引文件"
 
-#: builtin/index-pack.c:1525 builtin/pack-objects.c:2736
+#: builtin/index-pack.c:1567 builtin/pack-objects.c:2944
 #, c-format
 msgid "bad pack.indexversion=%<PRIu32>"
 msgstr "坏的 pack.indexversion=%<PRIu32>"
 
-#: builtin/index-pack.c:1593
+#: builtin/index-pack.c:1631
 #, c-format
 msgid "Cannot open existing pack file '%s'"
 msgstr "无法打开现存包文件 '%s'"
 
-#: builtin/index-pack.c:1595
+#: builtin/index-pack.c:1633
 #, c-format
 msgid "Cannot open existing pack idx file for '%s'"
 msgstr "无法为 %s 打开包索引文件"
 
-#: builtin/index-pack.c:1643
+#: builtin/index-pack.c:1681
 #, 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:1650
+#: builtin/index-pack.c:1688
 #, 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:1689
+#: builtin/index-pack.c:1728
 msgid "Cannot come back to cwd"
 msgstr "无法返回当前工作目录"
 
-#: builtin/index-pack.c:1738 builtin/index-pack.c:1741
-#: builtin/index-pack.c:1757 builtin/index-pack.c:1761
+#: builtin/index-pack.c:1777 builtin/index-pack.c:1780
+#: builtin/index-pack.c:1796 builtin/index-pack.c:1800
 #, c-format
 msgid "bad %s"
 msgstr "错误选项 %s"
 
-#: builtin/index-pack.c:1777
+#: builtin/index-pack.c:1806 builtin/init-db.c:391 builtin/init-db.c:623
+#, c-format
+msgid "unknown hash algorithm '%s'"
+msgstr "未知的哈希算法 '%s'"
+
+#: builtin/index-pack.c:1821
 msgid "--fix-thin cannot be used without --stdin"
 msgstr "--fix-thin 不能和 --stdin 同时使用"
 
-#: builtin/index-pack.c:1779
+#: builtin/index-pack.c:1823
 msgid "--stdin requires a git repository"
-msgstr "--stdin 需要一个 git 仓库"
+msgstr "--stdin 需要 git 仓库"
+
+#: builtin/index-pack.c:1825
+msgid "--object-format cannot be used with --stdin"
+msgstr "--object-format 不能和 --stdin 同时使用"
 
-#: builtin/index-pack.c:1785
+#: builtin/index-pack.c:1831
 msgid "--verify with no packfile name given"
 msgstr "--verify 没有提供包文件名参数"
 
-#: builtin/index-pack.c:1833 builtin/unpack-objects.c:580
+#: builtin/index-pack.c:1892 builtin/unpack-objects.c:582
 msgid "fsck error in pack objects"
 msgstr "在打包对象中 fsck 检查出错"
 
-#: builtin/init-db.c:61
+#: builtin/init-db.c:64
 #, c-format
 msgid "cannot stat template '%s'"
 msgstr "不能对模版 '%s' 调用 stat"
 
-#: builtin/init-db.c:66
+#: builtin/init-db.c:69
 #, c-format
 msgid "cannot opendir '%s'"
 msgstr "不能打开目录 '%s'"
 
-#: builtin/init-db.c:78
+#: builtin/init-db.c:81
 #, c-format
 msgid "cannot readlink '%s'"
 msgstr "不能读取链接 '%s'"
 
-#: builtin/init-db.c:80
+#: builtin/init-db.c:83
 #, c-format
 msgid "cannot symlink '%s' '%s'"
 msgstr "不能自 '%s' 到 '%s' 创建符号链接"
 
-#: builtin/init-db.c:86
+#: builtin/init-db.c:89
 #, c-format
 msgid "cannot copy '%s' to '%s'"
 msgstr "不能拷贝 '%s' 至 '%s'"
 
-#: builtin/init-db.c:90
+#: builtin/init-db.c:93
 #, c-format
 msgid "ignoring template %s"
 msgstr "忽略模版 %s"
 
-#: builtin/init-db.c:121
+#: builtin/init-db.c:124
 #, c-format
 msgid "templates not found in %s"
 msgstr "没有在 %s 中找到模版"
 
-#: builtin/init-db.c:136
+#: builtin/init-db.c:139
 #, c-format
 msgid "not copying templates from '%s': %s"
 msgstr "没有从 '%s' 复制模版:%s"
 
-#: builtin/init-db.c:334
+#: builtin/init-db.c:274
+#, c-format
+msgid "invalid initial branch name: '%s'"
+msgstr "无效的初始分支名:'%s'"
+
+#: builtin/init-db.c:366
 #, c-format
 msgid "unable to handle file type %d"
 msgstr "不能处理 %d 类型的文件"
 
-#: builtin/init-db.c:337
+#: builtin/init-db.c:369
 #, c-format
 msgid "unable to move %s to %s"
 msgstr "不能移动 %s 至 %s"
 
-#: builtin/init-db.c:354 builtin/init-db.c:357
+#: builtin/init-db.c:385
+msgid "attempt to reinitialize repository with different hash"
+msgstr "尝试用不同的哈希算法重新初始化仓库"
+
+#: builtin/init-db.c:409 builtin/init-db.c:412
 #, c-format
 msgid "%s already exists"
 msgstr "%s 已经存在"
 
-#: builtin/init-db.c:413
+#: builtin/init-db.c:443
+#, c-format
+msgid "re-init: ignored --initial-branch=%s"
+msgstr "re-init:已忽略 --initial-branch=%s"
+
+#: builtin/init-db.c:474
 #, c-format
 msgid "Reinitialized existing shared Git repository in %s%s\n"
 msgstr "重新初始化已存在的共享 Git 仓库于 %s%s\n"
 
-#: builtin/init-db.c:414
+#: builtin/init-db.c:475
 #, c-format
 msgid "Reinitialized existing Git repository in %s%s\n"
 msgstr "重新初始化已存在的 Git 仓库于 %s%s\n"
 
-#: builtin/init-db.c:418
+#: builtin/init-db.c:479
 #, c-format
 msgid "Initialized empty shared Git repository in %s%s\n"
 msgstr "已初始化空的共享 Git 仓库于 %s%s\n"
 
-#: builtin/init-db.c:419
+#: builtin/init-db.c:480
 #, c-format
 msgid "Initialized empty Git repository in %s%s\n"
 msgstr "已初始化空的 Git 仓库于 %s%s\n"
 
-#: builtin/init-db.c:468
+#: builtin/init-db.c:529
 msgid ""
 "git init [-q | --quiet] [--bare] [--template=<template-directory>] [--"
 "shared[=<permissions>]] [<directory>]"
@@ -14069,36 +15805,56 @@ msgstr ""
 "git init [-q | --quiet] [--bare] [--template=<模板目录>] [--shared[=<权限>]] "
 "[<目录>]"
 
-#: builtin/init-db.c:491
+#: builtin/init-db.c:555
 msgid "permissions"
 msgstr "权限"
 
-#: builtin/init-db.c:492
+#: builtin/init-db.c:556
 msgid "specify that the git repository is to be shared amongst several users"
 msgstr "指定 git 仓库是多个用户之间共享的"
 
-#: builtin/init-db.c:529 builtin/init-db.c:534
+#: builtin/init-db.c:562
+msgid "override the name of the initial branch"
+msgstr "覆盖初始分支名称"
+
+#: builtin/init-db.c:563 builtin/verify-pack.c:74
+msgid "hash"
+msgstr "hash"
+
+#: builtin/init-db.c:564 builtin/show-index.c:22 builtin/verify-pack.c:75
+msgid "specify the hash algorithm to use"
+msgstr "指定要使用的哈希算法"
+
+#: builtin/init-db.c:571
+msgid "--separate-git-dir and --bare are mutually exclusive"
+msgstr "--separate-git-dir 和 --bare 是互斥的"
+
+#: builtin/init-db.c:600 builtin/init-db.c:605
 #, c-format
 msgid "cannot mkdir %s"
 msgstr "不能创建目录 %s"
 
-#: builtin/init-db.c:538
+#: builtin/init-db.c:609 builtin/init-db.c:664
 #, c-format
 msgid "cannot chdir to %s"
 msgstr "不能切换目录到 %s"
 
-#: builtin/init-db.c:559
+#: builtin/init-db.c:636
 #, c-format
 msgid ""
 "%s (or --work-tree=<directory>) not allowed without specifying %s (or --git-"
 "dir=<directory>)"
 msgstr "不允许 %s(或 --work-tree=<目录>)而没有指定 %s(或 --git-dir=<目录>)"
 
-#: builtin/init-db.c:587
+#: builtin/init-db.c:688
 #, c-format
 msgid "Cannot access work tree '%s'"
 msgstr "不能访问工作区 '%s'"
 
+#: builtin/init-db.c:693
+msgid "--separate-git-dir incompatible with bare repository"
+msgstr "--separate-git-dir 不能用于纯仓库"
+
 #: builtin/interpret-trailers.c:16
 msgid ""
 "git interpret-trailers [--in-place] [--trim-empty] [(--trailer "
@@ -14163,121 +15919,126 @@ msgstr "--trailer 和 --only-input 同时使用没有意义"
 msgid "no input file given for in-place editing"
 msgstr "没有给出要原位编辑的文件"
 
-#: builtin/log.c:55
+#: builtin/log.c:56
 msgid "git log [<options>] [<revision-range>] [[--] <path>...]"
 msgstr "git log [<选项>] [<版本范围>] [[--] <路径>...]"
 
-#: builtin/log.c:56
+#: builtin/log.c:57
 msgid "git show [<options>] <object>..."
 msgstr "git show [<选项>] <对象>..."
 
-#: builtin/log.c:109
+#: builtin/log.c:110
 #, c-format
 msgid "invalid --decorate option: %s"
 msgstr "无效的 --decorate 选项:%s"
 
-#: builtin/log.c:173
+#: builtin/log.c:177
 msgid "show source"
 msgstr "显示源"
 
-#: builtin/log.c:174
+#: builtin/log.c:178
 msgid "Use mail map file"
 msgstr "使用邮件映射文件"
 
-#: builtin/log.c:176
+#: builtin/log.c:181
 msgid "only decorate refs that match <pattern>"
 msgstr "只修饰与 <模式> 匹配的引用"
 
-#: builtin/log.c:178
+#: builtin/log.c:183
 msgid "do not decorate refs that match <pattern>"
 msgstr "不修饰和 <模式> 匹配的引用"
 
-#: builtin/log.c:179
+#: builtin/log.c:184
 msgid "decorate options"
 msgstr "修饰选项"
 
-#: builtin/log.c:182
+#: builtin/log.c:187
 msgid "Process line range n,m in file, counting from 1"
 msgstr "处理文件中第 n 到 m 之间的行,从 1 开始"
 
-#: builtin/log.c:280
+#: builtin/log.c:297
 #, c-format
 msgid "Final output: %d %s\n"
 msgstr "最终输出:%d %s\n"
 
-#: builtin/log.c:534
+#: builtin/log.c:555
 #, c-format
 msgid "git show %s: bad file"
 msgstr "git show %s: 损坏的文件"
 
-#: builtin/log.c:549 builtin/log.c:643
+#: builtin/log.c:570 builtin/log.c:665
 #, c-format
 msgid "could not read object %s"
 msgstr "不能读取对象 %s"
 
-#: builtin/log.c:668
+#: builtin/log.c:690
 #, c-format
 msgid "unknown type: %d"
 msgstr "未知类型:%d"
 
-#: builtin/log.c:791
+#: builtin/log.c:839
+#, c-format
+msgid "%s: invalid cover from description mode"
+msgstr "%s:从描述生成附函的模式无效"
+
+#: builtin/log.c:846
 msgid "format.headers without value"
 msgstr "format.headers 没有值"
 
-#: builtin/log.c:908
+#: builtin/log.c:965
 msgid "name of output directory is too long"
 msgstr "输出目录名太长"
 
-#: builtin/log.c:924
+#: builtin/log.c:981
 #, c-format
 msgid "cannot open patch file %s"
 msgstr "无法打开补丁文件 %s"
 
-#: builtin/log.c:941
+#: builtin/log.c:998
 msgid "need exactly one range"
 msgstr "只需要一个范围"
 
-#: builtin/log.c:951
+#: builtin/log.c:1008
 msgid "not a range"
 msgstr "不是一个范围"
 
-#: builtin/log.c:1074
+#: builtin/log.c:1172
 msgid "cover letter needs email format"
 msgstr "附函需要邮件地址格式"
 
-#: builtin/log.c:1080
+#: builtin/log.c:1178
 msgid "failed to create cover-letter file"
 msgstr "无法创建附函文件"
 
-#: builtin/log.c:1159
+#: builtin/log.c:1259
 #, c-format
 msgid "insane in-reply-to: %s"
 msgstr "不正常的 in-reply-to:%s"
 
-#: builtin/log.c:1186
+#: builtin/log.c:1286
 msgid "git format-patch [<options>] [<since> | <revision-range>]"
 msgstr "git format-patch [<选项>] [<从> | <版本范围>]"
 
-#: builtin/log.c:1244
+#: builtin/log.c:1344
 msgid "two output directories?"
 msgstr "两个输出目录?"
 
-#: builtin/log.c:1355 builtin/log.c:2099 builtin/log.c:2101 builtin/log.c:2113
+#: builtin/log.c:1495 builtin/log.c:2301 builtin/log.c:2303 builtin/log.c:2315
 #, c-format
 msgid "unknown commit %s"
 msgstr "未知提交 %s"
 
-#: builtin/log.c:1365 builtin/replace.c:58 builtin/replace.c:207
+#: builtin/log.c:1506 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:1370
+#: builtin/log.c:1515
 msgid "could not find exact merge base"
 msgstr "不能找到准确的合并基线"
 
-#: builtin/log.c:1374
+#: builtin/log.c:1525
 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"
@@ -14287,373 +16048,386 @@ msgstr ""
 "git branch --set-upstream-to 来跟踪一个远程分支。或者你可以通过\n"
 "参数 --base=<基线提交> 手动指定一个基线提交"
 
-#: builtin/log.c:1394
+#: builtin/log.c:1548
 msgid "failed to find exact merge base"
 msgstr "无法找到准确的合并基线"
 
-#: builtin/log.c:1405
+#: builtin/log.c:1565
 msgid "base commit should be the ancestor of revision list"
 msgstr "基线提交应该是版本列表的祖先"
 
-#: builtin/log.c:1409
+#: builtin/log.c:1575
 msgid "base commit shouldn't be in revision list"
 msgstr "基线提交不应该出现在版本列表中"
 
-#: builtin/log.c:1462
+#: builtin/log.c:1633
 msgid "cannot get patch id"
 msgstr "无法得到补丁 id"
 
-#: builtin/log.c:1514
-msgid "failed to infer range-diff ranges"
-msgstr "无法推断 range-diff 范围"
+#: builtin/log.c:1690
+msgid "failed to infer range-diff origin of current series"
+msgstr "无法推断当前系列的 range-diff 起始"
 
-#: builtin/log.c:1559
+#: builtin/log.c:1692
+#, c-format
+msgid "using '%s' as range-diff origin of current series"
+msgstr "使用 '%s' 作为当前系列的 range-diff 源"
+
+#: builtin/log.c:1736
 msgid "use [PATCH n/m] even with a single patch"
 msgstr "使用 [PATCH n/m],即使只有一个补丁"
 
-#: builtin/log.c:1562
+#: builtin/log.c:1739
 msgid "use [PATCH] even with multiple patches"
 msgstr "使用 [PATCH],即使有多个补丁"
 
-#: builtin/log.c:1566
+#: builtin/log.c:1743
 msgid "print patches to standard out"
 msgstr "打印补丁到标准输出"
 
-#: builtin/log.c:1568
+#: builtin/log.c:1745
 msgid "generate a cover letter"
 msgstr "生成一封附函"
 
-#: builtin/log.c:1570
+#: builtin/log.c:1747
 msgid "use simple number sequence for output file names"
 msgstr "使用简单的数字序列作为输出文件名"
 
-#: builtin/log.c:1571
+#: builtin/log.c:1748
 msgid "sfx"
 msgstr "后缀"
 
-#: builtin/log.c:1572
+#: builtin/log.c:1749
 msgid "use <sfx> instead of '.patch'"
 msgstr "使用 <后缀> 代替 '.patch'"
 
-#: builtin/log.c:1574
+#: builtin/log.c:1751
 msgid "start numbering patches at <n> instead of 1"
 msgstr "补丁以 <n> 开始编号,而不是1"
 
-#: builtin/log.c:1576
+#: builtin/log.c:1753
 msgid "mark the series as Nth re-roll"
 msgstr "标记补丁系列是第几次重制"
 
-#: builtin/log.c:1578
+#: builtin/log.c:1755
 msgid "Use [RFC PATCH] instead of [PATCH]"
 msgstr "使用 [RFC PATCH] 代替 [PATCH]"
 
-#: builtin/log.c:1581
+#: builtin/log.c:1758
+msgid "cover-from-description-mode"
+msgstr "从分支描述获取附函的模式"
+
+#: builtin/log.c:1759
+msgid "generate parts of a cover letter based on a branch's description"
+msgstr "基于一个分支描述生成部分附函"
+
+#: builtin/log.c:1761
 msgid "Use [<prefix>] instead of [PATCH]"
 msgstr "使用 [<前缀>] 代替 [PATCH]"
 
-#: builtin/log.c:1584
+#: builtin/log.c:1764
 msgid "store resulting files in <dir>"
 msgstr "把结果文件存储在 <目录>"
 
-#: builtin/log.c:1587
+#: builtin/log.c:1767
 msgid "don't strip/add [PATCH]"
 msgstr "不删除/添加 [PATCH]"
 
-#: builtin/log.c:1590
+#: builtin/log.c:1770
 msgid "don't output binary diffs"
 msgstr "不输出二进制差异"
 
-#: builtin/log.c:1592
+#: builtin/log.c:1772
 msgid "output all-zero hash in From header"
 msgstr "在 From 头信息中输出全为零的哈希值"
 
-#: builtin/log.c:1594
+#: builtin/log.c:1774
 msgid "don't include a patch matching a commit upstream"
 msgstr "不包含已在上游提交中的补丁"
 
-#: builtin/log.c:1596
+#: builtin/log.c:1776
 msgid "show patch format instead of default (patch + stat)"
 msgstr "显示纯补丁格式而非默认的(补丁+状态)"
 
-#: builtin/log.c:1598
+#: builtin/log.c:1778
 msgid "Messaging"
 msgstr "邮件发送"
 
-#: builtin/log.c:1599
+#: builtin/log.c:1779
 msgid "header"
 msgstr "header"
 
-#: builtin/log.c:1600
+#: builtin/log.c:1780
 msgid "add email header"
 msgstr "添加邮件头"
 
-#: builtin/log.c:1601 builtin/log.c:1603
+#: builtin/log.c:1781 builtin/log.c:1782
 msgid "email"
 msgstr "邮件地址"
 
-#: builtin/log.c:1601
+#: builtin/log.c:1781
 msgid "add To: header"
 msgstr "添加收件人"
 
-#: builtin/log.c:1603
+#: builtin/log.c:1782
 msgid "add Cc: header"
 msgstr "添加抄送"
 
-#: builtin/log.c:1605
+#: builtin/log.c:1783
 msgid "ident"
 msgstr "标识"
 
-#: builtin/log.c:1606
+#: builtin/log.c:1784
 msgid "set From address to <ident> (or committer ident if absent)"
 msgstr "将 From 地址设置为 <标识>(如若不提供,则用提交者 ID 做为地址)"
 
-#: builtin/log.c:1608
+#: builtin/log.c:1786
 msgid "message-id"
 msgstr "邮件标识"
 
-#: builtin/log.c:1609
+#: builtin/log.c:1787
 msgid "make first mail a reply to <message-id>"
 msgstr "使第一封邮件作为对 <邮件标识> 的回复"
 
-#: builtin/log.c:1610 builtin/log.c:1613
+#: builtin/log.c:1788 builtin/log.c:1791
 msgid "boundary"
 msgstr "边界"
 
-#: builtin/log.c:1611
+#: builtin/log.c:1789
 msgid "attach the patch"
 msgstr "附件方式添加补丁"
 
-#: builtin/log.c:1614
+#: builtin/log.c:1792
 msgid "inline the patch"
 msgstr "内联显示补丁"
 
-#: builtin/log.c:1618
+#: builtin/log.c:1796
 msgid "enable message threading, styles: shallow, deep"
 msgstr "启用邮件线索,风格:浅,深"
 
-#: builtin/log.c:1620
+#: builtin/log.c:1798
 msgid "signature"
 msgstr "签名"
 
-#: builtin/log.c:1621
+#: builtin/log.c:1799
 msgid "add a signature"
 msgstr "添加一个签名"
 
-#: builtin/log.c:1622
+#: builtin/log.c:1800
 msgid "base-commit"
 msgstr "基线提交"
 
-#: builtin/log.c:1623
+#: builtin/log.c:1801
 msgid "add prerequisite tree info to the patch series"
 msgstr "为补丁列表添加前置树信息"
 
-#: builtin/log.c:1625
+#: builtin/log.c:1804
 msgid "add a signature from a file"
 msgstr "从文件添加一个签名"
 
-#: builtin/log.c:1626
+#: builtin/log.c:1805
 msgid "don't print the patch filenames"
 msgstr "不要打印补丁文件名"
 
-#: builtin/log.c:1628
+#: builtin/log.c:1807
 msgid "show progress while generating patches"
 msgstr "在生成补丁时显示进度"
 
-#: builtin/log.c:1630
+#: builtin/log.c:1809
 msgid "show changes against <rev> in cover letter or single patch"
 msgstr "在附函或单个补丁中显示和 <rev> 的差异"
 
-#: builtin/log.c:1633
+#: builtin/log.c:1812
 msgid "show changes against <refspec> in cover letter or single patch"
 msgstr "在附函或单个补丁中显示和 <refspec> 的差异"
 
-#: builtin/log.c:1635
+#: builtin/log.c:1814
 msgid "percentage by which creation is weighted"
 msgstr "创建权重的百分比"
 
-#: builtin/log.c:1710
+#: builtin/log.c:1896
 #, c-format
 msgid "invalid ident line: %s"
 msgstr "包含无效的身份标识:%s"
 
-#: builtin/log.c:1725
+#: builtin/log.c:1911
 msgid "-n and -k are mutually exclusive"
 msgstr "-n 和 -k 互斥"
 
-#: builtin/log.c:1727
+#: builtin/log.c:1913
 msgid "--subject-prefix/--rfc and -k are mutually exclusive"
 msgstr "--subject-prefix/--rfc 和 -k 互斥"
 
-#: builtin/log.c:1735
+#: builtin/log.c:1921
 msgid "--name-only does not make sense"
 msgstr "--name-only 无意义"
 
-#: builtin/log.c:1737
+#: builtin/log.c:1923
 msgid "--name-status does not make sense"
 msgstr "--name-status 无意义"
 
-#: builtin/log.c:1739
+#: builtin/log.c:1925
 msgid "--check does not make sense"
 msgstr "--check 无意义"
 
-#: builtin/log.c:1771
+#: builtin/log.c:1958
 msgid "standard output, or directory, which one?"
 msgstr "标准输出或目录,哪一个?"
 
-#: builtin/log.c:1860
+#: builtin/log.c:2062
 msgid "--interdiff requires --cover-letter or single patch"
 msgstr "--interdiff 需要 --cover-letter 或单一补丁"
 
-#: builtin/log.c:1864
+#: builtin/log.c:2066
 msgid "Interdiff:"
 msgstr "版本间差异:"
 
-#: builtin/log.c:1865
+#: builtin/log.c:2067
 #, c-format
 msgid "Interdiff against v%d:"
 msgstr "对 v%d 的版本差异:"
 
-#: builtin/log.c:1871
+#: builtin/log.c:2073
 msgid "--creation-factor requires --range-diff"
 msgstr "--creation-factor 需要 --range-diff"
 
-#: builtin/log.c:1875
+#: builtin/log.c:2077
 msgid "--range-diff requires --cover-letter or single patch"
 msgstr "--range-diff 需要 --cover-letter 或单一补丁"
 
-#: builtin/log.c:1883
+#: builtin/log.c:2085
 msgid "Range-diff:"
 msgstr "范围差异:"
 
-#: builtin/log.c:1884
+#: builtin/log.c:2086
 #, c-format
 msgid "Range-diff against v%d:"
 msgstr "对 v%d 的范围差异:"
 
-#: builtin/log.c:1895
+#: builtin/log.c:2097
 #, c-format
 msgid "unable to read signature file '%s'"
 msgstr "无法读取签名文件 '%s'"
 
-#: builtin/log.c:1931
+#: builtin/log.c:2133
 msgid "Generating patches"
 msgstr "生成补丁"
 
-#: builtin/log.c:1975
+#: builtin/log.c:2177
 msgid "failed to create output files"
 msgstr "无法创建输出文件"
 
-#: builtin/log.c:2034
+#: builtin/log.c:2236
 msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
 msgstr "git cherry [-v] [<上游> [<头> [<限制>]]]"
 
-#: builtin/log.c:2088
+#: builtin/log.c:2290
 #, c-format
 msgid ""
 "Could not find a tracked remote branch, please specify <upstream> manually.\n"
 msgstr "不能找到跟踪的远程分支,请手工指定 <上游>。\n"
 
-#: builtin/ls-files.c:470
+#: builtin/ls-files.c:471
 msgid "git ls-files [<options>] [<file>...]"
 msgstr "git ls-files [<选项>] [<文件>...]"
 
-#: builtin/ls-files.c:526
+#: builtin/ls-files.c:527
 msgid "identify the file status with tags"
 msgstr "用标签标识文件的状态"
 
-#: builtin/ls-files.c:528
+#: builtin/ls-files.c:529
 msgid "use lowercase letters for 'assume unchanged' files"
 msgstr "使用小写字母表示 '假设未改变的' 文件"
 
-#: builtin/ls-files.c:530
+#: builtin/ls-files.c:531
 msgid "use lowercase letters for 'fsmonitor clean' files"
 msgstr "使用小写字母表示 'fsmonitor clean' 文件"
 
-#: builtin/ls-files.c:532
+#: builtin/ls-files.c:533
 msgid "show cached files in the output (default)"
 msgstr "显示缓存的文件(默认)"
 
-#: builtin/ls-files.c:534
+#: builtin/ls-files.c:535
 msgid "show deleted files in the output"
 msgstr "显示已删除的文件"
 
-#: builtin/ls-files.c:536
+#: builtin/ls-files.c:537
 msgid "show modified files in the output"
 msgstr "显示已修改的文件"
 
-#: builtin/ls-files.c:538
+#: builtin/ls-files.c:539
 msgid "show other files in the output"
 msgstr "显示其它文件"
 
-#: builtin/ls-files.c:540
+#: builtin/ls-files.c:541
 msgid "show ignored files in the output"
 msgstr "显示忽略的文件"
 
-#: builtin/ls-files.c:543
+#: builtin/ls-files.c:544
 msgid "show staged contents' object name in the output"
 msgstr "显示暂存区内容的对象名称"
 
-#: builtin/ls-files.c:545
+#: builtin/ls-files.c:546
 msgid "show files on the filesystem that need to be removed"
 msgstr "显示文件系统需要删除的文件"
 
-#: builtin/ls-files.c:547
+#: builtin/ls-files.c:548
 msgid "show 'other' directories' names only"
 msgstr "只显示“其他”目录的名称"
 
-#: builtin/ls-files.c:549
+#: builtin/ls-files.c:550
 msgid "show line endings of files"
 msgstr "显示文件换行符格式"
 
-#: builtin/ls-files.c:551
+#: builtin/ls-files.c:552
 msgid "don't show empty directories"
 msgstr "不显示空目录"
 
-#: builtin/ls-files.c:554
+#: builtin/ls-files.c:555
 msgid "show unmerged files in the output"
 msgstr "显示未合并的文件"
 
-#: builtin/ls-files.c:556
+#: builtin/ls-files.c:557
 msgid "show resolve-undo information"
 msgstr "显示 resolve-undo 信息"
 
-#: builtin/ls-files.c:558
+#: builtin/ls-files.c:559
 msgid "skip files matching pattern"
-msgstr "匹配排除文件的模式"
+msgstr "跳过和模式匹配的文件"
 
-#: builtin/ls-files.c:561
+#: builtin/ls-files.c:562
 msgid "exclude patterns are read from <file>"
 msgstr "从 <文件> 中读取排除模式"
 
-#: builtin/ls-files.c:564
+#: builtin/ls-files.c:565
 msgid "read additional per-directory exclude patterns in <file>"
 msgstr "从 <文件> 读取额外的每个目录的排除模式"
 
-#: builtin/ls-files.c:566
+#: builtin/ls-files.c:567
 msgid "add the standard git exclusions"
 msgstr "添加标准的 git 排除"
 
-#: builtin/ls-files.c:570
+#: builtin/ls-files.c:571
 msgid "make the output relative to the project top directory"
 msgstr "显示相对于顶级目录的文件名"
 
-#: builtin/ls-files.c:573
+#: builtin/ls-files.c:574
 msgid "recurse through submodules"
 msgstr "在子模组中递归"
 
-#: builtin/ls-files.c:575
+#: builtin/ls-files.c:576
 msgid "if any <file> is not in the index, treat this as an error"
 msgstr "如果任何 <文件> 都不在索引区,视为错误"
 
-#: builtin/ls-files.c:576
+#: builtin/ls-files.c:577
 msgid "tree-ish"
-msgstr "树或提交"
+msgstr "树对象"
 
-#: builtin/ls-files.c:577
+#: builtin/ls-files.c:578
 msgid "pretend that paths removed since <tree-ish> are still present"
-msgstr "假装自从 <树或提交> 之后删除的路径仍然存在"
+msgstr "假装自从 <树对象> 之后删除的路径仍然存在"
 
-#: builtin/ls-files.c:579
+#: builtin/ls-files.c:580
 msgid "show debugging data"
 msgstr "显示调试数据"
 
@@ -14671,7 +16445,7 @@ msgstr ""
 msgid "do not print remote URL"
 msgstr "不打印远程 URL"
 
-#: builtin/ls-remote.c:60 builtin/ls-remote.c:62 builtin/rebase.c:1464
+#: builtin/ls-remote.c:60 builtin/ls-remote.c:62 builtin/rebase.c:1392
 msgid "exec"
 msgstr "exec"
 
@@ -14705,7 +16479,7 @@ msgstr "除了显示指向的对象外,显示指向的引用名"
 
 #: builtin/ls-tree.c:30
 msgid "git ls-tree [<options>] <tree-ish> [<path>...]"
-msgstr "git ls-tree [<选项>] <树或提交> [<路径>...]"
+msgstr "git ls-tree [<选项>] <树对象> [<路径>...]"
 
 #: builtin/ls-tree.c:128
 msgid "only show trees"
@@ -14744,191 +16518,302 @@ msgstr "列出整个树;不仅仅当前目录(隐含 --full-name)"
 msgid "empty mbox: '%s'"
 msgstr "空的 mbox:'%s'"
 
-#: builtin/merge.c:55
+#: builtin/merge-base.c:32
+msgid "git merge-base [-a | --all] <commit> <commit>..."
+msgstr "git merge-base [-a | --all] <提交> <提交>..."
+
+#: builtin/merge-base.c:33
+msgid "git merge-base [-a | --all] --octopus <commit>..."
+msgstr "git merge-base [-a | --all] --octopus <提交>..."
+
+#: builtin/merge-base.c:34
+msgid "git merge-base --independent <commit>..."
+msgstr "git merge-base --independent <提交>..."
+
+#: builtin/merge-base.c:35
+msgid "git merge-base --is-ancestor <commit> <commit>"
+msgstr "git merge-base --is-ancestor <提交> <提交>"
+
+#: builtin/merge-base.c:36
+msgid "git merge-base --fork-point <ref> [<commit>]"
+msgstr "git merge-base --fork-point <引用> [<提交>]"
+
+#: builtin/merge-base.c:143
+msgid "output all common ancestors"
+msgstr "输出所有共同的祖先"
+
+#: builtin/merge-base.c:145
+msgid "find ancestors for a single n-way merge"
+msgstr "查找一个多路合并的祖先提交"
+
+#: builtin/merge-base.c:147
+msgid "list revs not reachable from others"
+msgstr "显示不能被其他访问到的版本"
+
+#: builtin/merge-base.c:149
+msgid "is the first one ancestor of the other?"
+msgstr "第一个是其他的祖先提交么?"
+
+#: builtin/merge-base.c:151
+msgid "find where <commit> forked from reflog of <ref>"
+msgstr "根据 <引用> 的引用日志查找 <提交> 的分叉点"
+
+#: builtin/merge-file.c:9
+msgid ""
+"git merge-file [<options>] [-L <name1> [-L <orig> [-L <name2>]]] <file1> "
+"<orig-file> <file2>"
+msgstr ""
+"git merge-file [<选项>] [-L <名字1> [-L <初始名字> [-L <名字2>]]] <文件1> <初"
+"始文件> <文件2>"
+
+#: builtin/merge-file.c:35
+msgid "send results to standard output"
+msgstr "将结果发送到标准输出"
+
+#: builtin/merge-file.c:36
+msgid "use a diff3 based merge"
+msgstr "使用基于 diff3 的合并"
+
+#: builtin/merge-file.c:37
+msgid "for conflicts, use our version"
+msgstr "如果冲突,使用我们的版本"
+
+#: builtin/merge-file.c:39
+msgid "for conflicts, use their version"
+msgstr "如果冲突,使用他们的版本"
+
+#: builtin/merge-file.c:41
+msgid "for conflicts, use a union version"
+msgstr "如果冲突,使用联合版本"
+
+#: builtin/merge-file.c:44
+msgid "for conflicts, use this marker size"
+msgstr "如果冲突,使用指定长度的标记"
+
+#: builtin/merge-file.c:45
+msgid "do not warn about conflicts"
+msgstr "不要警告冲突"
+
+#: builtin/merge-file.c:47
+msgid "set labels for file1/orig-file/file2"
+msgstr "为 文件1/初始文件/文件2 设置标签"
+
+#: builtin/merge-recursive.c:47
+#, c-format
+msgid "unknown option %s"
+msgstr "未知选项 %s"
+
+#: builtin/merge-recursive.c:53
+#, c-format
+msgid "could not parse object '%s'"
+msgstr "不能解析对象 '%s'"
+
+#: builtin/merge-recursive.c:57
+#, c-format
+msgid "cannot handle more than %d base. Ignoring %s."
+msgid_plural "cannot handle more than %d bases. Ignoring %s."
+msgstr[0] "无法处理 %d 条以上的基线。忽略 %s。"
+msgstr[1] "无法处理 %d 条以上的基线。忽略 %s。"
+
+#: builtin/merge-recursive.c:65
+msgid "not handling anything other than two heads merge."
+msgstr "不能处理两个头合并之外的任何操作。"
+
+#: builtin/merge-recursive.c:74 builtin/merge-recursive.c:76
+#, c-format
+msgid "could not resolve ref '%s'"
+msgstr "无法解析引用 '%s'"
+
+#: builtin/merge-recursive.c:82
+#, c-format
+msgid "Merging %s with %s\n"
+msgstr "合并 %s 和 %s\n"
+
+#: builtin/merge.c:56
 msgid "git merge [<options>] [<commit>...]"
 msgstr "git merge [<选项>] [<提交>...]"
 
-#: builtin/merge.c:56
+#: builtin/merge.c:57
 msgid "git merge --abort"
 msgstr "git merge --abort"
 
-#: builtin/merge.c:57
+#: builtin/merge.c:58
 msgid "git merge --continue"
 msgstr "git merge --continue"
 
-#: builtin/merge.c:118
+#: builtin/merge.c:120
 msgid "switch `m' requires a value"
 msgstr "开关 `m' 需要一个值"
 
-#: builtin/merge.c:141
+#: builtin/merge.c:143
 #, c-format
 msgid "option `%s' requires a value"
 msgstr "选项 `%s' 需要一个值"
 
-#: builtin/merge.c:187
+#: builtin/merge.c:189
 #, c-format
 msgid "Could not find merge strategy '%s'.\n"
 msgstr "不能找到合并策略 '%s'。\n"
 
-#: builtin/merge.c:188
+#: builtin/merge.c:190
 #, c-format
 msgid "Available strategies are:"
 msgstr "可用的策略有:"
 
-#: builtin/merge.c:193
+#: builtin/merge.c:195
 #, c-format
 msgid "Available custom strategies are:"
 msgstr "可用的自定义策略有:"
 
-#: builtin/merge.c:244 builtin/pull.c:151
+#: builtin/merge.c:246 builtin/pull.c:133
 msgid "do not show a diffstat at the end of the merge"
 msgstr "在合并的最后不显示差异统计"
 
-#: builtin/merge.c:247 builtin/pull.c:154
+#: builtin/merge.c:249 builtin/pull.c:136
 msgid "show a diffstat at the end of the merge"
 msgstr "在合并的最后显示差异统计"
 
-#: builtin/merge.c:248 builtin/pull.c:157
+#: builtin/merge.c:250 builtin/pull.c:139
 msgid "(synonym to --stat)"
 msgstr "(和 --stat 同义)"
 
-#: builtin/merge.c:250 builtin/pull.c:160
+#: builtin/merge.c:252 builtin/pull.c:142
 msgid "add (at most <n>) entries from shortlog to merge commit message"
 msgstr "在合并提交信息中添加(最多 <n> 条)精简提交记录"
 
-#: builtin/merge.c:253 builtin/pull.c:166
+#: builtin/merge.c:255 builtin/pull.c:148
 msgid "create a single commit instead of doing a merge"
 msgstr "创建一个单独的提交而不是做一次合并"
 
-#: builtin/merge.c:255 builtin/pull.c:169
+#: builtin/merge.c:257 builtin/pull.c:151
 msgid "perform a commit if the merge succeeds (default)"
 msgstr "如果合并成功,执行一次提交(默认)"
 
-#: builtin/merge.c:257 builtin/pull.c:172
+#: builtin/merge.c:259 builtin/pull.c:154
 msgid "edit message before committing"
 msgstr "在提交前编辑提交说明"
 
-#: builtin/merge.c:259
+#: builtin/merge.c:261
 msgid "allow fast-forward (default)"
 msgstr "允许快进(默认)"
 
-#: builtin/merge.c:261 builtin/pull.c:179
+#: builtin/merge.c:263 builtin/pull.c:161
 msgid "abort if fast-forward is not possible"
 msgstr "如果不能快进就放弃合并"
 
-#: builtin/merge.c:265 builtin/pull.c:182
+#: builtin/merge.c:267 builtin/pull.c:164
 msgid "verify that the named commit has a valid GPG signature"
 msgstr "验证指定的提交是否包含一个有效的 GPG 签名"
 
-#: builtin/merge.c:266 builtin/notes.c:787 builtin/pull.c:186
-#: builtin/rebase.c:492 builtin/rebase.c:1477 builtin/revert.c:114
+#: builtin/merge.c:268 builtin/notes.c:787 builtin/pull.c:168
+#: builtin/rebase.c:533 builtin/rebase.c:1406 builtin/revert.c:114
 msgid "strategy"
 msgstr "策略"
 
-#: builtin/merge.c:267 builtin/pull.c:187
+#: builtin/merge.c:269 builtin/pull.c:169
 msgid "merge strategy to use"
 msgstr "要使用的合并策略"
 
-#: builtin/merge.c:268 builtin/pull.c:190
+#: builtin/merge.c:270 builtin/pull.c:172
 msgid "option=value"
 msgstr "option=value"
 
-#: builtin/merge.c:269 builtin/pull.c:191
+#: builtin/merge.c:271 builtin/pull.c:173
 msgid "option for selected merge strategy"
 msgstr "所选的合并策略的选项"
 
-#: builtin/merge.c:271
+#: builtin/merge.c:273
 msgid "merge commit message (for a non-fast-forward merge)"
 msgstr "合并的提交说明(针对非快进式合并)"
 
-#: builtin/merge.c:278
+#: builtin/merge.c:280
 msgid "abort the current in-progress merge"
 msgstr "放弃当前正在进行的合并"
 
 #
-#: builtin/merge.c:280
+#: builtin/merge.c:282
 msgid "--abort but leave index and working tree alone"
 msgstr "--abort,但是保留索引和工作区"
 
-#: builtin/merge.c:282
+#: builtin/merge.c:284
 msgid "continue the current in-progress merge"
 msgstr "继续当前正在进行的合并"
 
-#: builtin/merge.c:284 builtin/pull.c:198
+#: builtin/merge.c:286 builtin/pull.c:180
 msgid "allow merging unrelated histories"
 msgstr "允许合并不相关的历史"
 
-#: builtin/merge.c:290
-msgid "verify commit-msg hook"
-msgstr "校验 commit-msg 钩子"
+#: builtin/merge.c:293
+msgid "bypass pre-merge-commit and commit-msg hooks"
+msgstr "绕过 pre-merge-commit 和 commit-msg 钩子"
 
-#: builtin/merge.c:307
+#: builtin/merge.c:310
 msgid "could not run stash."
 msgstr "不能运行贮藏。"
 
-#: builtin/merge.c:312
+#: builtin/merge.c:315
 msgid "stash failed"
 msgstr "贮藏失败"
 
-#: builtin/merge.c:317
+#: builtin/merge.c:320
 #, c-format
 msgid "not a valid object: %s"
 msgstr "不是一个有效对象:%s"
 
-#: builtin/merge.c:339 builtin/merge.c:356
+#: builtin/merge.c:342 builtin/merge.c:359
 msgid "read-tree failed"
 msgstr "读取树失败"
 
 #  译者:注意保持前导空格
-#: builtin/merge.c:386
+#: builtin/merge.c:389
 msgid " (nothing to squash)"
 msgstr " (无可压缩)"
 
-#: builtin/merge.c:397
+#: builtin/merge.c:400
 #, c-format
 msgid "Squash commit -- not updating HEAD\n"
 msgstr "压缩提交 -- 未更新 HEAD\n"
 
-#: builtin/merge.c:447
+#: builtin/merge.c:450
 #, c-format
 msgid "No merge message -- not updating HEAD\n"
 msgstr "无合并信息 -- 未更新 HEAD\n"
 
-#: builtin/merge.c:498
+#: builtin/merge.c:501
 #, c-format
 msgid "'%s' does not point to a commit"
 msgstr "'%s' 没有指向一个提交"
 
-#: builtin/merge.c:585
+#: builtin/merge.c:588
 #, c-format
 msgid "Bad branch.%s.mergeoptions string: %s"
 msgstr "坏的 branch.%s.mergeoptions 字符串:%s"
 
-#: builtin/merge.c:708
+#: builtin/merge.c:713
 msgid "Not handling anything other than two heads merge."
 msgstr "未处理两个头合并之外的任何操作。"
 
-#: builtin/merge.c:722
+#: builtin/merge.c:726
 #, c-format
 msgid "Unknown option for merge-recursive: -X%s"
 msgstr "merge-recursive 的未知选项:-X%s"
 
-#: builtin/merge.c:737
+#: builtin/merge.c:741
 #, c-format
 msgid "unable to write %s"
 msgstr "不能写 %s"
 
-#: builtin/merge.c:789
+#: builtin/merge.c:793
 #, c-format
 msgid "Could not read from '%s'"
 msgstr "不能从 '%s' 读取"
 
-#: builtin/merge.c:798
+#: builtin/merge.c:802
 #, c-format
 msgid "Not committing merge; use 'git commit' to complete the merge.\n"
 msgstr "未提交合并,使用 'git commit' 完成此次合并。\n"
 
-#: builtin/merge.c:804
+#: builtin/merge.c:808
 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"
@@ -14938,83 +16823,83 @@ msgstr ""
 "合并到主题分支。\n"
 "\n"
 
-#: builtin/merge.c:809
+#: builtin/merge.c:813
 msgid "An empty message aborts the commit.\n"
 msgstr "空的提交说明会终止提交。\n"
 
-#: builtin/merge.c:812
+#: builtin/merge.c:816
 #, 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:853
+#: builtin/merge.c:869
 msgid "Empty commit message."
 msgstr "空提交信息。"
 
-#: builtin/merge.c:872
+#: builtin/merge.c:884
 #, c-format
 msgid "Wonderful.\n"
 msgstr "太棒了。\n"
 
-#: builtin/merge.c:933
+#: builtin/merge.c:945
 #, c-format
 msgid "Automatic merge failed; fix conflicts and then commit the result.\n"
 msgstr "自动合并失败,修正冲突然后提交修正的结果。\n"
 
-#: builtin/merge.c:972
+#: builtin/merge.c:984
 msgid "No current branch."
 msgstr "没有当前分支。"
 
-#: builtin/merge.c:974
+#: builtin/merge.c:986
 msgid "No remote for the current branch."
 msgstr "当前分支没有对应的远程仓库。"
 
-#: builtin/merge.c:976
+#: builtin/merge.c:988
 msgid "No default upstream defined for the current branch."
 msgstr "当前分支没有定义默认的上游分支。"
 
-#: builtin/merge.c:981
+#: builtin/merge.c:993
 #, c-format
 msgid "No remote-tracking branch for %s from %s"
 msgstr "对于 %s 没有来自 %s 的远程跟踪分支"
 
-#: builtin/merge.c:1038
+#: builtin/merge.c:1050
 #, c-format
 msgid "Bad value '%s' in environment '%s'"
 msgstr "环境 '%2$s' 中存在坏的取值 '%1$s'"
 
-#: builtin/merge.c:1141
+#: builtin/merge.c:1153
 #, c-format
 msgid "not something we can merge in %s: %s"
 msgstr "不能在 %s 中合并:%s"
 
-#: builtin/merge.c:1175
+#: builtin/merge.c:1187
 msgid "not something we can merge"
 msgstr "不能合并"
 
-#: builtin/merge.c:1278
+#: builtin/merge.c:1291
 msgid "--abort expects no arguments"
 msgstr "--abort 不带参数"
 
-#: builtin/merge.c:1282
+#: builtin/merge.c:1295
 msgid "There is no merge to abort (MERGE_HEAD missing)."
 msgstr "没有要终止的合并(MERGE_HEAD 丢失)。"
 
-#: builtin/merge.c:1291
+#: builtin/merge.c:1313
 msgid "--quit expects no arguments"
 msgstr "--quit 不带参数"
 
-#: builtin/merge.c:1304
+#: builtin/merge.c:1326
 msgid "--continue expects no arguments"
 msgstr "--continue 不带参数"
 
-#: builtin/merge.c:1308
+#: builtin/merge.c:1330
 msgid "There is no merge in progress (MERGE_HEAD missing)."
 msgstr "没有进行中的合并(MERGE_HEAD 丢失)。"
 
-#: builtin/merge.c:1324
+#: builtin/merge.c:1346
 msgid ""
 "You have not concluded your merge (MERGE_HEAD exists).\n"
 "Please, commit your changes before you merge."
@@ -15022,7 +16907,7 @@ msgstr ""
 "您尚未结束您的合并(存在 MERGE_HEAD)。\n"
 "请在合并前先提交您的修改。"
 
-#: builtin/merge.c:1331
+#: builtin/merge.c:1353
 msgid ""
 "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
 "Please, commit your changes before you merge."
@@ -15030,211 +16915,100 @@ msgstr ""
 "您尚未结束您的拣选(存在 CHERRY_PICK_HEAD)。\n"
 "请在合并前先提交您的修改。"
 
-#: builtin/merge.c:1334
+#: builtin/merge.c:1356
 msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)."
 msgstr "您尚未结束您的拣选(存在 CHERRY_PICK_HEAD)。"
 
-#: builtin/merge.c:1348
+#: builtin/merge.c:1370
 msgid "You cannot combine --squash with --no-ff."
 msgstr "您不能将 --squash 和 --no-ff 组合使用。"
 
-#: builtin/merge.c:1350
+#: builtin/merge.c:1372
 msgid "You cannot combine --squash with --commit."
 msgstr "您不能将 --squash 和 --commit 组合使用。"
 
-#: builtin/merge.c:1366
+#: builtin/merge.c:1388
 msgid "No commit specified and merge.defaultToUpstream not set."
 msgstr "未指定提交并且 merge.defaultToUpstream 未设置。"
 
-#: builtin/merge.c:1383
+#: builtin/merge.c:1405
 msgid "Squash commit into empty head not supported yet"
 msgstr "尚不支持到空分支的压缩提交"
 
-#: builtin/merge.c:1385
+#: builtin/merge.c:1407
 msgid "Non-fast-forward commit does not make sense into an empty head"
 msgstr "到空分支的非快进式提交没有意义"
 
-#: builtin/merge.c:1390
+#: builtin/merge.c:1412
 #, c-format
 msgid "%s - not something we can merge"
 msgstr "%s - 不能被合并"
 
-#: builtin/merge.c:1392
+#: builtin/merge.c:1414
 msgid "Can merge only exactly one commit into empty head"
 msgstr "只能将一个提交合并到空分支上"
 
-#: builtin/merge.c:1471
+#: builtin/merge.c:1495
 msgid "refusing to merge unrelated histories"
 msgstr "拒绝合并无关的历史"
 
-#: builtin/merge.c:1480
+#: builtin/merge.c:1504
 msgid "Already up to date."
 msgstr "已经是最新的。"
 
-#: builtin/merge.c:1490
+#: builtin/merge.c:1514
 #, c-format
 msgid "Updating %s..%s\n"
 msgstr "更新 %s..%s\n"
 
-#: builtin/merge.c:1532
+#: builtin/merge.c:1560
 #, c-format
 msgid "Trying really trivial in-index merge...\n"
 msgstr "尝试非常小的索引内合并...\n"
 
-#: builtin/merge.c:1539
+#: builtin/merge.c:1567
 #, c-format
 msgid "Nope.\n"
 msgstr "无。\n"
 
-#: builtin/merge.c:1564
+#: builtin/merge.c:1592
 msgid "Already up to date. Yeeah!"
 msgstr "已经是最新的。耶!"
 
-#: builtin/merge.c:1570
+#: builtin/merge.c:1598
 msgid "Not possible to fast-forward, aborting."
 msgstr "无法快进,终止。"
 
-#: builtin/merge.c:1593 builtin/merge.c:1658
+#: builtin/merge.c:1626 builtin/merge.c:1691
 #, c-format
 msgid "Rewinding the tree to pristine...\n"
 msgstr "将树回滚至原始状态...\n"
 
-#: builtin/merge.c:1597
+#: builtin/merge.c:1630
 #, c-format
 msgid "Trying merge strategy %s...\n"
 msgstr "尝试合并策略 %s...\n"
 
-#: builtin/merge.c:1649
+#: builtin/merge.c:1682
 #, c-format
 msgid "No merge strategy handled the merge.\n"
 msgstr "没有合并策略处理此合并。\n"
 
-#: builtin/merge.c:1651
+#: builtin/merge.c:1684
 #, c-format
 msgid "Merge with strategy %s failed.\n"
 msgstr "使用策略 %s 合并失败。\n"
 
-#: builtin/merge.c:1660
+#: builtin/merge.c:1693
 #, c-format
 msgid "Using the %s to prepare resolving by hand.\n"
 msgstr "使用 %s 以准备手工解决。\n"
 
-#: builtin/merge.c:1672
+#: builtin/merge.c:1707
 #, c-format
 msgid "Automatic merge went well; stopped before committing as requested\n"
 msgstr "自动合并进展顺利,按要求在提交前停止\n"
 
-#: builtin/merge-base.c:32
-msgid "git merge-base [-a | --all] <commit> <commit>..."
-msgstr "git merge-base [-a | --all] <提交> <提交>..."
-
-#: builtin/merge-base.c:33
-msgid "git merge-base [-a | --all] --octopus <commit>..."
-msgstr "git merge-base [-a | --all] --octopus <提交>..."
-
-#: builtin/merge-base.c:34
-msgid "git merge-base --independent <commit>..."
-msgstr "git merge-base --independent <提交>..."
-
-#: builtin/merge-base.c:35
-msgid "git merge-base --is-ancestor <commit> <commit>"
-msgstr "git merge-base --is-ancestor <提交> <提交>"
-
-#: builtin/merge-base.c:36
-msgid "git merge-base --fork-point <ref> [<commit>]"
-msgstr "git merge-base --fork-point <引用> [<提交>]"
-
-#: builtin/merge-base.c:153
-msgid "output all common ancestors"
-msgstr "输出所有共同的祖先"
-
-#: builtin/merge-base.c:155
-msgid "find ancestors for a single n-way merge"
-msgstr "查找一个多路合并的祖先提交"
-
-#: builtin/merge-base.c:157
-msgid "list revs not reachable from others"
-msgstr "显示不能被其他访问到的版本"
-
-#: builtin/merge-base.c:159
-msgid "is the first one ancestor of the other?"
-msgstr "第一个是其他的祖先提交么?"
-
-#: builtin/merge-base.c:161
-msgid "find where <commit> forked from reflog of <ref>"
-msgstr "根据 <引用> 的引用日志查找 <提交> 的派生处"
-
-#: builtin/merge-file.c:9
-msgid ""
-"git merge-file [<options>] [-L <name1> [-L <orig> [-L <name2>]]] <file1> "
-"<orig-file> <file2>"
-msgstr ""
-"git merge-file [<选项>] [-L <文件1> [-L <初始> [-L <名字2>]]] <文件1> <初始文"
-"件> <文件2>"
-
-#: builtin/merge-file.c:35
-msgid "send results to standard output"
-msgstr "将结果发送到标准输出"
-
-#: builtin/merge-file.c:36
-msgid "use a diff3 based merge"
-msgstr "使用基于 diff3 的合并"
-
-#: builtin/merge-file.c:37
-msgid "for conflicts, use our version"
-msgstr "如果冲突,使用我们的版本"
-
-#: builtin/merge-file.c:39
-msgid "for conflicts, use their version"
-msgstr "如果冲突,使用他们的版本"
-
-#: builtin/merge-file.c:41
-msgid "for conflicts, use a union version"
-msgstr "如果冲突,使用联合版本"
-
-#: builtin/merge-file.c:44
-msgid "for conflicts, use this marker size"
-msgstr "如果冲突,使用指定长度的标记"
-
-#: builtin/merge-file.c:45
-msgid "do not warn about conflicts"
-msgstr "不要警告冲突"
-
-#: builtin/merge-file.c:47
-msgid "set labels for file1/orig-file/file2"
-msgstr "为 文件1/初始文件/文件2 设置标签"
-
-#: builtin/merge-recursive.c:46
-#, c-format
-msgid "unknown option %s"
-msgstr "未知选项 %s"
-
-#: builtin/merge-recursive.c:52
-#, c-format
-msgid "could not parse object '%s'"
-msgstr "不能解析对象 '%s'"
-
-#: builtin/merge-recursive.c:56
-#, c-format
-msgid "cannot handle more than %d base. Ignoring %s."
-msgid_plural "cannot handle more than %d bases. Ignoring %s."
-msgstr[0] "无法处理 %d 条以上的基线。忽略 %s。"
-msgstr[1] "无法处理 %d 条以上的基线。忽略 %s。"
-
-#: builtin/merge-recursive.c:64
-msgid "not handling anything other than two heads merge."
-msgstr "不能处理两个头合并之外的任何操作。"
-
-#: builtin/merge-recursive.c:70 builtin/merge-recursive.c:72
-#, c-format
-msgid "could not resolve ref '%s'"
-msgstr "无法解析引用 '%s'"
-
-#: builtin/merge-recursive.c:78
-#, c-format
-msgid "Merging %s with %s\n"
-msgstr "合并 %s 和 %s\n"
-
 #: builtin/mktree.c:66
 msgid "git mktree [-z] [--missing] [--batch]"
 msgstr "git mktree [-z] [--missing] [--batch]"
@@ -15253,31 +17027,31 @@ msgstr "允许创建一个以上的树"
 
 #: builtin/multi-pack-index.c:9
 msgid ""
-"git multi-pack-index [--object-dir=<dir>] (write|verify|expire|repack --"
-"batch-size=<size>)"
+"git multi-pack-index [<options>] (write|verify|expire|repack --batch-"
+"size=<size>)"
 msgstr ""
-"git multi-pack-index [--object-dir=<目录>] (write|verify|expire|repack --"
-"batch-size=<大小>)"
+"git multi-pack-index [<选项>] (write|verify|expire|repack --batch-size=<大小"
+">)"
 
-#: builtin/multi-pack-index.c:23
+#: builtin/multi-pack-index.c:26
 msgid "object directory containing set of packfile and pack-index pairs"
 msgstr "包含成对包文件和包索引的对象目录"
 
-#: builtin/multi-pack-index.c:25
+#: builtin/multi-pack-index.c:29
 msgid ""
 "during repack, collect pack-files of smaller size into a batch that is "
 "larger than this size"
 msgstr "在 repack 期间,将较小尺寸的包文件收集到大于此大小的批次中"
 
-#: builtin/multi-pack-index.c:43 builtin/prune-packed.c:67
+#: builtin/multi-pack-index.c:50 builtin/prune-packed.c:25
 msgid "too many arguments"
 msgstr "太多参数"
 
-#: builtin/multi-pack-index.c:52
+#: builtin/multi-pack-index.c:60
 msgid "--batch-size option is only for 'repack' subcommand"
 msgstr "--batch-size 选项仅用于 'repack' 子命令"
 
-#: builtin/multi-pack-index.c:61
+#: builtin/multi-pack-index.c:69
 #, c-format
 msgid "unrecognized subcommand: %s"
 msgstr "未识别的子命令:%s"
@@ -15308,113 +17082,117 @@ msgstr "强制移动/重命令,即使目标存在"
 msgid "skip move/rename errors"
 msgstr "跳过移动/重命名错误"
 
-#: builtin/mv.c:169
+#: builtin/mv.c:170
 #, c-format
 msgid "destination '%s' is not a directory"
 msgstr "目标 '%s' 不是一个目录"
 
-#: builtin/mv.c:180
+#: builtin/mv.c:181
 #, c-format
 msgid "Checking rename of '%s' to '%s'\n"
 msgstr "检查 '%s' 到 '%s' 的重命名\n"
 
-#: builtin/mv.c:184
+#: builtin/mv.c:185
 msgid "bad source"
 msgstr "坏的源"
 
-#: builtin/mv.c:187
+#: builtin/mv.c:188
 msgid "can not move directory into itself"
 msgstr "不能将目录移动到自身"
 
-#: builtin/mv.c:190
+#: builtin/mv.c:191
 msgid "cannot move directory over file"
 msgstr "不能将目录移动到文件"
 
-#: builtin/mv.c:199
+#: builtin/mv.c:200
 msgid "source directory is empty"
 msgstr "源目录为空"
 
-#: builtin/mv.c:224
+#: builtin/mv.c:225
 msgid "not under version control"
 msgstr "不在版本控制之下"
 
 #: builtin/mv.c:227
+msgid "conflicted"
+msgstr "冲突"
+
+#: builtin/mv.c:230
 msgid "destination exists"
 msgstr "目标已存在"
 
-#: builtin/mv.c:235
+#: builtin/mv.c:238
 #, c-format
 msgid "overwriting '%s'"
 msgstr "覆盖 '%s'"
 
-#: builtin/mv.c:238
+#: builtin/mv.c:241
 msgid "Cannot overwrite"
 msgstr "不能覆盖"
 
-#: builtin/mv.c:241
+#: builtin/mv.c:244
 msgid "multiple sources for the same target"
 msgstr "同一目标具有多个源"
 
-#: builtin/mv.c:243
+#: builtin/mv.c:246
 msgid "destination directory does not exist"
 msgstr "目标目录不存在"
 
-#: builtin/mv.c:250
+#: builtin/mv.c:253
 #, c-format
 msgid "%s, source=%s, destination=%s"
 msgstr "%s,源=%s,目标=%s"
 
-#: builtin/mv.c:271
+#: builtin/mv.c:274
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "重命名 %s 至 %s\n"
 
-#: builtin/mv.c:277 builtin/remote.c:717 builtin/repack.c:510
+#: builtin/mv.c:280 builtin/remote.c:782 builtin/repack.c:518
 #, c-format
 msgid "renaming '%s' failed"
 msgstr "重命名 '%s' 失败"
 
-#: builtin/name-rev.c:352
+#: builtin/name-rev.c:465
 msgid "git name-rev [<options>] <commit>..."
 msgstr "git name-rev [<选项>] <提交>..."
 
-#: builtin/name-rev.c:353
+#: builtin/name-rev.c:466
 msgid "git name-rev [<options>] --all"
 msgstr "git name-rev [<选项>] --all"
 
-#: builtin/name-rev.c:354
+#: builtin/name-rev.c:467
 msgid "git name-rev [<options>] --stdin"
 msgstr "git name-rev [<选项>] --stdin"
 
-#: builtin/name-rev.c:411
-msgid "print only names (no SHA-1)"
-msgstr "只打印名称(无 SHA-1)"
+#: builtin/name-rev.c:524
+msgid "print only ref-based names (no object names)"
+msgstr "只打印基于引用的名称(非对象名)"
 
-#: builtin/name-rev.c:412
+#: builtin/name-rev.c:525
 msgid "only use tags to name the commits"
 msgstr "只使用标签来命名提交"
 
-#: builtin/name-rev.c:414
+#: builtin/name-rev.c:527
 msgid "only use refs matching <pattern>"
 msgstr "只使用和 <模式> 相匹配的引用"
 
-#: builtin/name-rev.c:416
+#: builtin/name-rev.c:529
 msgid "ignore refs matching <pattern>"
 msgstr "忽略和 <模式> 相匹配的引用"
 
-#: builtin/name-rev.c:418
+#: builtin/name-rev.c:531
 msgid "list all commits reachable from all refs"
 msgstr "列出可以从所有引用访问的提交"
 
-#: builtin/name-rev.c:419
+#: builtin/name-rev.c:532
 msgid "read from stdin"
 msgstr "从标准输入读取"
 
-#: builtin/name-rev.c:420
+#: builtin/name-rev.c:533
 msgid "allow to print `undefined` names (default)"
 msgstr "允许打印 `未定义` 的名称(默认)"
 
-#: builtin/name-rev.c:426
+#: builtin/name-rev.c:539
 msgid "dereference tags in the input (internal use)"
 msgstr "反向解析输入中的标签(内部使用)"
 
@@ -15558,7 +17336,7 @@ msgstr "不能写注解对象"
 msgid "the note contents have been left in %s"
 msgstr "注解内容被留在 %s 中"
 
-#: builtin/notes.c:242 builtin/tag.c:532
+#: builtin/notes.c:242 builtin/tag.c:533
 #, c-format
 msgid "could not open or read '%s'"
 msgstr "不能打开或读取 '%s'"
@@ -15783,7 +17561,7 @@ msgstr ""
 "自动合并说明失败。修改 %s 中的冲突并且使用命令 'git notes merge --commit' 提"
 "交结果,或者使用命令 'git notes merge --abort' 终止合并。\n"
 
-#: builtin/notes.c:897 builtin/tag.c:545
+#: builtin/notes.c:897 builtin/tag.c:546
 #, c-format
 msgid "Failed to resolve '%s' as a valid ref."
 msgstr "无法解析 '%s' 为一个有效引用。"
@@ -15801,7 +17579,7 @@ msgstr "尝试删除不存在的注解不是一个错误"
 msgid "read object names from the standard input"
 msgstr "从标准输入读取对象名称"
 
-#: builtin/notes.c:954 builtin/prune.c:130 builtin/worktree.c:165
+#: builtin/notes.c:954 builtin/prune.c:132 builtin/worktree.c:220
 msgid "do not remove, show only"
 msgstr "不删除,只显示"
 
@@ -15817,139 +17595,131 @@ msgstr "注解引用"
 msgid "use notes from <notes-ref>"
 msgstr "从 <注解引用> 使用注解"
 
-#: builtin/notes.c:1034 builtin/stash.c:1598
+#: builtin/notes.c:1034 builtin/stash.c:1605
 #, c-format
 msgid "unknown subcommand: %s"
 msgstr "未知子命令:%s"
 
-#: builtin/pack-objects.c:52
+#: builtin/pack-objects.c:54
 msgid ""
 "git pack-objects --stdout [<options>...] [< <ref-list> | < <object-list>]"
 msgstr "git pack-objects --stdout [<选项>...] [< <引用列表> | < <对象列表>]"
 
-#: builtin/pack-objects.c:53
+#: builtin/pack-objects.c:55
 msgid ""
 "git pack-objects [<options>...] <base-name> [< <ref-list> | < <object-list>]"
 msgstr "git pack-objects [<选项>...] <前缀名称> [< <引用列表> | < <对象列表>]"
 
-#: builtin/pack-objects.c:428
+#: builtin/pack-objects.c:443
 #, c-format
 msgid "bad packed object CRC for %s"
 msgstr "%s 错的包对象 CRC"
 
-#: builtin/pack-objects.c:439
+#: builtin/pack-objects.c:454
 #, c-format
 msgid "corrupt packed object for %s"
 msgstr "%s 损坏的包对象"
 
-#: builtin/pack-objects.c:570
+#: builtin/pack-objects.c:585
 #, c-format
 msgid "recursive delta detected for object %s"
 msgstr "发现对象 %s 递归 delta"
 
-#: builtin/pack-objects.c:781
+#: builtin/pack-objects.c:796
 #, c-format
 msgid "ordered %u objects, expected %<PRIu32>"
 msgstr "排序了 %u 个对象,预期 %<PRIu32> 个"
 
-#: builtin/pack-objects.c:794
-#, c-format
-msgid "packfile is invalid: %s"
-msgstr "无效的包文件:%s"
-
-#: builtin/pack-objects.c:798
-#, c-format
-msgid "unable to open packfile for reuse: %s"
-msgstr "无法为重用打开包文件:%s"
-
-#: builtin/pack-objects.c:802
-msgid "unable to seek in reused packfile"
-msgstr "无法在重用的包文件中查找"
-
-#: builtin/pack-objects.c:813
-msgid "unable to read from reused packfile"
-msgstr "无法读取索引文件"
-
-#: builtin/pack-objects.c:841
+#: builtin/pack-objects.c:1004
 msgid "disabling bitmap writing, packs are split due to pack.packSizeLimit"
 msgstr "禁用 bitmap 写入,因为 pack.packSizeLimit 设置使得包被切分为多个"
 
-#: builtin/pack-objects.c:854
+#: builtin/pack-objects.c:1017
 msgid "Writing objects"
 msgstr "写入对象中"
 
-#: builtin/pack-objects.c:917 builtin/update-index.c:89
+#: builtin/pack-objects.c:1078 builtin/update-index.c:90
 #, c-format
 msgid "failed to stat %s"
 msgstr "对 %s 调用 stat 失败"
 
-#: builtin/pack-objects.c:970
+#: builtin/pack-objects.c:1131
 #, c-format
 msgid "wrote %<PRIu32> objects while expecting %<PRIu32>"
 msgstr "写入 %<PRIu32> 个对象而预期 %<PRIu32> 个"
 
-#: builtin/pack-objects.c:1166
+#: builtin/pack-objects.c:1348
 msgid "disabling bitmap writing, as some objects are not being packed"
 msgstr "禁用 bitmap 写入,因为一些对象将不会被打包"
 
-#: builtin/pack-objects.c:1597
+#: builtin/pack-objects.c:1796
 #, c-format
 msgid "delta base offset overflow in pack for %s"
 msgstr "%s 压缩中 delta 基准偏移越界"
 
-#: builtin/pack-objects.c:1606
+#: builtin/pack-objects.c:1805
 #, c-format
 msgid "delta base offset out of bound for %s"
 msgstr "%s 的 delta 基准偏移越界"
 
-#: builtin/pack-objects.c:1875
+#: builtin/pack-objects.c:2086
 msgid "Counting objects"
 msgstr "对象计数中"
 
-#: builtin/pack-objects.c:2005
-#, c-format
-msgid "unable to get size of %s"
-msgstr "不能得到 %s 的大小"
-
-#: builtin/pack-objects.c:2020
+#: builtin/pack-objects.c:2231
 #, c-format
 msgid "unable to parse object header of %s"
 msgstr "无法解析对象 %s 头信息"
 
-#: builtin/pack-objects.c:2090 builtin/pack-objects.c:2106
-#: builtin/pack-objects.c:2116
+#: builtin/pack-objects.c:2301 builtin/pack-objects.c:2317
+#: builtin/pack-objects.c:2327
 #, c-format
 msgid "object %s cannot be read"
 msgstr "对象 %s 无法读取"
 
-#: builtin/pack-objects.c:2093 builtin/pack-objects.c:2120
+#: builtin/pack-objects.c:2304 builtin/pack-objects.c:2331
 #, c-format
 msgid "object %s inconsistent object length (%<PRIuMAX> vs %<PRIuMAX>)"
 msgstr "对象 %s 不一致的对象长度(%<PRIuMAX> vs %<PRIuMAX>)"
 
-#: builtin/pack-objects.c:2130
+#: builtin/pack-objects.c:2341
 msgid "suboptimal pack - out of memory"
 msgstr "次优(suboptimal)打包 - 内存不足"
 
-#: builtin/pack-objects.c:2456
+#: builtin/pack-objects.c:2656
 #, c-format
 msgid "Delta compression using up to %d threads"
 msgstr "使用 %d 个线程进行压缩"
 
-#: builtin/pack-objects.c:2588
+#: builtin/pack-objects.c:2795
 #, c-format
 msgid "unable to pack objects reachable from tag %s"
 msgstr "无法为标签 %s 压缩对象"
 
-#: builtin/pack-objects.c:2675
+#: builtin/pack-objects.c:2883
 msgid "Compressing objects"
 msgstr "压缩对象中"
 
-#: builtin/pack-objects.c:2681
+#: builtin/pack-objects.c:2889
 msgid "inconsistency with delta count"
 msgstr "不一致的差异计数"
 
-#: builtin/pack-objects.c:2762
+#: builtin/pack-objects.c:2961
+#, c-format
+msgid ""
+"value of uploadpack.blobpackfileuri must be of the form '<object-hash> <pack-"
+"hash> <uri>' (got '%s')"
+msgstr ""
+"uploadpack.blobpackfileuri 的取值必须是 '<object-hash> <pack-hash> <uri>' 格"
+"式(得到 '%s')"
+
+#: builtin/pack-objects.c:2964
+#, c-format
+msgid ""
+"object already configured in another uploadpack.blobpackfileuri (got '%s')"
+msgstr "对象已经在另外的 uploadpack.blobpackfileuri 中配置(得到 '%s')"
+
+#: builtin/pack-objects.c:2993
 #, c-format
 msgid ""
 "expected edge object ID, got garbage:\n"
@@ -15958,7 +17728,7 @@ msgstr ""
 "预期边界对象(edge object)ID,却得到垃圾数据:\n"
 " %s"
 
-#: builtin/pack-objects.c:2768
+#: builtin/pack-objects.c:2999
 #, c-format
 msgid ""
 "expected object ID, got garbage:\n"
@@ -15967,245 +17737,241 @@ msgstr ""
 "预期对象 ID,却得到垃圾数据:\n"
 " %s"
 
-#: builtin/pack-objects.c:2866
+#: builtin/pack-objects.c:3097
 msgid "invalid value for --missing"
 msgstr "选项 --missing 的值无效"
 
-#: builtin/pack-objects.c:2925 builtin/pack-objects.c:3033
+#: builtin/pack-objects.c:3156 builtin/pack-objects.c:3264
 msgid "cannot open pack index"
 msgstr "无法打开包文件索引"
 
-#: builtin/pack-objects.c:2956
+#: builtin/pack-objects.c:3187
 #, c-format
 msgid "loose object at %s could not be examined"
 msgstr "无法检查 %s 处的松散对象"
 
-#: builtin/pack-objects.c:3041
+#: builtin/pack-objects.c:3272
 msgid "unable to force loose object"
 msgstr "无法强制松散对象"
 
-#: builtin/pack-objects.c:3133
+#: builtin/pack-objects.c:3365
 #, c-format
 msgid "not a rev '%s'"
 msgstr "不是一个版本 '%s'"
 
-#: builtin/pack-objects.c:3136
+#: builtin/pack-objects.c:3368
 #, c-format
 msgid "bad revision '%s'"
 msgstr "坏的版本 '%s'"
 
-#: builtin/pack-objects.c:3161
+#: builtin/pack-objects.c:3393
 msgid "unable to add recent objects"
 msgstr "无法添加最近的对象"
 
-#: builtin/pack-objects.c:3214
+#: builtin/pack-objects.c:3446
 #, c-format
 msgid "unsupported index version %s"
 msgstr "不支持的索引版本 %s"
 
-#: builtin/pack-objects.c:3218
+#: builtin/pack-objects.c:3450
 #, c-format
 msgid "bad index version '%s'"
 msgstr "坏的索引版本 '%s'"
 
-#: builtin/pack-objects.c:3248
-msgid "do not show progress meter"
-msgstr "不显示进度表"
-
-#: builtin/pack-objects.c:3250
-msgid "show progress meter"
-msgstr "显示进度表"
-
-#: builtin/pack-objects.c:3252
-msgid "show progress meter during object writing phase"
-msgstr "在对象写入阶段显示进度表"
-
-#: builtin/pack-objects.c:3255
-msgid "similar to --all-progress when progress meter is shown"
-msgstr "当进度表显示时类似于 --all-progress"
-
-#: builtin/pack-objects.c:3256
+#: builtin/pack-objects.c:3488
 msgid "<version>[,<offset>]"
 msgstr "<版本>[,<偏移>]"
 
-#: builtin/pack-objects.c:3257
+#: builtin/pack-objects.c:3489
 msgid "write the pack index file in the specified idx format version"
 msgstr "用指定的 idx 格式版本来写包索引文件"
 
-#: builtin/pack-objects.c:3260
+#: builtin/pack-objects.c:3492
 msgid "maximum size of each output pack file"
 msgstr "每个输出包的最大尺寸"
 
-#: builtin/pack-objects.c:3262
+#: builtin/pack-objects.c:3494
 msgid "ignore borrowed objects from alternate object store"
 msgstr "忽略从备用对象存储里借用对象"
 
-#: builtin/pack-objects.c:3264
+#: builtin/pack-objects.c:3496
 msgid "ignore packed objects"
 msgstr "忽略包对象"
 
-#: builtin/pack-objects.c:3266
+#: builtin/pack-objects.c:3498
 msgid "limit pack window by objects"
 msgstr "限制打包窗口的对象数"
 
-#: builtin/pack-objects.c:3268
+#: builtin/pack-objects.c:3500
 msgid "limit pack window by memory in addition to object limit"
 msgstr "除对象数量限制外设置打包窗口的内存限制"
 
-#: builtin/pack-objects.c:3270
+#: builtin/pack-objects.c:3502
 msgid "maximum length of delta chain allowed in the resulting pack"
 msgstr "打包允许的 delta 链的最大长度"
 
-#: builtin/pack-objects.c:3272
+#: builtin/pack-objects.c:3504
 msgid "reuse existing deltas"
 msgstr "重用已存在的 deltas"
 
-#: builtin/pack-objects.c:3274
+#: builtin/pack-objects.c:3506
 msgid "reuse existing objects"
 msgstr "重用已存在的对象"
 
-#: builtin/pack-objects.c:3276
+#: builtin/pack-objects.c:3508
 msgid "use OFS_DELTA objects"
 msgstr "使用 OFS_DELTA 对象"
 
-#: builtin/pack-objects.c:3278
+#: builtin/pack-objects.c:3510
 msgid "use threads when searching for best delta matches"
 msgstr "使用线程查询最佳 delta 匹配"
 
-#: builtin/pack-objects.c:3280
+#: builtin/pack-objects.c:3512
 msgid "do not create an empty pack output"
 msgstr "不创建空的包输出"
 
-#: builtin/pack-objects.c:3282
+#: builtin/pack-objects.c:3514
 msgid "read revision arguments from standard input"
 msgstr "从标准输入读取版本号参数"
 
-#: builtin/pack-objects.c:3284
+#: builtin/pack-objects.c:3516
 msgid "limit the objects to those that are not yet packed"
 msgstr "限制那些尚未打包的对象"
 
-#: builtin/pack-objects.c:3287
+#: builtin/pack-objects.c:3519
 msgid "include objects reachable from any reference"
 msgstr "包括可以从任何引用访问到的对象"
 
-#: builtin/pack-objects.c:3290
+#: builtin/pack-objects.c:3522
 msgid "include objects referred by reflog entries"
 msgstr "包括被引用日志引用到的对象"
 
-#: builtin/pack-objects.c:3293
+#: builtin/pack-objects.c:3525
 msgid "include objects referred to by the index"
 msgstr "包括被索引引用到的对象"
 
-#: builtin/pack-objects.c:3296
+#: builtin/pack-objects.c:3528
 msgid "output pack to stdout"
 msgstr "输出包到标准输出"
 
-#: builtin/pack-objects.c:3298
+#: builtin/pack-objects.c:3530
 msgid "include tag objects that refer to objects to be packed"
 msgstr "包括那些引用了待打包对象的标签对象"
 
-#: builtin/pack-objects.c:3300
+#: builtin/pack-objects.c:3532
 msgid "keep unreachable objects"
 msgstr "维持不可达的对象"
 
-#: builtin/pack-objects.c:3302
+#: builtin/pack-objects.c:3534
 msgid "pack loose unreachable objects"
 msgstr "打包松散的不可达对象"
 
-#: builtin/pack-objects.c:3304
+#: builtin/pack-objects.c:3536
 msgid "unpack unreachable objects newer than <time>"
 msgstr "将比给定 <时间> 新的无法访问的对象解包"
 
-#: builtin/pack-objects.c:3307
+#: builtin/pack-objects.c:3539
 msgid "use the sparse reachability algorithm"
 msgstr "使用稀疏可达性算法"
 
-#: builtin/pack-objects.c:3309
+#: builtin/pack-objects.c:3541
 msgid "create thin packs"
 msgstr "创建精简包"
 
-#: builtin/pack-objects.c:3311
+#: builtin/pack-objects.c:3543
 msgid "create packs suitable for shallow fetches"
 msgstr "创建适合浅克隆仓库获取的包"
 
-#: builtin/pack-objects.c:3313
+#: builtin/pack-objects.c:3545
 msgid "ignore packs that have companion .keep file"
 msgstr "忽略配有 .keep 文件的包"
 
-#: builtin/pack-objects.c:3315
+#: builtin/pack-objects.c:3547
 msgid "ignore this pack"
 msgstr "忽略该 pack"
 
-#: builtin/pack-objects.c:3317
+#: builtin/pack-objects.c:3549
 msgid "pack compression level"
 msgstr "打包压缩级别"
 
-#: builtin/pack-objects.c:3319
+#: builtin/pack-objects.c:3551
 msgid "do not hide commits by grafts"
 msgstr "显示被移植隐藏的提交"
 
-#: builtin/pack-objects.c:3321
+#: builtin/pack-objects.c:3553
 msgid "use a bitmap index if available to speed up counting objects"
 msgstr "使用 bitmap 索引(如果有的话)以提高对象计数时的速度"
 
-#: builtin/pack-objects.c:3323
+#: builtin/pack-objects.c:3555
 msgid "write a bitmap index together with the pack index"
 msgstr "在建立包索引的同时创建 bitmap 索引"
 
-#: builtin/pack-objects.c:3327
+#: builtin/pack-objects.c:3559
 msgid "write a bitmap index if possible"
 msgstr "如果可能,写 bitmap 索引"
 
-#: builtin/pack-objects.c:3331
+#: builtin/pack-objects.c:3563
 msgid "handling for missing objects"
 msgstr "处理丢失的对象"
 
-#: builtin/pack-objects.c:3334
+#: builtin/pack-objects.c:3566
 msgid "do not pack objects in promisor packfiles"
 msgstr "不要打包 promisor 包文件中的对象"
 
-#: builtin/pack-objects.c:3336
+#: builtin/pack-objects.c:3568
 msgid "respect islands during delta compression"
 msgstr "在增量压缩时参考数据岛"
 
-#: builtin/pack-objects.c:3361
+#: builtin/pack-objects.c:3570
+msgid "protocol"
+msgstr "协议"
+
+#: builtin/pack-objects.c:3571
+msgid "exclude any configured uploadpack.blobpackfileuri with this protocol"
+msgstr "使用此协议排除任何已配置的 uploadpack.blobpackfileuri"
+
+#: builtin/pack-objects.c:3600
 #, c-format
 msgid "delta chain depth %d is too deep, forcing %d"
 msgstr "增量链深度 %d 太深了,强制为 %d"
 
-#: builtin/pack-objects.c:3366
+#: builtin/pack-objects.c:3605
 #, c-format
 msgid "pack.deltaCacheLimit is too high, forcing %d"
 msgstr "配置 pack.deltaCacheLimit 太高了,强制为 %d"
 
-#: builtin/pack-objects.c:3420
+#: builtin/pack-objects.c:3659
 msgid "--max-pack-size cannot be used to build a pack for transfer"
 msgstr "不能使用 --max-pack-size 来构建传输用的包文件"
 
-#: builtin/pack-objects.c:3422
+#: builtin/pack-objects.c:3661
 msgid "minimum pack size limit is 1 MiB"
 msgstr "最小的包文件大小是 1 MiB"
 
-#: builtin/pack-objects.c:3427
+#: builtin/pack-objects.c:3666
 msgid "--thin cannot be used to build an indexable pack"
 msgstr "--thin 不能用于创建一个可索引包"
 
-#: builtin/pack-objects.c:3430
+#: builtin/pack-objects.c:3669
 msgid "--keep-unreachable and --unpack-unreachable are incompatible"
 msgstr "--keep-unreachable 和 --unpack-unreachable 不兼容"
 
-#: builtin/pack-objects.c:3436
+#: builtin/pack-objects.c:3675
 msgid "cannot use --filter without --stdout"
 msgstr "不能在没有 --stdout 的情况下使用 --filter"
 
-#: builtin/pack-objects.c:3497
+#: builtin/pack-objects.c:3735
 msgid "Enumerating objects"
-msgstr "枚举对象"
+msgstr "枚举对象中"
 
-#: builtin/pack-objects.c:3527
+#: builtin/pack-objects.c:3766
 #, c-format
-msgid "Total %<PRIu32> (delta %<PRIu32>), reused %<PRIu32> (delta %<PRIu32>)"
-msgstr "总共 %<PRIu32> (差异 %<PRIu32>),复用 %<PRIu32> (差异 %<PRIu32>)"
+msgid ""
+"Total %<PRIu32> (delta %<PRIu32>), reused %<PRIu32> (delta %<PRIu32>), pack-"
+"reused %<PRIu32>"
+msgstr ""
+"总共 %<PRIu32>(差异 %<PRIu32>),复用 %<PRIu32>(差异 %<PRIu32>),包复用 "
+"%<PRIu32>"
 
 #: builtin/pack-refs.c:8
 msgid "git pack-refs [<options>]"
@@ -16219,98 +17985,121 @@ msgstr "打包一切"
 msgid "prune loose refs (default)"
 msgstr "清除松散的引用(默认)"
 
-#: builtin/prune-packed.c:9
+#: builtin/prune-packed.c:6
 msgid "git prune-packed [-n | --dry-run] [-q | --quiet]"
 msgstr "git prune-packed [-n | --dry-run] [-q | --quiet]"
 
-#: builtin/prune-packed.c:42
-msgid "Removing duplicate objects"
-msgstr "正在删除重复对象"
-
-#: builtin/prune.c:12
+#: builtin/prune.c:14
 msgid "git prune [-n] [-v] [--progress] [--expire <time>] [--] [<head>...]"
 msgstr "git prune [-n] [-v] [--progress] [--expire <时间>] [--] [<head>...]"
 
-#: builtin/prune.c:131
+#: builtin/prune.c:133
 msgid "report pruned objects"
 msgstr "报告清除的对象"
 
-#: builtin/prune.c:134
+#: builtin/prune.c:136
 msgid "expire objects older than <time>"
 msgstr "使早于给定时间的对象过期"
 
-#: builtin/prune.c:136
+#: builtin/prune.c:138
 msgid "limit traversal to objects outside promisor packfiles"
 msgstr "限制遍历 promisor 包以外的对象"
 
-#: builtin/prune.c:150
+#: builtin/prune.c:152
 msgid "cannot prune in a precious-objects repo"
 msgstr "不能在珍品仓库中执行清理操作"
 
-#: builtin/pull.c:66 builtin/pull.c:68
+#: builtin/pull.c:45 builtin/pull.c:47
 #, c-format
 msgid "Invalid value for %s: %s"
 msgstr "%s 的值无效:%s"
 
-#: builtin/pull.c:88
+#: builtin/pull.c:67
 msgid "git pull [<options>] [<repository> [<refspec>...]]"
 msgstr "git pull [<选项>] [<仓库> [<引用规格>...]]"
 
-#: builtin/pull.c:141
+#: builtin/pull.c:123
 msgid "control for recursive fetching of submodules"
 msgstr "控制子模组的递归获取"
 
-#: builtin/pull.c:145
+#: builtin/pull.c:127
 msgid "Options related to merging"
 msgstr "和合并相关的选项"
 
-#: builtin/pull.c:148
+#: builtin/pull.c:130
 msgid "incorporate changes by rebasing rather than merging"
 msgstr "使用变基操作取代合并操作以合入修改"
 
-#: builtin/pull.c:176 builtin/rebase.c:447 builtin/revert.c:126
+#: builtin/pull.c:158 builtin/rebase.c:484 builtin/revert.c:126
 msgid "allow fast-forward"
 msgstr "允许快进式"
 
-#: builtin/pull.c:185
-msgid "automatically stash/stash pop before and after rebase"
-msgstr "变基操作前后执行自动贮藏和弹出贮藏"
+#: builtin/pull.c:167 parse-options.h:339
+msgid "automatically stash/stash pop before and after"
+msgstr "在操作前后执行自动贮藏和弹出贮藏"
 
-#: builtin/pull.c:201
+#: builtin/pull.c:183
 msgid "Options related to fetching"
 msgstr "和获取相关的参数"
 
-#: builtin/pull.c:211
+#: builtin/pull.c:193
 msgid "force overwrite of local branch"
 msgstr "强制覆盖本地分支"
 
-#: builtin/pull.c:219
+#: builtin/pull.c:201
 msgid "number of submodules pulled in parallel"
 msgstr "并发拉取的子模组的数量"
 
-#: builtin/pull.c:316
+#: builtin/pull.c:317
 #, c-format
 msgid "Invalid value for pull.ff: %s"
 msgstr "pull.ff 的取值无效:%s"
 
-#: builtin/pull.c:433
+#: 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
 msgid ""
 "There is no candidate for rebasing against among the refs that you just "
 "fetched."
 msgstr "在您刚刚获取到的引用中没有变基操作的候选。"
 
-#: builtin/pull.c:435
+#: builtin/pull.c:460
 msgid ""
 "There are no candidates for merging among the refs that you just fetched."
 msgstr "在您刚刚获取到的引用中没有合并操作的候选。"
 
-#: builtin/pull.c:436
+#: builtin/pull.c:461
 msgid ""
 "Generally this means that you provided a wildcard refspec which had no\n"
 "matches on the remote end."
 msgstr "通常这意味着您提供了一个通配符引用规格但未能和远端匹配。"
 
-#: builtin/pull.c:439
+#: builtin/pull.c:464
 #, c-format
 msgid ""
 "You asked to pull from the remote '%s', but did not specify\n"
@@ -16320,42 +18109,42 @@ msgstr ""
 "您要求从远程 '%s' 拉取,但是未指定一个分支。因为这不是当前\n"
 "分支默认的远程仓库,您必须在命令行中指定一个分支名。"
 
-#: builtin/pull.c:444 builtin/rebase.c:1326 git-parse-remote.sh:73
+#: builtin/pull.c:469 builtin/rebase.c:1240 git-parse-remote.sh:73
 msgid "You are not currently on a branch."
 msgstr "您当前不在一个分支上。"
 
-#: builtin/pull.c:446 builtin/pull.c:461 git-parse-remote.sh:79
+#: builtin/pull.c:471 builtin/pull.c:486 git-parse-remote.sh:79
 msgid "Please specify which branch you want to rebase against."
 msgstr "请指定您要变基到哪一个分支。"
 
-#: builtin/pull.c:448 builtin/pull.c:463 git-parse-remote.sh:82
+#: builtin/pull.c:473 builtin/pull.c:488 git-parse-remote.sh:82
 msgid "Please specify which branch you want to merge with."
 msgstr "请指定您要合并哪一个分支。"
 
-#: builtin/pull.c:449 builtin/pull.c:464
+#: builtin/pull.c:474 builtin/pull.c:489
 msgid "See git-pull(1) for details."
 msgstr "详见 git-pull(1)。"
 
-#: builtin/pull.c:451 builtin/pull.c:457 builtin/pull.c:466
-#: builtin/rebase.c:1332 git-parse-remote.sh:64
+#: builtin/pull.c:476 builtin/pull.c:482 builtin/pull.c:491
+#: builtin/rebase.c:1246 git-parse-remote.sh:64
 msgid "<remote>"
 msgstr "<远程>"
 
-#: builtin/pull.c:451 builtin/pull.c:466 builtin/pull.c:471
+#: builtin/pull.c:476 builtin/pull.c:491 builtin/pull.c:496
 #: git-parse-remote.sh:65
 msgid "<branch>"
 msgstr "<分支>"
 
-#: builtin/pull.c:459 builtin/rebase.c:1324 git-parse-remote.sh:75
+#: builtin/pull.c:484 builtin/rebase.c:1238 git-parse-remote.sh:75
 msgid "There is no tracking information for the current branch."
 msgstr "当前分支没有跟踪信息。"
 
-#: builtin/pull.c:468 git-parse-remote.sh:95
+#: builtin/pull.c:493 git-parse-remote.sh:95
 msgid ""
 "If you wish to set tracking information for this branch you can do so with:"
 msgstr "如果您想要为此分支创建跟踪信息,您可以执行:"
 
-#: builtin/pull.c:473
+#: builtin/pull.c:498
 #, c-format
 msgid ""
 "Your configuration specifies to merge with the ref '%s'\n"
@@ -16364,32 +18153,28 @@ msgstr ""
 "您的配置中指定要合并远程的引用 '%s',\n"
 "但是没有获取到这个引用。"
 
-#: builtin/pull.c:581
+#: builtin/pull.c:609
 #, c-format
 msgid "unable to access commit %s"
 msgstr "无法访问提交 %s"
 
-#: builtin/pull.c:861
+#: builtin/pull.c:894
 msgid "ignoring --verify-signatures for rebase"
 msgstr "为变基操作忽略 --verify-signatures"
 
-#: builtin/pull.c:916
-msgid "--[no-]autostash option is only valid with --rebase."
-msgstr "--[no-]autostash 选项只在使用 --rebase 时有效。"
-
-#: builtin/pull.c:924
+#: builtin/pull.c:954
 msgid "Updating an unborn branch with changes added to the index."
 msgstr "更新尚未诞生的分支,变更添加至索引。"
 
-#: builtin/pull.c:928
+#: builtin/pull.c:958
 msgid "pull with rebase"
 msgstr "变基式拉取"
 
-#: builtin/pull.c:929
+#: builtin/pull.c:959
 msgid "please commit or stash them."
 msgstr "请提交或贮藏它们。"
 
-#: builtin/pull.c:954
+#: builtin/pull.c:984
 #, c-format
 msgid ""
 "fetch updated the current branch head.\n"
@@ -16399,7 +18184,7 @@ msgstr ""
 "fetch 更新了当前的分支。快进您的工作区\n"
 "至提交 %s。"
 
-#: builtin/pull.c:960
+#: builtin/pull.c:990
 #, c-format
 msgid ""
 "Cannot fast-forward your working tree.\n"
@@ -16416,15 +18201,15 @@ msgstr ""
 "$ git reset --hard\n"
 "恢复之前的状态。"
 
-#: builtin/pull.c:975
+#: builtin/pull.c:1005
 msgid "Cannot merge multiple branches into empty head."
 msgstr "无法将多个分支合并到空分支。"
 
-#: builtin/pull.c:979
+#: builtin/pull.c:1009
 msgid "Cannot rebase onto multiple branches."
 msgstr "无法变基到多个分支。"
 
-#: builtin/pull.c:986
+#: builtin/pull.c:1017
 msgid "cannot rebase with locally recorded submodule modifications"
 msgstr "本地子模组中有修改,无法变基"
 
@@ -16436,11 +18221,11 @@ msgstr "git push [<选项>] [<仓库> [<引用规格>...]]"
 msgid "tag shorthand without <tag>"
 msgstr "标签后面未提供 <标签> 参数"
 
-#: builtin/push.c:121
+#: builtin/push.c:119
 msgid "--delete only accepts plain target ref names"
 msgstr "--delete 只接受简单的目标引用名"
 
-#: builtin/push.c:167
+#: builtin/push.c:164
 msgid ""
 "\n"
 "To choose either option permanently, see push.default in 'git help config'."
@@ -16448,7 +18233,7 @@ msgstr ""
 "\n"
 "为了永久地选择任一选项,参见 'git help config' 中的 push.default。"
 
-#: builtin/push.c:170
+#: builtin/push.c:167
 #, c-format
 msgid ""
 "The upstream branch of your current branch does not match\n"
@@ -16472,7 +18257,7 @@ msgstr ""
 "    git push %s HEAD\n"
 "%s"
 
-#: builtin/push.c:185
+#: builtin/push.c:182
 #, c-format
 msgid ""
 "You are not currently on a branch.\n"
@@ -16486,7 +18271,7 @@ msgstr ""
 "\n"
 "    git push %s HEAD:<远程分支名字>\n"
 
-#: builtin/push.c:199
+#: builtin/push.c:194
 #, c-format
 msgid ""
 "The current branch %s has no upstream branch.\n"
@@ -16499,12 +18284,12 @@ msgstr ""
 "\n"
 "    git push --set-upstream %s %s\n"
 
-#: builtin/push.c:207
+#: builtin/push.c:202
 #, c-format
 msgid "The current branch %s has multiple upstream branches, refusing to push."
 msgstr "当前分支 %s 有多个上游分支,拒绝推送。"
 
-#: builtin/push.c:210
+#: builtin/push.c:205
 #, c-format
 msgid ""
 "You are pushing to remote '%s', which is not the upstream of\n"
@@ -16514,12 +18299,12 @@ msgstr ""
 "您正推送至远程 '%s'(其并非当前分支 '%s' 的上游),\n"
 "而没有告诉我要推送什么、更新哪个远程分支。"
 
-#: builtin/push.c:269
+#: builtin/push.c:260
 msgid ""
 "You didn't specify any refspecs to push, and push.default is \"nothing\"."
 msgstr "您没有为推送指定任何引用规格,并且 push.default 为 \"nothing\"。"
 
-#: builtin/push.c:276
+#: builtin/push.c:267
 msgid ""
 "Updates were rejected because the tip of your current branch is behind\n"
 "its remote counterpart. Integrate the remote changes (e.g.\n"
@@ -16530,7 +18315,7 @@ msgstr ""
 "再次推送前,先与远程变更合并(如 'git pull ...')。详见\n"
 "'git push --help' 中的 'Note about fast-forwards' 小节。"
 
-#: builtin/push.c:282
+#: builtin/push.c:273
 msgid ""
 "Updates were rejected because a pushed branch tip is behind its remote\n"
 "counterpart. Check out this branch and integrate the remote changes\n"
@@ -16541,7 +18326,7 @@ msgstr ""
 "检出该分支并整合远程变更(如 'git pull ...'),然后再推送。详见\n"
 "'git push --help' 中的 'Note about fast-forwards' 小节。"
 
-#: builtin/push.c:288
+#: builtin/push.c:279
 msgid ""
 "Updates were rejected because the remote contains work that you do\n"
 "not have locally. This is usually caused by another repository pushing\n"
@@ -16554,11 +18339,11 @@ msgstr ""
 "(如 'git pull ...')。\n"
 "详见 'git push --help' 中的 'Note about fast-forwards' 小节。"
 
-#: builtin/push.c:295
+#: builtin/push.c:286
 msgid "Updates were rejected because the tag already exists in the remote."
 msgstr "更新被拒绝,因为该标签在远程已经存在。"
 
-#: builtin/push.c:298
+#: builtin/push.c:289
 msgid ""
 "You cannot update a remote ref that points at a non-commit object,\n"
 "or update a remote ref to make it point at a non-commit object,\n"
@@ -16567,140 +18352,140 @@ msgstr ""
 "如果不使用 '--force' 参数,您不能更新一个指向非提交对象的远程引用,\n"
 "也不能更新远程引用让其指向一个非提交对象。\n"
 
-#: builtin/push.c:359
+#: builtin/push.c:351
 #, c-format
 msgid "Pushing to %s\n"
 msgstr "推送到 %s\n"
 
-#: builtin/push.c:364
+#: builtin/push.c:358
 #, c-format
 msgid "failed to push some refs to '%s'"
 msgstr "推送一些引用到 '%s' 失败"
 
-#: builtin/push.c:398
-#, c-format
-msgid "bad repository '%s'"
-msgstr "坏的仓库 '%s'"
-
-#: builtin/push.c:399
-msgid ""
-"No configured push destination.\n"
-"Either specify the URL from the command-line or configure a remote "
-"repository using\n"
-"\n"
-"    git remote add <name> <url>\n"
-"\n"
-"and then push using the remote name\n"
-"\n"
-"    git push <name>\n"
-msgstr ""
-"没有配置推送目标。\n"
-"或通过命令行指定 URL,或用下面命令配置一个远程仓库\n"
-"\n"
-"    git remote add <名称> <地址>\n"
-"\n"
-"然后使用该远程仓库名执行推送\n"
-"\n"
-"    git push <名称>\n"
-
-#: builtin/push.c:554
+#: builtin/push.c:532
 msgid "repository"
 msgstr "仓库"
 
-#: builtin/push.c:555 builtin/send-pack.c:164
+#: builtin/push.c:533 builtin/send-pack.c:183
 msgid "push all refs"
 msgstr "推送所有引用"
 
-#: builtin/push.c:556 builtin/send-pack.c:166
+#: builtin/push.c:534 builtin/send-pack.c:185
 msgid "mirror all refs"
 msgstr "镜像所有引用"
 
-#: builtin/push.c:558
+#: builtin/push.c:536
 msgid "delete refs"
 msgstr "删除引用"
 
-#: builtin/push.c:559
+#: builtin/push.c:537
 msgid "push tags (can't be used with --all or --mirror)"
 msgstr "推送标签(不能使用 --all or --mirror)"
 
-#: builtin/push.c:562 builtin/send-pack.c:167
+#: builtin/push.c:540 builtin/send-pack.c:186
 msgid "force updates"
 msgstr "强制更新"
 
-#: builtin/push.c:564 builtin/send-pack.c:181
+#: builtin/push.c:541 builtin/send-pack.c:198
 msgid "<refname>:<expect>"
 msgstr "<引用名>:<期望值>"
 
-#: builtin/push.c:565 builtin/send-pack.c:182
+#: builtin/push.c:542 builtin/send-pack.c:199
 msgid "require old value of ref to be at this value"
 msgstr "要求引用旧的取值为设定值"
 
-#: builtin/push.c:568
+#: builtin/push.c:545
 msgid "control recursive pushing of submodules"
 msgstr "控制子模组的递归推送"
 
-#: builtin/push.c:570 builtin/send-pack.c:175
+#: builtin/push.c:546 builtin/send-pack.c:193
 msgid "use thin pack"
 msgstr "使用精简打包"
 
-#: builtin/push.c:571 builtin/push.c:572 builtin/send-pack.c:161
-#: builtin/send-pack.c:162
+#: builtin/push.c:547 builtin/push.c:548 builtin/send-pack.c:180
+#: builtin/send-pack.c:181
 msgid "receive pack program"
 msgstr "接收包程序"
 
-#: builtin/push.c:573
+#: builtin/push.c:549
 msgid "set upstream for git pull/status"
 msgstr "设置 git pull/status 的上游"
 
-#: builtin/push.c:576
+#: builtin/push.c:552
 msgid "prune locally removed refs"
 msgstr "清除本地删除的引用"
 
-#: builtin/push.c:578
+#: builtin/push.c:554
 msgid "bypass pre-push hook"
 msgstr "绕过 pre-push 钩子"
 
-#: builtin/push.c:579
+#: builtin/push.c:555
 msgid "push missing but relevant tags"
 msgstr "推送缺失但有关的标签"
 
-#: builtin/push.c:582 builtin/send-pack.c:169
+#: builtin/push.c:557 builtin/send-pack.c:187
 msgid "GPG sign the push"
 msgstr "用 GPG 为推送签名"
 
-#: builtin/push.c:584 builtin/send-pack.c:176
+#: builtin/push.c:559 builtin/send-pack.c:194
 msgid "request atomic transaction on remote side"
 msgstr "需要远端支持原子事务"
 
-#: builtin/push.c:602
+#: builtin/push.c:577
 msgid "--delete is incompatible with --all, --mirror and --tags"
 msgstr "--delete 与 --all、--mirror 及 --tags 不兼容"
 
-#: builtin/push.c:604
+#: builtin/push.c:579
 msgid "--delete doesn't make sense without any refs"
 msgstr "--delete 未接任何引用没有意义"
 
-#: builtin/push.c:607
+#: builtin/push.c:599
+#, c-format
+msgid "bad repository '%s'"
+msgstr "坏的仓库 '%s'"
+
+#: builtin/push.c:600
+msgid ""
+"No configured push destination.\n"
+"Either specify the URL from the command-line or configure a remote "
+"repository using\n"
+"\n"
+"    git remote add <name> <url>\n"
+"\n"
+"and then push using the remote name\n"
+"\n"
+"    git push <name>\n"
+msgstr ""
+"没有配置推送目标。\n"
+"或通过命令行指定 URL,或用下面命令配置一个远程仓库\n"
+"\n"
+"    git remote add <名称> <地址>\n"
+"\n"
+"然后使用该远程仓库名执行推送\n"
+"\n"
+"    git push <名称>\n"
+
+#: builtin/push.c:615
 msgid "--all and --tags are incompatible"
 msgstr "--all 和 --tags 不兼容"
 
-#: builtin/push.c:609
+#: builtin/push.c:617
 msgid "--all can't be combined with refspecs"
 msgstr "--all 不能和引用规格同时使用"
 
-#: builtin/push.c:613
+#: builtin/push.c:621
 msgid "--mirror and --tags are incompatible"
 msgstr "--mirror 和 --tags 不兼容"
 
-#: builtin/push.c:615
+#: builtin/push.c:623
 msgid "--mirror can't be combined with refspecs"
 msgstr "--mirror 不能和引用规格同时使用"
 
-#: builtin/push.c:618
+#: builtin/push.c:626
 msgid "--all and --mirror are incompatible"
 msgstr "--all 和 --mirror 不兼容"
 
-#: builtin/push.c:637
+#: builtin/push.c:630
 msgid "push options must not have new line characters"
 msgstr "推送选项不能有换行符"
 
@@ -16716,24 +18501,32 @@ msgstr "git range-diff [<选项>] <old-tip>...<new-tip>"
 msgid "git range-diff [<options>] <base> <old-tip> <new-tip>"
 msgstr "git range-diff [<选项>] <base> <old-tip> <new-tip>"
 
-#: builtin/range-diff.c:21
+#: builtin/range-diff.c:22
 msgid "Percentage by which creation is weighted"
 msgstr "创建权重的百分比"
 
-#: builtin/range-diff.c:23
+#: builtin/range-diff.c:24
 msgid "use simple diff colors"
 msgstr "使用简单差异颜色"
 
-#: builtin/range-diff.c:46 builtin/range-diff.c:50
+#: builtin/range-diff.c:26
+msgid "notes"
+msgstr "注解"
+
+#: builtin/range-diff.c:26
+msgid "passed to 'git log'"
+msgstr "传递给 'git log'"
+
+#: builtin/range-diff.c:50 builtin/range-diff.c:54
 #, c-format
 msgid "no .. in range: '%s'"
 msgstr "没有在范围中使用 ..:'%s'"
 
-#: builtin/range-diff.c:60
+#: builtin/range-diff.c:64
 msgid "single arg format must be symmetric range"
 msgstr "单个参数格式必须是对称范围(即包含...)"
 
-#: builtin/range-diff.c:75
+#: builtin/range-diff.c:79
 msgid "need two commit ranges"
 msgstr "需要两个提交范围"
 
@@ -16815,233 +18608,215 @@ msgstr "调试 unpack-trees"
 msgid "suppress feedback messages"
 msgstr "抑制反馈信息"
 
-#: builtin/rebase.c:32
+#: builtin/read-tree.c:188
+msgid "You need to resolve your current index first"
+msgstr "您需要先解决当前索引的冲突"
+
+#: builtin/rebase.c:35
 msgid ""
-"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] [<upstream>] "
-"[<branch>]"
+"git rebase [-i] [options] [--exec <cmd>] [--onto <newbase> | --keep-base] "
+"[<upstream> [<branch>]]"
 msgstr ""
-"git rebase [-i] [选项] [--exec <命令>] [--onto <新基线>] [<上游>] [<分支>]"
+"git rebase [-i] [options] [--exec <命令>] [--onto <新基线> | --keep-base] [<"
+"上游> [<分支>]]"
 
-#: builtin/rebase.c:34
+#: builtin/rebase.c:37
 msgid ""
 "git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] --root [<branch>]"
 msgstr ""
 "git rebase [-i] [选项] [--exec <命令>] [--onto <新基线>] --root [<分支>]"
 
-#: builtin/rebase.c:36
+#: builtin/rebase.c:39
 msgid "git rebase --continue | --abort | --skip | --edit-todo"
 msgstr "git rebase --continue | --abort | --skip | --edit-todo"
 
-#: builtin/rebase.c:158 builtin/rebase.c:182 builtin/rebase.c:209
+#: builtin/rebase.c:187 builtin/rebase.c:211 builtin/rebase.c:238
 #, c-format
 msgid "unusable todo list: '%s'"
 msgstr "不可用的待办列表:'%s'"
 
-#: builtin/rebase.c:167 builtin/rebase.c:193 builtin/rebase.c:217
-#, c-format
-msgid "could not write '%s'."
-msgstr "不能写入 '%s'。"
-
-#: builtin/rebase.c:252
-msgid "no HEAD?"
-msgstr "没有 HEAD?"
-
-#: builtin/rebase.c:279
+#: builtin/rebase.c:304
 #, c-format
 msgid "could not create temporary %s"
 msgstr "无法创建临时的 %s"
 
-#: builtin/rebase.c:285
+#: builtin/rebase.c:310
 msgid "could not mark as interactive"
 msgstr "无法标记为交互式"
 
-#: builtin/rebase.c:343
+#: builtin/rebase.c:364
 msgid "could not generate todo list"
 msgstr "无法生成待办列表"
 
-#: builtin/rebase.c:382
+#: builtin/rebase.c:405
 msgid "a base commit must be provided with --upstream or --onto"
 msgstr "使用 --upstream 或 --onto 必须提供一个基线提交"
 
-#: builtin/rebase.c:437
+#: builtin/rebase.c:474
 msgid "git rebase--interactive [<options>]"
 msgstr "git rebase--interactive [<选项>]"
 
-#: builtin/rebase.c:449
-msgid "keep empty commits"
-msgstr "保持空提交"
+#: builtin/rebase.c:487 builtin/rebase.c:1382
+msgid "keep commits which start empty"
+msgstr "保留初始为空的提交"
 
-#: builtin/rebase.c:451 builtin/revert.c:128
+#: builtin/rebase.c:491 builtin/revert.c:128
 msgid "allow commits with empty messages"
 msgstr "允许提交说明为空"
 
-#: builtin/rebase.c:452
+#: builtin/rebase.c:493
 msgid "rebase merge commits"
 msgstr "对合并提交变基"
 
-#: builtin/rebase.c:454
+#: builtin/rebase.c:495
 msgid "keep original branch points of cousins"
 msgstr "保持兄弟提交的原始分支点"
 
-#: builtin/rebase.c:456
+#: builtin/rebase.c:497
 msgid "move commits that begin with squash!/fixup!"
 msgstr "移动以 squash!/fixup! 开头的提交"
 
-#: builtin/rebase.c:457
+#: builtin/rebase.c:498
 msgid "sign commits"
 msgstr "签名提交"
 
-#: builtin/rebase.c:459 builtin/rebase.c:1403
+#: builtin/rebase.c:500 builtin/rebase.c:1321
 msgid "display a diffstat of what changed upstream"
 msgstr "显示上游变化的差异统计"
 
-#: builtin/rebase.c:461
+#: builtin/rebase.c:502
 msgid "continue rebase"
 msgstr "继续变基"
 
-#: builtin/rebase.c:463
+#: builtin/rebase.c:504
 msgid "skip commit"
 msgstr "跳过提交"
 
-#: builtin/rebase.c:464
+#: builtin/rebase.c:505
 msgid "edit the todo list"
 msgstr "变基待办列表"
 
-#: builtin/rebase.c:466
+#: builtin/rebase.c:507
 msgid "show the current patch"
 msgstr "显示当前补丁"
 
-#: builtin/rebase.c:469
+#: builtin/rebase.c:510
 msgid "shorten commit ids in the todo list"
 msgstr "缩短待办列表中的提交号"
 
-#: builtin/rebase.c:471
+#: builtin/rebase.c:512
 msgid "expand commit ids in the todo list"
 msgstr "扩展待办列表中的提交号"
 
-#: builtin/rebase.c:473
+#: builtin/rebase.c:514
 msgid "check the todo list"
 msgstr "检查待办列表"
 
-#: builtin/rebase.c:475
+#: builtin/rebase.c:516
 msgid "rearrange fixup/squash lines"
 msgstr "重新排列 fixup/squash 行"
 
-#: builtin/rebase.c:477
+#: builtin/rebase.c:518
 msgid "insert exec commands in todo list"
 msgstr "在待办列表中插入 exec 执行命令"
 
-#: builtin/rebase.c:478
+#: builtin/rebase.c:519
 msgid "onto"
 msgstr "onto"
 
-#: builtin/rebase.c:481
+#: builtin/rebase.c:522
 msgid "restrict-revision"
 msgstr "restrict-revision"
 
-#: builtin/rebase.c:481
+#: builtin/rebase.c:522
 msgid "restrict revision"
 msgstr "限制版本"
 
-#: builtin/rebase.c:483
+#: builtin/rebase.c:524
 msgid "squash-onto"
 msgstr "squash-onto"
 
-#: builtin/rebase.c:484
+#: builtin/rebase.c:525
 msgid "squash onto"
 msgstr "squash onto"
 
-#: builtin/rebase.c:486
+#: builtin/rebase.c:527
 msgid "the upstream commit"
 msgstr "上游提交"
 
-#: builtin/rebase.c:488
+#: builtin/rebase.c:529
 msgid "head-name"
 msgstr "head-name"
 
-#: builtin/rebase.c:488
+#: builtin/rebase.c:529
 msgid "head name"
 msgstr "head 名称"
 
-#: builtin/rebase.c:493
+#: builtin/rebase.c:534
 msgid "rebase strategy"
 msgstr "变基策略"
 
-#: builtin/rebase.c:494
+#: builtin/rebase.c:535
 msgid "strategy-opts"
 msgstr "strategy-opts"
 
-#: builtin/rebase.c:495
+#: builtin/rebase.c:536
 msgid "strategy options"
 msgstr "策略选项"
 
-#: builtin/rebase.c:496
+#: builtin/rebase.c:537
 msgid "switch-to"
 msgstr "切换到"
 
-#: builtin/rebase.c:497
+#: builtin/rebase.c:538
 msgid "the branch or commit to checkout"
 msgstr "要检出的分支或提交"
 
-#: builtin/rebase.c:498
+#: builtin/rebase.c:539
 msgid "onto-name"
 msgstr "onto-name"
 
-#: builtin/rebase.c:498
+#: builtin/rebase.c:539
 msgid "onto name"
 msgstr "onto name"
 
-#: builtin/rebase.c:499
+#: builtin/rebase.c:540
 msgid "cmd"
 msgstr "cmd"
 
-#: builtin/rebase.c:499
+#: builtin/rebase.c:540
 msgid "the command to run"
 msgstr "要执行的命令"
 
-#: builtin/rebase.c:502 builtin/rebase.c:1486
+#: builtin/rebase.c:543 builtin/rebase.c:1415
 msgid "automatically re-schedule any `exec` that fails"
 msgstr "自动重新安排任何失败的 `exec`"
 
-#: builtin/rebase.c:518
+#: builtin/rebase.c:559
 msgid "--[no-]rebase-cousins has no effect without --rebase-merges"
 msgstr "不使用 --rebase-merges,则 --[no-]rebase-cousins 没有效果"
 
-#: builtin/rebase.c:534
+#: builtin/rebase.c:575
 #, c-format
-msgid "%s requires an interactive rebase"
-msgstr "%s 需要交互式变基"
+msgid "%s requires the merge backend"
+msgstr "%s 需要合并后端"
 
-#: builtin/rebase.c:586
+#: builtin/rebase.c:618
 #, c-format
 msgid "could not get 'onto': '%s'"
 msgstr "无法获取 'onto':'%s'"
 
-#: builtin/rebase.c:601
+#: builtin/rebase.c:635
 #, c-format
 msgid "invalid orig-head: '%s'"
 msgstr "无效的原始 head:'%s'"
 
-#: builtin/rebase.c:626
+#: builtin/rebase.c:660
 #, c-format
 msgid "ignoring invalid allow_rerere_autoupdate: '%s'"
 msgstr "忽略无效的 allow_rerere_autoupdate:'%s'"
 
-#: builtin/rebase.c:702
-#, c-format
-msgid "Could not read '%s'"
-msgstr "不能读取 '%s'"
-
-#: builtin/rebase.c:720
-#, c-format
-msgid "Cannot store %s"
-msgstr "不能存储 %s"
-
-#: builtin/rebase.c:827
-msgid "could not determine HEAD revision"
-msgstr "不能确定 HEAD 版本"
-
-#: builtin/rebase.c:950 git-rebase--preserve-merges.sh:81
+#: builtin/rebase.c:805 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"
@@ -17054,7 +18829,7 @@ msgstr ""
 "\"git rebase --skip\" 命令跳过这个提交。如果想要终止执行并回到\n"
 "\"git rebase\" 执行之前的状态,执行 \"git rebase --abort\"。"
 
-#: builtin/rebase.c:1031
+#: builtin/rebase.c:888
 #, c-format
 msgid ""
 "\n"
@@ -17072,7 +18847,14 @@ msgstr ""
 "\n"
 "因此 git 无法对其变基。"
 
-#: builtin/rebase.c:1318
+#: builtin/rebase.c:1214
+#, c-format
+msgid ""
+"unrecognized empty type '%s'; valid values are \"drop\", \"keep\", and \"ask"
+"\"."
+msgstr "无法识别的空类型 '%s';有效值有 \"drop\"、\"keep\" 和 \"ask\"。"
+
+#: builtin/rebase.c:1232
 #, c-format
 msgid ""
 "%s\n"
@@ -17089,7 +18871,7 @@ msgstr ""
 "    git rebase '<branch>'\n"
 "\n"
 
-#: builtin/rebase.c:1334
+#: builtin/rebase.c:1248
 #, c-format
 msgid ""
 "If you wish to set tracking information for this branch you can do so with:\n"
@@ -17102,128 +18884,148 @@ msgstr ""
 "    git branch --set-upstream-to=%s/<branch> %s\n"
 "\n"
 
-#: builtin/rebase.c:1364
+#: builtin/rebase.c:1278
 msgid "exec commands cannot contain newlines"
 msgstr "exec 命令不能包含换行符"
 
-#: builtin/rebase.c:1368
+#: builtin/rebase.c:1282
 msgid "empty exec command"
 msgstr "空的 exec 命令"
 
-#: builtin/rebase.c:1396
+#: builtin/rebase.c:1312
 msgid "rebase onto given branch instead of upstream"
 msgstr "变基到给定的分支而非上游"
 
-#: builtin/rebase.c:1398
+#: builtin/rebase.c:1314
+msgid "use the merge-base of upstream and branch as the current base"
+msgstr "使用上游和分支的合并基线做为当前基线"
+
+#: builtin/rebase.c:1316
 msgid "allow pre-rebase hook to run"
 msgstr "允许执行 pre-rebase 钩子"
 
-#: builtin/rebase.c:1400
+#: builtin/rebase.c:1318
 msgid "be quiet. implies --no-stat"
 msgstr "安静。暗示 --no-stat"
 
-#: builtin/rebase.c:1406
+#: builtin/rebase.c:1324
 msgid "do not show diffstat of what changed upstream"
 msgstr "不显示上游变化的差异统计"
 
-#: builtin/rebase.c:1409
+#: builtin/rebase.c:1327
 msgid "add a Signed-off-by: line to each commit"
 msgstr "为每一个提交添加一个 Signed-off-by: 签名"
 
-#: builtin/rebase.c:1411 builtin/rebase.c:1415 builtin/rebase.c:1417
-msgid "passed to 'git am'"
-msgstr "传递给 'git am'"
+#: builtin/rebase.c:1330
+msgid "make committer date match author date"
+msgstr "使提交者日期和作者日期一致"
+
+#: builtin/rebase.c:1332
+msgid "ignore author date and use current date"
+msgstr "忽略作者日期,使用当前日期"
 
-#: builtin/rebase.c:1419 builtin/rebase.c:1421
+#: builtin/rebase.c:1334
+msgid "synonym of --reset-author-date"
+msgstr "--reset-author-date 的同义词"
+
+#: builtin/rebase.c:1336 builtin/rebase.c:1340
 msgid "passed to 'git apply'"
 msgstr "传递给 'git apply'"
 
-#: builtin/rebase.c:1423 builtin/rebase.c:1426
+#: builtin/rebase.c:1338
+msgid "ignore changes in whitespace"
+msgstr "忽略空白字符的变更"
+
+#: builtin/rebase.c:1342 builtin/rebase.c:1345
 msgid "cherry-pick all commits, even if unchanged"
 msgstr "拣选所有提交,即使未修改"
 
-#: builtin/rebase.c:1428
+#: builtin/rebase.c:1347
 msgid "continue"
 msgstr "继续"
 
-#: builtin/rebase.c:1431
+#: builtin/rebase.c:1350
 msgid "skip current patch and continue"
 msgstr "跳过当前补丁并继续"
 
 #  译者:注意保持前导空格
-#: builtin/rebase.c:1433
+#: builtin/rebase.c:1352
 msgid "abort and check out the original branch"
 msgstr "终止并检出原有分支"
 
-#: builtin/rebase.c:1436
+#: builtin/rebase.c:1355
 msgid "abort but keep HEAD where it is"
 msgstr "终止但保持 HEAD 不变"
 
-#: builtin/rebase.c:1437
+#: builtin/rebase.c:1356
 msgid "edit the todo list during an interactive rebase"
 msgstr "在交互式变基中编辑待办列表"
 
-#: builtin/rebase.c:1440
+#: builtin/rebase.c:1359
 msgid "show the patch file being applied or merged"
 msgstr "显示正在应用或合并的补丁文件"
 
-#: builtin/rebase.c:1443
+#: builtin/rebase.c:1362
+msgid "use apply strategies to rebase"
+msgstr "使用应用策略进行变基"
+
+#: builtin/rebase.c:1366
 msgid "use merging strategies to rebase"
 msgstr "使用合并策略进行变基"
 
-#: builtin/rebase.c:1447
+#: builtin/rebase.c:1370
 msgid "let the user edit the list of commits to rebase"
 msgstr "让用户编辑要变基的提交列表"
 
-#: builtin/rebase.c:1451
+#: builtin/rebase.c:1374
 msgid "(DEPRECATED) try to recreate merges instead of ignoring them"
 msgstr "(已弃用)尝试重建合并提交而非忽略它们"
 
-#: builtin/rebase.c:1455
-msgid "preserve empty commits during rebase"
-msgstr "变基时保留空提交"
+#: builtin/rebase.c:1379
+msgid "how to handle commits that become empty"
+msgstr "如何处理成为空提交的提交"
 
-#: builtin/rebase.c:1457
+#: builtin/rebase.c:1386
 msgid "move commits that begin with squash!/fixup! under -i"
 msgstr "在 -i 交互模式下,移动以 squash!/fixup! 开头的提交"
 
-#: builtin/rebase.c:1463
-msgid "automatically stash/stash pop before and after"
-msgstr "在操作前后执行自动贮藏和弹出贮藏"
-
-#: builtin/rebase.c:1465
+#: builtin/rebase.c:1393
 msgid "add exec lines after each commit of the editable list"
 msgstr "可编辑列表的每一个提交下面增加一行 exec"
 
-#: builtin/rebase.c:1469
+#: builtin/rebase.c:1397
 msgid "allow rebasing commits with empty messages"
 msgstr "允许针对空提交说明的提交变基"
 
-#: builtin/rebase.c:1472
+#: builtin/rebase.c:1401
 msgid "try to rebase merges instead of skipping them"
 msgstr "尝试对合并提交变基而不是忽略它们"
 
-#: builtin/rebase.c:1475
+#: builtin/rebase.c:1404
 msgid "use 'merge-base --fork-point' to refine upstream"
 msgstr "使用 'merge-base --fork-point' 来优化上游"
 
-#: builtin/rebase.c:1477
+#: builtin/rebase.c:1406
 msgid "use the given merge strategy"
 msgstr "使用给定的合并策略"
 
-#: builtin/rebase.c:1479 builtin/revert.c:115
+#: builtin/rebase.c:1408 builtin/revert.c:115
 msgid "option"
 msgstr "选项"
 
-#: builtin/rebase.c:1480
+#: builtin/rebase.c:1409
 msgid "pass the argument through to the merge strategy"
 msgstr "将参数传递给合并策略"
 
-#: builtin/rebase.c:1483
+#: builtin/rebase.c:1412
 msgid "rebase all reachable commits up to the root(s)"
 msgstr "将所有可达的提交变基到根提交"
 
-#: builtin/rebase.c:1500
+#: builtin/rebase.c:1417
+msgid "apply all changes, even those already present upstream"
+msgstr "应用所有更改,甚至那些已在上游存在的"
+
+#: builtin/rebase.c:1434
 msgid ""
 "the rebase.useBuiltin support has been removed!\n"
 "See its entry in 'git help config' for details."
@@ -17231,28 +19033,40 @@ msgstr ""
 "对 rebase.useBuiltin 的支持已被删除!\n"
 "详见 'git help config' 中的条目。"
 
-#: builtin/rebase.c:1506
+#: builtin/rebase.c:1440
 msgid "It looks like 'git am' is in progress. Cannot rebase."
 msgstr "看起来 'git-am' 正在执行中。无法变基。"
 
-#: builtin/rebase.c:1547
+#: builtin/rebase.c:1481
 msgid ""
 "git rebase --preserve-merges is deprecated. Use --rebase-merges instead."
 msgstr "git rebase --preserve-merges 被弃用。用 --rebase-merges 代替。"
 
-#: builtin/rebase.c:1551
+#: builtin/rebase.c:1486
+msgid "cannot combine '--keep-base' with '--onto'"
+msgstr "不能将 '--keep-base' 和 '--onto' 组合使用"
+
+#: builtin/rebase.c:1488
+msgid "cannot combine '--keep-base' with '--root'"
+msgstr "不能将 '--keep-base' 和 '--root' 组合使用"
+
+#: builtin/rebase.c:1492
+msgid "cannot combine '--root' with '--fork-point'"
+msgstr "不能将 '--root' 和 '--fork-point' 组合使用"
+
+#: builtin/rebase.c:1495
 msgid "No rebase in progress?"
 msgstr "没有正在进行的变基?"
 
-#: builtin/rebase.c:1555
+#: builtin/rebase.c:1499
 msgid "The --edit-todo action can only be used during interactive rebase."
 msgstr "动作 --edit-todo 只能用在交互式变基过程中。"
 
-#: builtin/rebase.c:1578
+#: builtin/rebase.c:1522
 msgid "Cannot read HEAD"
 msgstr "不能读取 HEAD"
 
-#: builtin/rebase.c:1590
+#: builtin/rebase.c:1534
 msgid ""
 "You must edit all merge conflicts and then\n"
 "mark them as resolved using git add"
@@ -17260,16 +19074,16 @@ msgstr ""
 "您必须编辑所有的合并冲突,然后通过 git add\n"
 "命令将它们标记为已解决"
 
-#: builtin/rebase.c:1609
+#: builtin/rebase.c:1553
 msgid "could not discard worktree changes"
 msgstr "无法丢弃工作区变更"
 
-#: builtin/rebase.c:1628
+#: builtin/rebase.c:1572
 #, c-format
 msgid "could not move back to %s"
 msgstr "无法移回 %s"
 
-#: builtin/rebase.c:1673
+#: builtin/rebase.c:1618
 #, c-format
 msgid ""
 "It seems that there is already a %s directory, and\n"
@@ -17288,172 +19102,141 @@ msgstr ""
 "\t%s\n"
 "然后再重新执行。 为避免丢失重要数据,我已经停止当前操作。\n"
 
-#: builtin/rebase.c:1694
+#: builtin/rebase.c:1646
 msgid "switch `C' expects a numerical value"
 msgstr "开关 `C' 期望一个数字值"
 
-#: builtin/rebase.c:1735
+#: builtin/rebase.c:1688
 #, c-format
 msgid "Unknown mode: %s"
 msgstr "未知模式:%s"
 
-#: builtin/rebase.c:1757
+#: builtin/rebase.c:1727
 msgid "--strategy requires --merge or --interactive"
 msgstr "--strategy 需要 --merge 或 --interactive"
 
-#: builtin/rebase.c:1797
+#: builtin/rebase.c:1757
+msgid "cannot combine apply options with merge options"
+msgstr "不能组合使用应用选项和合并选项"
+
+#: builtin/rebase.c:1770
+#, c-format
+msgid "Unknown rebase backend: %s"
+msgstr "未知的变基后端:%s"
+
+#: builtin/rebase.c:1795
 msgid "--reschedule-failed-exec requires --exec or --interactive"
 msgstr "--reschedule-failed-exec 需要 --exec 或 --interactive"
 
-#: builtin/rebase.c:1809
-msgid "cannot combine am options with either interactive or merge options"
-msgstr "不能将 am 选项与交互或合并选项同时使用"
-
-#: builtin/rebase.c:1828
+#: builtin/rebase.c:1815
 msgid "cannot combine '--preserve-merges' with '--rebase-merges'"
 msgstr "不能将 '--preserve-merges' 和 '--rebase-merges' 同时使用"
 
-#: builtin/rebase.c:1832
+#: builtin/rebase.c:1819
 msgid ""
 "error: cannot combine '--preserve-merges' with '--reschedule-failed-exec'"
 msgstr ""
 "错误:不能将 '--preserve-merges' 和 '--reschedule-failed-exec' 同时使用"
 
-#: builtin/rebase.c:1838
-msgid "cannot combine '--rebase-merges' with '--strategy-option'"
-msgstr "不能将 '--rebase-merges' 和 '--strategy-option' 同时使用"
-
-#: builtin/rebase.c:1841
-msgid "cannot combine '--rebase-merges' with '--strategy'"
-msgstr "不能将 '--rebase-merges' 和 '--strategy' 同时使用"
-
-#: builtin/rebase.c:1865
+#: builtin/rebase.c:1843
 #, c-format
 msgid "invalid upstream '%s'"
 msgstr "无效的上游 '%s'"
 
-#: builtin/rebase.c:1871
+#: builtin/rebase.c:1849
 msgid "Could not create new root commit"
 msgstr "不能创建新的根提交"
 
-#: builtin/rebase.c:1889
+#: builtin/rebase.c:1875
+#, c-format
+msgid "'%s': need exactly one merge base with branch"
+msgstr "'%s':只需要与分支的一个合并基线"
+
+#: builtin/rebase.c:1878
 #, c-format
 msgid "'%s': need exactly one merge base"
 msgstr "'%s':只需要一个合并基线"
 
-#: builtin/rebase.c:1896
+#: builtin/rebase.c:1886
 #, c-format
 msgid "Does not point to a valid commit '%s'"
 msgstr "没有指向一个有效的提交 '%s'"
 
-#: builtin/rebase.c:1921
+#: builtin/rebase.c:1912
 #, c-format
 msgid "fatal: no such branch/commit '%s'"
 msgstr "致命错误:无此分支/提交 '%s'"
 
-#: builtin/rebase.c:1929 builtin/submodule--helper.c:38
-#: builtin/submodule--helper.c:1934
+#: builtin/rebase.c:1920 builtin/submodule--helper.c:40
+#: builtin/submodule--helper.c:2414
 #, c-format
 msgid "No such ref: %s"
 msgstr "没有这样的引用:%s"
 
-#: builtin/rebase.c:1940
+#: builtin/rebase.c:1931
 msgid "Could not resolve HEAD to a revision"
 msgstr "无法将 HEAD 解析为一个版本"
 
-#: builtin/rebase.c:1981
-msgid "Cannot autostash"
-msgstr "无法 autostash"
-
-#: builtin/rebase.c:1984
-#, c-format
-msgid "Unexpected stash response: '%s'"
-msgstr "意外的 stash 响应:'%s'"
-
-#: builtin/rebase.c:1990
-#, c-format
-msgid "Could not create directory for '%s'"
-msgstr "不能为 '%s' 创建目录"
-
-#: builtin/rebase.c:1993
-#, c-format
-msgid "Created autostash: %s\n"
-msgstr "创建了 autostash:%s\n"
-
-#: builtin/rebase.c:1996
-msgid "could not reset --hard"
-msgstr "无法 reset --hard"
-
-#: builtin/rebase.c:1997 builtin/reset.c:114
-#, c-format
-msgid "HEAD is now at %s"
-msgstr "HEAD 现在位于 %s"
-
-#: builtin/rebase.c:2013
+#: builtin/rebase.c:1952
 msgid "Please commit or stash them."
 msgstr "请提交或贮藏修改。"
 
-#: builtin/rebase.c:2040
-#, c-format
-msgid "could not parse '%s'"
-msgstr "无法解析 '%s'"
-
-#: builtin/rebase.c:2053
+#: builtin/rebase.c:1988
 #, c-format
 msgid "could not switch to %s"
 msgstr "无法切换到 %s"
 
-#: builtin/rebase.c:2064
+#: builtin/rebase.c:1999
 msgid "HEAD is up to date."
 msgstr "HEAD 是最新的。"
 
-#: builtin/rebase.c:2066
+#: builtin/rebase.c:2001
 #, c-format
 msgid "Current branch %s is up to date.\n"
 msgstr "当前分支 %s 是最新的。\n"
 
-#: builtin/rebase.c:2074
+#: builtin/rebase.c:2009
 msgid "HEAD is up to date, rebase forced."
 msgstr "HEAD 是最新的,强制变基。"
 
-#: builtin/rebase.c:2076
+#: builtin/rebase.c:2011
 #, c-format
 msgid "Current branch %s is up to date, rebase forced.\n"
 msgstr "当前分支 %s 是最新的,强制变基。\n"
 
-#: builtin/rebase.c:2084
+#: builtin/rebase.c:2019
 msgid "The pre-rebase hook refused to rebase."
 msgstr "pre-rebase 钩子拒绝了变基操作。"
 
-#: builtin/rebase.c:2091
+#: builtin/rebase.c:2026
 #, c-format
 msgid "Changes to %s:\n"
 msgstr "到 %s 的变更:\n"
 
-#: builtin/rebase.c:2094
+#: builtin/rebase.c:2029
 #, c-format
 msgid "Changes from %s to %s:\n"
 msgstr "从 %s 到 %s 的变更:\n"
 
-#: builtin/rebase.c:2119
+#: builtin/rebase.c:2054
 #, c-format
 msgid "First, rewinding head to replay your work on top of it...\n"
 msgstr "首先,回退头指针以便在其上重放您的工作...\n"
 
-#: builtin/rebase.c:2128
+#: builtin/rebase.c:2063
 msgid "Could not detach HEAD"
 msgstr "无法分离头指针"
 
-#: builtin/rebase.c:2137
+#: builtin/rebase.c:2072
 #, c-format
 msgid "Fast-forwarded %s to %s.\n"
 msgstr "快进 %s 到 %s。\n"
 
-#: builtin/receive-pack.c:32
+#: builtin/receive-pack.c:34
 msgid "git receive-pack <git-dir>"
 msgstr "git receive-pack <仓库目录>"
 
-#: builtin/receive-pack.c:832
+#: builtin/receive-pack.c:1224
 msgid ""
 "By default, updating the current branch in a non-bare repository\n"
 "is denied, because it will make the index and work tree inconsistent\n"
@@ -17479,7 +19262,7 @@ msgstr ""
 "若要屏蔽此信息且保持默认行为,设置 'receive.denyCurrentBranch'\n"
 "配置变量为 'refuse'。"
 
-#: builtin/receive-pack.c:852
+#: builtin/receive-pack.c:1244
 msgid ""
 "By default, deleting the current branch is denied, because the next\n"
 "'git clone' won't result in any file checked out, causing confusion.\n"
@@ -17498,11 +19281,11 @@ msgstr ""
 "\n"
 "若要屏蔽此信息,您可以设置它为 'refuse'。"
 
-#: builtin/receive-pack.c:1938
+#: builtin/receive-pack.c:2422
 msgid "quiet"
 msgstr "静默模式"
 
-#: builtin/receive-pack.c:1952
+#: builtin/receive-pack.c:2436
 msgid "You must specify a directory."
 msgstr "您必须指定一个目录。"
 
@@ -17528,49 +19311,49 @@ msgstr ""
 msgid "git reflog exists <ref>"
 msgstr "git reflog exists <引用>"
 
-#: builtin/reflog.c:567 builtin/reflog.c:572
+#: builtin/reflog.c:568 builtin/reflog.c:573
 #, c-format
 msgid "'%s' is not a valid timestamp"
 msgstr "'%s' 不是一个有效的时间戳"
 
-#: builtin/reflog.c:605
+#: builtin/reflog.c:606
 #, c-format
 msgid "Marking reachable objects..."
 msgstr "正在标记可达对象..."
 
-#: builtin/reflog.c:643
+#: builtin/reflog.c:644
 #, c-format
 msgid "%s points nowhere!"
 msgstr "%s 指向不存在!"
 
-#: builtin/reflog.c:695
+#: builtin/reflog.c:696
 msgid "no reflog specified to delete"
 msgstr "未指定要删除的引用日志"
 
-#: builtin/reflog.c:704
+#: builtin/reflog.c:705
 #, c-format
 msgid "not a reflog: %s"
 msgstr "不是一个引用日志:%s"
 
-#: builtin/reflog.c:709
+#: builtin/reflog.c:710
 #, c-format
 msgid "no reflog for '%s'"
 msgstr "没有 '%s' 的引用日志"
 
-#: builtin/reflog.c:755
+#: builtin/reflog.c:756
 #, c-format
 msgid "invalid ref format: %s"
 msgstr "无效的引用格式:%s"
 
-#: builtin/reflog.c:764
+#: builtin/reflog.c:765
 msgid "git reflog [ show | expire | delete | exists ]"
 msgstr "git reflog [ show | expire | delete | exists ]"
 
-#: builtin/remote.c:16
+#: builtin/remote.c:17
 msgid "git remote [-v | --verbose]"
 msgstr "git remote [-v | --verbose]"
 
-#: builtin/remote.c:17
+#: builtin/remote.c:18
 msgid ""
 "git remote add [-t <branch>] [-m <master>] [-f] [--tags | --no-tags] [--"
 "mirror=<fetch|push>] <name> <url>"
@@ -17578,81 +19361,81 @@ msgstr ""
 "git remote add [-t <分支>] [-m <master>] [-f] [--tags | --no-tags] [--"
 "mirror=<fetch|push>] <名称> <地址>"
 
-#: builtin/remote.c:18 builtin/remote.c:38
+#: builtin/remote.c:19 builtin/remote.c:39
 msgid "git remote rename <old> <new>"
 msgstr "git remote rename <旧名称> <新名称>"
 
-#: builtin/remote.c:19 builtin/remote.c:43
+#: builtin/remote.c:20 builtin/remote.c:44
 msgid "git remote remove <name>"
 msgstr "git remote remove <名称>"
 
-#: builtin/remote.c:20 builtin/remote.c:48
+#: builtin/remote.c:21 builtin/remote.c:49
 msgid "git remote set-head <name> (-a | --auto | -d | --delete | <branch>)"
 msgstr "git remote set-head <名称> (-a | --auto | -d | --delete | <分支>)"
 
-#: builtin/remote.c:21
+#: builtin/remote.c:22
 msgid "git remote [-v | --verbose] show [-n] <name>"
 msgstr "git remote [-v | --verbose] show [-n] <名称>"
 
-#: builtin/remote.c:22
+#: builtin/remote.c:23
 msgid "git remote prune [-n | --dry-run] <name>"
 msgstr "git remote prune [-n | --dry-run] <名称>"
 
-#: builtin/remote.c:23
+#: builtin/remote.c:24
 msgid ""
 "git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)...]"
 msgstr "git remote [-v | --verbose] update [-p | --prune] [(<组> | <远程>)...]"
 
-#: builtin/remote.c:24
+#: builtin/remote.c:25
 msgid "git remote set-branches [--add] <name> <branch>..."
 msgstr "git remote set-branches [--add] <名称> <分支>..."
 
-#: builtin/remote.c:25 builtin/remote.c:74
+#: builtin/remote.c:26 builtin/remote.c:75
 msgid "git remote get-url [--push] [--all] <name>"
 msgstr "git remote get-url [--push] [--all] <名称>"
 
-#: builtin/remote.c:26 builtin/remote.c:79
+#: builtin/remote.c:27 builtin/remote.c:80
 msgid "git remote set-url [--push] <name> <newurl> [<oldurl>]"
 msgstr "git remote set-url [--push] <名称> <新的地址> [<旧的地址>]"
 
-#: builtin/remote.c:27 builtin/remote.c:80
+#: builtin/remote.c:28 builtin/remote.c:81
 msgid "git remote set-url --add <name> <newurl>"
 msgstr "git remote set-url --add <名称> <新的地址>"
 
-#: builtin/remote.c:28 builtin/remote.c:81
+#: builtin/remote.c:29 builtin/remote.c:82
 msgid "git remote set-url --delete <name> <url>"
 msgstr "git remote set-url --delete <名称> <地址>"
 
-#: builtin/remote.c:33
+#: builtin/remote.c:34
 msgid "git remote add [<options>] <name> <url>"
 msgstr "git remote add [<选项>] <名称> <地址>"
 
-#: builtin/remote.c:53
+#: builtin/remote.c:54
 msgid "git remote set-branches <name> <branch>..."
 msgstr "git remote set-branches <名称> <分支>..."
 
-#: builtin/remote.c:54
+#: builtin/remote.c:55
 msgid "git remote set-branches --add <name> <branch>..."
 msgstr "git remote set-branches --add <名称> <分支>..."
 
-#: builtin/remote.c:59
+#: builtin/remote.c:60
 msgid "git remote show [<options>] <name>"
 msgstr "git remote show [<选项>] <名称>"
 
-#: builtin/remote.c:64
+#: builtin/remote.c:65
 msgid "git remote prune [<options>] <name>"
 msgstr "git remote prune [<选项>] <名称>"
 
-#: builtin/remote.c:69
+#: builtin/remote.c:70
 msgid "git remote update [<options>] [<group> | <remote>]..."
 msgstr "git remote update [<选项>] [<组> | <远程>]..."
 
-#: builtin/remote.c:98
+#: builtin/remote.c:99
 #, c-format
 msgid "Updating %s"
 msgstr "更新 %s 中"
 
-#: builtin/remote.c:130
+#: builtin/remote.c:131
 msgid ""
 "--mirror is dangerous and deprecated; please\n"
 "\t use --mirror=fetch or --mirror=push instead"
@@ -17660,82 +19443,98 @@ msgstr ""
 "--mirror 选项危险且过时,请使用 --mirror=fetch\n"
 "\t 或 --mirror=push"
 
-#: builtin/remote.c:147
+#: builtin/remote.c:148
 #, c-format
 msgid "unknown mirror argument: %s"
 msgstr "未知的镜像参数:%s"
 
-#: builtin/remote.c:163
+#: builtin/remote.c:164
 msgid "fetch the remote branches"
 msgstr "抓取远程的分支"
 
-#: builtin/remote.c:165
+#: builtin/remote.c:166
 msgid "import all tags and associated objects when fetching"
 msgstr "抓取时导入所有的标签和关联对象"
 
-#: builtin/remote.c:168
+#: builtin/remote.c:169
 msgid "or do not fetch any tag at all (--no-tags)"
 msgstr "或不抓取任何标签(--no-tags)"
 
-#: builtin/remote.c:170
+#: builtin/remote.c:171
 msgid "branch(es) to track"
 msgstr "跟踪的分支"
 
-#: builtin/remote.c:171
+#: builtin/remote.c:172
 msgid "master branch"
 msgstr "主线分支"
 
-#: builtin/remote.c:173
+#: builtin/remote.c:174
 msgid "set up remote as a mirror to push to or fetch from"
 msgstr "把远程设置为用以推送或抓取的镜像"
 
-#: builtin/remote.c:185
+#: builtin/remote.c:186
 msgid "specifying a master branch makes no sense with --mirror"
 msgstr "指定一个 master 分支并使用 --mirror 选项没有意义"
 
-#: builtin/remote.c:187
+#: builtin/remote.c:188
 msgid "specifying branches to track makes sense only with fetch mirrors"
 msgstr "指定要跟踪的分支只在与获取镜像同时使用才有意义"
 
-#: builtin/remote.c:194 builtin/remote.c:636
+#: builtin/remote.c:195 builtin/remote.c:697
 #, c-format
 msgid "remote %s already exists."
 msgstr "远程 %s 已经存在。"
 
-#: builtin/remote.c:198 builtin/remote.c:640
+#: builtin/remote.c:199 builtin/remote.c:701
 #, c-format
 msgid "'%s' is not a valid remote name"
 msgstr "'%s' 不是一个有效的远程名称"
 
-#: builtin/remote.c:238
+#: builtin/remote.c:239
 #, c-format
 msgid "Could not setup master '%s'"
 msgstr "无法设置 master '%s'"
 
-#: builtin/remote.c:344
+#: builtin/remote.c:354
 #, c-format
 msgid "Could not get fetch map for refspec %s"
 msgstr "无法得到引用规格 %s 的获取列表"
 
-#: builtin/remote.c:443 builtin/remote.c:451
+#: builtin/remote.c:453 builtin/remote.c:461
 msgid "(matching)"
 msgstr "(匹配)"
 
-#: builtin/remote.c:455
+#: builtin/remote.c:465
 msgid "(delete)"
 msgstr "(删除)"
 
-#: builtin/remote.c:629 builtin/remote.c:765 builtin/remote.c:864
+#: builtin/remote.c:654
+#, c-format
+msgid "could not set '%s'"
+msgstr "不能设置 '%s'"
+
+#: builtin/remote.c:659
+#, c-format
+msgid ""
+"The %s configuration remote.pushDefault in:\n"
+"\t%s:%d\n"
+"now names the non-existent remote '%s'"
+msgstr ""
+"配置(%s)remote.pushDefault 位于:\n"
+"\t%s:%d\n"
+"现在在为不存在的远程名 '%s' 命名"
+
+#: builtin/remote.c:690 builtin/remote.c:833 builtin/remote.c:941
 #, c-format
 msgid "No such remote: '%s'"
 msgstr "没有此远程仓库:'%s'"
 
-#: builtin/remote.c:646
+#: builtin/remote.c:707
 #, c-format
 msgid "Could not rename config section '%s' to '%s'"
 msgstr "不能重命名配置小节 '%s' 到 '%s'"
 
-#: builtin/remote.c:666
+#: builtin/remote.c:727
 #, c-format
 msgid ""
 "Not updating non-default fetch refspec\n"
@@ -17746,17 +19545,17 @@ msgstr ""
 "\t%s\n"
 "\t如果必要请手动更新配置。"
 
-#: builtin/remote.c:702
+#: builtin/remote.c:767
 #, c-format
 msgid "deleting '%s' failed"
 msgstr "删除 '%s' 失败"
 
-#: builtin/remote.c:736
+#: builtin/remote.c:801
 #, c-format
 msgid "creating '%s' failed"
 msgstr "创建 '%s' 失败"
 
-#: builtin/remote.c:802
+#: builtin/remote.c:877
 msgid ""
 "Note: A branch outside the refs/remotes/ hierarchy was not removed;\n"
 "to delete it, use:"
@@ -17766,118 +19565,118 @@ msgid_plural ""
 msgstr[0] "注意:ref/remotes 层级之外的一个分支未被移除。要删除它,使用:"
 msgstr[1] "注意:ref/remotes 层级之外的一些分支未被移除。要删除它们,使用:"
 
-#: builtin/remote.c:816
+#: builtin/remote.c:891
 #, c-format
 msgid "Could not remove config section '%s'"
 msgstr "不能移除配置小节 '%s'"
 
-#: builtin/remote.c:917
+#: builtin/remote.c:994
 #, c-format
 msgid " new (next fetch will store in remotes/%s)"
 msgstr " 新的(下一次获取将存储于 remotes/%s)"
 
-#: builtin/remote.c:920
+#: builtin/remote.c:997
 msgid " tracked"
 msgstr " 已跟踪"
 
-#: builtin/remote.c:922
+#: builtin/remote.c:999
 msgid " stale (use 'git remote prune' to remove)"
 msgstr " 过时(使用 'git remote prune' 来移除)"
 
-#: builtin/remote.c:924
+#: builtin/remote.c:1001
 msgid " ???"
 msgstr " ???"
 
-#: builtin/remote.c:965
+#: builtin/remote.c:1042
 #, c-format
 msgid "invalid branch.%s.merge; cannot rebase onto > 1 branch"
 msgstr "无效的 branch.%s.merge,不能变基到一个以上的分支"
 
-#: builtin/remote.c:974
+#: builtin/remote.c:1051
 #, c-format
 msgid "rebases interactively onto remote %s"
 msgstr "交互式变基到远程 %s"
 
-#: builtin/remote.c:976
+#: builtin/remote.c:1053
 #, c-format
 msgid "rebases interactively (with merges) onto remote %s"
 msgstr "交互式变基(含合并提交)到远程 %s"
 
-#: builtin/remote.c:979
+#: builtin/remote.c:1056
 #, c-format
 msgid "rebases onto remote %s"
 msgstr "变基到远程 %s"
 
-#: builtin/remote.c:983
+#: builtin/remote.c:1060
 #, c-format
 msgid " merges with remote %s"
 msgstr " 与远程 %s 合并"
 
-#: builtin/remote.c:986
+#: builtin/remote.c:1063
 #, c-format
 msgid "merges with remote %s"
 msgstr "与远程 %s 合并"
 
-#: builtin/remote.c:989
+#: builtin/remote.c:1066
 #, c-format
 msgid "%-*s    and with remote %s\n"
 msgstr "%-*s    以及和远程 %s\n"
 
-#: builtin/remote.c:1032
+#: builtin/remote.c:1109
 msgid "create"
 msgstr "创建"
 
-#: builtin/remote.c:1035
+#: builtin/remote.c:1112
 msgid "delete"
 msgstr "删除"
 
-#: builtin/remote.c:1039
+#: builtin/remote.c:1116
 msgid "up to date"
 msgstr "最新"
 
-#: builtin/remote.c:1042
+#: builtin/remote.c:1119
 msgid "fast-forwardable"
 msgstr "可快进"
 
-#: builtin/remote.c:1045
+#: builtin/remote.c:1122
 msgid "local out of date"
 msgstr "本地已过时"
 
-#: builtin/remote.c:1052
+#: builtin/remote.c:1129
 #, c-format
 msgid "    %-*s forces to %-*s (%s)"
 msgstr "    %-*s 强制推送至 %-*s (%s)"
 
-#: builtin/remote.c:1055
+#: builtin/remote.c:1132
 #, c-format
 msgid "    %-*s pushes to %-*s (%s)"
 msgstr "    %-*s 推送至 %-*s (%s)"
 
-#: builtin/remote.c:1059
+#: builtin/remote.c:1136
 #, c-format
 msgid "    %-*s forces to %s"
 msgstr "    %-*s 强制推送至 %s"
 
-#: builtin/remote.c:1062
+#: builtin/remote.c:1139
 #, c-format
 msgid "    %-*s pushes to %s"
 msgstr "    %-*s 推送至 %s"
 
-#: builtin/remote.c:1130
+#: builtin/remote.c:1207
 msgid "do not query remotes"
 msgstr "不查询远程"
 
-#: builtin/remote.c:1157
+#: builtin/remote.c:1234
 #, c-format
 msgid "* remote %s"
 msgstr "* 远程 %s"
 
-#: builtin/remote.c:1158
+#: builtin/remote.c:1235
 #, c-format
 msgid "  Fetch URL: %s"
 msgstr "  获取地址:%s"
 
-#: builtin/remote.c:1159 builtin/remote.c:1175 builtin/remote.c:1314
+#: builtin/remote.c:1236 builtin/remote.c:1252 builtin/remote.c:1391
 msgid "(no URL)"
 msgstr "(无 URL)"
 
@@ -17885,32 +19684,32 @@ msgstr "(无 URL)"
 #. with the one in " Fetch URL: %s"
 #. translation.
 #.
-#: builtin/remote.c:1173 builtin/remote.c:1175
+#: builtin/remote.c:1250 builtin/remote.c:1252
 #, c-format
 msgid "  Push  URL: %s"
 msgstr "  推送地址:%s"
 
-#: builtin/remote.c:1177 builtin/remote.c:1179 builtin/remote.c:1181
+#: builtin/remote.c:1254 builtin/remote.c:1256 builtin/remote.c:1258
 #, c-format
 msgid "  HEAD branch: %s"
 msgstr "  HEAD 分支:%s"
 
 #  译者:中文字符串拼接,可删除前导空格
-#: builtin/remote.c:1177
+#: builtin/remote.c:1254
 msgid "(not queried)"
 msgstr "(未查询)"
 
-#: builtin/remote.c:1179
+#: builtin/remote.c:1256
 msgid "(unknown)"
 msgstr "(未知)"
 
-#: builtin/remote.c:1183
+#: builtin/remote.c:1260
 #, c-format
 msgid ""
 "  HEAD branch (remote HEAD is ambiguous, may be one of the following):\n"
 msgstr "  HEAD 分支(远程 HEAD 模糊,可能是下列中的一个):\n"
 
-#: builtin/remote.c:1195
+#: builtin/remote.c:1272
 #, c-format
 msgid "  Remote branch:%s"
 msgid_plural "  Remote branches:%s"
@@ -17918,164 +19717,155 @@ msgstr[0] "  远程分支:%s"
 msgstr[1] "  远程分支:%s"
 
 #  译者:中文字符串拼接,可删除前导空格
-#: builtin/remote.c:1198 builtin/remote.c:1224
+#: builtin/remote.c:1275 builtin/remote.c:1301
 msgid " (status not queried)"
 msgstr "(状态未查询)"
 
-#: builtin/remote.c:1207
+#: builtin/remote.c:1284
 msgid "  Local branch configured for 'git pull':"
 msgid_plural "  Local branches configured for 'git pull':"
 msgstr[0] "  为 'git pull' 配置的本地分支:"
 msgstr[1] "  为 'git pull' 配置的本地分支:"
 
-#: builtin/remote.c:1215
+#: builtin/remote.c:1292
 msgid "  Local refs will be mirrored by 'git push'"
 msgstr "  本地引用将在 'git push' 时被镜像"
 
-#: builtin/remote.c:1221
+#: builtin/remote.c:1298
 #, c-format
 msgid "  Local ref configured for 'git push'%s:"
 msgid_plural "  Local refs configured for 'git push'%s:"
 msgstr[0] "  为 'git push' 配置的本地引用%s:"
 msgstr[1] "  为 'git push' 配置的本地引用%s:"
 
-#: builtin/remote.c:1242
+#: builtin/remote.c:1319
 msgid "set refs/remotes/<name>/HEAD according to remote"
 msgstr "根据远程设置 refs/remotes/<名称>/HEAD"
 
-#: builtin/remote.c:1244
+#: builtin/remote.c:1321
 msgid "delete refs/remotes/<name>/HEAD"
 msgstr "删除 refs/remotes/<名称>/HEAD"
 
-#: builtin/remote.c:1259
+#: builtin/remote.c:1336
 msgid "Cannot determine remote HEAD"
 msgstr "无法确定远程 HEAD"
 
-#: builtin/remote.c:1261
+#: builtin/remote.c:1338
 msgid "Multiple remote HEAD branches. Please choose one explicitly with:"
 msgstr "多个远程 HEAD 分支。请明确地选择一个用命令:"
 
-#: builtin/remote.c:1271
+#: builtin/remote.c:1348
 #, c-format
 msgid "Could not delete %s"
 msgstr "无法删除 %s"
 
-#: builtin/remote.c:1279
+#: builtin/remote.c:1356
 #, c-format
 msgid "Not a valid ref: %s"
 msgstr "不是一个有效引用:%s"
 
-#: builtin/remote.c:1281
+#: builtin/remote.c:1358
 #, c-format
 msgid "Could not setup %s"
 msgstr "不能设置 %s"
 
 #  译者:注意保持前导空格
-#: builtin/remote.c:1299
+#: builtin/remote.c:1376
 #, c-format
 msgid " %s will become dangling!"
 msgstr " %s 将成为悬空状态!"
 
 #  译者:注意保持前导空格
-#: builtin/remote.c:1300
+#: builtin/remote.c:1377
 #, c-format
 msgid " %s has become dangling!"
 msgstr " %s 已成为悬空状态!"
 
-#: builtin/remote.c:1310
+#: builtin/remote.c:1387
 #, c-format
 msgid "Pruning %s"
 msgstr "修剪 %s"
 
-#: builtin/remote.c:1311
+#: builtin/remote.c:1388
 #, c-format
 msgid "URL: %s"
 msgstr "URL:%s"
 
-#: builtin/remote.c:1327
+#: builtin/remote.c:1404
 #, c-format
 msgid " * [would prune] %s"
 msgstr " * [将删除] %s"
 
-#: builtin/remote.c:1330
+#: builtin/remote.c:1407
 #, c-format
 msgid " * [pruned] %s"
 msgstr " * [已删除] %s"
 
-#: builtin/remote.c:1375
+#: builtin/remote.c:1452
 msgid "prune remotes after fetching"
 msgstr "抓取后清除远程"
 
-#: builtin/remote.c:1438 builtin/remote.c:1492 builtin/remote.c:1560
+#: builtin/remote.c:1515 builtin/remote.c:1569 builtin/remote.c:1637
 #, c-format
 msgid "No such remote '%s'"
 msgstr "没有此远程 '%s'"
 
-#: builtin/remote.c:1454
+#: builtin/remote.c:1531
 msgid "add branch"
 msgstr "添加分支"
 
-#: builtin/remote.c:1461
+#: builtin/remote.c:1538
 msgid "no remote specified"
 msgstr "未指定远程"
 
-#: builtin/remote.c:1478
+#: builtin/remote.c:1555
 msgid "query push URLs rather than fetch URLs"
 msgstr "查询推送 URL 地址,而非获取 URL 地址"
 
-#: builtin/remote.c:1480
+#: builtin/remote.c:1557
 msgid "return all URLs"
 msgstr "返回所有 URL 地址"
 
-#: builtin/remote.c:1508
+#: builtin/remote.c:1585
 #, c-format
 msgid "no URLs configured for remote '%s'"
 msgstr "没有给远程仓库 '%s' 设定 URL"
 
-#: builtin/remote.c:1534
+#: builtin/remote.c:1611
 msgid "manipulate push URLs"
 msgstr "操作推送 URLS"
 
-#: builtin/remote.c:1536
+#: builtin/remote.c:1613
 msgid "add URL"
 msgstr "添加 URL"
 
-#: builtin/remote.c:1538
+#: builtin/remote.c:1615
 msgid "delete URLs"
 msgstr "删除 URLS"
 
-#: builtin/remote.c:1545
+#: builtin/remote.c:1622
 msgid "--add --delete doesn't make sense"
 msgstr "--add --delete 无意义"
 
-#: builtin/remote.c:1584
+#: builtin/remote.c:1661
 #, c-format
 msgid "Invalid old URL pattern: %s"
 msgstr "无效的旧 URL 匹配模版:%s"
 
-#: builtin/remote.c:1592
+#: builtin/remote.c:1669
 #, c-format
 msgid "No such URL found: %s"
 msgstr "未找到此 URL:%s"
 
-#: builtin/remote.c:1594
+#: builtin/remote.c:1671
 msgid "Will not delete all non-push URLs"
 msgstr "将不会删除所有非推送 URL 地址"
 
-#: builtin/remote.c:1610
-msgid "be verbose; must be placed before a subcommand"
-msgstr "冗长输出;必须置于子命令之前"
-
-#: builtin/remote.c:1641
-#, c-format
-msgid "Unknown subcommand: %s"
-msgstr "未知子命令:%s"
-
-#: builtin/repack.c:22
+#: builtin/repack.c:25
 msgid "git repack [<options>]"
 msgstr "git repack [<选项>]"
 
-#: builtin/repack.c:27
+#: builtin/repack.c:30
 msgid ""
 "Incremental repacks are incompatible with bitmap indexes.  Use\n"
 "--no-write-bitmap-index or disable the pack.writebitmaps configuration."
@@ -18083,111 +19873,111 @@ msgstr ""
 "增量 repack 和 bitmap 索引不兼容。  使用 --no-write-bitmap-index\n"
 "或禁用 pack.writebitmaps 配置。"
 
-#: builtin/repack.c:190
+#: builtin/repack.c:197
 msgid "could not start pack-objects to repack promisor objects"
 msgstr "无法开始 pack-objects 来重新打包 promisor 对象"
 
-#: builtin/repack.c:229 builtin/repack.c:408
+#: builtin/repack.c:236 builtin/repack.c:421
 msgid "repack: Expecting full hex object ID lines only from pack-objects."
 msgstr "repack:期望来自 pack-objects 的完整十六进制对象 ID。"
 
-#: builtin/repack.c:246
+#: builtin/repack.c:260
 msgid "could not finish pack-objects to repack promisor objects"
 msgstr "无法完成 pack-objects 来重新打包 promisor 对象"
 
-#: builtin/repack.c:284
+#: builtin/repack.c:297
 msgid "pack everything in a single pack"
 msgstr "所有内容打包到一个包文件中"
 
-#: builtin/repack.c:286
+#: builtin/repack.c:299
 msgid "same as -a, and turn unreachable objects loose"
 msgstr "和 -a 相同,并将不可达的对象设为松散对象"
 
-#: builtin/repack.c:289
+#: builtin/repack.c:302
 msgid "remove redundant packs, and run git-prune-packed"
 msgstr "删除多余的包,运行 git-prune-packed"
 
-#: builtin/repack.c:291
+#: builtin/repack.c:304
 msgid "pass --no-reuse-delta to git-pack-objects"
 msgstr "向 git-pack-objects 传递参数 --no-reuse-delta"
 
-#: builtin/repack.c:293
+#: builtin/repack.c:306
 msgid "pass --no-reuse-object to git-pack-objects"
 msgstr "向 git-pack-objects 传递参数 --no-reuse-object"
 
-#: builtin/repack.c:295
+#: builtin/repack.c:308
 msgid "do not run git-update-server-info"
 msgstr "不运行 git-update-server-info"
 
-#: builtin/repack.c:298
+#: builtin/repack.c:311
 msgid "pass --local to git-pack-objects"
 msgstr "向 git-pack-objects 传递参数 --local"
 
-#: builtin/repack.c:300
+#: builtin/repack.c:313
 msgid "write bitmap index"
 msgstr "写 bitmap 索引"
 
-#: builtin/repack.c:302
+#: builtin/repack.c:315
 msgid "pass --delta-islands to git-pack-objects"
 msgstr "向 git-pack-objects 传递参数 --delta-islands"
 
-#: builtin/repack.c:303
+#: builtin/repack.c:316
 msgid "approxidate"
 msgstr "近似日期"
 
-#: builtin/repack.c:304
+#: builtin/repack.c:317
 msgid "with -A, do not loosen objects older than this"
 msgstr "使用 -A,不要将早于给定时间的对象过期"
 
-#: builtin/repack.c:306
+#: builtin/repack.c:319
 msgid "with -a, repack unreachable objects"
 msgstr "使用 -a ,重新对不可达对象打包"
 
-#: builtin/repack.c:308
+#: builtin/repack.c:321
 msgid "size of the window used for delta compression"
 msgstr "用于增量压缩的窗口值"
 
-#: builtin/repack.c:309 builtin/repack.c:315
+#: builtin/repack.c:322 builtin/repack.c:328
 msgid "bytes"
 msgstr "字节"
 
-#: builtin/repack.c:310
+#: builtin/repack.c:323
 msgid "same as the above, but limit memory size instead of entries count"
 msgstr "和上面的相似,但限制内存大小而非条目数"
 
-#: builtin/repack.c:312
+#: builtin/repack.c:325
 msgid "limits the maximum delta depth"
 msgstr "限制最大增量深度"
 
-#: builtin/repack.c:314
+#: builtin/repack.c:327
 msgid "limits the maximum number of threads"
 msgstr "限制最大线程数"
 
-#: builtin/repack.c:316
+#: builtin/repack.c:329
 msgid "maximum size of each packfile"
 msgstr "每个包文件的最大尺寸"
 
-#: builtin/repack.c:318
+#: builtin/repack.c:331
 msgid "repack objects in packs marked with .keep"
 msgstr "对标记为 .keep 的包中的对象重新打包"
 
-#: builtin/repack.c:320
+#: builtin/repack.c:333
 msgid "do not repack this pack"
 msgstr "不要对该包文件重新打包"
 
-#: builtin/repack.c:330
+#: builtin/repack.c:343
 msgid "cannot delete packs in a precious-objects repo"
 msgstr "不能删除珍品仓库中的打包文件"
 
-#: builtin/repack.c:334
+#: builtin/repack.c:347
 msgid "--keep-unreachable and -A are incompatible"
 msgstr "--keep-unreachable 和 -A 不兼容"
 
-#: builtin/repack.c:417
+#: builtin/repack.c:430
 msgid "Nothing new to pack."
 msgstr "没有新的要打包。"
 
-#: builtin/repack.c:478
+#: builtin/repack.c:486
 #, c-format
 msgid ""
 "WARNING: Some packs in use have been renamed by\n"
@@ -18203,7 +19993,7 @@ msgstr ""
 "警告:并且尝试重命名改回原有文件名的操作也失败。\n"
 "警告:请手动将 %s 下的这些文件重命名:\n"
 
-#: builtin/repack.c:526
+#: builtin/repack.c:534
 #, c-format
 msgid "failed to remove '%s'"
 msgstr "删除 '%s' 失败"
@@ -18311,8 +20101,8 @@ msgstr "无法对 %s 执行 fstat"
 msgid "unable to write object to database"
 msgstr "无法向数据库写入对象"
 
-#: builtin/replace.c:322 builtin/replace.c:377 builtin/replace.c:422
-#: builtin/replace.c:452
+#: builtin/replace.c:322 builtin/replace.c:378 builtin/replace.c:424
+#: builtin/replace.c:454
 #, c-format
 msgid "not a valid object name: '%s'"
 msgstr "不是一个有效的对象名:'%s'"
@@ -18331,53 +20121,53 @@ msgstr "编辑对象文件失败"
 msgid "new object is the same as the old one: '%s'"
 msgstr "新对象和旧对象相同:'%s'"
 
-#: builtin/replace.c:383
+#: builtin/replace.c:384
 #, c-format
 msgid "could not parse %s as a commit"
 msgstr "无法将 %s 解析为一个提交"
 
-#: builtin/replace.c:414
+#: builtin/replace.c:416
 #, c-format
 msgid "bad mergetag in commit '%s'"
 msgstr "提交 '%s' 中含有损坏的合并标签"
 
-#: builtin/replace.c:416
+#: builtin/replace.c:418
 #, c-format
 msgid "malformed mergetag in commit '%s'"
 msgstr "提交 '%s' 中含有格式错误的合并标签"
 
-#: builtin/replace.c:428
+#: builtin/replace.c:430
 #, c-format
 msgid ""
 "original commit '%s' contains mergetag '%s' that is discarded; use --edit "
 "instead of --graft"
 msgstr "原始提交 '%s' 包含已经丢弃的合并标签 '%s',使用 --edit 代替 --graft"
 
-#: builtin/replace.c:467
+#: builtin/replace.c:469
 #, c-format
 msgid "the original commit '%s' has a gpg signature"
 msgstr "原始提交 '%s' 中有一个 gpg 签名"
 
-#: builtin/replace.c:468
+#: builtin/replace.c:470
 msgid "the signature will be removed in the replacement commit!"
 msgstr "在替换的提交中签名将被移除!"
 
-#: builtin/replace.c:478
+#: builtin/replace.c:480
 #, c-format
 msgid "could not write replacement commit for: '%s'"
 msgstr "不能为 '%s' 写替换提交"
 
-#: builtin/replace.c:486
+#: builtin/replace.c:488
 #, c-format
 msgid "graft for '%s' unnecessary"
 msgstr "对 '%s' 移植没有必要"
 
-#: builtin/replace.c:490
+#: builtin/replace.c:492
 #, c-format
 msgid "new commit is the same as the old one: '%s'"
 msgstr "新提交和旧的一样:'%s'"
 
-#: builtin/replace.c:525
+#: builtin/replace.c:527
 #, c-format
 msgid ""
 "could not convert the following graft(s):\n"
@@ -18386,71 +20176,71 @@ msgstr ""
 "不能转换下列移植:\n"
 "%s"
 
-#: builtin/replace.c:546
+#: builtin/replace.c:548
 msgid "list replace refs"
 msgstr "列出替换的引用"
 
-#: builtin/replace.c:547
+#: builtin/replace.c:549
 msgid "delete replace refs"
 msgstr "删除替换的引用"
 
-#: builtin/replace.c:548
+#: builtin/replace.c:550
 msgid "edit existing object"
 msgstr "编辑现存的对象"
 
-#: builtin/replace.c:549
+#: builtin/replace.c:551
 msgid "change a commit's parents"
 msgstr "修改一个提交的父提交"
 
-#: builtin/replace.c:550
+#: builtin/replace.c:552
 msgid "convert existing graft file"
 msgstr "转换现存的移植文件"
 
-#: builtin/replace.c:551
+#: builtin/replace.c:553
 msgid "replace the ref if it exists"
 msgstr "如果存在则替换引用"
 
-#: builtin/replace.c:553
+#: builtin/replace.c:555
 msgid "do not pretty-print contents for --edit"
 msgstr "不要为 --edit 操作美观显示内容"
 
-#: builtin/replace.c:554
+#: builtin/replace.c:556
 msgid "use this format"
 msgstr "使用此格式"
 
-#: builtin/replace.c:567
+#: builtin/replace.c:569
 msgid "--format cannot be used when not listing"
 msgstr "不列出时不能使用 --format"
 
-#: builtin/replace.c:575
+#: builtin/replace.c:577
 msgid "-f only makes sense when writing a replacement"
 msgstr "只有写一个替换时 -f 才有意义"
 
-#: builtin/replace.c:579
+#: builtin/replace.c:581
 msgid "--raw only makes sense with --edit"
 msgstr "--raw 只有和 --edit 共用才有意义"
 
-#: builtin/replace.c:585
+#: builtin/replace.c:587
 msgid "-d needs at least one argument"
 msgstr "-d 需要至少一个参数"
 
-#: builtin/replace.c:591
+#: builtin/replace.c:593
 msgid "bad number of arguments"
 msgstr "错误的参数个数"
 
-#: builtin/replace.c:597
+#: builtin/replace.c:599
 msgid "-e needs exactly one argument"
 msgstr "-e 需要且仅需要一个参数"
 
-#: builtin/replace.c:603
+#: builtin/replace.c:605
 msgid "-g needs at least one argument"
 msgstr "-g 需要至少一个参数"
 
-#: builtin/replace.c:609
+#: builtin/replace.c:611
 msgid "--convert-graft-file takes no argument"
 msgstr "--convert-graft-file 不带参数"
 
-#: builtin/replace.c:615
+#: builtin/replace.c:617
 msgid "only one pattern can be given with -l"
 msgstr "只能为 -l 提供一个模式"
 
@@ -18477,116 +20267,126 @@ msgid ""
 msgstr "git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [<提交>]"
 
 #: builtin/reset.c:33
-msgid "git reset [-q] [<tree-ish>] [--] <paths>..."
-msgstr "git reset [-q] [<树或提交>] [--] <路径>..."
+msgid "git reset [-q] [<tree-ish>] [--] <pathspec>..."
+msgstr "git reset [-q] [<树对象>] [--] <路径表达式>..."
 
 #: builtin/reset.c:34
-msgid "git reset --patch [<tree-ish>] [--] [<paths>...]"
-msgstr "git reset --patch [<树或提交>] [--] [<路径>...]"
+msgid ""
+"git reset [-q] [--pathspec-from-file [--pathspec-file-nul]] [<tree-ish>]"
+msgstr "git reset [-q] [--pathspec-from-file [--pathspec-file-nul]] [<树对象>]"
+
+#: builtin/reset.c:35
+msgid "git reset --patch [<tree-ish>] [--] [<pathspec>...]"
+msgstr "git reset --patch [<树对象>] [--] [<路径表达式>...]"
 
-#: builtin/reset.c:40
+#: builtin/reset.c:41
 msgid "mixed"
 msgstr "混杂"
 
-#: builtin/reset.c:40
+#: builtin/reset.c:41
 msgid "soft"
 msgstr "软性"
 
-#: builtin/reset.c:40
+#: builtin/reset.c:41
 msgid "hard"
 msgstr "硬性"
 
-#: builtin/reset.c:40
+#: builtin/reset.c:41
 msgid "merge"
 msgstr "合并"
 
-#: builtin/reset.c:40
+#: builtin/reset.c:41
 msgid "keep"
 msgstr "保持"
 
-#: builtin/reset.c:81
+#: builtin/reset.c:83
 msgid "You do not have a valid HEAD."
 msgstr "您没有一个有效的 HEAD。"
 
-#: builtin/reset.c:83
+#: builtin/reset.c:85
 msgid "Failed to find tree of HEAD."
 msgstr "无法找到 HEAD 指向的树。"
 
-#: builtin/reset.c:89
+#: builtin/reset.c:91
 #, c-format
 msgid "Failed to find tree of %s."
 msgstr "无法找到 %s 指向的树。"
 
+#: builtin/reset.c:116
+#, c-format
+msgid "HEAD is now at %s"
+msgstr "HEAD 现在位于 %s"
+
 #  译者:汉字之间无空格,故删除%s前后空格
-#: builtin/reset.c:193
+#: builtin/reset.c:195
 #, c-format
 msgid "Cannot do a %s reset in the middle of a merge."
 msgstr "在合并过程中不能做%s重置操作。"
 
-#: builtin/reset.c:293 builtin/stash.c:514 builtin/stash.c:589
-#: builtin/stash.c:613
+#: builtin/reset.c:295 builtin/stash.c:520 builtin/stash.c:595
+#: builtin/stash.c:619
 msgid "be quiet, only report errors"
 msgstr "安静模式,只报告错误"
 
-#: builtin/reset.c:295
+#: builtin/reset.c:297
 msgid "reset HEAD and index"
 msgstr "重置 HEAD 和索引"
 
-#: builtin/reset.c:296
+#: builtin/reset.c:298
 msgid "reset only HEAD"
 msgstr "只重置 HEAD"
 
-#: builtin/reset.c:298 builtin/reset.c:300
+#: builtin/reset.c:300 builtin/reset.c:302
 msgid "reset HEAD, index and working tree"
 msgstr "重置 HEAD、索引和工作区"
 
-#: builtin/reset.c:302
+#: builtin/reset.c:304
 msgid "reset HEAD but keep local changes"
 msgstr "重置 HEAD 但保存本地变更"
 
-#: builtin/reset.c:308
+#: builtin/reset.c:310
 msgid "record only the fact that removed paths will be added later"
 msgstr "将删除的路径标记为稍后添加"
 
-#: builtin/reset.c:326
+#: builtin/reset.c:344
 #, c-format
 msgid "Failed to resolve '%s' as a valid revision."
 msgstr "无法将 '%s' 解析为一个有效的版本。"
 
-#: builtin/reset.c:334
+#: builtin/reset.c:352
 #, c-format
 msgid "Failed to resolve '%s' as a valid tree."
 msgstr "无法将 '%s' 解析为一个有效的树对象。"
 
-#: builtin/reset.c:343
+#: builtin/reset.c:361
 msgid "--patch is incompatible with --{hard,mixed,soft}"
 msgstr "--patch 与 --{hard、mixed、soft} 选项不兼容"
 
-#: builtin/reset.c:353
+#: builtin/reset.c:371
 msgid "--mixed with paths is deprecated; use 'git reset -- <paths>' instead."
 msgstr "--mixed 带路径已弃用,而是用 'git reset -- <路径>'。"
 
 #  译者:汉字之间无空格,故删除%s前后空格
-#: builtin/reset.c:355
+#: builtin/reset.c:373
 #, c-format
 msgid "Cannot do %s reset with paths."
 msgstr "不能带路径进行%s重置。"
 
 #  译者:汉字之间无空格,故删除%s前后空格
-#: builtin/reset.c:370
+#: builtin/reset.c:388
 #, c-format
 msgid "%s reset is not allowed in a bare repository"
 msgstr "不能对纯仓库进行%s重置"
 
-#: builtin/reset.c:374
+#: builtin/reset.c:392
 msgid "-N can only be used with --mixed"
 msgstr "-N 只能和 --mixed 同时使用"
 
-#: builtin/reset.c:395
+#: builtin/reset.c:413
 msgid "Unstaged changes after reset:"
 msgstr "重置后取消暂存的变更:"
 
-#: builtin/reset.c:398
+#: builtin/reset.c:416
 #, c-format
 msgid ""
 "\n"
@@ -18598,53 +20398,48 @@ msgstr ""
 "重置后,枚举未暂存变更花费了 %.2f 秒。 您可以使用 '--quiet' 避免此情况。\n"
 "将配置变量 reset.quiet 设置为 true 可使其成为默认值。\n"
 
-#: builtin/reset.c:408
+#: builtin/reset.c:434
 #, c-format
 msgid "Could not reset index file to revision '%s'."
 msgstr "不能重置索引文件至版本 '%s'。"
 
-#: builtin/reset.c:412
+#: builtin/reset.c:439
 msgid "Could not write new index file."
 msgstr "不能写入新的索引文件。"
 
-#: builtin/rev-list.c:412
+#: builtin/rev-list.c:499
 msgid "cannot combine --exclude-promisor-objects and --missing"
 msgstr "不能同时使用 --exclude-promisor-objects 和 --missing 选项"
 
-#: builtin/rev-list.c:473
+#: builtin/rev-list.c:560
 msgid "object filtering requires --objects"
 msgstr "对象过滤需要 --objects"
 
-#: builtin/rev-list.c:476
-#, c-format
-msgid "invalid sparse value '%s'"
-msgstr "无效的稀疏值 '%s'"
-
-#: builtin/rev-list.c:527
+#: builtin/rev-list.c:610
 msgid "rev-list does not support display of notes"
 msgstr "rev-list 不支持显示注解"
 
-#: builtin/rev-list.c:530
-msgid "cannot combine --use-bitmap-index with object filtering"
-msgstr "不能将 --use-bitmap-index 和对象过滤组合使用"
+#: builtin/rev-list.c:615
+msgid "marked counting is incompatible with --objects"
+msgstr "标记计数和 --objects 不兼容"
 
-#: builtin/rev-parse.c:408
+#: builtin/rev-parse.c:409
 msgid "git rev-parse --parseopt [<options>] -- [<args>...]"
 msgstr "git rev-parse --parseopt [<选项>] -- [<参数>...]"
 
-#: builtin/rev-parse.c:413
+#: builtin/rev-parse.c:414
 msgid "keep the `--` passed as an arg"
 msgstr "保持 `--` 作为一个参数传递"
 
-#: builtin/rev-parse.c:415
+#: builtin/rev-parse.c:416
 msgid "stop parsing after the first non-option argument"
 msgstr "遇到第一个非选项参数后停止解析"
 
-#: builtin/rev-parse.c:418
+#: builtin/rev-parse.c:419
 msgid "output in stuck long form"
 msgstr "以固定长格式输出"
 
-#: builtin/rev-parse.c:551
+#: builtin/rev-parse.c:552
 msgid ""
 "git rev-parse --parseopt [<options>] -- [<args>...]\n"
 "   or: git rev-parse --sq-quote [<arg>...]\n"
@@ -18786,36 +20581,40 @@ msgid_plural "the following files have local modifications:"
 msgstr[0] "如下文件有本地修改:"
 msgstr[1] "如下文件有本地修改:"
 
-#: builtin/rm.c:242
+#: builtin/rm.c:243
 msgid "do not list removed files"
 msgstr "不列出删除的文件"
 
-#: builtin/rm.c:243
+#: builtin/rm.c:244
 msgid "only remove from the index"
 msgstr "只从索引区删除"
 
-#: builtin/rm.c:244
+#: builtin/rm.c:245
 msgid "override the up-to-date check"
 msgstr "忽略文件更新状态检查"
 
-#: builtin/rm.c:245
+#: builtin/rm.c:246
 msgid "allow recursive removal"
 msgstr "允许递归删除"
 
-#: builtin/rm.c:247
+#: builtin/rm.c:248
 msgid "exit with a zero status even if nothing matched"
 msgstr "即使没有匹配,也以零状态退出"
 
-#: builtin/rm.c:289
+#: builtin/rm.c:282
+msgid "No pathspec was given. Which files should I remove?"
+msgstr "没有提供路径规格。我应该删除哪些文件?"
+
+#: builtin/rm.c:305
 msgid "please stage your changes to .gitmodules or stash them to proceed"
 msgstr "请将您的修改暂存到 .gitmodules 中或贮藏后再继续"
 
-#: builtin/rm.c:307
+#: builtin/rm.c:323
 #, c-format
 msgid "not removing '%s' recursively without -r"
 msgstr "未提供 -r 选项不会递归删除 '%s'"
 
-#: builtin/rm.c:346
+#: builtin/rm.c:362
 #, c-format
 msgid "git rm: unable to remove %s"
 msgstr "git rm:不能删除 %s"
@@ -18831,55 +20630,76 @@ msgstr ""
 "receive-pack>] [--verbose] [--thin] [--atomic] [<主机>:]<目录> [<引用>...]\n"
 "  --all 和明确的 <引用> 互斥。"
 
-#: builtin/send-pack.c:163
+#: builtin/send-pack.c:182
 msgid "remote name"
 msgstr "远程名称"
 
-#: builtin/send-pack.c:177
+#: builtin/send-pack.c:195
 msgid "use stateless RPC protocol"
 msgstr "使用无状态的 RPC 协议"
 
-#: builtin/send-pack.c:178
+#: builtin/send-pack.c:196
 msgid "read refs from stdin"
 msgstr "从标准输入读取引用"
 
-#: builtin/send-pack.c:179
+#: builtin/send-pack.c:197
 msgid "print status from remote helper"
 msgstr "打印来自远程 helper 的状态"
 
-#: builtin/shortlog.c:14
+#: builtin/shortlog.c:15
 msgid "git shortlog [<options>] [<revision-range>] [[--] <path>...]"
 msgstr "git shortlog [<选项>] [<版本范围>] [[--] <路径>...]"
 
-#: builtin/shortlog.c:15
+#: builtin/shortlog.c:16
 msgid "git log --pretty=short | git shortlog [<options>]"
 msgstr "git log --pretty=short | git shortlog [<选项>]"
 
-#: builtin/shortlog.c:264
+#: builtin/shortlog.c:134
+msgid "using multiple --group options with stdin is not supported"
+msgstr "不支持和标准输入一起使用多个 --group 选项"
+
+#: builtin/shortlog.c:144
+msgid "using --group=trailer with stdin is not supported"
+msgstr "不支持和标准输入一起使用 --group=trailer"
+
+#: builtin/shortlog.c:388
+#, c-format
+msgid "unknown group type: %s"
+msgstr "未知分组类型:%s"
+
+#: builtin/shortlog.c:416
 msgid "Group by committer rather than author"
 msgstr "按照提交者分组而不是作者"
 
-#: builtin/shortlog.c:266
+#: builtin/shortlog.c:419
 msgid "sort output according to the number of commits per author"
 msgstr "根据每个作者的提交数量排序"
 
-#: builtin/shortlog.c:268
+#: builtin/shortlog.c:421
 msgid "Suppress commit descriptions, only provides commit count"
 msgstr "隐藏提交说明,只提供提交数量"
 
-#: builtin/shortlog.c:270
+#: builtin/shortlog.c:423
 msgid "Show the email address of each author"
 msgstr "显示每个作者的电子邮件地址"
 
-#: builtin/shortlog.c:271
+#: builtin/shortlog.c:424
 msgid "<w>[,<i1>[,<i2>]]"
 msgstr "<w>[,<i1>[,<i2>]]"
 
-#: builtin/shortlog.c:272
+#: builtin/shortlog.c:425
 msgid "Linewrap output"
 msgstr "折行输出"
 
-#: builtin/shortlog.c:301
+#: builtin/shortlog.c:427
+msgid "field"
+msgstr "字段"
+
+#: builtin/shortlog.c:428
+msgid "Group by field"
+msgstr "按字段分组"
+
+#: builtin/shortlog.c:456
 msgid "too many arguments given outside repository"
 msgstr "仓库外执行提供了太多的参数"
 
@@ -19017,6 +20837,14 @@ msgstr "'%s' 不是一个有效的引用。"
 msgid "cannot find commit %s (%s)"
 msgstr "不能找到提交 %s(%s)"
 
+#: builtin/show-index.c:21
+msgid "hash-algorithm"
+msgstr "哈希算法"
+
+#: builtin/show-index.c:31
+msgid "Unknown hash algorithm"
+msgstr "未知的哈希算法"
+
 #: builtin/show-ref.c:12
 msgid ""
 "git show-ref [-q | --quiet] [--verify] [--head] [-d | --dereference] [-s | --"
@@ -19061,15 +20889,86 @@ msgstr "不打印结果到标准输出(例如与 --verify 参数共用)"
 msgid "show refs from stdin that aren't in local repository"
 msgstr "显示从标准输入中读入的不在本地仓库中的引用"
 
-#: builtin/stash.c:22 builtin/stash.c:37
+#: builtin/sparse-checkout.c:21
+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
+msgid "git sparse-checkout list"
+msgstr "git sparse-checkout list"
+
+#: builtin/sparse-checkout.c:76
+msgid "this worktree is not sparse (sparse-checkout file may not exist)"
+msgstr "本工作区不是稀疏模式(稀疏检出文件可能不存在)"
+
+#: builtin/sparse-checkout.c:228
+msgid "failed to create directory for sparse-checkout file"
+msgstr "无法为稀疏检出文件创建目录"
+
+#: builtin/sparse-checkout.c:269
+msgid "unable to upgrade repository format to enable worktreeConfig"
+msgstr "无法升级仓库格式以启用 worktreeConfig"
+
+#: builtin/sparse-checkout.c:271
+msgid "failed to set extensions.worktreeConfig setting"
+msgstr "无法设置 extensions.worktreeConfig"
+
+#: builtin/sparse-checkout.c:288
+msgid "git sparse-checkout init [--cone]"
+msgstr "git sparse-checkout init [--cone]"
+
+#: builtin/sparse-checkout.c:307
+msgid "initialize the sparse-checkout in cone mode"
+msgstr "初始化稀疏检出为 cone 模式"
+
+#: builtin/sparse-checkout.c:344
+#, c-format
+msgid "failed to open '%s'"
+msgstr "无法打开 '%s'"
+
+#: builtin/sparse-checkout.c:401
+#, c-format
+msgid "could not normalize path %s"
+msgstr "无法规范化路径 %s"
+
+#: builtin/sparse-checkout.c:413
+msgid "git sparse-checkout (set|add) (--stdin | <patterns>)"
+msgstr "git sparse-checkout (set|add) (--stdin | <模式>)"
+
+#: builtin/sparse-checkout.c:438
+#, c-format
+msgid "unable to unquote C-style string '%s'"
+msgstr "无法为 C 语言风格的字符串 '%s' 去引号"
+
+#: builtin/sparse-checkout.c:492 builtin/sparse-checkout.c:516
+msgid "unable to load existing sparse-checkout patterns"
+msgstr "无法加载现存的稀疏检出模式"
+
+#: builtin/sparse-checkout.c:561
+msgid "read patterns from standard in"
+msgstr "从标准输入读取模式"
+
+#: builtin/sparse-checkout.c:576
+msgid "git sparse-checkout reapply"
+msgstr "git sparse-checkout reapply"
+
+#: builtin/sparse-checkout.c:595
+msgid "git sparse-checkout disable"
+msgstr "git sparse-checkout disable"
+
+#: builtin/sparse-checkout.c:623
+msgid "error while refreshing working directory"
+msgstr "刷新工作目录时出错"
+
+#: builtin/stash.c:22 builtin/stash.c:38
 msgid "git stash list [<options>]"
 msgstr "git stash list [<选项>]"
 
-#: builtin/stash.c:23 builtin/stash.c:42
+#: builtin/stash.c:23 builtin/stash.c:43
 msgid "git stash show [<options>] [<stash>]"
 msgstr "git stash show [<选项>] [<stash>]"
 
-#: builtin/stash.c:24 builtin/stash.c:47
+#: builtin/stash.c:24 builtin/stash.c:48
 msgid "git stash drop [-q|--quiet] [<stash>]"
 msgstr "git stash drop [-q|--quiet] [<stash>]"
 
@@ -19077,25 +20976,27 @@ msgstr "git stash drop [-q|--quiet] [<stash>]"
 msgid "git stash ( pop | apply ) [--index] [-q|--quiet] [<stash>]"
 msgstr "git stash ( pop | apply ) [--index] [-q|--quiet] [<stash>]"
 
-#: builtin/stash.c:26 builtin/stash.c:62
+#: builtin/stash.c:26 builtin/stash.c:63
 msgid "git stash branch <branchname> [<stash>]"
 msgstr "git stash branch <分支名> [<stash>]"
 
-#: builtin/stash.c:27 builtin/stash.c:67
+#: builtin/stash.c:27 builtin/stash.c:68
 msgid "git stash clear"
 msgstr "git stash clear"
 
-#: builtin/stash.c:28 builtin/stash.c:77
+#: builtin/stash.c:28
 msgid ""
 "git stash [push [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet]\n"
 "          [-u|--include-untracked] [-a|--all] [-m|--message <message>]\n"
+"          [--pathspec-from-file=<file> [--pathspec-file-nul]]\n"
 "          [--] [<pathspec>...]]"
 msgstr ""
 "git stash [push [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet]\n"
 "          [-u|--include-untracked] [-a|--all] [-m|--message <消息>]\n"
+"          [--pathspec-from-file=<file> [--pathspec-file-nul]]\n"
 "          [--] [<路径规格>...]]"
 
-#: builtin/stash.c:31 builtin/stash.c:84
+#: builtin/stash.c:32 builtin/stash.c:85
 msgid ""
 "git stash save [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet]\n"
 "          [-u|--include-untracked] [-a|--all] [<message>]"
@@ -19103,189 +21004,201 @@ msgstr ""
 "git stash save [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet]\n"
 "          [-u|--include-untracked] [-a|--all] [<消息>]"
 
-#: builtin/stash.c:52
+#: builtin/stash.c:53
 msgid "git stash pop [--index] [-q|--quiet] [<stash>]"
 msgstr "git stash pop [--index] [-q|--quiet] [<stash>]"
 
-#: builtin/stash.c:57
+#: builtin/stash.c:58
 msgid "git stash apply [--index] [-q|--quiet] [<stash>]"
 msgstr "git stash apply [--index] [-q|--quiet] [<stash>]"
 
-#: builtin/stash.c:72
+#: builtin/stash.c:73
 msgid "git stash store [-m|--message <message>] [-q|--quiet] <commit>"
 msgstr "git stash store [-m|--message <消息>] [-q|--quiet] <提交>"
 
-#: builtin/stash.c:127
+#: builtin/stash.c:78
+msgid ""
+"git stash [push [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet]\n"
+"          [-u|--include-untracked] [-a|--all] [-m|--message <message>]\n"
+"          [--] [<pathspec>...]]"
+msgstr ""
+"git stash [push [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet]\n"
+"          [-u|--include-untracked] [-a|--all] [-m|--message <消息>]\n"
+"          [--] [<路径规格>...]]"
+
+#: builtin/stash.c:128
 #, c-format
 msgid "'%s' is not a stash-like commit"
 msgstr "'%s' 不像是一个贮藏提交"
 
-#: builtin/stash.c:147
+#: builtin/stash.c:148
 #, c-format
 msgid "Too many revisions specified:%s"
 msgstr "指定了太多的版本:%s"
 
-#: builtin/stash.c:161 git-legacy-stash.sh:548
+#: builtin/stash.c:162
 msgid "No stash entries found."
 msgstr "未发现贮藏条目。"
 
-#: builtin/stash.c:175
+#: builtin/stash.c:176
 #, c-format
 msgid "%s is not a valid reference"
 msgstr "%s 不是一个有效的引用名"
 
-#: builtin/stash.c:224 git-legacy-stash.sh:75
+#: builtin/stash.c:225
 msgid "git stash clear with parameters is unimplemented"
 msgstr "git stash clear 不支持参数"
 
-#: builtin/stash.c:403
+#: builtin/stash.c:404
 msgid "cannot apply a stash in the middle of a merge"
-msgstr "无法在合并过程应用贮藏"
+msgstr "无法在合并过程中应用贮藏"
 
-#: builtin/stash.c:414
+#: builtin/stash.c:415
 #, c-format
 msgid "could not generate diff %s^!."
 msgstr "无法生成差异 %s^!."
 
-#: builtin/stash.c:421
+#: builtin/stash.c:422
 msgid "conflicts in index.Try without --index."
 msgstr "索引中有冲突。尝试不用 --index。"
 
-#: builtin/stash.c:427
+#: builtin/stash.c:428
 msgid "could not save index tree"
 msgstr "不能保存索引树"
 
-#: builtin/stash.c:434
+#: builtin/stash.c:437
 msgid "could not restore untracked files from stash"
 msgstr "无法从贮藏条目中恢复未跟踪文件"
 
-#: builtin/stash.c:448
+#: builtin/stash.c:451
 #, c-format
 msgid "Merging %s with %s"
 msgstr "正在合并 %s 和 %s"
 
-#: builtin/stash.c:458 git-legacy-stash.sh:680
+#: builtin/stash.c:461
 msgid "Index was not unstashed."
 msgstr "索引未从贮藏中恢复。"
 
-#: builtin/stash.c:516 builtin/stash.c:615
+#: builtin/stash.c:522 builtin/stash.c:621
 msgid "attempt to recreate the index"
 msgstr "尝试重建索引"
 
-#: builtin/stash.c:549
+#: builtin/stash.c:555
 #, c-format
 msgid "Dropped %s (%s)"
 msgstr "丢弃了 %s(%s)"
 
-#: builtin/stash.c:552
+#: builtin/stash.c:558
 #, c-format
 msgid "%s: Could not drop stash entry"
 msgstr "%s:无法丢弃贮藏条目"
 
-#: builtin/stash.c:577
+#: builtin/stash.c:583
 #, c-format
 msgid "'%s' is not a stash reference"
 msgstr "'%s' 不是一个贮藏引用"
 
-#: builtin/stash.c:627 git-legacy-stash.sh:694
+#: builtin/stash.c:633
 msgid "The stash entry is kept in case you need it again."
 msgstr "贮藏条目被保留以备您再次需要。"
 
-#: builtin/stash.c:650 git-legacy-stash.sh:712
+#: builtin/stash.c:656
 msgid "No branch name specified"
 msgstr "未指定分支名"
 
-#: builtin/stash.c:790 builtin/stash.c:827
+#: builtin/stash.c:800 builtin/stash.c:837
 #, c-format
 msgid "Cannot update %s with %s"
 msgstr "无法用 %2$s 更新 %1$s"
 
-#: builtin/stash.c:808 builtin/stash.c:1461 builtin/stash.c:1497
+#: builtin/stash.c:818 builtin/stash.c:1472 builtin/stash.c:1537
 msgid "stash message"
 msgstr "贮藏说明"
 
-#: builtin/stash.c:818
+#: builtin/stash.c:828
 msgid "\"git stash store\" requires one <commit> argument"
 msgstr "\"git stash store\" 需要一个 <提交> 参数"
 
-#: builtin/stash.c:1040 git-legacy-stash.sh:217
+#: builtin/stash.c:1043
 msgid "No changes selected"
 msgstr "没有选择变更"
 
-#: builtin/stash.c:1136 git-legacy-stash.sh:150
+#: builtin/stash.c:1143
 msgid "You do not have the initial commit yet"
 msgstr "您尚未建立初始提交"
 
-#: builtin/stash.c:1163 git-legacy-stash.sh:165
+#: builtin/stash.c:1170
 msgid "Cannot save the current index state"
 msgstr "无法保存当前索引状态"
 
-#: builtin/stash.c:1172 git-legacy-stash.sh:180
+#: builtin/stash.c:1179
 msgid "Cannot save the untracked files"
 msgstr "无法保存未跟踪文件"
 
-#: builtin/stash.c:1183 builtin/stash.c:1192 git-legacy-stash.sh:200
-#: git-legacy-stash.sh:213
+#: builtin/stash.c:1190 builtin/stash.c:1199
 msgid "Cannot save the current worktree state"
 msgstr "无法保存当前工作区状态"
 
-#: builtin/stash.c:1220 git-legacy-stash.sh:233
+#: builtin/stash.c:1227
 msgid "Cannot record working tree state"
 msgstr "不能记录工作区状态"
 
-#: builtin/stash.c:1269 git-legacy-stash.sh:337
+#: builtin/stash.c:1276
 msgid "Can't use --patch and --include-untracked or --all at the same time"
 msgstr "不能同时使用参数 --patch 和 --include-untracked 或 --all"
 
-#: builtin/stash.c:1285
+#: builtin/stash.c:1292
 msgid "Did you forget to 'git add'?"
 msgstr "您是否忘了执行 'git add'?"
 
-#: builtin/stash.c:1300 git-legacy-stash.sh:345
+#: builtin/stash.c:1307
 msgid "No local changes to save"
 msgstr "没有要保存的本地修改"
 
-#: builtin/stash.c:1307 git-legacy-stash.sh:350
+#: builtin/stash.c:1314
 msgid "Cannot initialize stash"
 msgstr "无法初始化贮藏"
 
-#: builtin/stash.c:1322 git-legacy-stash.sh:354
+#: builtin/stash.c:1329
 msgid "Cannot save the current status"
 msgstr "无法保存当前状态"
 
-#: builtin/stash.c:1327
+#: builtin/stash.c:1334
 #, c-format
 msgid "Saved working directory and index state %s"
 msgstr "保存工作目录和索引状态 %s"
 
-#: builtin/stash.c:1417 git-legacy-stash.sh:384
+#: builtin/stash.c:1424
 msgid "Cannot remove worktree changes"
 msgstr "无法删除工作区变更"
 
-#: builtin/stash.c:1452 builtin/stash.c:1488
+#: builtin/stash.c:1463 builtin/stash.c:1528
 msgid "keep index"
 msgstr "保持索引"
 
-#: builtin/stash.c:1454 builtin/stash.c:1490
+#: builtin/stash.c:1465 builtin/stash.c:1530
 msgid "stash in patch mode"
 msgstr "以补丁模式贮藏"
 
-#: builtin/stash.c:1455 builtin/stash.c:1491
+#: builtin/stash.c:1466 builtin/stash.c:1531
 msgid "quiet mode"
 msgstr "静默模式"
 
-#: builtin/stash.c:1457 builtin/stash.c:1493
+#: builtin/stash.c:1468 builtin/stash.c:1533
 msgid "include untracked files in stash"
 msgstr "贮藏中包含未跟踪文件"
 
-#: builtin/stash.c:1459 builtin/stash.c:1495
+#: builtin/stash.c:1470 builtin/stash.c:1535
 msgid "include ignore files"
 msgstr "包含忽略的文件"
 
-#: builtin/stash.c:1555
-#, c-format
-msgid "could not exec %s"
-msgstr "不能执行 %s"
+#: builtin/stash.c:1570
+msgid ""
+"the stash.useBuiltin support has been removed!\n"
+"See its entry in 'git help config' for details."
+msgstr ""
+"对 stash.useBuiltin 的支持已被删除!\n"
+"详见 'git help config' 中的条目。"
 
 #: builtin/stripspace.c:18
 msgid "git stripspace [-s | --strip-comments]"
@@ -19303,40 +21216,40 @@ msgstr "跳过和移除所有的注释行"
 msgid "prepend comment character and space to each line"
 msgstr "为每一行的行首添加注释符和空格"
 
-#: builtin/submodule--helper.c:45 builtin/submodule--helper.c:1943
+#: builtin/submodule--helper.c:47 builtin/submodule--helper.c:2423
 #, c-format
 msgid "Expecting a full ref name, got %s"
 msgstr "期望一个完整的引用名称,却得到 %s"
 
-#: builtin/submodule--helper.c:62
+#: builtin/submodule--helper.c:64
 msgid "submodule--helper print-default-remote takes no arguments"
 msgstr "submodule--helper print-default-remote 不带参数"
 
-#: builtin/submodule--helper.c:100
+#: builtin/submodule--helper.c:102
 #, c-format
 msgid "cannot strip one component off url '%s'"
 msgstr "无法从 url '%s' 剥离一个组件"
 
-#: builtin/submodule--helper.c:408 builtin/submodule--helper.c:1368
+#: builtin/submodule--helper.c:410 builtin/submodule--helper.c:1819
 msgid "alternative anchor for relative paths"
 msgstr "相对路径的替代锚记(anchor)"
 
-#: builtin/submodule--helper.c:413
+#: builtin/submodule--helper.c:415
 msgid "git submodule--helper list [--prefix=<path>] [<path>...]"
 msgstr "git submodule--helper list [--prefix=<路径>] [<路径>...]"
 
-#: builtin/submodule--helper.c:470 builtin/submodule--helper.c:628
-#: builtin/submodule--helper.c:651
+#: builtin/submodule--helper.c:472 builtin/submodule--helper.c:629
+#: builtin/submodule--helper.c:652
 #, c-format
 msgid "No url found for submodule path '%s' in .gitmodules"
 msgstr "在 .gitmodules 中未找到子模组 '%s' 的 url"
 
-#: builtin/submodule--helper.c:522
+#: builtin/submodule--helper.c:524
 #, c-format
 msgid "Entering '%s'\n"
 msgstr "进入 '%s'\n"
 
-#: builtin/submodule--helper.c:525
+#: builtin/submodule--helper.c:527
 #, c-format
 msgid ""
 "run_command returned non-zero status for %s\n"
@@ -19345,7 +21258,7 @@ msgstr ""
 "对 %s 执行 run_command 返回非零值。\n"
 "."
 
-#: builtin/submodule--helper.c:547
+#: builtin/submodule--helper.c:549
 #, c-format
 msgid ""
 "run_command returned non-zero status while recursing in the nested "
@@ -19355,119 +21268,172 @@ msgstr ""
 "在递归 %s 的子模组执行 run_command 时返回非零值。\n"
 "."
 
-#: builtin/submodule--helper.c:563
+#: builtin/submodule--helper.c:565
 msgid "Suppress output of entering each submodule command"
 msgstr "阻止进入每一个子模组命令的输出"
 
-#: builtin/submodule--helper.c:565 builtin/submodule--helper.c:1050
+#: builtin/submodule--helper.c:567 builtin/submodule--helper.c:1487
 msgid "Recurse into nested submodules"
 msgstr "递归进入嵌套子模组中"
 
-#: builtin/submodule--helper.c:570
+#: builtin/submodule--helper.c:572
 msgid "git submodule--helper foreach [--quiet] [--recursive] [--] <command>"
 msgstr "git submodule--helper foreach [--quiet] [--recursive] [--] <命令>"
 
-#: builtin/submodule--helper.c:597
+#: builtin/submodule--helper.c:599
 #, c-format
 msgid ""
 "could not look up configuration '%s'. Assuming this repository is its own "
 "authoritative upstream."
 msgstr "无法找到配置 '%s'。假定这个仓库是其自身的官方上游。"
 
-#: builtin/submodule--helper.c:665
+#: builtin/submodule--helper.c:666
 #, c-format
 msgid "Failed to register url for submodule path '%s'"
 msgstr "无法为子模组 '%s' 注册 url"
 
-#: builtin/submodule--helper.c:669
+#: builtin/submodule--helper.c:670
 #, c-format
 msgid "Submodule '%s' (%s) registered for path '%s'\n"
 msgstr "子模组 '%s'(%s)已对路径 '%s' 注册\n"
 
-#: builtin/submodule--helper.c:679
+#: builtin/submodule--helper.c:680
 #, c-format
 msgid "warning: command update mode suggested for submodule '%s'\n"
 msgstr "警告:建议子模组 '%s' 使用命令更新模式\n"
 
-#: builtin/submodule--helper.c:686
+#: builtin/submodule--helper.c:687
 #, c-format
 msgid "Failed to register update mode for submodule path '%s'"
 msgstr "无法为子模组 '%s' 注册更新模式"
 
-#: builtin/submodule--helper.c:708
+#: builtin/submodule--helper.c:709
 msgid "Suppress output for initializing a submodule"
 msgstr "阻止子模组初始化的输出"
 
-#: builtin/submodule--helper.c:713
+#: builtin/submodule--helper.c:714
 msgid "git submodule--helper init [<options>] [<path>]"
 msgstr "git submodule--helper init [<选项>] [<路径>]"
 
-#: builtin/submodule--helper.c:785 builtin/submodule--helper.c:911
+#: builtin/submodule--helper.c:787 builtin/submodule--helper.c:922
 #, c-format
 msgid "no submodule mapping found in .gitmodules for path '%s'"
 msgstr "在 .gitmodules 中没有发现路径 '%s' 的子模组映射"
 
-#: builtin/submodule--helper.c:824
+#: builtin/submodule--helper.c:835
 #, c-format
 msgid "could not resolve HEAD ref inside the submodule '%s'"
 msgstr "无法解析子模组 '%s' 的 HEAD 引用"
 
-#: builtin/submodule--helper.c:851 builtin/submodule--helper.c:1020
+#: builtin/submodule--helper.c:862 builtin/submodule--helper.c:1457
 #, c-format
 msgid "failed to recurse into submodule '%s'"
 msgstr "递归子模组 '%s' 失败"
 
-#: builtin/submodule--helper.c:875 builtin/submodule--helper.c:1186
+#: builtin/submodule--helper.c:886 builtin/submodule--helper.c:1623
 msgid "Suppress submodule status output"
 msgstr "阻止子模组状态输出"
 
-#: builtin/submodule--helper.c:876
+#: builtin/submodule--helper.c:887
 msgid ""
 "Use commit stored in the index instead of the one stored in the submodule "
 "HEAD"
 msgstr "使用存储在索引中的提交,而非存储在子模组 HEAD 中的提交"
 
-#: builtin/submodule--helper.c:877
+#: builtin/submodule--helper.c:888
 msgid "recurse into nested submodules"
 msgstr "递归进入嵌套子模组中"
 
-#: builtin/submodule--helper.c:882
+#: builtin/submodule--helper.c:893
 msgid "git submodule status [--quiet] [--cached] [--recursive] [<path>...]"
 msgstr "git submodule status [--quiet] [--cached] [--recursive] [<路径>...]"
 
-#: builtin/submodule--helper.c:906
+#: builtin/submodule--helper.c:917
 msgid "git submodule--helper name <path>"
 msgstr "git submodule--helper name <路径>"
 
-#: builtin/submodule--helper.c:970
+#: builtin/submodule--helper.c:989
+#, c-format
+msgid "* %s %s(blob)->%s(submodule)"
+msgstr "* %s %s(数据对象)->%s(子模组)"
+
+#: builtin/submodule--helper.c:992
+#, c-format
+msgid "* %s %s(submodule)->%s(blob)"
+msgstr "* %s %s(子模组)->%s(数据对象)"
+
+#: builtin/submodule--helper.c:1005
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: builtin/submodule--helper.c:1055
+#, c-format
+msgid "couldn't hash object from '%s'"
+msgstr "不能从 '%s' 创建哈希对象"
+
+#: builtin/submodule--helper.c:1059
+#, c-format
+msgid "unexpected mode %o\n"
+msgstr "意外的模式 %o\n"
+
+#: builtin/submodule--helper.c:1300
+msgid "use the commit stored in the index instead of the submodule HEAD"
+msgstr "使用存储在索引中的提交,而非存储在子模组 HEAD 中的提交"
+
+#: builtin/submodule--helper.c:1302
+msgid "to compare the commit in the index with that in the submodule HEAD"
+msgstr "比较存储在索引和子模组 HEAD 中的提交"
+
+#: builtin/submodule--helper.c:1304
+msgid "skip submodules with 'ignore_config' value set to 'all'"
+msgstr "跳过设置了 'ignore_config' 为 'all' 的子模组"
+
+#: builtin/submodule--helper.c:1306
+msgid "limit the summary size"
+msgstr "限制总结的大小"
+
+#: builtin/submodule--helper.c:1311
+msgid "git submodule--helper summary [<options>] [<commit>] [--] [<path>]"
+msgstr "git submodule--helper summary [<选项>] [<提交>] [--] [<路径>]"
+
+#: builtin/submodule--helper.c:1335
+msgid "could not fetch a revision for HEAD"
+msgstr "不能为 HEAD 获取一个版本"
+
+#: builtin/submodule--helper.c:1340
+msgid "--cached and --files are mutually exclusive"
+msgstr "--cached 和 --files 是互斥的"
+
+#: builtin/submodule--helper.c:1407
 #, c-format
 msgid "Synchronizing submodule url for '%s'\n"
 msgstr "为 '%s' 同步子模组 url\n"
 
-#: builtin/submodule--helper.c:976
+#: builtin/submodule--helper.c:1413
 #, c-format
 msgid "failed to register url for submodule path '%s'"
 msgstr "无法为子模组路径 '%s' 注册 url"
 
-#: builtin/submodule--helper.c:990
+#: builtin/submodule--helper.c:1427
 #, c-format
 msgid "failed to get the default remote for submodule '%s'"
 msgstr "无法得到子模组 '%s' 的默认远程关联"
 
-#: builtin/submodule--helper.c:1001
+#: builtin/submodule--helper.c:1438
 #, c-format
 msgid "failed to update remote for submodule '%s'"
 msgstr "无法为子模组 '%s' 更新远程关联"
 
-#: builtin/submodule--helper.c:1048
+#: builtin/submodule--helper.c:1485
 msgid "Suppress output of synchronizing submodule url"
 msgstr "阻止子模组 url 同步的输出"
 
-#: builtin/submodule--helper.c:1055
+#: builtin/submodule--helper.c:1492
 msgid "git submodule--helper sync [--quiet] [--recursive] [<path>]"
 msgstr "git submodule--helper sync [--quiet] [--recursive] [<路径>]"
 
-#: builtin/submodule--helper.c:1109
+#: builtin/submodule--helper.c:1546
 #, c-format
 msgid ""
 "Submodule work tree '%s' contains a .git directory (use 'rm -rf' if you "
@@ -19476,230 +21442,291 @@ msgstr ""
 "子模组工作区 '%s' 包含一个 .git 目录(如果您确需删除它及其全部历史,使用 'rm "
 "-rf' 命令)"
 
-#: builtin/submodule--helper.c:1121
+#: builtin/submodule--helper.c:1558
 #, c-format
 msgid ""
 "Submodule work tree '%s' contains local modifications; use '-f' to discard "
 "them"
 msgstr "子模组工作区 '%s' 包含本地修改;使用 '-f' 丢弃它们"
 
-#: builtin/submodule--helper.c:1129
+#: builtin/submodule--helper.c:1566
 #, c-format
 msgid "Cleared directory '%s'\n"
 msgstr "已清除目录 '%s'\n"
 
-#: builtin/submodule--helper.c:1131
+#: builtin/submodule--helper.c:1568
 #, c-format
 msgid "Could not remove submodule work tree '%s'\n"
 msgstr "无法移除子模组工作区 '%s'\n"
 
-#: builtin/submodule--helper.c:1142
+#: builtin/submodule--helper.c:1579
 #, c-format
 msgid "could not create empty submodule directory %s"
 msgstr "不能创建空的子模组目录 %s"
 
-#: builtin/submodule--helper.c:1158
+#: builtin/submodule--helper.c:1595
 #, c-format
 msgid "Submodule '%s' (%s) unregistered for path '%s'\n"
 msgstr "子模组 '%s'(%s)未对路径 '%s' 注册\n"
 
-#: builtin/submodule--helper.c:1187
+#: builtin/submodule--helper.c:1624
 msgid "Remove submodule working trees even if they contain local changes"
 msgstr "删除子模组工作区,即使包含本地修改"
 
-#: builtin/submodule--helper.c:1188
+#: builtin/submodule--helper.c:1625
 msgid "Unregister all submodules"
 msgstr "将所有子模组取消注册"
 
-#: builtin/submodule--helper.c:1193
+#: builtin/submodule--helper.c:1630
 msgid ""
 "git submodule deinit [--quiet] [-f | --force] [--all | [--] [<path>...]]"
 msgstr ""
 "git submodule deinit [--quiet] [-f | --force] [--all | [--] [<路径>...]]"
 
-#: builtin/submodule--helper.c:1207
+#: builtin/submodule--helper.c:1644
 msgid "Use '--all' if you really want to deinitialize all submodules"
 msgstr "如果您确实想要对所有子模组执行取消初始化,请使用 '--all'"
 
-#: builtin/submodule--helper.c:1302 builtin/submodule--helper.c:1305
+#: builtin/submodule--helper.c:1713
+msgid ""
+"An alternate computed from a superproject's alternate is invalid.\n"
+"To allow Git to clone without an alternate in such a case, set\n"
+"submodule.alternateErrorStrategy to 'info' or, equivalently, clone with\n"
+"'--reference-if-able' instead of '--reference'."
+msgstr ""
+"从一个父项目的备用仓库中计算出的备用仓库无效。\n"
+"此场景下,设置 submodule.alternateErrorStrategy 为 'info',以允许\n"
+"Git 不使用备用仓库克隆,或者等效地使用 '--reference-if-able' 而非\n"
+"'--reference' 来克隆。"
+
+#: builtin/submodule--helper.c:1752 builtin/submodule--helper.c:1755
 #, c-format
 msgid "submodule '%s' cannot add alternate: %s"
 msgstr "子模组 '%s' 不能添加仓库备选:%s"
 
-#: builtin/submodule--helper.c:1341
+#: builtin/submodule--helper.c:1791
 #, c-format
 msgid "Value '%s' for submodule.alternateErrorStrategy is not recognized"
 msgstr "不能识别 submodule.alternateErrorStrategy 的取值 '%s'"
 
-#: builtin/submodule--helper.c:1348
+#: builtin/submodule--helper.c:1798
 #, c-format
 msgid "Value '%s' for submodule.alternateLocation is not recognized"
 msgstr "不能识别 submodule.alternateLocaion 的取值 '%s'"
 
-#: builtin/submodule--helper.c:1371
+#: builtin/submodule--helper.c:1822
 msgid "where the new submodule will be cloned to"
 msgstr "新的子模组将要克隆的路径"
 
-#: builtin/submodule--helper.c:1374
+#: builtin/submodule--helper.c:1825
 msgid "name of the new submodule"
 msgstr "新子模组的名称"
 
-#: builtin/submodule--helper.c:1377
+#: builtin/submodule--helper.c:1828
 msgid "url where to clone the submodule from"
 msgstr "克隆子模组的 url 地址"
 
-#: builtin/submodule--helper.c:1385
+#: builtin/submodule--helper.c:1836
 msgid "depth for shallow clones"
 msgstr "浅克隆的深度"
 
-#: builtin/submodule--helper.c:1388 builtin/submodule--helper.c:1872
+#: builtin/submodule--helper.c:1839 builtin/submodule--helper.c:2348
 msgid "force cloning progress"
 msgstr "强制显示克隆进度"
 
-#: builtin/submodule--helper.c:1393
+#: builtin/submodule--helper.c:1841 builtin/submodule--helper.c:2350
+msgid "disallow cloning into non-empty directory"
+msgstr "不允许克隆到一个非空目录"
+
+#: builtin/submodule--helper.c:1848
 msgid ""
 "git submodule--helper clone [--prefix=<path>] [--quiet] [--reference "
-"<repository>] [--name <name>] [--depth <depth>] --url <url> --path <path>"
+"<repository>] [--name <name>] [--depth <depth>] [--single-branch] --url "
+"<url> --path <path>"
 msgstr ""
 "git submodule--helper clone [--prefix=<路径>] [--quiet] [--reference <仓库>] "
-"[--name <名字>] [--depth <深度>] --url <url> --path <路径>"
+"[--name <名字>] [--depth <深度>] [--single-branch] --url <url> --path <路径>"
 
-#: builtin/submodule--helper.c:1424
+#: builtin/submodule--helper.c:1873
+#, c-format
+msgid "refusing to create/use '%s' in another submodule's git dir"
+msgstr "拒绝在另一个子模组的 git dir 中创建/使用 '%s'"
+
+#: builtin/submodule--helper.c:1884
 #, c-format
 msgid "clone of '%s' into submodule path '%s' failed"
 msgstr "无法克隆 '%s' 到子模组路径 '%s'"
 
-#: builtin/submodule--helper.c:1438
+#: builtin/submodule--helper.c:1888
+#, c-format
+msgid "directory not empty: '%s'"
+msgstr "目录非空:'%s'"
+
+#: builtin/submodule--helper.c:1900
 #, c-format
 msgid "could not get submodule directory for '%s'"
 msgstr "无法得到 '%s' 的子模组目录"
 
-#: builtin/submodule--helper.c:1474
+#: builtin/submodule--helper.c:1936
 #, c-format
 msgid "Invalid update mode '%s' for submodule path '%s'"
 msgstr "子模组 '%2$s' 的更新模式 '%1$s' 无效"
 
-#: builtin/submodule--helper.c:1478
+#: builtin/submodule--helper.c:1940
 #, c-format
 msgid "Invalid update mode '%s' configured for submodule path '%s'"
 msgstr "为子模组 '%2$s' 配置的更新模式 '%1$s' 无效"
 
-#: builtin/submodule--helper.c:1571
+#: builtin/submodule--helper.c:2041
 #, c-format
 msgid "Submodule path '%s' not initialized"
 msgstr "子模组 '%s' 尚未初始化"
 
-#: builtin/submodule--helper.c:1575
+#: builtin/submodule--helper.c:2045
 msgid "Maybe you want to use 'update --init'?"
 msgstr "也许您想要执行 'update --init'?"
 
-#: builtin/submodule--helper.c:1605
+#: builtin/submodule--helper.c:2075
 #, c-format
 msgid "Skipping unmerged submodule %s"
 msgstr "略过未合并的子模组 %s"
 
-#: builtin/submodule--helper.c:1634
+#: builtin/submodule--helper.c:2104
 #, c-format
 msgid "Skipping submodule '%s'"
 msgstr "略过子模组 '%s'"
 
-#: builtin/submodule--helper.c:1778
+#: builtin/submodule--helper.c:2254
 #, c-format
 msgid "Failed to clone '%s'. Retry scheduled"
 msgstr "克隆 '%s' 失败。按计划重试"
 
-#: builtin/submodule--helper.c:1789
+#: builtin/submodule--helper.c:2265
 #, c-format
 msgid "Failed to clone '%s' a second time, aborting"
 msgstr "第二次尝试克隆 '%s' 失败,退出"
 
-#: builtin/submodule--helper.c:1851 builtin/submodule--helper.c:2093
+#: builtin/submodule--helper.c:2327 builtin/submodule--helper.c:2573
 msgid "path into the working tree"
 msgstr "到工作区的路径"
 
-#: builtin/submodule--helper.c:1854
+#: builtin/submodule--helper.c:2330
 msgid "path into the working tree, across nested submodule boundaries"
 msgstr "工作区中的路径,递归嵌套子模组"
 
-#: builtin/submodule--helper.c:1858
+#: builtin/submodule--helper.c:2334
 msgid "rebase, merge, checkout or none"
 msgstr "rebase、merge、checkout 或 none"
 
-#: builtin/submodule--helper.c:1864
+#: builtin/submodule--helper.c:2340
 msgid "Create a shallow clone truncated to the specified number of revisions"
 msgstr "创建一个指定深度的浅克隆"
 
-#: builtin/submodule--helper.c:1867
+#: builtin/submodule--helper.c:2343
 msgid "parallel jobs"
 msgstr "并发任务"
 
-#: builtin/submodule--helper.c:1869
+#: builtin/submodule--helper.c:2345
 msgid "whether the initial clone should follow the shallow recommendation"
 msgstr "初始克隆是否应该遵守推荐的浅克隆选项"
 
-#: builtin/submodule--helper.c:1870
+#: builtin/submodule--helper.c:2346
 msgid "don't print cloning progress"
 msgstr "不要输出克隆进度"
 
-#: builtin/submodule--helper.c:1877
-msgid "git submodule--helper update_clone [--prefix=<path>] [<path>...]"
-msgstr "git submodule--helper update_clone [--prefix=<路径>] [<路径>...]"
+#: builtin/submodule--helper.c:2357
+msgid "git submodule--helper update-clone [--prefix=<path>] [<path>...]"
+msgstr "git submodule--helper update-clone [--prefix=<路径>] [<路径>...]"
 
-#: builtin/submodule--helper.c:1890
+#: builtin/submodule--helper.c:2370
 msgid "bad value for update parameter"
 msgstr "update 参数取值错误"
 
-#: builtin/submodule--helper.c:1938
+#: builtin/submodule--helper.c:2418
 #, c-format
 msgid ""
 "Submodule (%s) branch configured to inherit branch from superproject, but "
 "the superproject is not on any branch"
 msgstr "子模组(%s)的分支配置为继承上级项目的分支,但是上级项目不在任何分支上"
 
-#: builtin/submodule--helper.c:2061
+#: builtin/submodule--helper.c:2541
 #, c-format
 msgid "could not get a repository handle for submodule '%s'"
 msgstr "无法获得子模组 '%s' 的仓库句柄"
 
-#: builtin/submodule--helper.c:2094
+#: builtin/submodule--helper.c:2574
 msgid "recurse into submodules"
 msgstr "在子模组中递归"
 
-#: builtin/submodule--helper.c:2100
+#: builtin/submodule--helper.c:2580
 msgid "git submodule--helper absorb-git-dirs [<options>] [<path>...]"
 msgstr "git submodule--helper absorb-git-dirs [<选项>] [<路径>...]"
 
-#: builtin/submodule--helper.c:2156
+#: builtin/submodule--helper.c:2636
 msgid "check if it is safe to write to the .gitmodules file"
 msgstr "检查写入 .gitmodules 文件是否安全"
 
-#: builtin/submodule--helper.c:2159
+#: builtin/submodule--helper.c:2639
 msgid "unset the config in the .gitmodules file"
 msgstr "取消 .gitmodules 文件中的设置"
 
-#: builtin/submodule--helper.c:2164
+#: builtin/submodule--helper.c:2644
 msgid "git submodule--helper config <name> [<value>]"
 msgstr "git submodule--helper config <名称> [<值>]"
 
-#: builtin/submodule--helper.c:2165
+#: builtin/submodule--helper.c:2645
 msgid "git submodule--helper config --unset <name>"
 msgstr "git submodule--helper config --unset <名称>"
 
-#: builtin/submodule--helper.c:2166
+#: builtin/submodule--helper.c:2646
 msgid "git submodule--helper config --check-writeable"
 msgstr "git submodule--helper config --check-writeable"
 
-#: builtin/submodule--helper.c:2185 git-submodule.sh:171
+#: builtin/submodule--helper.c:2665 git-submodule.sh:151
 #, sh-format
 msgid "please make sure that the .gitmodules file is in the working tree"
 msgstr "请确认 .gitmodules 文件在工作区里"
 
-#: builtin/submodule--helper.c:2235 git.c:434 git.c:684
+#: builtin/submodule--helper.c:2681
+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>"
+msgstr "git submodule--helper set-url [--quiet] <路径> <新地址>"
+
+#: builtin/submodule--helper.c:2718
+msgid "set the default tracking branch to master"
+msgstr "设置默认跟踪分支为 master"
+
+#: builtin/submodule--helper.c:2720
+msgid "set the default tracking branch"
+msgstr "设置默认跟踪分支"
+
+#: builtin/submodule--helper.c:2724
+msgid "git submodule--helper set-branch [-q|--quiet] (-d|--default) <path>"
+msgstr "git submodule--helper set-branch [-q|--quiet] (-d|--default) <路径>"
+
+#: builtin/submodule--helper.c:2725
+msgid ""
+"git submodule--helper set-branch [-q|--quiet] (-b|--branch) <branch> <path>"
+msgstr ""
+"git submodule--helper set-branch [-q|--quiet] (-b|--branch) <分支> <路径>"
+
+#: builtin/submodule--helper.c:2732
+msgid "--branch or --default required"
+msgstr "需要 --branch 或 --default"
+
+#: builtin/submodule--helper.c:2735
+msgid "--branch and --default are mutually exclusive"
+msgstr "--branch 和 --default 是互斥的"
+
+#: builtin/submodule--helper.c:2792 git.c:438 git.c:710
 #, c-format
 msgid "%s doesn't support --super-prefix"
 msgstr "%s 不支持 --super-prefix"
 
-#: builtin/submodule--helper.c:2241
+#: builtin/submodule--helper.c:2798
 #, c-format
 msgid "'%s' is not a valid submodule--helper subcommand"
 msgstr "'%s' 不是一个有效的 submodule--helper 子命令"
@@ -19724,11 +21751,11 @@ msgstr "删除符号引用"
 msgid "shorten ref output"
 msgstr "缩短引用输出"
 
-#: builtin/symbolic-ref.c:43 builtin/update-ref.c:363
+#: builtin/symbolic-ref.c:43 builtin/update-ref.c:486
 msgid "reason"
 msgstr "原因"
 
-#: builtin/symbolic-ref.c:43 builtin/update-ref.c:363
+#: builtin/symbolic-ref.c:43 builtin/update-ref.c:486
 msgid "reason of the update"
 msgstr "更新的原因"
 
@@ -19748,11 +21775,12 @@ msgstr "git tag -d <标签名>..."
 msgid ""
 "git tag -l [-n[<num>]] [--contains <commit>] [--no-contains <commit>] [--"
 "points-at <object>]\n"
-"\t\t[--format=<format>] [--[no-]merged [<commit>]] [<pattern>...]"
+"\t\t[--format=<format>] [--merged <commit>] [--no-merged <commit>] "
+"[<pattern>...]"
 msgstr ""
 "git tag -l [-n[<数字>]] [--contains <提交>] [--no-contains <提交>] [--points-"
 "at <对象>]\n"
-"\t\t[--format=<格式>] [--[no-]merged [<提交>]] [<模式>...]"
+"\t\t[--format=<格式>] [--merged <提交>] [--no-merged <提交>] [<模式>...]"
 
 #: builtin/tag.c:30
 msgid "git tag -v [--format=<format>] <tagname>..."
@@ -19820,346 +21848,350 @@ msgstr ""
 msgid "bad object type."
 msgstr "坏的对象类型。"
 
-#: builtin/tag.c:284
+#: builtin/tag.c:285
 msgid "no tag message?"
 msgstr "无标签说明?"
 
-#: builtin/tag.c:291
+#: builtin/tag.c:292
 #, c-format
 msgid "The tag message has been left in %s\n"
 msgstr "标签说明被保留在 %s\n"
 
-#: builtin/tag.c:402
+#: builtin/tag.c:403
 msgid "list tag names"
 msgstr "列出标签名称"
 
-#: builtin/tag.c:404
+#: builtin/tag.c:405
 msgid "print <n> lines of each tag message"
 msgstr "每个标签信息打印 <n> 行"
 
-#: builtin/tag.c:406
+#: builtin/tag.c:407
 msgid "delete tags"
 msgstr "删除标签"
 
-#: builtin/tag.c:407
+#: builtin/tag.c:408
 msgid "verify tags"
 msgstr "验证标签"
 
-#: builtin/tag.c:409
+#: builtin/tag.c:410
 msgid "Tag creation options"
 msgstr "标签创建选项"
 
-#: builtin/tag.c:411
+#: builtin/tag.c:412
 msgid "annotated tag, needs a message"
 msgstr "附注标签,需要一个说明"
 
-#: builtin/tag.c:413
+#: builtin/tag.c:414
 msgid "tag message"
 msgstr "标签说明"
 
-#: builtin/tag.c:415
+#: builtin/tag.c:416
 msgid "force edit of tag message"
 msgstr "强制编辑标签说明"
 
-#: builtin/tag.c:416
+#: builtin/tag.c:417
 msgid "annotated and GPG-signed tag"
 msgstr "附注并附加 GPG 签名的标签"
 
-#: builtin/tag.c:419
+#: builtin/tag.c:420
 msgid "use another key to sign the tag"
 msgstr "使用另外的私钥签名该标签"
 
-#: builtin/tag.c:420
+#: builtin/tag.c:421
 msgid "replace the tag if exists"
 msgstr "如果存在,替换现有的标签"
 
-#: builtin/tag.c:421 builtin/update-ref.c:369
+#: builtin/tag.c:422 builtin/update-ref.c:492
 msgid "create a reflog"
 msgstr "创建引用日志"
 
-#: builtin/tag.c:423
+#: builtin/tag.c:424
 msgid "Tag listing options"
 msgstr "标签列表选项"
 
-#: builtin/tag.c:424
+#: builtin/tag.c:425
 msgid "show tag list in columns"
 msgstr "以列的方式显示标签列表"
 
-#: builtin/tag.c:425 builtin/tag.c:427
+#: builtin/tag.c:426 builtin/tag.c:428
 msgid "print only tags that contain the commit"
 msgstr "只打印包含该提交的标签"
 
-#: builtin/tag.c:426 builtin/tag.c:428
+#: builtin/tag.c:427 builtin/tag.c:429
 msgid "print only tags that don't contain the commit"
 msgstr "只打印不包含该提交的标签"
 
-#: builtin/tag.c:429
+#: builtin/tag.c:430
 msgid "print only tags that are merged"
 msgstr "只打印已经合并的标签"
 
-#: builtin/tag.c:430
+#: builtin/tag.c:431
 msgid "print only tags that are not merged"
 msgstr "只打印尚未合并的标签"
 
-#: builtin/tag.c:434
+#: builtin/tag.c:435
 msgid "print only tags of the object"
 msgstr "只打印指向该对象的标签"
 
-#: builtin/tag.c:482
+#: builtin/tag.c:483
 msgid "--column and -n are incompatible"
 msgstr "--column 和 -n 不兼容"
 
-#: builtin/tag.c:504
+#: builtin/tag.c:505
 msgid "-n option is only allowed in list mode"
 msgstr "-n 选项只允许用在列表显示模式"
 
-#: builtin/tag.c:506
+#: builtin/tag.c:507
 msgid "--contains option is only allowed in list mode"
 msgstr "--contains 选项只允许用在列表显示模式"
 
-#: builtin/tag.c:508
+#: builtin/tag.c:509
 msgid "--no-contains option is only allowed in list mode"
 msgstr "--no-contains 选项只允许用在列表显示模式"
 
-#: builtin/tag.c:510
+#: builtin/tag.c:511
 msgid "--points-at option is only allowed in list mode"
 msgstr "--points-at 选项只允许用在列表显示模式"
 
-#: builtin/tag.c:512
+#: builtin/tag.c:513
 msgid "--merged and --no-merged options are only allowed in list mode"
 msgstr "--merged 和 --no-merged 选项只允许用在列表显示模式"
 
-#: builtin/tag.c:523
+#: builtin/tag.c:524
 msgid "only one -F or -m option is allowed."
 msgstr "只允许一个 -F 或 -m 选项。"
 
-#: builtin/tag.c:542
+#: builtin/tag.c:543
 msgid "too many params"
 msgstr "太多参数"
 
-#: builtin/tag.c:548
+#: builtin/tag.c:549
 #, c-format
 msgid "'%s' is not a valid tag name."
 msgstr "'%s' 不是一个有效的标签名称。"
 
-#: builtin/tag.c:553
+#: builtin/tag.c:554
 #, c-format
 msgid "tag '%s' already exists"
 msgstr "标签 '%s' 已存在"
 
-#: builtin/tag.c:584
+#: builtin/tag.c:585
 #, c-format
 msgid "Updated tag '%s' (was %s)\n"
 msgstr "已更新标签 '%s'(曾为 %s)\n"
 
-#: builtin/unpack-objects.c:500
+#: builtin/unpack-objects.c:502
 msgid "Unpacking objects"
 msgstr "展开对象中"
 
-#: builtin/update-index.c:83
+#: builtin/update-index.c:84
 #, c-format
 msgid "failed to create directory %s"
 msgstr "创建目录 %s 失败"
 
-#: builtin/update-index.c:99
+#: builtin/update-index.c:100
 #, c-format
 msgid "failed to create file %s"
 msgstr "创建文件 %s 失败"
 
-#: builtin/update-index.c:107
+#: builtin/update-index.c:108
 #, c-format
 msgid "failed to delete file %s"
 msgstr "删除文件 %s 失败"
 
-#: builtin/update-index.c:114 builtin/update-index.c:220
+#: builtin/update-index.c:115 builtin/update-index.c:221
 #, c-format
 msgid "failed to delete directory %s"
 msgstr "删除目录 %s 失败"
 
-#: builtin/update-index.c:139
+#: builtin/update-index.c:140
 #, c-format
 msgid "Testing mtime in '%s' "
 msgstr "在 '%s' 中测试 mtime "
 
-#: builtin/update-index.c:153
+#: builtin/update-index.c:154
 msgid "directory stat info does not change after adding a new file"
 msgstr "添加一个新文件后,目录的状态信息未改变"
 
-#: builtin/update-index.c:166
+#: builtin/update-index.c:167
 msgid "directory stat info does not change after adding a new directory"
 msgstr "添加一个新目录后,目录的状态信息未改变"
 
-#: builtin/update-index.c:179
+#: builtin/update-index.c:180
 msgid "directory stat info changes after updating a file"
 msgstr "更新一个文件后,目录的状态信息被修改"
 
-#: builtin/update-index.c:190
+#: builtin/update-index.c:191
 msgid "directory stat info changes after adding a file inside subdirectory"
 msgstr "在子目录中添加文件后,目录的状态信息被修改"
 
-#: builtin/update-index.c:201
+#: builtin/update-index.c:202
 msgid "directory stat info does not change after deleting a file"
 msgstr "删除一个文件后,目录的状态信息未改变"
 
-#: builtin/update-index.c:214
+#: builtin/update-index.c:215
 msgid "directory stat info does not change after deleting a directory"
 msgstr "删除一个目录后,目录的状态信息未改变"
 
-#: builtin/update-index.c:221
+#: builtin/update-index.c:222
 msgid " OK"
 msgstr " OK"
 
-#: builtin/update-index.c:589
+#: builtin/update-index.c:591
 msgid "git update-index [<options>] [--] [<file>...]"
 msgstr "git update-index [<选项>] [--] [<文件>...]"
 
-#: builtin/update-index.c:971
+#: builtin/update-index.c:974
 msgid "continue refresh even when index needs update"
 msgstr "当索引需要更新时继续刷新"
 
-#: builtin/update-index.c:974
+#: builtin/update-index.c:977
 msgid "refresh: ignore submodules"
 msgstr "刷新:忽略子模组"
 
-#: builtin/update-index.c:977
+#: builtin/update-index.c:980
 msgid "do not ignore new files"
 msgstr "不忽略新的文件"
 
-#: builtin/update-index.c:979
+#: builtin/update-index.c:982
 msgid "let files replace directories and vice-versa"
 msgstr "让文件替换目录(反之亦然)"
 
-#: builtin/update-index.c:981
+#: builtin/update-index.c:984
 msgid "notice files missing from worktree"
 msgstr "通知文件从工作区丢失"
 
-#: builtin/update-index.c:983
+#: builtin/update-index.c:986
 msgid "refresh even if index contains unmerged entries"
 msgstr "即使索引区包含未合并的条目也执行刷新"
 
-#: builtin/update-index.c:986
+#: builtin/update-index.c:989
 msgid "refresh stat information"
 msgstr "刷新统计信息"
 
-#: builtin/update-index.c:990
+#: builtin/update-index.c:993
 msgid "like --refresh, but ignore assume-unchanged setting"
 msgstr "类似于 --refresh,但是忽略 assume-unchanged 设置"
 
-#: builtin/update-index.c:994
+#: builtin/update-index.c:997
 msgid "<mode>,<object>,<path>"
 msgstr "<存取模式>,<对象>,<路径>"
 
-#: builtin/update-index.c:995
+#: builtin/update-index.c:998
 msgid "add the specified entry to the index"
 msgstr "添加指定的条目到索引区"
 
-#: builtin/update-index.c:1005
+#: builtin/update-index.c:1008
 msgid "mark files as \"not changing\""
 msgstr "把文件标记为 \"没有变更\""
 
-#: builtin/update-index.c:1008
+#: builtin/update-index.c:1011
 msgid "clear assumed-unchanged bit"
 msgstr "清除 assumed-unchanged 位"
 
-#: builtin/update-index.c:1011
+#: builtin/update-index.c:1014
 msgid "mark files as \"index-only\""
 msgstr "把文件标记为 \"仅索引\""
 
-#: builtin/update-index.c:1014
+#: builtin/update-index.c:1017
 msgid "clear skip-worktree bit"
 msgstr "清除 skip-worktree 位"
 
-#: builtin/update-index.c:1017
+#: builtin/update-index.c:1020
+msgid "do not touch index-only entries"
+msgstr "不要触碰仅索引条目"
+
+#: builtin/update-index.c:1022
 msgid "add to index only; do not add content to object database"
 msgstr "只添加到索引区;不添加对象到对象库"
 
-#: builtin/update-index.c:1019
+#: builtin/update-index.c:1024
 msgid "remove named paths even if present in worktree"
 msgstr "即使存在工作区里,也删除路径"
 
-#: builtin/update-index.c:1021
+#: builtin/update-index.c:1026
 msgid "with --stdin: input lines are terminated by null bytes"
 msgstr "携带 --stdin:输入的行以 null 字符终止"
 
-#: builtin/update-index.c:1023
+#: builtin/update-index.c:1028
 msgid "read list of paths to be updated from standard input"
 msgstr "从标准输入中读取需要更新的路径列表"
 
-#: builtin/update-index.c:1027
+#: builtin/update-index.c:1032
 msgid "add entries from standard input to the index"
 msgstr "从标准输入添加条目到索引区"
 
-#: builtin/update-index.c:1031
+#: builtin/update-index.c:1036
 msgid "repopulate stages #2 and #3 for the listed paths"
 msgstr "为指定文件重新生成第2和第3暂存区"
 
-#: builtin/update-index.c:1035
+#: builtin/update-index.c:1040
 msgid "only update entries that differ from HEAD"
 msgstr "只更新与 HEAD 不同的条目"
 
-#: builtin/update-index.c:1039
+#: builtin/update-index.c:1044
 msgid "ignore files missing from worktree"
 msgstr "忽略工作区丢失的文件"
 
-#: builtin/update-index.c:1042
+#: builtin/update-index.c:1047
 msgid "report actions to standard output"
 msgstr "在标准输出显示操作"
 
-#: builtin/update-index.c:1044
+#: builtin/update-index.c:1049
 msgid "(for porcelains) forget saved unresolved conflicts"
 msgstr "(for porcelains) 忘记保存的未解决的冲突"
 
-#: builtin/update-index.c:1048
+#: builtin/update-index.c:1053
 msgid "write index in this format"
 msgstr "以这种格式写入索引区"
 
-#: builtin/update-index.c:1050
+#: builtin/update-index.c:1055
 msgid "enable or disable split index"
 msgstr "启用或禁用索引拆分"
 
-#: builtin/update-index.c:1052
+#: builtin/update-index.c:1057
 msgid "enable/disable untracked cache"
 msgstr "启用/禁用对未跟踪文件的缓存"
 
-#: builtin/update-index.c:1054
+#: builtin/update-index.c:1059
 msgid "test if the filesystem supports untracked cache"
 msgstr "测试文件系统是否支持未跟踪文件缓存"
 
-#: builtin/update-index.c:1056
+#: builtin/update-index.c:1061
 msgid "enable untracked cache without testing the filesystem"
 msgstr "无需检测文件系统,启用对未跟踪文件的缓存"
 
-#: builtin/update-index.c:1058
+#: builtin/update-index.c:1063
 msgid "write out the index even if is not flagged as changed"
 msgstr "即使没有被标记为已更改,也要写出索引"
 
-#: builtin/update-index.c:1060
+#: builtin/update-index.c:1065
 msgid "enable or disable file system monitor"
 msgstr "启用或禁用文件系统监控"
 
-#: builtin/update-index.c:1062
+#: builtin/update-index.c:1067
 msgid "mark files as fsmonitor valid"
 msgstr "标记文件为 fsmonitor 有效"
 
-#: builtin/update-index.c:1065
+#: builtin/update-index.c:1070
 msgid "clear fsmonitor valid bit"
 msgstr "清除 fsmonitor 有效位"
 
-#: builtin/update-index.c:1168
+#: builtin/update-index.c:1173
 msgid ""
 "core.splitIndex is set to false; remove or change it, if you really want to "
 "enable split index"
 msgstr ""
 "core.splitIndex 被设置为 false。如果您确实要启用索引拆分,请删除或修改它。"
 
-#: builtin/update-index.c:1177
+#: builtin/update-index.c:1182
 msgid ""
 "core.splitIndex is set to true; remove or change it, if you really want to "
 "disable split index"
 msgstr ""
 "core.splitIndex 被设置为 true。如果您确实要禁用索引拆分,请删除或修改它。"
 
-#: builtin/update-index.c:1188
+#: builtin/update-index.c:1194
 msgid ""
 "core.untrackedCache is set to true; remove or change it, if you really want "
 "to disable the untracked cache"
@@ -20167,11 +22199,11 @@ msgstr ""
 "core.untrackedCache 被设置为 true。如果您确实要禁用未跟踪文件缓存,请删除或修"
 "改它。"
 
-#: builtin/update-index.c:1192
+#: builtin/update-index.c:1198
 msgid "Untracked cache disabled"
 msgstr "缓存未跟踪文件被禁用"
 
-#: builtin/update-index.c:1200
+#: builtin/update-index.c:1206
 msgid ""
 "core.untrackedCache is set to false; remove or change it, if you really want "
 "to enable the untracked cache"
@@ -20179,25 +22211,25 @@ msgstr ""
 "core.untrackedCache 被设置为 false。如果您确实要启用未跟踪文件缓存,请删除或"
 "修改它。"
 
-#: builtin/update-index.c:1204
+#: builtin/update-index.c:1210
 #, c-format
 msgid "Untracked cache enabled for '%s'"
 msgstr "缓存未跟踪文件在 '%s' 启用"
 
-#: builtin/update-index.c:1212
+#: builtin/update-index.c:1218
 msgid "core.fsmonitor is unset; set it if you really want to enable fsmonitor"
 msgstr "core.fsmonitor 未设置;如果想要启用 fsmonitor 请设置该选项"
 
-#: builtin/update-index.c:1216
+#: builtin/update-index.c:1222
 msgid "fsmonitor enabled"
 msgstr "fsmonitor 被启用"
 
-#: builtin/update-index.c:1219
+#: builtin/update-index.c:1225
 msgid ""
 "core.fsmonitor is set; remove it if you really want to disable fsmonitor"
 msgstr "core.fsmonitor 已设置;如果想要禁用 fsmonitor 请移除该选项"
 
-#: builtin/update-index.c:1223
+#: builtin/update-index.c:1229
 msgid "fsmonitor disabled"
 msgstr "fsmonitor 被禁用"
 
@@ -20213,19 +22245,19 @@ msgstr "git update-ref [<选项>]    <引用名> <新值> [<旧值>]"
 msgid "git update-ref [<options>] --stdin [-z]"
 msgstr "git update-ref [<选项>] --stdin [-z]"
 
-#: builtin/update-ref.c:364
+#: builtin/update-ref.c:487
 msgid "delete the reference"
 msgstr "删除引用"
 
-#: builtin/update-ref.c:366
+#: builtin/update-ref.c:489
 msgid "update <refname> not the one it points to"
 msgstr "更新 <引用名> 本身而不是它指向的引用"
 
-#: builtin/update-ref.c:367
+#: builtin/update-ref.c:490
 msgid "stdin has NUL-terminated arguments"
 msgstr "标准输入有以 NUL 字符终止的参数"
 
-#: builtin/update-ref.c:368
+#: builtin/update-ref.c:491
 msgid "read updates from stdin"
 msgstr "从标准输入读取更新"
 
@@ -20269,15 +22301,15 @@ msgstr "打印提交内容"
 msgid "print raw gpg status output"
 msgstr "打印原始 gpg 状态输出"
 
-#: builtin/verify-pack.c:55
+#: builtin/verify-pack.c:59
 msgid "git verify-pack [-v | --verbose] [-s | --stat-only] <pack>..."
 msgstr "git verify-pack [-v | --verbose] [-s | --stat-only] <包>..."
 
-#: builtin/verify-pack.c:65
+#: builtin/verify-pack.c:70
 msgid "verbose"
 msgstr "冗长输出"
 
-#: builtin/verify-pack.c:67
+#: builtin/verify-pack.c:72
 msgid "show statistics only"
 msgstr "只显示统计"
 
@@ -20289,221 +22321,215 @@ msgstr "git verify-tag [-v | --verbose] [--format=<格式>] <标签>..."
 msgid "print tag contents"
 msgstr "打印标签内容"
 
-#: builtin/worktree.c:18
+#: builtin/worktree.c:17
 msgid "git worktree add [<options>] <path> [<commit-ish>]"
 msgstr "git worktree add [<选项>] <路径> [<提交>]"
 
-#: builtin/worktree.c:19
+#: builtin/worktree.c:18
 msgid "git worktree list [<options>]"
 msgstr "git worktree list [<选项>]"
 
-#: builtin/worktree.c:20
+#: builtin/worktree.c:19
 msgid "git worktree lock [<options>] <path>"
 msgstr "git worktree lock [<选项>] <路径>"
 
-#: builtin/worktree.c:21
+#: builtin/worktree.c:20
 msgid "git worktree move <worktree> <new-path>"
 msgstr "git worktree move <工作区> <新路径>"
 
-#: builtin/worktree.c:22
+#: builtin/worktree.c:21
 msgid "git worktree prune [<options>]"
 msgstr "git worktree prune [<选项>]"
 
-#: builtin/worktree.c:23
+#: builtin/worktree.c:22
 msgid "git worktree remove [<options>] <worktree>"
 msgstr "git worktree remove [<选项>] <工作区>"
 
-#: builtin/worktree.c:24
+#: builtin/worktree.c:23
 msgid "git worktree unlock <path>"
 msgstr "git worktree unlock <路径>"
 
-#: builtin/worktree.c:61 builtin/worktree.c:899
+#: builtin/worktree.c:60 builtin/worktree.c:970
 #, c-format
 msgid "failed to delete '%s'"
 msgstr "删除 '%s' 失败"
 
-#: builtin/worktree.c:80
-#, c-format
-msgid "Removing worktrees/%s: not a valid directory"
-msgstr "删除工作区/%s:不是一个有效的目录"
+#: builtin/worktree.c:85
+msgid "not a valid directory"
+msgstr "不是一个有效的目录"
 
-#: builtin/worktree.c:86
-#, c-format
-msgid "Removing worktrees/%s: gitdir file does not exist"
-msgstr "删除 worktrees/%s:gitdir 文件不存在"
+#: builtin/worktree.c:91
+msgid "gitdir file does not exist"
+msgstr "gitdir 文件不存在"
 
-#: builtin/worktree.c:91 builtin/worktree.c:100
+#: builtin/worktree.c:96 builtin/worktree.c:105
 #, c-format
-msgid "Removing worktrees/%s: unable to read gitdir file (%s)"
-msgstr "删除 worktrees/%s:无法读取 gitdir 文件 (%s)"
+msgid "unable to read gitdir file (%s)"
+msgstr "无法读取 gitdir 文件(%s)"
 
-#: builtin/worktree.c:110
+#: builtin/worktree.c:115
 #, c-format
-msgid ""
-"Removing worktrees/%s: short read (expected %<PRIuMAX> bytes, read "
-"%<PRIuMAX>)"
-msgstr "删除工作树/%s:读取过短(期望 %<PRIuMAX> 字节,读取 %<PRIuMAX>)"
+msgid "short read (expected %<PRIuMAX> bytes, read %<PRIuMAX>)"
+msgstr "读取过短(期望 %<PRIuMAX> 字节,读取 %<PRIuMAX>)"
 
-#: builtin/worktree.c:118
-#, c-format
-msgid "Removing worktrees/%s: invalid gitdir file"
-msgstr "删除 worktrees/%s:无效的 gitdir 文件"
+#: 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:127
+#: builtin/worktree.c:146
 #, c-format
-msgid "Removing worktrees/%s: gitdir file points to non-existent location"
-msgstr "删除 worktrees/%s:gitdir 文件的指向不存在"
+msgid "Removing %s/%s: %s"
+msgstr "删除 %s/%s: %s"
 
-#: builtin/worktree.c:166
+#: builtin/worktree.c:221
 msgid "report pruned working trees"
 msgstr "报告清除的工作区"
 
-#: builtin/worktree.c:168
+#: builtin/worktree.c:223
 msgid "expire working trees older than <time>"
 msgstr "将早于 <时间> 的工作区过期"
 
-#: builtin/worktree.c:235
+#: builtin/worktree.c:293
 #, c-format
 msgid "'%s' already exists"
 msgstr "'%s' 已经存在"
 
-#: builtin/worktree.c:252
+#: builtin/worktree.c:302
 #, c-format
-msgid "unable to re-add worktree '%s'"
-msgstr "无法再次添加工作区 '%s'"
+msgid "unusable worktree destination '%s'"
+msgstr "无法使用的工作区目标 '%s'"
 
-#: builtin/worktree.c:257
+#: builtin/worktree.c:307
 #, c-format
 msgid ""
 "'%s' is a missing but locked worktree;\n"
-"use 'add -f -f' to override, or 'unlock' and 'prune' or 'remove' to clear"
+"use '%s -f -f' to override, or 'unlock' and 'prune' or 'remove' to clear"
 msgstr ""
-"'%s' 是一个丢失但锁定的工作区,使用\n"
-"'add -f -f' 覆盖,或 'unlock' 和 'prune' 或 'remove' 清除"
+"'%s' 是一个丢失但锁定的工作区,\n"
+"使用 '%s -f -f' 覆盖,或用 'unlock' 和 'prune' 或 'remove' 清除"
 
-#: builtin/worktree.c:259
+#: builtin/worktree.c:309
 #, c-format
 msgid ""
 "'%s' is a missing but already registered worktree;\n"
-"use 'add -f' to override, or 'prune' or 'remove' to clear"
+"use '%s -f' to override, or 'prune' or 'remove' to clear"
 msgstr ""
-"'%s' 是一个丢失但已经注册的工作区,使用\n"
-"'add -f' 覆盖,或 'prune' 或 'remove' 清除"
+"'%s' 是一个丢失但已经注册的工作区,\n"
+"使用 '%s -f' 覆盖,或用 'prune' 或 'remove' 清除"
 
-#: builtin/worktree.c:309
+#: builtin/worktree.c:360
 #, c-format
 msgid "could not create directory of '%s'"
 msgstr "不能创建目录 '%s'"
 
-#: builtin/worktree.c:440 builtin/worktree.c:446
+#: builtin/worktree.c:494 builtin/worktree.c:500
 #, c-format
 msgid "Preparing worktree (new branch '%s')"
 msgstr "准备工作区(新分支 '%s')"
 
-#: builtin/worktree.c:442
+#: builtin/worktree.c:496
 #, c-format
 msgid "Preparing worktree (resetting branch '%s'; was at %s)"
 msgstr "准备工作区(重置分支 '%s',之前为 %s)"
 
-#: builtin/worktree.c:451
+#: builtin/worktree.c:505
 #, c-format
 msgid "Preparing worktree (checking out '%s')"
 msgstr "准备工作区(检出 '%s')"
 
-#: builtin/worktree.c:457
+#: builtin/worktree.c:511
 #, c-format
 msgid "Preparing worktree (detached HEAD %s)"
 msgstr "准备工作区(分离头指针 %s)"
 
-#: builtin/worktree.c:498
+#: builtin/worktree.c:552
 msgid "checkout <branch> even if already checked out in other worktree"
 msgstr "检出 <分支>,即使已经被检出到其它工作区"
 
-#: builtin/worktree.c:501
+#: builtin/worktree.c:555
 msgid "create a new branch"
 msgstr "创建一个新分支"
 
-#: builtin/worktree.c:503
+#: builtin/worktree.c:557
 msgid "create or reset a branch"
 msgstr "创建或重置一个分支"
 
-#: builtin/worktree.c:505
+#: builtin/worktree.c:559
 msgid "populate the new working tree"
 msgstr "生成新的工作区"
 
-#: builtin/worktree.c:506
+#: builtin/worktree.c:560
 msgid "keep the new working tree locked"
 msgstr "锁定新工作区"
 
-#: builtin/worktree.c:509
+#: builtin/worktree.c:563
 msgid "set up tracking mode (see git-branch(1))"
 msgstr "设置跟踪模式(参见 git-branch(1))"
 
-#: builtin/worktree.c:512
+#: builtin/worktree.c:566
 msgid "try to match the new branch name with a remote-tracking branch"
 msgstr "尝试为新分支名匹配一个远程跟踪分支"
 
-#: builtin/worktree.c:520
+#: builtin/worktree.c:574
 msgid "-b, -B, and --detach are mutually exclusive"
 msgstr "-b、-B 和 --detach 是互斥的"
 
-#: builtin/worktree.c:581
+#: builtin/worktree.c:635
 msgid "--[no-]track can only be used if a new branch is created"
 msgstr "只能在创建新分支时使用选项 --[no-]track "
 
-#: builtin/worktree.c:681
+#: builtin/worktree.c:755
 msgid "reason for locking"
 msgstr "锁定原因"
 
-#: builtin/worktree.c:693 builtin/worktree.c:726 builtin/worktree.c:800
-#: builtin/worktree.c:927
+#: builtin/worktree.c:767 builtin/worktree.c:800 builtin/worktree.c:874
+#: builtin/worktree.c:998
 #, c-format
 msgid "'%s' is not a working tree"
 msgstr "'%s' 不是一个工作区"
 
-#: builtin/worktree.c:695 builtin/worktree.c:728
+#: builtin/worktree.c:769 builtin/worktree.c:802
 msgid "The main working tree cannot be locked or unlocked"
 msgstr "主工作区无法被加锁或解锁"
 
-#: builtin/worktree.c:700
+#: builtin/worktree.c:774
 #, c-format
 msgid "'%s' is already locked, reason: %s"
 msgstr "'%s' 已被锁定,原因:%s"
 
-#: builtin/worktree.c:702
+#: builtin/worktree.c:776
 #, c-format
 msgid "'%s' is already locked"
 msgstr "'%s' 已被锁定"
 
-#: builtin/worktree.c:730
+#: builtin/worktree.c:804
 #, c-format
 msgid "'%s' is not locked"
 msgstr "'%s' 未被锁定"
 
-#: builtin/worktree.c:771
+#: builtin/worktree.c:845
 msgid "working trees containing submodules cannot be moved or removed"
 msgstr "不能移动或删除包含子模组的工作区"
 
-#: builtin/worktree.c:779
+#: builtin/worktree.c:853
 msgid "force move even if worktree is dirty or locked"
 msgstr "强制移动,即使工作区是脏的或已锁定"
 
-#: builtin/worktree.c:802 builtin/worktree.c:929
+#: builtin/worktree.c:876 builtin/worktree.c:1000
 #, c-format
 msgid "'%s' is a main working tree"
 msgstr "'%s' 是一个主工作区"
 
-#: builtin/worktree.c:807
+#: builtin/worktree.c:881
 #, c-format
 msgid "could not figure out destination name from '%s'"
 msgstr "无法从 '%s' 算出目标名称"
 
-#: builtin/worktree.c:813
-#, c-format
-msgid "target '%s' already exists"
-msgstr "目标 '%s' 已存在"
-
-#: builtin/worktree.c:821
+#: builtin/worktree.c:894
 #, c-format
 msgid ""
 "cannot move a locked working tree, lock reason: %s\n"
@@ -20512,7 +22538,7 @@ msgstr ""
 "无法移动一个锁定的工作区,锁定原因:%s\n"
 "使用 'move -f -f' 覆盖或先解锁"
 
-#: builtin/worktree.c:823
+#: builtin/worktree.c:896
 msgid ""
 "cannot move a locked working tree;\n"
 "use 'move -f -f' to override or unlock first"
@@ -20520,36 +22546,36 @@ msgstr ""
 "无法移动一个锁定的工作区,\n"
 "使用 'move -f -f' 覆盖或先解锁"
 
-#: builtin/worktree.c:826
+#: builtin/worktree.c:899
 #, c-format
 msgid "validation failed, cannot move working tree: %s"
 msgstr "验证失败,无法移动工作区:%s"
 
-#: builtin/worktree.c:831
+#: builtin/worktree.c:904
 #, c-format
 msgid "failed to move '%s' to '%s'"
 msgstr "移动 '%s' 到 '%s' 失败"
 
-#: builtin/worktree.c:879
+#: builtin/worktree.c:950
 #, c-format
 msgid "failed to run 'git status' on '%s'"
 msgstr "在 '%s' 中执行 'git status' 失败"
 
-#: builtin/worktree.c:883
+#: builtin/worktree.c:954
 #, c-format
-msgid "'%s' is dirty, use --force to delete it"
-msgstr "'%s' 是脏的,使用 --force 删除"
+msgid "'%s' contains modified or untracked files, use --force to delete it"
+msgstr "'%s' 包含修改或未跟踪的文件,使用 --force 删除"
 
-#: builtin/worktree.c:888
+#: builtin/worktree.c:959
 #, c-format
 msgid "failed to run 'git status' on '%s', code %d"
 msgstr "在 '%s' 中执行 'git status' 失败,退出码 %d"
 
-#: builtin/worktree.c:911
+#: builtin/worktree.c:982
 msgid "force removal even if worktree is dirty or locked"
 msgstr "强制删除,即使工作区是脏的或已锁定"
 
-#: builtin/worktree.c:934
+#: builtin/worktree.c:1005
 #, c-format
 msgid ""
 "cannot remove a locked working tree, lock reason: %s\n"
@@ -20558,7 +22584,7 @@ msgstr ""
 "无法删除一个锁定的工作区,锁定原因:%s\n"
 "使用 'remove -f -f' 覆盖或先解锁"
 
-#: builtin/worktree.c:936
+#: builtin/worktree.c:1007
 msgid ""
 "cannot remove a locked working tree;\n"
 "use 'remove -f -f' to override or unlock first"
@@ -20566,11 +22592,21 @@ msgstr ""
 "无法删除一个锁定的工作区,\n"
 "使用 'remove -f -f' 覆盖或先解锁"
 
-#: builtin/worktree.c:939
+#: builtin/worktree.c:1010
 #, c-format
 msgid "validation failed, cannot remove working tree: %s"
 msgstr "验证失败,无法删除工作区:%s"
 
+#: builtin/worktree.c:1034
+#, c-format
+msgid "repair: %s: %s"
+msgstr "修理:%s:%s"
+
+#: builtin/worktree.c:1037
+#, c-format
+msgid "error: %s: %s"
+msgstr "错误:%s:%s"
+
 #: builtin/write-tree.c:15
 msgid "git write-tree [--missing-ok] [--prefix=<prefix>/]"
 msgstr "git write-tree [--missing-ok] [--prefix=<前缀>/]"
@@ -20587,29 +22623,21 @@ msgstr "将 <前缀> 子目录内容写到一个树对象"
 msgid "only useful for debugging"
 msgstr "只对调试有用"
 
-#: credential-cache--daemon.c:223
+#: http-fetch.c:114
 #, c-format
-msgid ""
-"The permissions on your socket directory are too loose; other\n"
-"users may be able to read your cached credentials. Consider running:\n"
-"\n"
-"\tchmod 0700 %s"
-msgstr ""
-"您的 socket 目录权限过于宽松,其他用户可能会读取您缓存的认证信息。考虑执"
-"行:\n"
-"\n"
-"\tchmod 0700 %s"
+msgid "argument to --packfile must be a valid hash (got '%s')"
+msgstr "--packfile 的参数必须是有效的哈希值(得到 '%s')"
 
-#: credential-cache--daemon.c:272
-msgid "print debugging messages to stderr"
-msgstr "调试信息输出到标准错误"
+#: http-fetch.c:122
+msgid "not a git repository"
+msgstr "不是 git 仓库"
 
-#: t/helper/test-reach.c:152
+#: t/helper/test-reach.c:154
 #, c-format
 msgid "commit %s is not marked reachable"
 msgstr "提交 %s 没有标记为可达"
 
-#: t/helper/test-reach.c:162
+#: t/helper/test-reach.c:164
 msgid "too many commits marked reachable"
 msgstr "太多提交标记为可达"
 
@@ -20621,7 +22649,7 @@ msgstr "test-tool serve-v2 [<选项>]"
 msgid "exit immediately after advertising capabilities"
 msgstr "对能力广告之后立即退出"
 
-#: git.c:27
+#: git.c:28
 msgid ""
 "git [--version] [--help] [-C <path>] [-c <name>=<value>]\n"
 "           [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]\n"
@@ -20637,7 +22665,7 @@ msgstr ""
 "           [--git-dir=<路径>] [--work-tree=<路径>] [--namespace=<名称>]\n"
 "           <命令> [<参数>]"
 
-#: git.c:34
+#: git.c:35
 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"
@@ -20649,47 +22677,47 @@ msgstr ""
 "帮助。\n"
 "有关系统的概述,查看 'git help git'。"
 
-#: git.c:186
+#: git.c:187
 #, c-format
 msgid "no directory given for --git-dir\n"
 msgstr "没有为 --git-dir 提供目录\n"
 
-#: git.c:200
+#: git.c:201
 #, c-format
 msgid "no namespace given for --namespace\n"
 msgstr "没有为 --namespace 提供命名空间\n"
 
-#: git.c:214
+#: git.c:215
 #, c-format
 msgid "no directory given for --work-tree\n"
 msgstr "没有为 --work-tree 提供目录\n"
 
-#: git.c:228
+#: git.c:229
 #, c-format
 msgid "no prefix given for --super-prefix\n"
 msgstr "没有为 --super-prefix 提供前缀\n"
 
-#: git.c:250
+#: git.c:251
 #, c-format
 msgid "-c expects a configuration string\n"
 msgstr "应为 -c 提供一个配置字符串\n"
 
-#: git.c:288
+#: git.c:289
 #, c-format
 msgid "no directory given for -C\n"
 msgstr "没有为 -C 提供目录\n"
 
-#: git.c:314
+#: git.c:315
 #, c-format
 msgid "unknown option: %s\n"
 msgstr "未知选项:%s\n"
 
-#: git.c:360
+#: git.c:364
 #, c-format
 msgid "while expanding alias '%s': '%s'"
 msgstr "在扩展别名 '%s' 时:'%s'"
 
-#: git.c:369
+#: git.c:373
 #, c-format
 msgid ""
 "alias '%s' changes environment variables.\n"
@@ -20698,39 +22726,39 @@ msgstr ""
 "别名 '%s' 修改环境变量。您可以使用在别名中\n"
 "使用 '!git'"
 
-#: git.c:377
+#: git.c:380
 #, c-format
 msgid "empty alias for %s"
 msgstr "%s 的空别名"
 
-#: git.c:380
+#: git.c:383
 #, c-format
 msgid "recursive alias: %s"
 msgstr "递归的别名:%s"
 
-#: git.c:460
+#: git.c:465
 msgid "write failure on standard output"
 msgstr "在标准输出写入失败"
 
-#: git.c:462
+#: git.c:467
 msgid "unknown write failure on standard output"
 msgstr "到标准输出的未知写入错误"
 
-#: git.c:464
+#: git.c:469
 msgid "close failed on standard output"
 msgstr "标准输出关闭失败"
 
-#: git.c:793
+#: git.c:819
 #, c-format
 msgid "alias loop detected: expansion of '%s' does not terminate:%s"
 msgstr "检测到别名循环:'%s'的扩展未终止:%s"
 
-#: git.c:843
+#: git.c:869
 #, c-format
 msgid "cannot handle %s as a builtin"
 msgstr "不能作为内置命令处理 %s"
 
-#: git.c:856
+#: git.c:882
 #, c-format
 msgid ""
 "usage: %s\n"
@@ -20739,53 +22767,53 @@ msgstr ""
 "用法:%s\n"
 "\n"
 
-#: git.c:876
+#: git.c:902
 #, c-format
 msgid "expansion of alias '%s' failed; '%s' is not a git command\n"
 msgstr "展开别名命令 '%s' 失败,'%s' 不是一个 git 命令\n"
 
-#: git.c:888
+#: git.c:914
 #, c-format
 msgid "failed to run command '%s': %s\n"
 msgstr "运行命令 '%s' 失败:%s\n"
 
-#: http.c:378
+#: http.c:399
 #, c-format
 msgid "negative value for http.postbuffer; defaulting to %d"
 msgstr "http.postbuffer 为负值,默认为 %d"
 
-#: http.c:399
+#: http.c:420
 msgid "Delegation control is not supported with cURL < 7.22.0"
 msgstr "不支持委托控制,因为 cURL < 7.22.0"
 
-#: http.c:408
+#: http.c:429
 msgid "Public key pinning not supported with cURL < 7.44.0"
 msgstr "不支持公钥文件锁定,因为 cURL < 7.44.0"
 
-#: http.c:876
+#: http.c:910
 msgid "CURLSSLOPT_NO_REVOKE not supported with cURL < 7.44.0"
 msgstr "不支持 CURLSSLOPT_NO_REVOKE,因为 cURL < 7.44.0"
 
-#: http.c:949
+#: http.c:989
 msgid "Protocol restrictions not supported with cURL < 7.19.4"
 msgstr "不支持协议限制,因为 cURL < 7.19.4"
 
-#: http.c:1085
+#: http.c:1132
 #, c-format
 msgid "Unsupported SSL backend '%s'. Supported SSL backends:"
 msgstr "不支持的 SSL 后端 '%s'。支持的 SSL 后端:"
 
-#: http.c:1092
+#: http.c:1139
 #, c-format
 msgid "Could not set SSL backend to '%s': cURL was built without SSL backends"
 msgstr "无法设置 SSL 后端为 '%s':cURL: cURL 没有使用 SSL 后端构建"
 
-#: http.c:1096
+#: http.c:1143
 #, c-format
 msgid "Could not set SSL backend to '%s': already set"
 msgstr "无法将 SSL 后端设置为 '%s':已经设置"
 
-#: http.c:1965
+#: http.c:2025
 #, c-format
 msgid ""
 "unable to update url base from redirection:\n"
@@ -20796,152 +22824,192 @@ msgstr ""
 "     请求:%s\n"
 "   重定向:%s"
 
-#: remote-curl.c:157
+#: remote-curl.c:174
 #, c-format
 msgid "invalid quoting in push-option value: '%s'"
 msgstr "在 push-option 取值中无效的引号:'%s'"
 
-#: remote-curl.c:254
+#: remote-curl.c:298
 #, c-format
 msgid "%sinfo/refs not valid: is this a git repository?"
-msgstr "%sinfo/refs 无效:这是一个 git 仓库么?"
+msgstr "%sinfo/refs 无效:这是 git 仓库么?"
 
-#: remote-curl.c:355
+#: remote-curl.c:399
 msgid "invalid server response; expected service, got flush packet"
 msgstr "无效的服务端响应。预期服务,得到 flush 包"
 
-#: remote-curl.c:386
+#: remote-curl.c:430
 #, c-format
 msgid "invalid server response; got '%s'"
 msgstr "无效的服务端响应,得到 '%s'"
 
-#: remote-curl.c:446
+#: remote-curl.c:490
 #, c-format
 msgid "repository '%s' not found"
 msgstr "仓库 '%s' 未找到"
 
-#: remote-curl.c:450
+#: remote-curl.c:494
 #, c-format
 msgid "Authentication failed for '%s'"
 msgstr "'%s' 鉴权失败"
 
-#: remote-curl.c:454
+#: remote-curl.c:498
 #, c-format
 msgid "unable to access '%s': %s"
 msgstr "无法访问 '%s':%s"
 
-#: remote-curl.c:460
+#: remote-curl.c:504
 #, c-format
 msgid "redirecting to %s"
 msgstr "重定向到 %s"
 
-#: remote-curl.c:584
+#: remote-curl.c:633
 msgid "shouldn't have EOF when not gentle on EOF"
 msgstr "当没有设置温和处理文件结束符(EOF)时,不应该有文件结束符"
 
-#: remote-curl.c:664
+#: remote-curl.c:645
+msgid "remote server sent stateless separator"
+msgstr "远程服务器发送了无状态分隔符"
+
+#: remote-curl.c:715
 msgid "unable to rewind rpc post data - try increasing http.postBuffer"
 msgstr "无法倒回 rpc post 数据 - 尝试增加 http.postBuffer"
 
-#: remote-curl.c:724
+#: remote-curl.c:745
+#, c-format
+msgid "remote-curl: bad line length character: %.4s"
+msgstr "remote-curl:错误的行宽字符:%.4s"
+
+#: remote-curl.c:747
+msgid "remote-curl: unexpected response end packet"
+msgstr "remote-curl:意外响应结束包"
+
+#: remote-curl.c:823
 #, c-format
 msgid "RPC failed; %s"
 msgstr "RPC 失败。%s"
 
-#: remote-curl.c:764
+#: remote-curl.c:863
 msgid "cannot handle pushes this big"
 msgstr "不能处理这么大的推送"
 
-#: remote-curl.c:879
+#: remote-curl.c:978
 #, c-format
 msgid "cannot deflate request; zlib deflate error %d"
 msgstr "不能压缩请求,zlib 压缩错误 %d"
 
-#: remote-curl.c:883
+#: remote-curl.c:982
 #, c-format
 msgid "cannot deflate request; zlib end error %d"
 msgstr "不能压缩请求,zlib 结束错误 %d"
 
-#: remote-curl.c:1014
+#: remote-curl.c:1032
+#, c-format
+msgid "%d bytes of length header were received"
+msgstr "收到了 %d 字节长度的头信息"
+
+#: remote-curl.c:1034
+#, c-format
+msgid "%d bytes of body are still expected"
+msgstr "预期仍然需要 %d 个字节的正文"
+
+#: remote-curl.c:1123
 msgid "dumb http transport does not support shallow capabilities"
 msgstr "哑 http 传输不支持 shalllow 能力"
 
-#: remote-curl.c:1028
+#: remote-curl.c:1138
 msgid "fetch failed."
 msgstr "获取失败。"
 
-#: remote-curl.c:1076
+#: remote-curl.c:1184
 msgid "cannot fetch by sha1 over smart http"
 msgstr "无法通过智能 HTTP 获取 sha1"
 
-#: remote-curl.c:1120 remote-curl.c:1126
+#: remote-curl.c:1228 remote-curl.c:1234
 #, c-format
 msgid "protocol error: expected sha/ref, got '%s'"
 msgstr "协议错误:期望 sha/ref,却得到 '%s'"
 
-#: remote-curl.c:1138 remote-curl.c:1252
+#: remote-curl.c:1246 remote-curl.c:1361
 #, c-format
 msgid "http transport does not support %s"
 msgstr "http 传输协议不支持 %s"
 
-#: remote-curl.c:1174
+#: remote-curl.c:1282
 msgid "git-http-push failed"
 msgstr "git-http-push 失败"
 
-#: remote-curl.c:1360
+#: remote-curl.c:1467
 msgid "remote-curl: usage: git remote-curl <remote> [<url>]"
 msgstr "remote-curl:用法:git remote-curl <远程> [<url>]"
 
-#: remote-curl.c:1392
+#: remote-curl.c:1499
 msgid "remote-curl: error reading command stream from git"
 msgstr "remote-curl:错误读取来自 git 的命令流"
 
-#: remote-curl.c:1399
+#: remote-curl.c:1506
 msgid "remote-curl: fetch attempted without a local repo"
 msgstr "remote-curl:尝试没有本地仓库下获取"
 
-#: remote-curl.c:1439
+#: remote-curl.c:1547
 #, c-format
 msgid "remote-curl: unknown command '%s' from git"
 msgstr "remote-curl:未知的来自 git 的命令 '%s'"
 
-#: list-objects-filter-options.h:61
+#: compat/compiler.h:26
+msgid "no compiler information available\n"
+msgstr "编译器信息不可用\n"
+
+#: compat/compiler.h:38
+msgid "no libc information available\n"
+msgstr "libc 信息不可用\n"
+
+#: list-objects-filter-options.h:91
 msgid "args"
 msgstr "参数"
 
-#: list-objects-filter-options.h:62
+#: list-objects-filter-options.h:92
 msgid "object filtering"
 msgstr "对象过滤"
 
-#: parse-options.h:170
+#: parse-options.h:183
 msgid "expiry-date"
 msgstr "到期时间"
 
-#: parse-options.h:184
+#: parse-options.h:197
 msgid "no-op (backward compatibility)"
 msgstr "空操作(向后兼容)"
 
-#: parse-options.h:305
+#: parse-options.h:309
 msgid "be more verbose"
 msgstr "更加详细"
 
-#: parse-options.h:307
+#: parse-options.h:311
 msgid "be more quiet"
 msgstr "更加安静"
 
-#: parse-options.h:313
-msgid "use <n> digits to display SHA-1s"
-msgstr "用 <n> 位数字显示 SHA-1 哈希值"
+#: parse-options.h:317
+msgid "use <n> digits to display object names"
+msgstr "用 <n> 位数字显示对象名"
 
-#: parse-options.h:332
+#: parse-options.h:336
 msgid "how to strip spaces and #comments from message"
 msgstr "设置如何删除提交说明里的空格和#注释"
 
-#: ref-filter.h:101
+#: parse-options.h:337
+msgid "read pathspec from file"
+msgstr "从文件读取路径表达式"
+
+#: parse-options.h:338
+msgid ""
+"with --pathspec-from-file, pathspec elements are separated with NUL character"
+msgstr "使用 --pathspec-from-file,路径表达式用空字符分隔"
+
+#: ref-filter.h:96
 msgid "key"
 msgstr "key"
 
-#: ref-filter.h:101
+#: ref-filter.h:96
 msgid "field name to sort on"
 msgstr "排序的字段名"
 
@@ -20949,11 +23017,11 @@ msgstr "排序的字段名"
 msgid "update the index with reused conflict resolution if possible"
 msgstr "如果可能,重用冲突解决更新索引"
 
-#: wt-status.h:67
+#: wt-status.h:80
 msgid "HEAD detached at "
 msgstr "头指针分离于 "
 
-#: wt-status.h:68
+#: wt-status.h:81
 msgid "HEAD detached from "
 msgstr "头指针分离自 "
 
@@ -20994,669 +23062,685 @@ msgid "List, create, or delete branches"
 msgstr "列出、创建或删除分支"
 
 #: command-list.h:59
+msgid "Collect information for user to file a bug report"
+msgstr "收集信息以供用户提交错误报告"
+
+#: command-list.h:60
 msgid "Move objects and refs by archive"
 msgstr "通过归档移动对象和引用"
 
-#: command-list.h:60
+#: command-list.h:61
 msgid "Provide content or type and size information for repository objects"
 msgstr "提供仓库对象的内容、类型或大小"
 
-#: command-list.h:61
+#: command-list.h:62
 msgid "Display gitattributes information"
 msgstr "显示 gitattributes 信息"
 
-#: command-list.h:62
+#: command-list.h:63
 msgid "Debug gitignore / exclude files"
 msgstr "调试 gitignore / exclude 文件"
 
-#: command-list.h:63
+#: command-list.h:64
 msgid "Show canonical names and email addresses of contacts"
 msgstr "显示联系人的规范名称和电子邮件"
 
-#: command-list.h:64
+#: command-list.h:65
 msgid "Switch branches or restore working tree files"
 msgstr "切换分支或恢复工作区文件"
 
-#: command-list.h:65
+#: command-list.h:66
 msgid "Copy files from the index to the working tree"
 msgstr "从索引拷贝文件到工作区"
 
-#: command-list.h:66
+#: command-list.h:67
 msgid "Ensures that a reference name is well formed"
 msgstr "确保引用名称格式正确"
 
-#: command-list.h:67
+#: command-list.h:68
 msgid "Find commits yet to be applied to upstream"
 msgstr "查找尚未应用到上游的提交"
 
-#: command-list.h:68
+#: command-list.h:69
 msgid "Apply the changes introduced by some existing commits"
 msgstr "应用一些现存提交引入的修改"
 
-#: command-list.h:69
+#: command-list.h:70
 msgid "Graphical alternative to git-commit"
 msgstr "git-commit 的图形替代界面"
 
-#: command-list.h:70
+#: command-list.h:71
 msgid "Remove untracked files from the working tree"
 msgstr "从工作区中删除未跟踪文件"
 
-#: command-list.h:71
+#: command-list.h:72
 msgid "Clone a repository into a new directory"
 msgstr "克隆仓库到一个新目录"
 
-#: command-list.h:72
+#: command-list.h:73
 msgid "Display data in columns"
 msgstr "以列的方式显示数据"
 
-#: command-list.h:73
+#: command-list.h:74
 msgid "Record changes to the repository"
 msgstr "记录变更到仓库"
 
-#: command-list.h:74
+#: command-list.h:75
 msgid "Write and verify Git commit-graph files"
 msgstr "写入和校验 Git 提交图文件"
 
-#: command-list.h:75
+#: command-list.h:76
 msgid "Create a new commit object"
 msgstr "创建一个新的提交对象"
 
-#: command-list.h:76
+#: command-list.h:77
 msgid "Get and set repository or global options"
 msgstr "获取和设置仓库或者全局选项"
 
-#: command-list.h:77
+#: command-list.h:78
 msgid "Count unpacked number of objects and their disk consumption"
 msgstr "计算未打包对象的数量和磁盘空间占用"
 
-#: command-list.h:78
+#: command-list.h:79
 msgid "Retrieve and store user credentials"
 msgstr "检索和存储用户密码"
 
-#: command-list.h:79
+#: command-list.h:80
 msgid "Helper to temporarily store passwords in memory"
 msgstr "在内存中临时存储密码的助手"
 
-#: command-list.h:80
+#: command-list.h:81
 msgid "Helper to store credentials on disk"
 msgstr "在磁盘存储密码的助手"
 
-#: command-list.h:81
+#: command-list.h:82
 msgid "Export a single commit to a CVS checkout"
 msgstr "将一个提交导出到 CVS 检出中"
 
-#: command-list.h:82
+#: command-list.h:83
 msgid "Salvage your data out of another SCM people love to hate"
 msgstr "从另外一个人们爱恨的配置管理系统中拯救你的数据"
 
-#: command-list.h:83
+#: command-list.h:84
 msgid "A CVS server emulator for Git"
 msgstr "Git 的一个 CVS 服务模拟器"
 
-#: command-list.h:84
+#: command-list.h:85
 msgid "A really simple server for Git repositories"
 msgstr "一个非常简单的 Git 仓库服务器"
 
-#: command-list.h:85
+#: command-list.h:86
 msgid "Give an object a human readable name based on an available ref"
 msgstr "基于一个现存的引用为一个对象起一个可读的名称"
 
-#: command-list.h:86
+#: command-list.h:87
 msgid "Show changes between commits, commit and working tree, etc"
 msgstr "显示提交之间、提交和工作区之间等的差异"
 
-#: command-list.h:87
+#: command-list.h:88
 msgid "Compares files in the working tree and the index"
 msgstr "比较工作区和索引区中的文件"
 
-#: command-list.h:88
+#: command-list.h:89
 msgid "Compare a tree to the working tree or index"
 msgstr "将一个树和工作区或索引做比较"
 
-#: command-list.h:89
+#: command-list.h:90
 msgid "Compares the content and mode of blobs found via two tree objects"
 msgstr "比较两个树对象的文件内容和模式"
 
-#: command-list.h:90
+#: command-list.h:91
 msgid "Show changes using common diff tools"
 msgstr "使用常见的差异工具显示更改"
 
-#: command-list.h:91
+#: command-list.h:92
 msgid "Git data exporter"
 msgstr "Git 数据导出器"
 
-#: command-list.h:92
+#: command-list.h:93
 msgid "Backend for fast Git data importers"
 msgstr "Git 快速数据导入器后端"
 
-#: command-list.h:93
+#: command-list.h:94
 msgid "Download objects and refs from another repository"
 msgstr "从另外一个仓库下载对象和引用"
 
-#: command-list.h:94
+#: command-list.h:95
 msgid "Receive missing objects from another repository"
 msgstr "从另一个仓库获取缺失的对象"
 
-#: command-list.h:95
+#: command-list.h:96
 msgid "Rewrite branches"
 msgstr "重写分支"
 
-#: command-list.h:96
+#: command-list.h:97
 msgid "Produce a merge commit message"
 msgstr "生成一个合并提交信息"
 
-#: command-list.h:97
+#: command-list.h:98
 msgid "Output information on each ref"
 msgstr "对每一个引用输出信息 "
 
-#: command-list.h:98
+#: command-list.h:99
 msgid "Prepare patches for e-mail submission"
 msgstr "准备电子邮件提交的补丁"
 
-#: command-list.h:99
+#: command-list.h:100
 msgid "Verifies the connectivity and validity of the objects in the database"
 msgstr "验证仓库中对象的连通性和有效性"
 
-#: command-list.h:100
+#: command-list.h:101
 msgid "Cleanup unnecessary files and optimize the local repository"
 msgstr "清除不必要的文件和优化本地仓库"
 
-#: command-list.h:101
+#: command-list.h:102
 msgid "Extract commit ID from an archive created using git-archive"
 msgstr "从 git-archive 创建的归档文件中提取提交 ID"
 
-#: command-list.h:102
+#: command-list.h:103
 msgid "Print lines matching a pattern"
 msgstr "输出和模式匹配的行"
 
-#: command-list.h:103
+#: command-list.h:104
 msgid "A portable graphical interface to Git"
 msgstr "一个便携的 Git 图形客户端"
 
-#: command-list.h:104
+#: command-list.h:105
 msgid "Compute object ID and optionally creates a blob from a file"
 msgstr "从一个文件计算对象 ID,并可以创建 blob 数据对象"
 
-#: command-list.h:105
+#: command-list.h:106
 msgid "Display help information about Git"
 msgstr "显示 Git 的帮助信息"
 
-#: command-list.h:106
+#: command-list.h:107
 msgid "Server side implementation of Git over HTTP"
 msgstr "Git HTTP 协议的服务端实现"
 
-#: command-list.h:107
+#: command-list.h:108
 msgid "Download from a remote Git repository via HTTP"
 msgstr "通过 HTTP 从远程 Git 仓库下载"
 
-#: command-list.h:108
+#: command-list.h:109
 msgid "Push objects over HTTP/DAV to another repository"
 msgstr "通过 HTTP/DAV 推送对象另一个仓库"
 
-#: command-list.h:109
+#: command-list.h:110
 msgid "Send a collection of patches from stdin to an IMAP folder"
 msgstr "从标准输入将一组补丁发送到IMAP文件夹"
 
-#: command-list.h:110
+#: command-list.h:111
 msgid "Build pack index file for an existing packed archive"
 msgstr "从一个现存的包存档文件创建包索引"
 
-#: command-list.h:111
+#: command-list.h:112
 msgid "Create an empty Git repository or reinitialize an existing one"
 msgstr "创建一个空的 Git 仓库或重新初始化一个已存在的仓库"
 
-#: command-list.h:112
+#: command-list.h:113
 msgid "Instantly browse your working repository in gitweb"
 msgstr "在 gitweb 中即时浏览您的工作仓库"
 
-#: command-list.h:113
+#: command-list.h:114
 msgid "Add or parse structured information in commit messages"
 msgstr "添加或解析提交说明中的结构化信息"
 
-#: command-list.h:114
+#: command-list.h:115
 msgid "The Git repository browser"
 msgstr "Git 仓库浏览器"
 
-#: command-list.h:115
+#: command-list.h:116
 msgid "Show commit logs"
 msgstr "显示提交日志"
 
-#: command-list.h:116
+#: command-list.h:117
 msgid "Show information about files in the index and the working tree"
 msgstr "显示索引和工作区中文件的信息"
 
-#: command-list.h:117
+#: command-list.h:118
 msgid "List references in a remote repository"
 msgstr "显示一个远程仓库的引用"
 
-#: command-list.h:118
+#: command-list.h:119
 msgid "List the contents of a tree object"
 msgstr "显示一个树对象的内容"
 
-#: command-list.h:119
+#: command-list.h:120
 msgid "Extracts patch and authorship from a single e-mail message"
 msgstr "从单个电子邮件中提取补丁和作者身份"
 
-#: command-list.h:120
+#: command-list.h:121
 msgid "Simple UNIX mbox splitter program"
 msgstr "简单的 UNIX mbox 邮箱切分程序"
 
-#: command-list.h:121
+#: command-list.h:122
+msgid "Run tasks to optimize Git repository data"
+msgstr "运行任务以优化仓库数据"
+
+#: command-list.h:123
 msgid "Join two or more development histories together"
 msgstr "合并两个或更多开发历史"
 
-#: command-list.h:122
+#: command-list.h:124
 msgid "Find as good common ancestors as possible for a merge"
 msgstr "为了合并查找尽可能好的公共祖先提交"
 
-#: command-list.h:123
+#: command-list.h:125
 msgid "Run a three-way file merge"
 msgstr "运行一个三路文件合并"
 
-#: command-list.h:124
+#: command-list.h:126
 msgid "Run a merge for files needing merging"
 msgstr "对于需要合并的文件执行合并"
 
-#: command-list.h:125
+#: command-list.h:127
 msgid "The standard helper program to use with git-merge-index"
 msgstr "与 git-merge-index 一起使用的标准向导程序"
 
-#: command-list.h:126
+#: command-list.h:128
 msgid "Run merge conflict resolution tools to resolve merge conflicts"
 msgstr "运行合并冲突解决工具以解决合并冲突"
 
-#: command-list.h:127
+#: command-list.h:129
 msgid "Show three-way merge without touching index"
 msgstr "显示三路合并而不动索引"
 
-#: command-list.h:128
+#: command-list.h:130
 msgid "Write and verify multi-pack-indexes"
 msgstr "写入和校验多包索引"
 
-#: command-list.h:129
+#: command-list.h:131
 msgid "Creates a tag object"
 msgstr "创建一个标签对象"
 
-#: command-list.h:130
+#: command-list.h:132
 msgid "Build a tree-object from ls-tree formatted text"
 msgstr "基于 ls-tree 的格式化文本创建一个树对象"
 
-#: command-list.h:131
+#: command-list.h:133
 msgid "Move or rename a file, a directory, or a symlink"
 msgstr "移动或重命名一个文件、目录或符号链接"
 
 # 查找给定版本的符号名称
-#: command-list.h:132
+#: command-list.h:134
 msgid "Find symbolic names for given revs"
 msgstr "查找给定版本的符号名称"
 
-#: command-list.h:133
+#: command-list.h:135
 msgid "Add or inspect object notes"
 msgstr "添加或检查对象注释"
 
-#: command-list.h:134
+#: command-list.h:136
 msgid "Import from and submit to Perforce repositories"
 msgstr "导入和提交到 Perforce 仓库中"
 
-#: command-list.h:135
+#: command-list.h:137
 msgid "Create a packed archive of objects"
 msgstr "创建对象的存档包"
 
-#: command-list.h:136
+#: command-list.h:138
 msgid "Find redundant pack files"
 msgstr "查找冗余的包文件"
 
-#: command-list.h:137
+#: command-list.h:139
 msgid "Pack heads and tags for efficient repository access"
 msgstr "打包头和标签以实现高效的仓库访问"
 
-#: command-list.h:138
+#: command-list.h:140
 msgid "Routines to help parsing remote repository access parameters"
 msgstr "帮助解析远程仓库访问参数的例程"
 
-#: command-list.h:139
+#: command-list.h:141
 msgid "Compute unique ID for a patch"
 msgstr "计算一个补丁的唯一 ID"
 
-#: command-list.h:140
+#: command-list.h:142
 msgid "Prune all unreachable objects from the object database"
 msgstr "删除对象库中所有不可达对象"
 
-#: command-list.h:141
+#: command-list.h:143
 msgid "Remove extra objects that are already in pack files"
 msgstr "删除已经在包文件中的多余对象"
 
-#: command-list.h:142
+#: command-list.h:144
 msgid "Fetch from and integrate with another repository or a local branch"
 msgstr "获取并整合另外的仓库或一个本地分支"
 
-#: command-list.h:143
+#: command-list.h:145
 msgid "Update remote refs along with associated objects"
 msgstr "更新远程引用和相关的对象"
 
-#: command-list.h:144
+#: command-list.h:146
 msgid "Applies a quilt patchset onto the current branch"
 msgstr "将一个 quilt 补丁集应用到当前分支。"
 
-#: command-list.h:145
+#: command-list.h:147
 msgid "Compare two commit ranges (e.g. two versions of a branch)"
 msgstr "比较两个提交范围(如一个分支的两个版本)"
 
-#: command-list.h:146
+#: command-list.h:148
 msgid "Reads tree information into the index"
 msgstr "将树信息读取到索引"
 
-#: command-list.h:147
+#: command-list.h:149
 msgid "Reapply commits on top of another base tip"
 msgstr "在另一个分支上重新应用提交"
 
-#: command-list.h:148
+#: command-list.h:150
 msgid "Receive what is pushed into the repository"
 msgstr "接收推送到仓库中的对象"
 
-#: command-list.h:149
+#: command-list.h:151
 msgid "Manage reflog information"
 msgstr "管理 reflog 信息"
 
-#: command-list.h:150
+#: command-list.h:152
 msgid "Manage set of tracked repositories"
 msgstr "管理已跟踪仓库"
 
-#: command-list.h:151
+#: command-list.h:153
 msgid "Pack unpacked objects in a repository"
 msgstr "打包仓库中未打包对象"
 
-#: command-list.h:152
+#: command-list.h:154
 msgid "Create, list, delete refs to replace objects"
 msgstr "创建、列出、删除对象替换引用"
 
-#: command-list.h:153
+#: command-list.h:155
 msgid "Generates a summary of pending changes"
 msgstr "生成待定更改的摘要"
 
-#: command-list.h:154
+#: command-list.h:156
 msgid "Reuse recorded resolution of conflicted merges"
 msgstr "重用冲突合并的解决方案记录"
 
-#: command-list.h:155
+#: command-list.h:157
 msgid "Reset current HEAD to the specified state"
 msgstr "重置当前 HEAD 到指定状态"
 
-#: command-list.h:156
+#: command-list.h:158
 msgid "Restore working tree files"
 msgstr "恢复工作区文件"
 
-#: command-list.h:157
+#: command-list.h:159
 msgid "Revert some existing commits"
 msgstr "回退一些现存提交"
 
-#: command-list.h:158
+#: command-list.h:160
 msgid "Lists commit objects in reverse chronological order"
 msgstr "按时间顺序列出提交对象"
 
-#: command-list.h:159
+#: command-list.h:161
 msgid "Pick out and massage parameters"
 msgstr "选出并处理参数"
 
-#: command-list.h:160
+#: command-list.h:162
 msgid "Remove files from the working tree and from the index"
 msgstr "从工作区和索引中删除文件"
 
-#: command-list.h:161
+#: command-list.h:163
 msgid "Send a collection of patches as emails"
 msgstr "通过电子邮件发送一组补丁"
 
-#: command-list.h:162
+#: command-list.h:164
 msgid "Push objects over Git protocol to another repository"
 msgstr "使用 Git 协议推送对象到另一个仓库"
 
-#: command-list.h:163
+#: command-list.h:165
 msgid "Restricted login shell for Git-only SSH access"
 msgstr "只允许 Git SSH 访问的受限登录shell"
 
-#: command-list.h:164
+#: command-list.h:166
 msgid "Summarize 'git log' output"
 msgstr "'git log' 输出摘要"
 
-#: command-list.h:165
+#: command-list.h:167
 msgid "Show various types of objects"
 msgstr "显示各种类型的对象"
 
-#: command-list.h:166
+#: command-list.h:168
 msgid "Show branches and their commits"
 msgstr "显示分支和提交"
 
-#: command-list.h:167
+#: command-list.h:169
 msgid "Show packed archive index"
 msgstr "显示打包归档索引"
 
-#: command-list.h:168
+#: command-list.h:170
 msgid "List references in a local repository"
 msgstr "显示本地仓库中的引用"
 
-#: command-list.h:169
+#: command-list.h:171
 msgid "Git's i18n setup code for shell scripts"
 msgstr "为 shell 脚本准备的 Git 国际化设置代码"
 
-#: command-list.h:170
+#: command-list.h:172
 msgid "Common Git shell script setup code"
 msgstr "常用的 Git shell 脚本设置代码"
 
-#: command-list.h:171
+#: command-list.h:173
+msgid "Initialize and modify the sparse-checkout"
+msgstr "初始化及修改稀疏检出"
+
+#: command-list.h:174
 msgid "Stash the changes in a dirty working directory away"
 msgstr "贮藏脏工作区中的修改"
 
-#: command-list.h:172
+#: command-list.h:175
 msgid "Add file contents to the staging area"
 msgstr "将文件内容添加到索引"
 
-#: command-list.h:173
+#: command-list.h:176
 msgid "Show the working tree status"
 msgstr "显示工作区状态"
 
-#: command-list.h:174
+#: command-list.h:177
 msgid "Remove unnecessary whitespace"
 msgstr "删除不必要的空白字符"
 
-#: command-list.h:175
+#: command-list.h:178
 msgid "Initialize, update or inspect submodules"
 msgstr "初始化、更新或检查子模组"
 
-#: command-list.h:176
+#: command-list.h:179
 msgid "Bidirectional operation between a Subversion repository and Git"
 msgstr "Subersion 仓库和 Git 之间的双向操作"
 
-#: command-list.h:177
+#: command-list.h:180
 msgid "Switch branches"
 msgstr "切换分支"
 
-#: command-list.h:178
+#: command-list.h:181
 msgid "Read, modify and delete symbolic refs"
 msgstr "读取、修改和删除符号引用"
 
-#: command-list.h:179
+#: command-list.h:182
 msgid "Create, list, delete or verify a tag object signed with GPG"
 msgstr "创建、列出、删除或校验一个 GPG 签名的标签对象"
 
-#: command-list.h:180
+#: command-list.h:183
 msgid "Creates a temporary file with a blob's contents"
 msgstr "用 blob 数据对象的内容创建一个临时文件"
 
-#: command-list.h:181
+#: command-list.h:184
 msgid "Unpack objects from a packed archive"
 msgstr "从打包文件中解压缩对象"
 
-#: command-list.h:182
+#: command-list.h:185
 msgid "Register file contents in the working tree to the index"
 msgstr "将工作区的文件内容注册到索引"
 
-#: command-list.h:183
+#: command-list.h:186
 msgid "Update the object name stored in a ref safely"
 msgstr "安全地更新存储于引用中的对象名称"
 
-#: command-list.h:184
+#: command-list.h:187
 msgid "Update auxiliary info file to help dumb servers"
 msgstr "更新辅助信息文件以帮助哑协议服务"
 
-#: command-list.h:185
+#: command-list.h:188
 msgid "Send archive back to git-archive"
 msgstr "将存档发送回 git-archive"
 
-#: command-list.h:186
+#: command-list.h:189
 msgid "Send objects packed back to git-fetch-pack"
 msgstr "将对象压缩包发送回 git-fetch-pack"
 
-#: command-list.h:187
+#: command-list.h:190
 msgid "Show a Git logical variable"
 msgstr "显示一个Git逻辑变量"
 
-#: command-list.h:188
+#: command-list.h:191
 msgid "Check the GPG signature of commits"
 msgstr "检查 GPG 提交签名"
 
-#: command-list.h:189
+#: command-list.h:192
 msgid "Validate packed Git archive files"
 msgstr "校验打包的Git存仓文件"
 
-#: command-list.h:190
+#: command-list.h:193
 msgid "Check the GPG signature of tags"
 msgstr "检查标签的 GPG 签名"
 
-#: command-list.h:191
+#: command-list.h:194
 msgid "Git web interface (web frontend to Git repositories)"
 msgstr "Git web 界面(Git 仓库的 web 前端)"
 
-#: command-list.h:192
+#: command-list.h:195
 msgid "Show logs with difference each commit introduces"
 msgstr "显示每一个提交引入的差异日志"
 
-#: command-list.h:193
+#: command-list.h:196
 msgid "Manage multiple working trees"
 msgstr "管理多个工作区"
 
-#: command-list.h:194
+#: command-list.h:197
 msgid "Create a tree object from the current index"
 msgstr "从当前索引创建一个树对象"
 
-#: command-list.h:195
+#: command-list.h:198
 msgid "Defining attributes per path"
 msgstr "定义路径的属性"
 
-#: command-list.h:196
+#: command-list.h:199
 msgid "Git command-line interface and conventions"
 msgstr "Git 命令行界面和约定"
 
-#: command-list.h:197
+#: command-list.h:200
 msgid "A Git core tutorial for developers"
 msgstr "面向开发人员的 Git 核心教程"
 
-#: command-list.h:198
+#: command-list.h:201
+msgid "Providing usernames and passwords to Git"
+msgstr "为 Git 提供用户名和口令"
+
+#: command-list.h:202
 msgid "Git for CVS users"
 msgstr "适合 CVS 用户的 Git 帮助"
 
-#: command-list.h:199
+#: command-list.h:203
 msgid "Tweaking diff output"
 msgstr "调整差异输出"
 
-#: command-list.h:200
+#: command-list.h:204
 msgid "A useful minimum set of commands for Everyday Git"
 msgstr "每一天 Git 的一组有用的最小命令集合"
 
-#: command-list.h:201
+#: command-list.h:205
+msgid "Frequently asked questions about using Git"
+msgstr "关于使用 Git 的常见问题"
+
+#: command-list.h:206
 msgid "A Git Glossary"
 msgstr "Git 词汇表"
 
-#: command-list.h:202
+#: command-list.h:207
 msgid "Hooks used by Git"
 msgstr "Git 使用的钩子"
 
-#: command-list.h:203
+#: command-list.h:208
 msgid "Specifies intentionally untracked files to ignore"
 msgstr "忽略指定的未跟踪文件"
 
-#: command-list.h:204
+#: command-list.h:209
 msgid "Defining submodule properties"
 msgstr "定义子模组属性"
 
-#: command-list.h:205
+#: command-list.h:210
 msgid "Git namespaces"
 msgstr "Git 名字空间"
 
-#: command-list.h:206
+#: command-list.h:211
+msgid "Helper programs to interact with remote repositories"
+msgstr "与远程仓库交互的助手程序"
+
+#: command-list.h:212
 msgid "Git Repository Layout"
 msgstr "Git 仓库布局"
 
-#: command-list.h:207
+#: command-list.h:213
 msgid "Specifying revisions and ranges for Git"
 msgstr "指定 Git 的版本和版本范围"
 
-#: command-list.h:208
+#: command-list.h:214
+msgid "Mounting one repository inside another"
+msgstr "将一个仓库安装到另外一个仓库中"
+
+#: command-list.h:215
 msgid "A tutorial introduction to Git: part two"
 msgstr "一个 Git 教程:第二部分"
 
-#: command-list.h:209
+#: command-list.h:216
 msgid "A tutorial introduction to Git"
 msgstr "一个 Git 教程"
 
-#: command-list.h:210
+#: command-list.h:217
 msgid "An overview of recommended workflows with Git"
 msgstr "Git 推荐的工作流概览"
 
-#: git-bisect.sh:54
-msgid "You need to start by \"git bisect start\""
-msgstr "您需要执行 \"git bisect start\" 来开始"
-
-#  译者:注意保持句尾空格
-#. TRANSLATORS: Make sure to include [Y] and [n] in your
-#. translation. The program will only accept English input
-#. at this point.
-#: git-bisect.sh:60
-msgid "Do you want me to do it for you [Y/n]? "
-msgstr "您想让我为您这样做么[Y/n]? "
-
-#: git-bisect.sh:101
+#: git-bisect.sh:79
 #, sh-format
 msgid "Bad rev input: $arg"
 msgstr "坏的输入版本:$arg"
 
-#: git-bisect.sh:121
+#: git-bisect.sh:99
 #, sh-format
 msgid "Bad rev input: $bisected_head"
 msgstr "坏的输入版本:$bisected_head"
 
-#: git-bisect.sh:130
+#: git-bisect.sh:108
 #, sh-format
 msgid "Bad rev input: $rev"
 msgstr "坏的输入版本:$rev"
 
-#: git-bisect.sh:139
+#: git-bisect.sh:117
 #, sh-format
 msgid "'git bisect $TERM_BAD' can take only one argument."
 msgstr "'git bisect $TERM_BAD' 只能带一个参数。"
 
-#: git-bisect.sh:209
+#: git-bisect.sh:149
 msgid "No logfile given"
 msgstr "未提供日志文件"
 
-#: git-bisect.sh:210
+#: git-bisect.sh:150
 #, sh-format
 msgid "cannot read $file for replaying"
 msgstr "不能读取 $file 来重放"
 
-#: git-bisect.sh:232
+#: git-bisect.sh:173
 msgid "?? what are you talking about?"
 msgstr "?? 您在说什么?"
 
-#: git-bisect.sh:241
+#: git-bisect.sh:183
 msgid "bisect run failed: no command provided."
 msgstr "二分查找运行失败:没有提供命令。"
 
-#: git-bisect.sh:246
+#: git-bisect.sh:188
 #, sh-format
 msgid "running $command"
 msgstr "运行 $command"
 
-#: git-bisect.sh:253
+#: git-bisect.sh:195
 #, sh-format
 msgid ""
 "bisect run failed:\n"
@@ -21665,11 +23749,11 @@ msgstr ""
 "二分查找运行失败:\n"
 "命令 '$command' 的退出码 $res 小于 0 或大于等于 128"
 
-#: git-bisect.sh:279
+#: git-bisect.sh:221
 msgid "bisect run cannot continue any more"
 msgstr "二分查找不能继续运行"
 
-#: git-bisect.sh:285
+#: git-bisect.sh:227
 #, sh-format
 msgid ""
 "bisect run failed:\n"
@@ -21678,11 +23762,11 @@ msgstr ""
 "二分查找运行失败:\n"
 "'bisect_state $state' 退出码为 $res"
 
-#: git-bisect.sh:292
+#: git-bisect.sh:234
 msgid "bisect run success"
 msgstr "二分查找运行成功"
 
-#: git-bisect.sh:300
+#: git-bisect.sh:242
 msgid "We are not bisecting."
 msgstr "我们没有在二分查找。"
 
@@ -21724,139 +23808,46 @@ msgstr "尝试和 $pretty_name 的简单合并"
 msgid "Simple merge did not work, trying automatic merge."
 msgstr "简单合并未生效,尝试自动合并。"
 
-#: git-legacy-stash.sh:220
-msgid "Cannot remove temporary index (can't happen)"
-msgstr "无法删除临时索引(不应发生)"
-
-#: git-legacy-stash.sh:271
-#, sh-format
-msgid "Cannot update $ref_stash with $w_commit"
-msgstr "无法用 $w_commit 更新 $ref_stash"
-
-#: git-legacy-stash.sh:323
-#, sh-format
-msgid "error: unknown option for 'stash push': $option"
-msgstr "错误:'stash push' 的未知选项:$option"
-
-#: git-legacy-stash.sh:355
-#, sh-format
-msgid "Saved working directory and index state $stash_msg"
-msgstr "保存工作目录和索引状态 $stash_msg"
-
-#: git-legacy-stash.sh:535
-#, sh-format
-msgid "unknown option: $opt"
-msgstr "未知选项: $opt"
-
-#: git-legacy-stash.sh:555
-#, sh-format
-msgid "Too many revisions specified: $REV"
-msgstr "指定了太多的版本:$REV"
-
-#: git-legacy-stash.sh:570
-#, sh-format
-msgid "$reference is not a valid reference"
-msgstr "$reference 不是一个有效的引用"
-
-#: git-legacy-stash.sh:598
-#, sh-format
-msgid "'$args' is not a stash-like commit"
-msgstr "'$args' 不是贮藏式提交"
-
-#: git-legacy-stash.sh:609
-#, sh-format
-msgid "'$args' is not a stash reference"
-msgstr "'$args' 不是一个贮藏引用"
-
-#: git-legacy-stash.sh:617
-msgid "unable to refresh index"
-msgstr "无法刷新索引"
-
-#: git-legacy-stash.sh:621
-msgid "Cannot apply a stash in the middle of a merge"
-msgstr "无法在合并过程应用贮藏"
-
-#: git-legacy-stash.sh:629
-msgid "Conflicts in index. Try without --index."
-msgstr "索引中有冲突。尝试不使用 --index。"
-
-#: git-legacy-stash.sh:631
-msgid "Could not save index tree"
-msgstr "不能保存索引树"
-
-#: git-legacy-stash.sh:640
-msgid "Could not restore untracked files from stash entry"
-msgstr "无法从贮藏条目中恢复未跟踪文件"
-
-#: git-legacy-stash.sh:665
-msgid "Cannot unstage modified files"
-msgstr "无法将修改的文件取消暂存"
-
-#: git-legacy-stash.sh:703
-#, sh-format
-msgid "Dropped ${REV} ($s)"
-msgstr "丢弃了 ${REV} ($s)"
-
-#: git-legacy-stash.sh:704
-#, sh-format
-msgid "${REV}: Could not drop stash entry"
-msgstr "${REV}:无法丢弃贮藏条目"
-
-#: git-legacy-stash.sh:791
-msgid "(To restore them type \"git stash apply\")"
-msgstr "(为恢复数据输入 \"git stash apply\")"
-
-#: git-submodule.sh:200
+#: git-submodule.sh:180
 msgid "Relative path can only be used from the toplevel of the working tree"
 msgstr "只能在工作区的顶级目录中使用相对路径"
 
-#: git-submodule.sh:210
+#: git-submodule.sh:190
 #, sh-format
 msgid "repo URL: '$repo' must be absolute or begin with ./|../"
 msgstr "仓库 URL:'$repo' 必须是绝对路径或以 ./|../ 起始"
 
-#: git-submodule.sh:229
+#: git-submodule.sh:209
 #, sh-format
 msgid "'$sm_path' already exists in the index"
 msgstr "'$sm_path' 已经存在于索引中"
 
-#: git-submodule.sh:232
+#: git-submodule.sh:212
 #, sh-format
 msgid "'$sm_path' already exists in the index and is not a submodule"
 msgstr "'$sm_path' 已经存在于索引中且不是一个子模组"
 
-#: git-submodule.sh:239
+#: git-submodule.sh:219
 #, sh-format
 msgid "'$sm_path' does not have a commit checked out"
 msgstr "'$sm_path' 没有检出的提交"
 
-#: git-submodule.sh:245
-#, sh-format
-msgid ""
-"The following path is ignored by one of your .gitignore files:\n"
-"$sm_path\n"
-"Use -f if you really want to add it."
-msgstr ""
-"以下路径被您的一个 .gitignore 文件所忽略:\n"
-"$sm_path\n"
-"如果您确实想添加它,使用 -f 参数。"
-
-#: git-submodule.sh:268
+#: git-submodule.sh:250
 #, sh-format
 msgid "Adding existing repo at '$sm_path' to the index"
 msgstr "添加位于 '$sm_path' 的现存仓库到索引"
 
-#: git-submodule.sh:270
+#: git-submodule.sh:252
 #, sh-format
 msgid "'$sm_path' already exists and is not a valid git repo"
 msgstr "'$sm_path' 已存在且不是一个有效的 git 仓库"
 
-#: git-submodule.sh:278
+#: git-submodule.sh:260
 #, sh-format
 msgid "A git directory for '$sm_name' is found locally with remote(s):"
 msgstr "本地发现 '$sm_name' 的一个 git 目录,与其对应的远程仓库:"
 
-#: git-submodule.sh:280
+#: git-submodule.sh:262
 #, sh-format
 msgid ""
 "If you want to reuse this local git directory instead of cloning again from\n"
@@ -21871,51 +23862,51 @@ msgstr ""
 "使用 '--force' 选项。如果本地 git 目录不是正确的仓库\n"
 "或者您不确定这里的含义,使用 '--name' 选项选择另外的名称。"
 
-#: git-submodule.sh:286
+#: git-submodule.sh:268
 #, sh-format
 msgid "Reactivating local git directory for submodule '$sm_name'."
 msgstr "激活本地 git 目录到子模组 '$sm_name'。"
 
-#: git-submodule.sh:298
+#: git-submodule.sh:280
 #, sh-format
 msgid "Unable to checkout submodule '$sm_path'"
 msgstr "不能检出子模组 '$sm_path'"
 
-#: git-submodule.sh:303
+#: git-submodule.sh:285
 #, sh-format
 msgid "Failed to add submodule '$sm_path'"
 msgstr "无法添加子模组 '$sm_path'"
 
-#: git-submodule.sh:312
+#: git-submodule.sh:294
 #, sh-format
 msgid "Failed to register submodule '$sm_path'"
 msgstr "无法注册子模组 '$sm_path'"
 
-#: git-submodule.sh:573
+#: git-submodule.sh:567
 #, sh-format
 msgid "Unable to find current revision in submodule path '$displaypath'"
 msgstr "无法在子模组路径 '$displaypath' 中找到当前版本"
 
-#: git-submodule.sh:583
+#: git-submodule.sh:577
 #, sh-format
 msgid "Unable to fetch in submodule path '$sm_path'"
 msgstr "无法在子模组路径 '$sm_path' 中获取"
 
-#: git-submodule.sh:588
+#: git-submodule.sh:582
 #, sh-format
 msgid ""
 "Unable to find current ${remote_name}/${branch} revision in submodule path "
 "'$sm_path'"
 msgstr "无法在子模组路径 '$sm_path' 中找到当前版本 ${remote_name}/${branch}"
 
-#: git-submodule.sh:606
+#: git-submodule.sh:600
 #, sh-format
 msgid ""
 "Unable to fetch in submodule path '$displaypath'; trying to directly fetch "
 "$sha1:"
 msgstr "无法在子模组路径 '$displaypath' 中获取,尝试直接获取 $sha1:"
 
-#: git-submodule.sh:612
+#: git-submodule.sh:606
 #, sh-format
 msgid ""
 "Fetched in submodule path '$displaypath', but it did not contain $sha1. "
@@ -21923,78 +23914,51 @@ msgid ""
 msgstr ""
 "获取了子模组路径 '$displaypath',但是它没有包含 $sha1。直接获取该提交失败。"
 
-#: git-submodule.sh:619
+#: git-submodule.sh:613
 #, sh-format
 msgid "Unable to checkout '$sha1' in submodule path '$displaypath'"
 msgstr "无法在子模组路径 '$displaypath' 中检出 '$sha1'"
 
-#: git-submodule.sh:620
+#: git-submodule.sh:614
 #, sh-format
 msgid "Submodule path '$displaypath': checked out '$sha1'"
 msgstr "子模组路径 '$displaypath':检出 '$sha1'"
 
-#: git-submodule.sh:624
+#: git-submodule.sh:618
 #, sh-format
 msgid "Unable to rebase '$sha1' in submodule path '$displaypath'"
 msgstr "无法在子模组路径 '$displaypath' 中变基 '$sha1'"
 
-#: git-submodule.sh:625
+#: git-submodule.sh:619
 #, sh-format
 msgid "Submodule path '$displaypath': rebased into '$sha1'"
 msgstr "子模组路径 '$displaypath':变基至 '$sha1'"
 
-#: git-submodule.sh:630
+#: git-submodule.sh:624
 #, sh-format
 msgid "Unable to merge '$sha1' in submodule path '$displaypath'"
 msgstr "无法合并 '$sha1' 到子模组路径 '$displaypath' 中"
 
-#: git-submodule.sh:631
+#: git-submodule.sh:625
 #, sh-format
 msgid "Submodule path '$displaypath': merged in '$sha1'"
 msgstr "子模组路径 '$displaypath':已合并入 '$sha1'"
 
-#: git-submodule.sh:636
+#: git-submodule.sh:630
 #, sh-format
 msgid "Execution of '$command $sha1' failed in submodule path '$displaypath'"
 msgstr "在子模组 '$displaypath' 中执行 '$command $sha1' 失败"
 
-#: git-submodule.sh:637
+#: git-submodule.sh:631
 #, sh-format
 msgid "Submodule path '$displaypath': '$command $sha1'"
 msgstr "子模组 '$displaypath':'$command $sha1'"
 
-#: git-submodule.sh:668
+#: git-submodule.sh:662
 #, sh-format
 msgid "Failed to recurse into submodule path '$displaypath'"
 msgstr "无法递归进子模组路径 '$displaypath'"
 
-#: git-submodule.sh:830
-msgid "The --cached option cannot be used with the --files option"
-msgstr "选项 --cached 不能和选项 --files 同时使用"
-
-#: git-submodule.sh:882
-#, sh-format
-msgid "unexpected mode $mod_dst"
-msgstr "意外的模式 $mod_dst"
-
-#  译者:注意保持前导空格
-#: git-submodule.sh:902
-#, sh-format
-msgid "  Warn: $display_name doesn't contain commit $sha1_src"
-msgstr "  警告:$display_name 未包含提交 $sha1_src"
-
-#  译者:注意保持前导空格
-#: git-submodule.sh:905
-#, sh-format
-msgid "  Warn: $display_name doesn't contain commit $sha1_dst"
-msgstr "  警告:$display_name 未包含提交 $sha1_dst"
-
-#  译者:注意保持前导空格
-#: git-submodule.sh:908
-#, sh-format
-msgid "  Warn: $display_name doesn't contain commits $sha1_src and $sha1_dst"
-msgstr "  警告:$display_name 未包含提交 $sha1_src 和 $sha1_dst"
-
 #: git-parse-remote.sh:89
 #, sh-format
 msgid "See git-${cmd}(1) for details."
@@ -22009,12 +23973,22 @@ msgstr "已应用 autostash。"
 msgid "Cannot store $stash_sha1"
 msgstr "不能存储 $stash_sha1"
 
+#: git-rebase--preserve-merges.sh:113
+msgid ""
+"Applying autostash resulted in conflicts.\n"
+"Your changes are safe in the stash.\n"
+"You can run \"git stash pop\" or \"git stash drop\" at any time.\n"
+msgstr ""
+"应用 autostash 导致了冲突。\n"
+"您的修改安全地保存在贮藏区中。\n"
+"您可以在任何时候运行 \"git stash pop\" 或 \"git stash drop\"。\n"
+
 #: git-rebase--preserve-merges.sh:191
 #, sh-format
 msgid "Rebasing ($new_count/$total)"
 msgstr "变基中($new_count/$total)"
 
-#: git-rebase--preserve-merges.sh:207
+#: git-rebase--preserve-merges.sh:197
 msgid ""
 "\n"
 "Commands:\n"
@@ -22052,7 +24026,7 @@ msgstr ""
 "\n"
 "可以对这些行重新排序,将从上至下执行。\n"
 
-#: git-rebase--preserve-merges.sh:270
+#: git-rebase--preserve-merges.sh:260
 #, sh-format
 msgid ""
 "You can amend the commit now, with\n"
@@ -22071,83 +24045,83 @@ msgstr ""
 "\n"
 "\tgit rebase --continue"
 
-#: git-rebase--preserve-merges.sh:295
+#: git-rebase--preserve-merges.sh:285
 #, sh-format
 msgid "$sha1: not a commit that can be picked"
 msgstr "$sha1:不是一个可以被拣选的提交"
 
-#: git-rebase--preserve-merges.sh:334
+#: git-rebase--preserve-merges.sh:324
 #, sh-format
 msgid "Invalid commit name: $sha1"
 msgstr "无效的提交名:$sha1"
 
-#: git-rebase--preserve-merges.sh:364
+#: git-rebase--preserve-merges.sh:354
 msgid "Cannot write current commit's replacement sha1"
 msgstr "不能写入当前提交的替代 sha1"
 
-#: git-rebase--preserve-merges.sh:415
+#: git-rebase--preserve-merges.sh:405
 #, sh-format
 msgid "Fast-forward to $sha1"
 msgstr "快进到 $sha1"
 
-#: git-rebase--preserve-merges.sh:417
+#: git-rebase--preserve-merges.sh:407
 #, sh-format
 msgid "Cannot fast-forward to $sha1"
 msgstr "不能快进到 $sha1"
 
-#: git-rebase--preserve-merges.sh:426
+#: git-rebase--preserve-merges.sh:416
 #, sh-format
 msgid "Cannot move HEAD to $first_parent"
 msgstr "不能移动 HEAD 到 $first_parent"
 
-#: git-rebase--preserve-merges.sh:431
+#: git-rebase--preserve-merges.sh:421
 #, sh-format
 msgid "Refusing to squash a merge: $sha1"
 msgstr "拒绝压缩一个合并:$sha1"
 
-#: git-rebase--preserve-merges.sh:449
+#: git-rebase--preserve-merges.sh:439
 #, sh-format
 msgid "Error redoing merge $sha1"
 msgstr "无法重做合并 $sha1"
 
-#: git-rebase--preserve-merges.sh:458
+#: git-rebase--preserve-merges.sh:448
 #, sh-format
 msgid "Could not pick $sha1"
 msgstr "不能拣选 $sha1"
 
-#: git-rebase--preserve-merges.sh:467
+#: git-rebase--preserve-merges.sh:457
 #, sh-format
 msgid "This is the commit message #${n}:"
 msgstr "这是提交说明 #${n}:"
 
-#: git-rebase--preserve-merges.sh:472
+#: git-rebase--preserve-merges.sh:462
 #, sh-format
 msgid "The commit message #${n} will be skipped:"
 msgstr "提交说明 #${n} 将被跳过:"
 
-#: git-rebase--preserve-merges.sh:483
+#: git-rebase--preserve-merges.sh:473
 #, sh-format
 msgid "This is a combination of $count commit."
 msgid_plural "This is a combination of $count commits."
 msgstr[0] "这是一个 $count 个提交的组合。"
 msgstr[1] "这是一个 $count 个提交的组合。"
 
-#: git-rebase--preserve-merges.sh:492
+#: git-rebase--preserve-merges.sh:482
 #, sh-format
 msgid "Cannot write $fixup_msg"
 msgstr "不能写入 $fixup_msg"
 
-#: git-rebase--preserve-merges.sh:495
+#: git-rebase--preserve-merges.sh:485
 msgid "This is a combination of 2 commits."
 msgstr "这是一个 2 个提交的组合。"
 
-#: git-rebase--preserve-merges.sh:536 git-rebase--preserve-merges.sh:579
-#: git-rebase--preserve-merges.sh:582
+#: git-rebase--preserve-merges.sh:526 git-rebase--preserve-merges.sh:569
+#: git-rebase--preserve-merges.sh:572
 #, sh-format
 msgid "Could not apply $sha1... $rest"
 msgstr "不能应用 $sha1... $rest"
 
-#: git-rebase--preserve-merges.sh:611
+#: git-rebase--preserve-merges.sh:601
 #, sh-format
 msgid ""
 "Could not amend commit after successfully picking $sha1... $rest\n"
@@ -22160,32 +24134,32 @@ msgstr ""
 "这通常是因为空的提交说明,或者 pre-commit 钩子执行失败。如果是 pre-commit\n"
 "钩子执行失败,你可能需要在重写提交说明前解决这个问题。"
 
-#: git-rebase--preserve-merges.sh:626
+#: git-rebase--preserve-merges.sh:616
 #, sh-format
 msgid "Stopped at $sha1_abbrev... $rest"
 msgstr "停止在 $sha1_abbrev... $rest"
 
-#: git-rebase--preserve-merges.sh:641
+#: git-rebase--preserve-merges.sh:631
 #, sh-format
 msgid "Cannot '$squash_style' without a previous commit"
 msgstr "没有父提交的情况下不能 '$squash_style'"
 
-#: git-rebase--preserve-merges.sh:683
+#: git-rebase--preserve-merges.sh:673
 #, sh-format
 msgid "Executing: $rest"
 msgstr "执行:$rest"
 
-#: git-rebase--preserve-merges.sh:691
+#: git-rebase--preserve-merges.sh:681
 #, sh-format
 msgid "Execution failed: $rest"
 msgstr "执行失败:$rest"
 
-#: git-rebase--preserve-merges.sh:693
+#: git-rebase--preserve-merges.sh:683
 msgid "and made changes to the index and/or the working tree"
 msgstr "并且修改索引和/或工作区"
 
 #  译者:注意保持前导空格
-#: git-rebase--preserve-merges.sh:695
+#: git-rebase--preserve-merges.sh:685
 msgid ""
 "You can fix the problem, and then run\n"
 "\n"
@@ -22196,7 +24170,7 @@ msgstr ""
 "\tgit rebase --continue"
 
 #. TRANSLATORS: after these lines is a command to be issued by the user
-#: git-rebase--preserve-merges.sh:708
+#: git-rebase--preserve-merges.sh:698
 #, sh-format
 msgid ""
 "Execution succeeded: $rest\n"
@@ -22210,25 +24184,25 @@ msgstr ""
 "\n"
 "\tgit rebase --continue"
 
-#: git-rebase--preserve-merges.sh:719
+#: git-rebase--preserve-merges.sh:709
 #, sh-format
 msgid "Unknown command: $command $sha1 $rest"
 msgstr "未知命令:$command $sha1 $rest"
 
-#: git-rebase--preserve-merges.sh:720
+#: git-rebase--preserve-merges.sh:710
 msgid "Please fix this using 'git rebase --edit-todo'."
 msgstr "要修改请使用命令 'git rebase --edit-todo'。"
 
-#: git-rebase--preserve-merges.sh:755
+#: git-rebase--preserve-merges.sh:745
 #, sh-format
 msgid "Successfully rebased and updated $head_name."
 msgstr "成功变基并更新 $head_name。"
 
-#: git-rebase--preserve-merges.sh:812
+#: git-rebase--preserve-merges.sh:802
 msgid "Could not remove CHERRY_PICK_HEAD"
 msgstr "不能删除 CHERRY_PICK_HEAD"
 
-#: git-rebase--preserve-merges.sh:817
+#: git-rebase--preserve-merges.sh:807
 #, sh-format
 msgid ""
 "You have staged changes in your working tree.\n"
@@ -22257,51 +24231,55 @@ msgstr ""
 "\n"
 "  git rebase --continue\n"
 
-#: git-rebase--preserve-merges.sh:834
+#: git-rebase--preserve-merges.sh:824
 msgid "Error trying to find the author identity to amend commit"
 msgstr "在修补提交中查找作者信息时遇到错误"
 
-#: git-rebase--preserve-merges.sh:839
+#: git-rebase--preserve-merges.sh:829
 msgid ""
 "You have uncommitted changes in your working tree. Please commit them\n"
 "first and then run 'git rebase --continue' again."
 msgstr ""
 "您的工作区中有未提交的变更。请先提交然后再次运行 'git rebase --continue'。"
 
-#: git-rebase--preserve-merges.sh:844 git-rebase--preserve-merges.sh:848
+#: git-rebase--preserve-merges.sh:834 git-rebase--preserve-merges.sh:838
 msgid "Could not commit staged changes."
 msgstr "不能提交暂存的修改。"
 
-#: git-rebase--preserve-merges.sh:879 git-rebase--preserve-merges.sh:965
+#: git-rebase--preserve-merges.sh:869 git-rebase--preserve-merges.sh:955
 msgid "Could not execute editor"
 msgstr "无法运行编辑器"
 
-#: git-rebase--preserve-merges.sh:900
+#: git-rebase--preserve-merges.sh:890
 #, sh-format
 msgid "Could not checkout $switch_to"
 msgstr "不能检出 $switch_to"
 
-#: git-rebase--preserve-merges.sh:907
+#: git-rebase--preserve-merges.sh:897
 msgid "No HEAD?"
 msgstr "没有 HEAD?"
 
-#: git-rebase--preserve-merges.sh:908
+#: git-rebase--preserve-merges.sh:898
 #, sh-format
 msgid "Could not create temporary $state_dir"
 msgstr "不能创建临时 $state_dir"
 
-#: git-rebase--preserve-merges.sh:911
+#: git-rebase--preserve-merges.sh:901
 msgid "Could not mark as interactive"
 msgstr "不能标记为交互式"
 
-#: git-rebase--preserve-merges.sh:943
+#: git-rebase--preserve-merges.sh:933
 #, sh-format
 msgid "Rebase $shortrevisions onto $shortonto ($todocount command)"
 msgid_plural "Rebase $shortrevisions onto $shortonto ($todocount commands)"
 msgstr[0] "变基 $shortrevisions 到 $shortonto($todocount 个提交)"
 msgstr[1] "变基 $shortrevisions 到 $shortonto($todocount 个提交)"
 
-#: git-rebase--preserve-merges.sh:997 git-rebase--preserve-merges.sh:1002
+#: git-rebase--preserve-merges.sh:945
+msgid "Note that empty commits are commented out"
+msgstr "注意空提交已被注释掉"
+
+#: git-rebase--preserve-merges.sh:987 git-rebase--preserve-merges.sh:992
 msgid "Could not init rewritten commits"
 msgstr "不能对重写提交进行初始化"
 
@@ -22363,122 +24341,56 @@ msgid "Unable to determine absolute path of git directory"
 msgstr "不能确定 git 目录的绝对路径"
 
 #. TRANSLATORS: you can adjust this to align "git add -i" status menu
-#: git-add--interactive.perl:210
+#: git-add--interactive.perl:212
 #, perl-format
 msgid "%12s %12s %s"
 msgstr "%12s %12s %s"
 
-#: git-add--interactive.perl:211
-msgid "staged"
-msgstr "缓存"
-
-#: git-add--interactive.perl:211
-msgid "unstaged"
-msgstr "未缓存"
-
-#: git-add--interactive.perl:267 git-add--interactive.perl:292
-msgid "binary"
-msgstr "二进制"
-
-#: git-add--interactive.perl:276 git-add--interactive.perl:330
-msgid "nothing"
-msgstr "无"
-
-#: git-add--interactive.perl:312 git-add--interactive.perl:327
-msgid "unchanged"
-msgstr "没有修改"
-
-#: git-add--interactive.perl:623
-#, perl-format
-msgid "added %d path\n"
-msgid_plural "added %d paths\n"
-msgstr[0] "增加了 %d 个路径\n"
-msgstr[1] "增加了 %d 个路径\n"
-
-#: git-add--interactive.perl:626
-#, perl-format
-msgid "updated %d path\n"
-msgid_plural "updated %d paths\n"
-msgstr[0] "更新了 %d 个路径\n"
-msgstr[1] "更新了 %d 个路径\n"
-
-#: git-add--interactive.perl:629
-#, perl-format
-msgid "reverted %d path\n"
-msgid_plural "reverted %d paths\n"
-msgstr[0] "还原了 %d 个路径\n"
-msgstr[1] "还原了 %d 个路径\n"
-
-#: git-add--interactive.perl:632
+#: git-add--interactive.perl:634
 #, perl-format
 msgid "touched %d path\n"
 msgid_plural "touched %d paths\n"
 msgstr[0] "触碰了 %d 个路径\n"
 msgstr[1] "触碰了 %d 个路径\n"
 
-#: git-add--interactive.perl:641
-msgid "Update"
-msgstr "更新"
-
-#: git-add--interactive.perl:653
-msgid "Revert"
-msgstr "还原"
-
-#: git-add--interactive.perl:676
-#, perl-format
-msgid "note: %s is untracked now.\n"
-msgstr "说明:%s 现已成为未跟踪的。\n"
-
-#: git-add--interactive.perl:687
-msgid "Add untracked"
-msgstr "添加未跟踪的"
-
-#: git-add--interactive.perl:693
-msgid "No untracked files.\n"
-msgstr "没有未跟踪的文件。\n"
-
-#: git-add--interactive.perl:1051
+#: git-add--interactive.perl:1058
 msgid ""
 "If the patch applies cleanly, the edited hunk will immediately be\n"
 "marked for staging."
 msgstr "如果补丁能干净地应用,编辑块将立即标记为暂存。"
 
-#: git-add--interactive.perl:1054
+#: git-add--interactive.perl:1061
 msgid ""
 "If the patch applies cleanly, the edited hunk will immediately be\n"
 "marked for stashing."
 msgstr "如果补丁能干净地应用,编辑块将立即标记为贮藏。"
 
-#: git-add--interactive.perl:1057
+#: git-add--interactive.perl:1064
 msgid ""
 "If the patch applies cleanly, the edited hunk will immediately be\n"
 "marked for unstaging."
 msgstr "如果补丁能干净地应用,编辑块将立即标记为未暂存。"
 
-#: git-add--interactive.perl:1060 git-add--interactive.perl:1069
-#: git-add--interactive.perl:1075
+#: git-add--interactive.perl:1067 git-add--interactive.perl:1076
+#: git-add--interactive.perl:1082
 msgid ""
 "If the patch applies cleanly, the edited hunk will immediately be\n"
 "marked for applying."
 msgstr "如果补丁能干净地应用,编辑块将立即标记为应用。"
 
-#: git-add--interactive.perl:1063 git-add--interactive.perl:1066
-#: git-add--interactive.perl:1072
+#: git-add--interactive.perl:1070 git-add--interactive.perl:1073
+#: git-add--interactive.perl:1079
 msgid ""
 "If the patch applies cleanly, the edited hunk will immediately be\n"
 "marked for discarding."
 msgstr "如果补丁能干净地应用,编辑块将立即标记为丢弃。"
 
-#: git-add--interactive.perl:1109
+#: git-add--interactive.perl:1116
 #, perl-format
 msgid "failed to open hunk edit file for writing: %s"
 msgstr "为写入打开块编辑文件失败:%s"
 
-#: git-add--interactive.perl:1110
-msgid "Manual hunk edit mode -- see bottom for a quick guide.\n"
-msgstr "手动块编辑模式 -- 查看底部的快速指南。\n"
-
-#: git-add--interactive.perl:1116
+#: git-add--interactive.perl:1123
 #, perl-format
 msgid ""
 "---\n"
@@ -22491,33 +24403,12 @@ msgstr ""
 "要删除 '%s' 开始的行,删除它们。\n"
 "以 %s 开始的行将被删除。\n"
 
-#. TRANSLATORS: 'it' refers to the patch mentioned in the previous messages.
-#: git-add--interactive.perl:1124
-msgid ""
-"If it does not apply cleanly, you will be given an opportunity to\n"
-"edit again.  If all lines of the hunk are removed, then the edit is\n"
-"aborted and the hunk is left unchanged.\n"
-msgstr ""
-"如果不能干净地应用,您将有机会重新编辑。如果该块的全部内容删除,则\n"
-"此次编辑被终止,该块不会被修改。\n"
-
-#: git-add--interactive.perl:1138
+#: git-add--interactive.perl:1145
 #, perl-format
 msgid "failed to open hunk edit file for reading: %s"
 msgstr "无法读取块编辑文件:%s"
 
-#. TRANSLATORS: do not translate [y/n]
-#. The program will only accept that input
-#. at this point.
-#. Consider translating (saying "no" discards!) as
-#. (saying "n" for "no" discards!) if the translation
-#. of the word "no" does not start with n.
-#: git-add--interactive.perl:1237
-msgid ""
-"Your edited hunk does not apply. Edit again (saying \"no\" discards!) [y/n]? "
-msgstr "您的编辑块不能被应用。重新编辑(选择 \"no\" 丢弃!) [y/n]? "
-
-#: git-add--interactive.perl:1246
+#: git-add--interactive.perl:1253
 msgid ""
 "y - stage this hunk\n"
 "n - do not stage this hunk\n"
@@ -22531,7 +24422,7 @@ msgstr ""
 "a - 暂存该块和本文件中后面的全部块\n"
 "d - 不暂存该块和本文件中后面的全部块"
 
-#: git-add--interactive.perl:1252
+#: git-add--interactive.perl:1259
 msgid ""
 "y - stash this hunk\n"
 "n - do not stash this hunk\n"
@@ -22545,7 +24436,7 @@ msgstr ""
 "a - 贮藏该块和本文件中后面的全部块\n"
 "d - 不贮藏该块和本文件中后面的全部块"
 
-#: git-add--interactive.perl:1258
+#: git-add--interactive.perl:1265
 msgid ""
 "y - unstage this hunk\n"
 "n - do not unstage this hunk\n"
@@ -22559,7 +24450,7 @@ msgstr ""
 "a - 不暂存该块和本文件中后面的全部块\n"
 "d - 不要不暂存该块和本文件中后面的全部块"
 
-#: git-add--interactive.perl:1264
+#: git-add--interactive.perl:1271
 msgid ""
 "y - apply this hunk to index\n"
 "n - do not apply this hunk to index\n"
@@ -22573,7 +24464,7 @@ msgstr ""
 "a - 应用该块和本文件中后面的全部块\n"
 "d - 不要应用该块和本文件中后面的全部块"
 
-#: git-add--interactive.perl:1270 git-add--interactive.perl:1288
+#: git-add--interactive.perl:1277 git-add--interactive.perl:1295
 msgid ""
 "y - discard this hunk from worktree\n"
 "n - do not discard this hunk from worktree\n"
@@ -22587,7 +24478,7 @@ msgstr ""
 "a - 丢弃该块和本文件中后面的全部块\n"
 "d - 不要丢弃该块和本文件中后面的全部块"
 
-#: git-add--interactive.perl:1276
+#: git-add--interactive.perl:1283
 msgid ""
 "y - discard this hunk from index and worktree\n"
 "n - do not discard this hunk from index and worktree\n"
@@ -22601,7 +24492,7 @@ msgstr ""
 "a - 丢弃该块和本文件中后面的全部块\n"
 "d - 不要丢弃该块和本文件中后面的全部块"
 
-#: git-add--interactive.perl:1282
+#: git-add--interactive.perl:1289
 msgid ""
 "y - apply this hunk to index and worktree\n"
 "n - do not apply this hunk to index and worktree\n"
@@ -22615,7 +24506,7 @@ msgstr ""
 "a - 应用该块和本文件中后面的全部块\n"
 "d - 不要应用该块和本文件中后面的全部块"
 
-#: git-add--interactive.perl:1294
+#: git-add--interactive.perl:1301
 msgid ""
 "y - apply this hunk to worktree\n"
 "n - do not apply this hunk to worktree\n"
@@ -22629,7 +24520,7 @@ msgstr ""
 "a - 应用该块和本文件中后面的全部块\n"
 "d - 不要应用该块和本文件中后面的全部块"
 
-#: git-add--interactive.perl:1309
+#: git-add--interactive.perl:1316
 msgid ""
 "g - select a hunk to go to\n"
 "/ - search for a hunk matching the given regex\n"
@@ -22651,226 +24542,90 @@ msgstr ""
 "e - 手动编辑当前块\n"
 "? - 显示帮助\n"
 
-#: git-add--interactive.perl:1340
+#: git-add--interactive.perl:1347
 msgid "The selected hunks do not apply to the index!\n"
 msgstr "选中的块不能应用到索引!\n"
 
-#: git-add--interactive.perl:1341
-msgid "Apply them to the worktree anyway? "
-msgstr "无论如何都要应用到工作区么?"
-
-#: git-add--interactive.perl:1344
-msgid "Nothing was applied.\n"
-msgstr "未应用。\n"
-
-#: git-add--interactive.perl:1355
+#: git-add--interactive.perl:1362
 #, perl-format
 msgid "ignoring unmerged: %s\n"
 msgstr "忽略未合入的:%s\n"
 
-#: git-add--interactive.perl:1364
-msgid "Only binary files changed.\n"
-msgstr "只有二进制文件被修改。\n"
-
-#: git-add--interactive.perl:1366
-msgid "No changes.\n"
-msgstr "没有修改。\n"
-
-#: git-add--interactive.perl:1374
-msgid "Patch update"
-msgstr "补丁更新"
-
-#: git-add--interactive.perl:1426
-#, perl-format
-msgid "Stage mode change [y,n,q,a,d%s,?]? "
-msgstr "暂存模式变更 [y,n,q,a,d%s,?]? "
-
-#: git-add--interactive.perl:1427
-#, perl-format
-msgid "Stage deletion [y,n,q,a,d%s,?]? "
-msgstr "暂存删除动作 [y,n,q,a,d%s,?]? "
-
-#: git-add--interactive.perl:1428
-#, perl-format
-msgid "Stage this hunk [y,n,q,a,d%s,?]? "
-msgstr "暂存该块 [y,n,q,a,d%s,?]? "
-
-#: git-add--interactive.perl:1431
-#, perl-format
-msgid "Stash mode change [y,n,q,a,d%s,?]? "
-msgstr "贮藏模式变更 [y,n,q,a,d%s,?]? "
-
-#: git-add--interactive.perl:1432
-#, perl-format
-msgid "Stash deletion [y,n,q,a,d%s,?]? "
-msgstr "贮藏删除动作 [y,n,q,a,d%s,?]? "
-
-#: git-add--interactive.perl:1433
-#, perl-format
-msgid "Stash this hunk [y,n,q,a,d%s,?]? "
-msgstr "贮藏该块 [y,n,q,a,d%s,?]? "
-
-#: git-add--interactive.perl:1436
-#, perl-format
-msgid "Unstage mode change [y,n,q,a,d%s,?]? "
-msgstr "取消暂存模式变更 [y,n,q,a,d%s,?]? "
-
-#: git-add--interactive.perl:1437
-#, perl-format
-msgid "Unstage deletion [y,n,q,a,d%s,?]? "
-msgstr "取消暂存删除动作 [y,n,q,a,d%s,?]? "
-
-#: git-add--interactive.perl:1438
-#, perl-format
-msgid "Unstage this hunk [y,n,q,a,d%s,?]? "
-msgstr "取消暂存该块 [y,n,q,a,d%s,?]? "
-
-#: git-add--interactive.perl:1441
-#, perl-format
-msgid "Apply mode change to index [y,n,q,a,d%s,?]? "
-msgstr "将模式变更应用到索引 [y,n,q,a,d%s,?]? "
-
-#: git-add--interactive.perl:1442
-#, perl-format
-msgid "Apply deletion to index [y,n,q,a,d%s,?]? "
-msgstr "将删除操作应用到索引 [y,n,q,a,d%s,?]? "
-
-#: git-add--interactive.perl:1443
-#, perl-format
-msgid "Apply this hunk to index [y,n,q,a,d%s,?]? "
-msgstr "将该块应用到索引 [y,n,q,a,d%s,?]? "
-
-#: git-add--interactive.perl:1446 git-add--interactive.perl:1461
-#, perl-format
-msgid "Discard mode change from worktree [y,n,q,a,d%s,?]? "
-msgstr "从工作区中丢弃模式变更 [y,n,q,a,d%s,?]? "
-
-#: git-add--interactive.perl:1447 git-add--interactive.perl:1462
-#, perl-format
-msgid "Discard deletion from worktree [y,n,q,a,d%s,?]? "
-msgstr "从工作区中丢弃删除动作 [y,n,q,a,d%s,?]? "
-
-#: git-add--interactive.perl:1448 git-add--interactive.perl:1463
-#, perl-format
-msgid "Discard this hunk from worktree [y,n,q,a,d%s,?]? "
-msgstr "从工作区中丢弃该块 [y,n,q,a,d%s,?]? "
-
-#: git-add--interactive.perl:1451
-#, perl-format
-msgid "Discard mode change from index and worktree [y,n,q,a,d%s,?]? "
-msgstr "从索引和工作区中丢弃模式变更 [y,n,q,a,d%s,?]? "
-
-#: git-add--interactive.perl:1452
-#, perl-format
-msgid "Discard deletion from index and worktree [y,n,q,a,d%s,?]? "
-msgstr "从索引和工作区中丢弃删除 [y,n,q,a,d%s,?]? "
-
-#: git-add--interactive.perl:1453
-#, perl-format
-msgid "Discard this hunk from index and worktree [y,n,q,a,d%s,?]? "
-msgstr "从索引和工作区中丢弃该块 [y,n,q,a,d%s,?]? "
-
-#: git-add--interactive.perl:1456
-#, perl-format
-msgid "Apply mode change to index and worktree [y,n,q,a,d%s,?]? "
-msgstr "将模式变更应用到索引和工作区 [y,n,q,a,d%s,?]? "
-
-#: git-add--interactive.perl:1457
-#, perl-format
-msgid "Apply deletion to index and worktree [y,n,q,a,d%s,?]? "
-msgstr "将删除操作应用到索引和工作区 [y,n,q,a,d%s,?]? "
-
-#: git-add--interactive.perl:1458
-#, perl-format
-msgid "Apply this hunk to index and worktree [y,n,q,a,d%s,?]? "
-msgstr "将该块应用到索引和工作区 [y,n,q,a,d%s,?]? "
-
-#: git-add--interactive.perl:1466
+#: git-add--interactive.perl:1481
 #, perl-format
 msgid "Apply mode change to worktree [y,n,q,a,d%s,?]? "
 msgstr "将模式变更应用到工作区 [y,n,q,a,d%s,?]? "
 
-#: git-add--interactive.perl:1467
+#: git-add--interactive.perl:1482
 #, perl-format
 msgid "Apply deletion to worktree [y,n,q,a,d%s,?]? "
 msgstr "将删除操作应用到工作区 [y,n,q,a,d%s,?]? "
 
-#: git-add--interactive.perl:1468
+#: git-add--interactive.perl:1483
+#, perl-format
+msgid "Apply addition to worktree [y,n,q,a,d%s,?]? "
+msgstr "将添加操作应用到工作区 [y,n,q,a,d%s,?]? "
+
+#: git-add--interactive.perl:1484
 #, perl-format
 msgid "Apply this hunk to worktree [y,n,q,a,d%s,?]? "
 msgstr "将该块应用到工作区 [y,n,q,a,d%s,?]? "
 
-#: git-add--interactive.perl:1568
+#: git-add--interactive.perl:1601
 msgid "No other hunks to goto\n"
 msgstr "没有其它可供跳转的块\n"
 
-#: git-add--interactive.perl:1575
-msgid "go to which hunk (<ret> to see more)? "
-msgstr "跳转到哪个块(<回车> 查看更多)? "
-
-#: git-add--interactive.perl:1577
-msgid "go to which hunk? "
-msgstr "跳转到哪个块?"
-
-#: git-add--interactive.perl:1586
+#: git-add--interactive.perl:1619
 #, perl-format
 msgid "Invalid number: '%s'\n"
 msgstr "无效数字:'%s'\n"
 
-#: git-add--interactive.perl:1591
+#: git-add--interactive.perl:1624
 #, perl-format
 msgid "Sorry, only %d hunk available.\n"
 msgid_plural "Sorry, only %d hunks available.\n"
 msgstr[0] "对不起,只有 %d 个可用块。\n"
 msgstr[1] "对不起,只有 %d 个可用块。\n"
 
-#: git-add--interactive.perl:1617
+#: git-add--interactive.perl:1659
 msgid "No other hunks to search\n"
 msgstr "没有其它可供查找的块\n"
 
-#: git-add--interactive.perl:1621
-msgid "search for regex? "
-msgstr "使用正则表达式搜索?"
-
-#: git-add--interactive.perl:1634
+#: git-add--interactive.perl:1676
 #, perl-format
 msgid "Malformed search regexp %s: %s\n"
 msgstr "错误的正则表达式 %s:%s\n"
 
-#: git-add--interactive.perl:1644
+#: git-add--interactive.perl:1686
 msgid "No hunk matches the given pattern\n"
-msgstr "没有和给定模式相匹配的快\n"
+msgstr "没有和给定模式相匹配的块\n"
 
-#: git-add--interactive.perl:1656 git-add--interactive.perl:1678
+#: git-add--interactive.perl:1698 git-add--interactive.perl:1720
 msgid "No previous hunk\n"
 msgstr "没有前一个块\n"
 
-#: git-add--interactive.perl:1665 git-add--interactive.perl:1684
+#: git-add--interactive.perl:1707 git-add--interactive.perl:1726
 msgid "No next hunk\n"
 msgstr "没有下一个块\n"
 
-#: git-add--interactive.perl:1690
+#: git-add--interactive.perl:1732
 msgid "Sorry, cannot split this hunk\n"
 msgstr "对不起,不能拆分这个块\n"
 
-#: git-add--interactive.perl:1696
+#: git-add--interactive.perl:1738
 #, perl-format
 msgid "Split into %d hunk.\n"
 msgid_plural "Split into %d hunks.\n"
 msgstr[0] "拆分为 %d 块。\n"
 msgstr[1] "拆分为 %d 块。\n"
 
-#: git-add--interactive.perl:1706
+#: git-add--interactive.perl:1748
 msgid "Sorry, cannot edit this hunk\n"
 msgstr "对不起,不能编辑这个块\n"
 
-#: git-add--interactive.perl:1752
-msgid "Review diff"
-msgstr "检视 diff"
-
 #. TRANSLATORS: please do not translate the command names
 #. 'status', 'update', 'revert', etc.
-#: git-add--interactive.perl:1771
+#: git-add--interactive.perl:1813
 msgid ""
 "status        - show paths with changes\n"
 "update        - add working tree state to the staged set of changes\n"
@@ -22887,19 +24642,19 @@ msgstr ""
 "diff          - 显示 HEAD 和索引间差异\n"
 "add untracked - 添加未跟踪文件的内容至暂存列表\n"
 
-#: git-add--interactive.perl:1788 git-add--interactive.perl:1793
-#: git-add--interactive.perl:1796 git-add--interactive.perl:1803
-#: git-add--interactive.perl:1806 git-add--interactive.perl:1813
-#: git-add--interactive.perl:1817 git-add--interactive.perl:1823
+#: git-add--interactive.perl:1830 git-add--interactive.perl:1835
+#: git-add--interactive.perl:1838 git-add--interactive.perl:1845
+#: git-add--interactive.perl:1848 git-add--interactive.perl:1855
+#: git-add--interactive.perl:1859 git-add--interactive.perl:1865
 msgid "missing --"
 msgstr "缺失 --"
 
-#: git-add--interactive.perl:1819
+#: git-add--interactive.perl:1861
 #, perl-format
 msgid "unknown --patch mode: %s"
 msgstr "未知的 --patch 模式:%s"
 
-#: git-add--interactive.perl:1825 git-add--interactive.perl:1831
+#: git-add--interactive.perl:1867 git-add--interactive.perl:1873
 #, perl-format
 msgid "invalid argument %s, expecting --"
 msgstr "无效的参数 %s,期望是 --"
@@ -22916,62 +24671,72 @@ msgstr "本地时间偏移量大于等于 24 小时\n"
 msgid "the editor exited uncleanly, aborting everything"
 msgstr "编辑器非正常退出,终止所有操作"
 
-#: git-send-email.perl:310
+#: git-send-email.perl:312
 #, perl-format
 msgid ""
 "'%s' contains an intermediate version of the email you were composing.\n"
 msgstr "'%s' 包含您正在编写的一个中间版本的邮件。\n"
 
-#: git-send-email.perl:315
+#: git-send-email.perl:317
 #, perl-format
 msgid "'%s.final' contains the composed email.\n"
 msgstr "'%s.final' 包含编辑的邮件。\n"
 
-#: git-send-email.perl:408
+#: git-send-email.perl:410
 msgid "--dump-aliases incompatible with other options\n"
 msgstr "--dump-aliases 和其它选项不兼容\n"
 
-#: git-send-email.perl:481 git-send-email.perl:683
+#: git-send-email.perl:484
+msgid ""
+"fatal: found configuration options for 'sendmail'\n"
+"git-send-email is configured with the sendemail.* options - note the 'e'.\n"
+"Set sendemail.forbidSendmailVariables to false to disable this check.\n"
+msgstr ""
+"致命错误:发现 'sendmail' 配置选项\n"
+"git-send-email 通过 sendemail.* 选项进行设置,注意字母 'e'。\n"
+"设置 sendemail.forbidSendmailVariables 为 false 来禁用这项检查。\n"
+
+#: git-send-email.perl:489 git-send-email.perl:691
 msgid "Cannot run git format-patch from outside a repository\n"
 msgstr "不能在仓库之外运行 git format-patch\n"
 
-#: git-send-email.perl:484
+#: git-send-email.perl:492
 msgid ""
 "`batch-size` and `relogin` must be specified together (via command-line or "
 "configuration option)\n"
 msgstr "`batch-size` 和 `relogin` 必须同时定义(通过命令行或者配置选项)\n"
 
-#: git-send-email.perl:497
+#: git-send-email.perl:505
 #, perl-format
 msgid "Unknown --suppress-cc field: '%s'\n"
 msgstr "未知的 --suppress-cc 字段:'%s'\n"
 
-#: git-send-email.perl:528
+#: git-send-email.perl:536
 #, perl-format
 msgid "Unknown --confirm setting: '%s'\n"
 msgstr "未知的 --confirm 设置:'%s'\n"
 
-#: git-send-email.perl:556
+#: git-send-email.perl:564
 #, perl-format
 msgid "warning: sendmail alias with quotes is not supported: %s\n"
 msgstr "警告:不支持带引号的 sendmail 别名:%s\n"
 
-#: git-send-email.perl:558
+#: git-send-email.perl:566
 #, perl-format
 msgid "warning: `:include:` not supported: %s\n"
 msgstr "警告:不支持 `:include:`:%s\n"
 
-#: git-send-email.perl:560
+#: git-send-email.perl:568
 #, perl-format
 msgid "warning: `/file` or `|pipe` redirection not supported: %s\n"
 msgstr "警告:不支持 `/file` 或 `|pipe` 重定向:%s\n"
 
-#: git-send-email.perl:565
+#: git-send-email.perl:573
 #, perl-format
 msgid "warning: sendmail line is not recognized: %s\n"
 msgstr "警告:不能识别的 sendmail 行:%s\n"
 
-#: git-send-email.perl:649
+#: git-send-email.perl:657
 #, perl-format
 msgid ""
 "File '%s' exists but it could also be the range of commits\n"
@@ -22986,12 +24751,12 @@ msgstr ""
 "    * 如果含义为一个文件,使用 \"./%s\",或者\n"
 "    * 如果含义为一个范围,使用 --format-patch 选项。\n"
 
-#: git-send-email.perl:670
+#: git-send-email.perl:678
 #, perl-format
 msgid "Failed to opendir %s: %s"
 msgstr "无法打开目录 %s: %s"
 
-#: git-send-email.perl:694
+#: git-send-email.perl:702
 #, perl-format
 msgid ""
 "fatal: %s: %s\n"
@@ -23000,7 +24765,7 @@ msgstr ""
 "致命错误:%s:%s\n"
 "警告:补丁未能发送\n"
 
-#: git-send-email.perl:705
+#: git-send-email.perl:713
 msgid ""
 "\n"
 "No patch files specified!\n"
@@ -23010,17 +24775,17 @@ msgstr ""
 "未指定补丁文件!\n"
 "\n"
 
-#: git-send-email.perl:718
+#: git-send-email.perl:726
 #, perl-format
 msgid "No subject line in %s?"
 msgstr "在 %s 中没有标题行?"
 
-#: git-send-email.perl:728
+#: git-send-email.perl:736
 #, perl-format
 msgid "Failed to open for writing %s: %s"
 msgstr "为写入打开 %s 失败: %s"
 
-#: git-send-email.perl:739
+#: git-send-email.perl:747
 msgid ""
 "Lines beginning in \"GIT:\" will be removed.\n"
 "Consider including an overall diffstat or table of contents\n"
@@ -23033,37 +24798,37 @@ msgstr ""
 "\n"
 "如果您不想发送摘要,清除内容。\n"
 
-#: git-send-email.perl:763
+#: git-send-email.perl:771
 #, perl-format
 msgid "Failed to open %s: %s"
 msgstr "无法打开 %s: %s"
 
-#: git-send-email.perl:780
+#: git-send-email.perl:788
 #, perl-format
 msgid "Failed to open %s.final: %s"
 msgstr "无法打开 %s.final: %s"
 
-#: git-send-email.perl:823
+#: git-send-email.perl:831
 msgid "Summary email is empty, skipping it\n"
 msgstr "摘要邮件为空,跳过\n"
 
 #. TRANSLATORS: please keep [y/N] as is.
-#: git-send-email.perl:858
+#: git-send-email.perl:866
 #, perl-format
 msgid "Are you sure you want to use <%s> [y/N]? "
 msgstr "您确认要使用 <%s> [y/N]?"
 
-#: git-send-email.perl:913
+#: git-send-email.perl:921
 msgid ""
 "The following files are 8bit, but do not declare a Content-Transfer-"
 "Encoding.\n"
 msgstr "如下文件含 8bit 内容,但没有声明一个 Content-Transfer-Encoding。\n"
 
-#: git-send-email.perl:918
+#: git-send-email.perl:926
 msgid "Which 8bit encoding should I declare [UTF-8]? "
 msgstr "要声明 8bit 为什么样的编码格式 [UTF-8]?"
 
-#: git-send-email.perl:926
+#: git-send-email.perl:934
 #, perl-format
 msgid ""
 "Refusing to send because the patch\n"
@@ -23075,20 +24840,20 @@ msgstr ""
 "\t%s\n"
 "包含模版标题 '*** SUBJECT HERE ***'。如果确实想要发送,使用参数 --force。\n"
 
-#: git-send-email.perl:945
+#: git-send-email.perl:953
 msgid "To whom should the emails be sent (if anyone)?"
 msgstr "邮件将要发送给谁?"
 
-#: git-send-email.perl:963
+#: git-send-email.perl:971
 #, perl-format
 msgid "fatal: alias '%s' expands to itself\n"
 msgstr "致命错误:别名 '%s' 扩展为它自己\n"
 
-#: git-send-email.perl:975
+#: git-send-email.perl:983
 msgid "Message-ID to be used as In-Reply-To for the first email (if any)? "
 msgstr "Message-ID 被用作第一封邮件的 In-Reply-To ?"
 
-#: git-send-email.perl:1033 git-send-email.perl:1041
+#: git-send-email.perl:1041 git-send-email.perl:1049
 #, perl-format
 msgid "error: unable to extract a valid address from: %s\n"
 msgstr "错误:不能从 %s 中提取一个有效的邮件地址\n"
@@ -23096,16 +24861,16 @@ msgstr "错误:不能从 %s 中提取一个有效的邮件地址\n"
 #. TRANSLATORS: Make sure to include [q] [d] [e] in your
 #. translation. The program will only accept English input
 #. at this point.
-#: git-send-email.perl:1045
+#: git-send-email.perl:1053
 msgid "What to do with this address? ([q]uit|[d]rop|[e]dit): "
 msgstr "如何处理这个地址?([q]uit|[d]rop|[e]dit):"
 
-#: git-send-email.perl:1362
+#: git-send-email.perl:1370
 #, perl-format
 msgid "CA path \"%s\" does not exist"
 msgstr "CA 路径 \"%s\" 不存在"
 
-#: git-send-email.perl:1445
+#: git-send-email.perl:1453
 msgid ""
 "    The Cc list above has been expanded by additional\n"
 "    addresses found in the patch commit message. By default\n"
@@ -23130,128 +24895,128 @@ msgstr ""
 #. TRANSLATORS: Make sure to include [y] [n] [e] [q] [a] in your
 #. translation. The program will only accept English input
 #. at this point.
-#: git-send-email.perl:1460
+#: git-send-email.perl:1468
 msgid "Send this email? ([y]es|[n]o|[e]dit|[q]uit|[a]ll): "
 msgstr "发送这封邮件?([y]es|[n]o|[e]dit|[q]uit|[a]ll): "
 
-#: git-send-email.perl:1463
+#: git-send-email.perl:1471
 msgid "Send this email reply required"
 msgstr "发送要求的邮件回复"
 
-#: git-send-email.perl:1491
+#: git-send-email.perl:1499
 msgid "The required SMTP server is not properly defined."
 msgstr "要求的 SMTP 服务器未被正确定义。"
 
-#: git-send-email.perl:1538
+#: git-send-email.perl:1546
 #, perl-format
 msgid "Server does not support STARTTLS! %s"
 msgstr "服务器不支持 STARTTLS!%s"
 
-#: git-send-email.perl:1543 git-send-email.perl:1547
+#: git-send-email.perl:1551 git-send-email.perl:1555
 #, perl-format
 msgid "STARTTLS failed! %s"
 msgstr "STARTTLS 失败!%s"
 
-#: git-send-email.perl:1556
+#: git-send-email.perl:1564
 msgid "Unable to initialize SMTP properly. Check config and use --smtp-debug."
 msgstr "无法正确地初始化 SMTP。检查配置并使用 --smtp-debug。"
 
-#: git-send-email.perl:1574
+#: git-send-email.perl:1582
 #, perl-format
 msgid "Failed to send %s\n"
 msgstr "无法发送 %s\n"
 
-#: git-send-email.perl:1577
+#: git-send-email.perl:1585
 #, perl-format
 msgid "Dry-Sent %s\n"
 msgstr "演习发送 %s\n"
 
-#: git-send-email.perl:1577
+#: git-send-email.perl:1585
 #, perl-format
 msgid "Sent %s\n"
 msgstr "正发送 %s\n"
 
-#: git-send-email.perl:1579
+#: git-send-email.perl:1587
 msgid "Dry-OK. Log says:\n"
 msgstr "演习成功。日志说:\n"
 
-#: git-send-email.perl:1579
+#: git-send-email.perl:1587
 msgid "OK. Log says:\n"
 msgstr "OK。日志说:\n"
 
-#: git-send-email.perl:1591
+#: git-send-email.perl:1599
 msgid "Result: "
 msgstr "结果:"
 
-#: git-send-email.perl:1594
+#: git-send-email.perl:1602
 msgid "Result: OK\n"
 msgstr "结果:OK\n"
 
-#: git-send-email.perl:1612
+#: git-send-email.perl:1620
 #, perl-format
 msgid "can't open file %s"
 msgstr "无法打开文件 %s"
 
-#: git-send-email.perl:1659 git-send-email.perl:1679
+#: git-send-email.perl:1667 git-send-email.perl:1687
 #, perl-format
 msgid "(mbox) Adding cc: %s from line '%s'\n"
 msgstr "(mbox) 添加 cc:%s 自行 '%s'\n"
 
-#: git-send-email.perl:1665
+#: git-send-email.perl:1673
 #, perl-format
 msgid "(mbox) Adding to: %s from line '%s'\n"
 msgstr "(mbox) 添加 to:%s 自行 '%s'\n"
 
-#: git-send-email.perl:1718
+#: git-send-email.perl:1730
 #, perl-format
 msgid "(non-mbox) Adding cc: %s from line '%s'\n"
 msgstr "(non-mbox) 添加 cc:%s 自行 '%s'\n"
 
-#: git-send-email.perl:1753
+#: git-send-email.perl:1765
 #, perl-format
 msgid "(body) Adding cc: %s from line '%s'\n"
 msgstr "(body) 添加 cc: %s 自行 '%s'\n"
 
-#: git-send-email.perl:1864
+#: git-send-email.perl:1876
 #, perl-format
 msgid "(%s) Could not execute '%s'"
 msgstr "(%s) 不能执行 '%s'"
 
-#: git-send-email.perl:1871
+#: git-send-email.perl:1883
 #, perl-format
 msgid "(%s) Adding %s: %s from: '%s'\n"
 msgstr "(%s) 添加 %s: %s 自:'%s'\n"
 
-#: git-send-email.perl:1875
+#: git-send-email.perl:1887
 #, perl-format
 msgid "(%s) failed to close pipe to '%s'"
 msgstr "(%s) 无法关闭管道至 '%s'"
 
-#: git-send-email.perl:1905
+#: git-send-email.perl:1917
 msgid "cannot send message as 7bit"
 msgstr "不能以 7bit 形式发送信息"
 
-#: git-send-email.perl:1913
+#: git-send-email.perl:1925
 msgid "invalid transfer encoding"
 msgstr "无效的传送编码"
 
-#: git-send-email.perl:1954 git-send-email.perl:2006 git-send-email.perl:2016
+#: git-send-email.perl:1966 git-send-email.perl:2018 git-send-email.perl:2028
 #, perl-format
 msgid "unable to open %s: %s\n"
 msgstr "不能打开 %s:%s\n"
 
-#: git-send-email.perl:1957
+#: git-send-email.perl:1969
 #, perl-format
 msgid "%s: patch contains a line longer than 998 characters"
 msgstr "%s:补丁包含一个超过 998 字符的行"
 
-#: git-send-email.perl:1974
+#: git-send-email.perl:1986
 #, perl-format
 msgid "Skipping %s with backup suffix '%s'.\n"
 msgstr "略过 %s 含备份后缀 '%s'。\n"
 
 #. TRANSLATORS: please keep "[y|N]" as is.
-#: git-send-email.perl:1978
+#: git-send-email.perl:1990
 #, perl-format
 msgid "Do you really want to send %s? [y|N]: "
 msgstr "您真的要发送 %s?[y|N]:"