Code

l10n: Update zh_CN translation for Git 1.7.10-rc1
[git.git] / po / zh_CN.po
index b6ae6ce76c88d3890b172fbce0c086bb26b9b893..b0c398083f1426b7eae276cb6efaf4f5f03034b0 100644 (file)
@@ -12,7 +12,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Git\n"
 "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2012-02-13 14:24+0800\n"
+"POT-Creation-Date: 2012-03-16 20:18+0800\n"
 "PO-Revision-Date: 2012-01-30 00:00+0800\n"
 "Last-Translator: Jiang Xin <worldhello.net@gmail.com>\n"
 "Language-Team: GitHub <https://github.com/gotgit/git/>\n"
@@ -71,18 +71,18 @@ msgid "failed to close rev-list's stdin: %s"
 msgstr "无法关闭 rev-list 的标准输入:%s"
 
 #  注意保持前导空格
-#: diff.c:104
+#: diff.c:105
 #, c-format
 msgid "  Failed to parse dirstat cut-off percentage '%.*s'\n"
 msgstr "  无法解析 dirstat 阈值 '%.*s'\n"
 
 #  注意保持前导空格
-#: diff.c:109
+#: diff.c:110
 #, c-format
 msgid "  Unknown dirstat parameter '%.*s'\n"
 msgstr "  未知 dirstat 参数 '%.*s'\n"
 
-#: diff.c:208
+#: diff.c:210
 #, c-format
 msgid ""
 "Found errors in 'diff.dirstat' config variable:\n"
@@ -91,7 +91,29 @@ msgstr ""
 "配置变量 'diff.dirstat' 出错:\n"
 "%s"
 
-#: diff.c:3308
+#: diff.c:1336
+msgid " 0 files changed\n"
+msgstr "0 个文件被修改\n"
+
+#: diff.c:1340
+#, c-format
+msgid " %d file changed"
+msgid_plural " %d files changed"
+msgstr[0] " %d 个文件被修改"
+
+#: diff.c:1357
+#, c-format
+msgid ", %d insertion(+)"
+msgid_plural ", %d insertions(+)"
+msgstr[0] ",插入 %d 行(+)"
+
+#: diff.c:1368
+#, c-format
+msgid ", %d deletion(-)"
+msgid_plural ", %d deletions(-)"
+msgstr[0] ",删除 %d 行(-)"
+
+#: diff.c:3424
 #, c-format
 msgid ""
 "Failed to parse --dirstat/-X option parameter:\n"
@@ -112,7 +134,22 @@ msgstr "gpg 没有接受数据"
 msgid "gpg failed to sign the data"
 msgstr "gpg 无法为数据签名"
 
-#: help.c:309
+#: grep.c:1280
+#, c-format
+msgid "'%s': unable to read %s"
+msgstr "'%s':无法读取 %s"
+
+#: grep.c:1297
+#, c-format
+msgid "'%s': %s"
+msgstr "'%s':%s"
+
+#: grep.c:1308
+#, c-format
+msgid "'%s': short read %s"
+msgstr "'%s':读取不完整 %s"
+
+#: help.c:287
 #, c-format
 msgid ""
 "'%s' appears to be a git command, but we were not\n"
@@ -121,20 +158,20 @@ msgstr ""
 "'%s' 像是一个 git 命令,但却无法运行。\n"
 "可能是 git-%s 受损?"
 
-#: remote.c:1576
+#: remote.c:1607
 #, 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"
 
-#: remote.c:1582
+#: remote.c:1613
 #, c-format
 msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
 msgid_plural ""
 "Your branch is behind '%s' by %d commits, and can be fast-forwarded.\n"
-msgstr[0] "您的分支落后 '%s' 共 %d 个提交,且可以快进式推送。\n"
+msgstr[0] "您的分支落后 '%s' 共 %d 个提交,且可以快进。\n"
 
-#: remote.c:1590
+#: remote.c:1621
 #, c-format
 msgid ""
 "Your branch and '%s' have diverged,\n"
@@ -146,19 +183,27 @@ msgstr[0] ""
 "您的分支和 '%s' 出现了偏离,\n"
 "并且各自分别有 %d 和 %d 处不同的提交。\n"
 
-#: sequencer.c:120 builtin/merge.c:862 builtin/merge.c:983
-#: builtin/merge.c:1093 builtin/merge.c:1103
+#: sequencer.c:120 builtin/merge.c:864 builtin/merge.c:985
+#: builtin/merge.c:1095 builtin/merge.c:1105
 #, c-format
 msgid "Could not open '%s' for writing"
-msgstr "无法为写入打开 '%s'"
+msgstr "无法打开 '%s' 以写入"
 
-#: sequencer.c:122 builtin/merge.c:334 builtin/merge.c:865
-#: builtin/merge.c:1095 builtin/merge.c:1108
+#: sequencer.c:122 builtin/merge.c:334 builtin/merge.c:867
+#: builtin/merge.c:1097 builtin/merge.c:1110
 #, c-format
 msgid "Could not write to '%s'"
 msgstr "无法写入 '%s'"
 
-#: sequencer.c:142
+#: sequencer.c:143
+msgid ""
+"after resolving the conflicts, mark the corrected paths\n"
+"with 'git add <paths>' or 'git rm <paths>'"
+msgstr ""
+"冲突解决完毕后,用 'git add <paths>' 或 'git rm <paths>'\n"
+"命令标记修正后的文件"
+
+#: sequencer.c:146
 msgid ""
 "after resolving the conflicts, mark the corrected paths\n"
 "with 'git add <paths>' or 'git rm <paths>'\n"
@@ -167,202 +212,202 @@ msgstr ""
 "冲突解决完毕后,用 'git add <paths>' 或 'git rm <paths>'\n"
 "对修正后的文件做标记,然后用 'git commit' 提交"
 
-#: sequencer.c:154 sequencer.c:680 sequencer.c:763
+#: sequencer.c:159 sequencer.c:685 sequencer.c:768
 #, c-format
 msgid "Could not write to %s"
 msgstr "不能写入 %s"
 
-#: sequencer.c:157
+#: sequencer.c:162
 #, c-format
 msgid "Error wrapping up %s"
 msgstr "错误收尾 %s"
 
-#: sequencer.c:172
+#: sequencer.c:177
 msgid "Your local changes would be overwritten by cherry-pick."
 msgstr "您的本地修改将被拣选操作覆盖。"
 
-#: sequencer.c:174
+#: sequencer.c:179
 msgid "Your local changes would be overwritten by revert."
 msgstr "您的本地修改将被还原操作覆盖。"
 
-#: sequencer.c:177
+#: sequencer.c:182
 msgid "Commit your changes or stash them to proceed."
 msgstr "提交您的修改或保存进度后再继续。"
 
 #. TRANSLATORS: %s will be "revert" or "cherry-pick"
-#: sequencer.c:227
+#: sequencer.c:232
 #, c-format
 msgid "%s: Unable to write new index file"
 msgstr "%s:无法写入新暂存区文件"
 
-#: sequencer.c:293
+#: sequencer.c:298
 msgid "Your index file is unmerged."
 msgstr "您的暂存区文件未完成合并。"
 
-#: sequencer.c:296
+#: sequencer.c:301
 msgid "You do not have a valid HEAD"
 msgstr "您没有一个有效的 HEAD"
 
-#: sequencer.c:311
+#: sequencer.c:316
 #, c-format
 msgid "Commit %s is a merge but no -m option was given."
 msgstr "提交 %s 是一个合并提交但未提供 -m 选项。"
 
-#: sequencer.c:319
+#: sequencer.c:324
 #, c-format
 msgid "Commit %s does not have parent %d"
 msgstr "提交 %s 没有父提交 %d"
 
-#: sequencer.c:323
+#: sequencer.c:328
 #, c-format
 msgid "Mainline was specified but commit %s is not a merge."
 msgstr "提供了主线但提交 %s 不是一个合并。"
 
 #. TRANSLATORS: The first %s will be "revert" or
 #. "cherry-pick", the second %s a SHA1
-#: sequencer.c:334
+#: sequencer.c:339
 #, c-format
 msgid "%s: cannot parse parent commit %s"
 msgstr "%s:不能解析父提交 %s"
 
-#: sequencer.c:338
+#: sequencer.c:343
 #, c-format
 msgid "Cannot get commit message for %s"
 msgstr "不能得到 %s 的提交说明"
 
-#: sequencer.c:422
+#: sequencer.c:427
 #, c-format
 msgid "could not revert %s... %s"
 msgstr "不能还原 %s... %s"
 
-#: sequencer.c:423
+#: sequencer.c:428
 #, c-format
 msgid "could not apply %s... %s"
 msgstr "不能应用 %s... %s"
 
-#: sequencer.c:445 sequencer.c:904 builtin/log.c:286 builtin/log.c:709
-#: builtin/log.c:1325 builtin/log.c:1544 builtin/merge.c:348
+#: sequencer.c:450 sequencer.c:909 builtin/log.c:288 builtin/log.c:713
+#: builtin/log.c:1329 builtin/log.c:1548 builtin/merge.c:348
 #: builtin/shortlog.c:181
 msgid "revision walk setup failed"
 msgstr "版本遍历设置失败"
 
-#: sequencer.c:448
+#: sequencer.c:453
 msgid "empty commit set passed"
 msgstr "提供了空的提交集"
 
-#: sequencer.c:456
+#: sequencer.c:461
 #, c-format
 msgid "git %s: failed to read the index"
 msgstr "git %s: 无法读取暂存区"
 
-#: sequencer.c:461
+#: sequencer.c:466
 #, c-format
 msgid "git %s: failed to refresh the index"
 msgstr "git %s: 无法刷新暂存区"
 
-#: sequencer.c:546
+#: sequencer.c:551
 #, c-format
 msgid "Cannot %s during a %s"
 msgstr "无法 %s 在 %s 过程中"
 
-#: sequencer.c:568
+#: sequencer.c:573
 #, c-format
 msgid "Could not parse line %d."
 msgstr "无法解析第 %d 行。"
 
-#: sequencer.c:573
+#: sequencer.c:578
 msgid "No commits parsed."
 msgstr "未有提交被解析。"
 
-#: sequencer.c:586
+#: sequencer.c:591
 #, c-format
 msgid "Could not open %s"
 msgstr "不能打开 %s"
 
-#: sequencer.c:590
+#: sequencer.c:595
 #, c-format
 msgid "Could not read %s."
 msgstr "不能读取 %s。"
 
-#: sequencer.c:597
+#: sequencer.c:602
 #, c-format
 msgid "Unusable instruction sheet: %s"
 msgstr "无用的指令表单:%s"
 
-#: sequencer.c:625
+#: sequencer.c:630
 #, c-format
 msgid "Invalid key: %s"
 msgstr "无效键名:%s"
 
-#: sequencer.c:628
+#: sequencer.c:633
 #, c-format
 msgid "Invalid value for %s: %s"
 msgstr "无效的 %s 值:%s"
 
-#: sequencer.c:640
+#: sequencer.c:645
 #, c-format
 msgid "Malformed options sheet: %s"
 msgstr "非法的选项表单:%s"
 
-#: sequencer.c:661
+#: sequencer.c:666
 msgid "a cherry-pick or revert is already in progress"
 msgstr "一个拣选或还原操作已在进行"
 
-#: sequencer.c:662
+#: sequencer.c:667
 msgid "try \"git cherry-pick (--continue | --quit | --abort)\""
 msgstr "尝试 \"git cherry-pick (--continue | --quit | --abort)\""
 
-#: sequencer.c:666
+#: sequencer.c:671
 #, c-format
 msgid "Could not create sequencer directory %s"
 msgstr "无法创建序列目录 %s"
 
-#: sequencer.c:682 sequencer.c:767
+#: sequencer.c:687 sequencer.c:772
 #, c-format
 msgid "Error wrapping up %s."
 msgstr "错误收尾 %s。"
 
-#: sequencer.c:701 sequencer.c:835
+#: sequencer.c:706 sequencer.c:840
 msgid "no cherry-pick or revert in progress"
 msgstr "没有拣选或还原操作在进行"
 
-#: sequencer.c:703
+#: sequencer.c:708
 msgid "cannot resolve HEAD"
 msgstr "不能解析 HEAD"
 
-#: sequencer.c:705
+#: sequencer.c:710
 msgid "cannot abort from a branch yet to be born"
 msgstr "不能从未初始分支终止"
 
-#: sequencer.c:727
+#: sequencer.c:732
 #, c-format
 msgid "cannot open %s: %s"
 msgstr "不能打开 %s:%s"
 
-#: sequencer.c:730
+#: sequencer.c:735
 #, c-format
 msgid "cannot read %s: %s"
 msgstr "不能读取 %s:%s"
 
-#: sequencer.c:731
+#: sequencer.c:736
 msgid "unexpected end of file"
 msgstr "未预期的文件结束"
 
-#: sequencer.c:737
+#: sequencer.c:742
 #, c-format
 msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
 msgstr "保存预拣选提交的 HEAD 文件 '%s' 损坏"
 
-#: sequencer.c:760
+#: sequencer.c:765
 #, c-format
 msgid "Could not format %s."
 msgstr "不能格式化 %s。"
 
-#: sequencer.c:922
+#: sequencer.c:927
 msgid "Can't revert as initial commit"
 msgstr "不能作为初始提交还原"
 
-#: sequencer.c:923
+#: sequencer.c:928
 msgid "Can't cherry-pick into empty head"
 msgstr "不能拣选到空分支"
 
@@ -460,15 +505,15 @@ msgstr "双方修改:"
 
 #: wt-status.c:248
 msgid "new commits, "
-msgstr "新提交"
+msgstr "新提交"
 
 #: wt-status.c:250
 msgid "modified content, "
-msgstr "修改的内容"
+msgstr "修改的内容"
 
 #: wt-status.c:252
 msgid "untracked content, "
-msgstr "未跟踪的内容"
+msgstr "未跟踪的内容"
 
 #  为保证在输出中对齐,注意调整句中空格!
 #: wt-status.c:266
@@ -599,7 +644,7 @@ msgstr " (干净的工作区)"
 
 #: wt-status.c:884
 msgid "HEAD (no branch)"
-msgstr "(非分支)"
+msgstr "HEAD(非分支)"
 
 #  注意保持句尾空格
 #: wt-status.c:890
@@ -760,23 +805,25 @@ msgstr "git archive: 协议错误"
 msgid "git archive: expected a flush"
 msgstr "git archive: 预期一个刷新"
 
+#  保持原换行格式,在输出时 %s 的替代内容会让字串变长
 #: builtin/branch.c:137
 #, c-format
 msgid ""
 "deleting branch '%s' that has been merged to\n"
 "         '%s', but not yet merged to HEAD."
 msgstr ""
-"要删除的分支 '%s' 已经合并到\n"
+"将要删除的分支 '%s' 已经被合并到\n"
 "         '%s',但未合并到 HEAD。"
 
+#  保持原换行格式,在输出时 %s 的替代内容会让字串变长
 #: builtin/branch.c:141
 #, c-format
 msgid ""
 "not deleting branch '%s' that is not yet merged to\n"
 "         '%s', even though it is merged to HEAD."
 msgstr ""
-"不要删除分支 '%s' 其尚未合并到\n"
-"         '%s',虽然它已经合并到 HEAD。"
+"并未删除分支 '%s', 虽然它已经合并到 HEAD,\n"
+"         然而却尚未被合并到分支 '%s' 。"
 
 #  汉字之间无空格,故删除尾部空格
 #. TRANSLATORS: This is "remote " in "remote branch '%s' not found"
@@ -819,7 +866,7 @@ msgstr ""
 #: builtin/branch.c:214
 #, c-format
 msgid "Error deleting %sbranch '%s'"
-msgstr "错误删除 %s分支 '%s'"
+msgstr "删除 %s分支 '%s' 时错误"
 
 #: builtin/branch.c:219
 #, c-format
@@ -857,56 +904,56 @@ msgstr "领先 %d,落后 %d] "
 msgid "(no branch)"
 msgstr "(非分支)"
 
-#: builtin/branch.c:562
+#: builtin/branch.c:566
 msgid "some refs could not be read"
 msgstr "一些引用无法读取"
 
-#: builtin/branch.c:575
+#: builtin/branch.c:579
 msgid "cannot rename the current branch while not on any."
 msgstr "无法重命名不存在的当前分支。"
 
-#: builtin/branch.c:585
+#: builtin/branch.c:589
 #, c-format
 msgid "Invalid branch name: '%s'"
 msgstr "无效的分支名:'%s'"
 
-#: builtin/branch.c:600
+#: builtin/branch.c:604
 msgid "Branch rename failed"
 msgstr "分支重命名失败"
 
-#: builtin/branch.c:604
+#: builtin/branch.c:608
 #, c-format
 msgid "Renamed a misnamed branch '%s' away"
 msgstr "重命名掉一个错误命名的旧分支 '%s'"
 
-#: builtin/branch.c:608
+#: builtin/branch.c:612
 #, c-format
 msgid "Branch renamed to %s, but HEAD is not updated!"
 msgstr "分支重命名为 %s,但 HEAD 没有更新!"
 
-#: builtin/branch.c:615
+#: builtin/branch.c:619
 msgid "Branch is renamed, but update of config-file failed"
 msgstr "分支被重命名,但更新 config 文件失败"
 
-#: builtin/branch.c:630
+#: builtin/branch.c:634
 #, c-format
 msgid "malformed object name %s"
 msgstr "非法的对象名 %s"
 
-#: builtin/branch.c:654
+#: builtin/branch.c:658
 #, c-format
 msgid "could not write branch description template: %s\n"
 msgstr "不能写分支描述模版:%s\n"
 
-#: builtin/branch.c:742
+#: builtin/branch.c:746
 msgid "Failed to resolve HEAD as a valid ref."
 msgstr "无法将 HEAD 解析为有效引用。"
 
-#: builtin/branch.c:747 builtin/clone.c:570
+#: builtin/branch.c:751 builtin/clone.c:558
 msgid "HEAD not found below refs/heads!"
 msgstr "未在 /refs/heads 下发现 HEAD!"
 
-#: builtin/branch.c:805
+#: builtin/branch.c:809
 msgid "-a and -r options to 'git branch' do not make sense with a branch name"
 msgstr "'git branch' 的 -a 和 -r 选项带一个分支名参数没有意义"
 
@@ -967,12 +1014,12 @@ msgstr "冲突的暂存区文件"
 msgid "path '%s' is unmerged"
 msgstr "路径 '%s' 未合并"
 
-#: builtin/checkout.c:302 builtin/checkout.c:498 builtin/clone.c:595
-#: builtin/merge.c:809
+#: builtin/checkout.c:302 builtin/checkout.c:498 builtin/clone.c:583
+#: builtin/merge.c:811
 msgid "unable to write new index file"
 msgstr "无法写新的暂存区文件"
 
-#: builtin/checkout.c:319 builtin/diff.c:298 builtin/merge.c:406
+#: builtin/checkout.c:319 builtin/diff.c:302 builtin/merge.c:408
 msgid "diff_setup_done failed"
 msgstr "diff_setup_done 失败"
 
@@ -1077,47 +1124,47 @@ msgstr "无效引用:%s"
 msgid "reference is not a tree: %s"
 msgstr "引用不是一个树:%s"
 
-#: builtin/checkout.c:961
+#: builtin/checkout.c:972
 msgid "-B cannot be used with -b"
 msgstr "-B 不能和 -b 共用"
 
-#: builtin/checkout.c:970
+#: builtin/checkout.c:981
 msgid "--patch is incompatible with all other options"
 msgstr "--patch 选项和其他选项不兼容"
 
-#: builtin/checkout.c:973
+#: builtin/checkout.c:984
 msgid "--detach cannot be used with -b/-B/--orphan"
 msgstr "--detach 不能和 -b/-B/--orphan 共用"
 
-#: builtin/checkout.c:975
+#: builtin/checkout.c:986
 msgid "--detach cannot be used with -t"
 msgstr "--detach 不能和 -t 共用"
 
-#: builtin/checkout.c:981
+#: builtin/checkout.c:992
 msgid "--track needs a branch name"
 msgstr "--track 需要一个分支名"
 
-#: builtin/checkout.c:988
+#: builtin/checkout.c:999
 msgid "Missing branch name; try -b"
 msgstr "缺少分支名;尝试 -b"
 
-#: builtin/checkout.c:994
+#: builtin/checkout.c:1005
 msgid "--orphan and -b|-B are mutually exclusive"
 msgstr "--orphan 和 -b|-B 互斥"
 
-#: builtin/checkout.c:996
+#: builtin/checkout.c:1007
 msgid "--orphan cannot be used with -t"
 msgstr "--orphan 不能和 -t 共用"
 
-#: builtin/checkout.c:1006
+#: builtin/checkout.c:1017
 msgid "git checkout: -f and -m are incompatible"
 msgstr "git checkout: -f 和 -m 不兼容"
 
-#: builtin/checkout.c:1040
+#: builtin/checkout.c:1051
 msgid "invalid path specification"
 msgstr "无效的路径"
 
-#: builtin/checkout.c:1048
+#: builtin/checkout.c:1059
 #, c-format
 msgid ""
 "git checkout: updating paths is incompatible with switching branches.\n"
@@ -1126,15 +1173,15 @@ msgstr ""
 "git checkout: 更新路径和切换分支不兼容。\n"
 "您是想要检出 '%s' 但未能将其解析为提交么?"
 
-#: builtin/checkout.c:1050
+#: builtin/checkout.c:1061
 msgid "git checkout: updating paths is incompatible with switching branches."
 msgstr "git checkout: 更新路径和切换分支不兼容。"
 
-#: builtin/checkout.c:1055
+#: builtin/checkout.c:1066
 msgid "git checkout: --detach does not take a path argument"
 msgstr "git checkout: --detach 不跟路径参数"
 
-#: builtin/checkout.c:1058
+#: builtin/checkout.c:1069
 msgid ""
 "git checkout: --ours/--theirs, --force and --merge are incompatible when\n"
 "checking out of the index."
@@ -1142,11 +1189,11 @@ msgstr ""
 "git checkout: --ours/--theirs, --force 和 --merge 不兼容当\n"
 "检出暂存区时。"
 
-#: builtin/checkout.c:1077
+#: builtin/checkout.c:1088
 msgid "Cannot switch branch to a non-commit."
 msgstr "无法切换分支到一个非提交。"
 
-#: builtin/checkout.c:1080
+#: builtin/checkout.c:1091
 msgid "--ours/--theirs is incompatible with switching branches."
 msgstr "--ours/--theirs 和切换分支不兼容。"
 
@@ -1192,128 +1239,128 @@ msgstr "不会删除 %s\n"
 msgid "Not removing %s\n"
 msgstr "未删除 %s\n"
 
-#: builtin/clone.c:246
+#: builtin/clone.c:243
 #, c-format
 msgid "reference repository '%s' is not a local directory."
 msgstr "引用版本库 '%s' 不是一个本地目录。"
 
-#: builtin/clone.c:313
+#: builtin/clone.c:302
 #, c-format
 msgid "failed to open '%s'"
 msgstr "打开 '%s' 失败"
 
-#: builtin/clone.c:317
+#: builtin/clone.c:306
 #, c-format
 msgid "failed to create directory '%s'"
 msgstr "创建目录 '%s' 失败"
 
-#: builtin/clone.c:319 builtin/diff.c:75
+#: builtin/clone.c:308 builtin/diff.c:75
 #, c-format
 msgid "failed to stat '%s'"
 msgstr "枚举 '%s' 状态失败"
 
-#: builtin/clone.c:321
+#: builtin/clone.c:310
 #, c-format
 msgid "%s exists and is not a directory"
 msgstr "%s 存在且不是一个目录"
 
-#: builtin/clone.c:335
+#: builtin/clone.c:324
 #, c-format
 msgid "failed to stat %s\n"
 msgstr "枚举 %s 状态失败\n"
 
-#: builtin/clone.c:352
+#: builtin/clone.c:341
 #, c-format
 msgid "failed to unlink '%s'"
 msgstr "删除 '%s' 失败"
 
-#: builtin/clone.c:357
+#: builtin/clone.c:346
 #, c-format
 msgid "failed to create link '%s'"
 msgstr "创建链接 '%s' 失败"
 
-#: builtin/clone.c:361
+#: builtin/clone.c:350
 #, c-format
 msgid "failed to copy file to '%s'"
 msgstr "拷贝文件至 '%s' 失败"
 
-#: builtin/clone.c:384
+#: builtin/clone.c:373
 #, c-format
 msgid "done.\n"
 msgstr "完成。\n"
 
-#: builtin/clone.c:451
+#: builtin/clone.c:440
 #, c-format
 msgid "Could not find remote branch %s to clone."
 msgstr "无法发现要克隆的远程分支 %s。"
 
-#: builtin/clone.c:561
+#: builtin/clone.c:549
 msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
 msgstr "远程 HEAD 指向一个不存在的引用,无法检出。\n"
 
-#: builtin/clone.c:651
+#: builtin/clone.c:639
 msgid "Too many arguments."
 msgstr "太多参数。"
 
-#: builtin/clone.c:655
+#: builtin/clone.c:643
 msgid "You must specify a repository to clone."
 msgstr "你必须指定一个版本库来克隆"
 
-#: builtin/clone.c:666
+#: builtin/clone.c:654
 #, c-format
 msgid "--bare and --origin %s options are incompatible."
 msgstr "--bare 和 --origin %s 选项不兼容。"
 
-#: builtin/clone.c:680
+#: builtin/clone.c:668
 #, c-format
 msgid "repository '%s' does not exist"
 msgstr "版本库 '%s' 不存在"
 
-#: builtin/clone.c:685
+#: builtin/clone.c:673
 msgid "--depth is ignored in local clones; use file:// instead."
 msgstr "--depth 在本地克隆被忽略,改为 file:// 协议试试。"
 
-#: builtin/clone.c:695
+#: builtin/clone.c:683
 #, c-format
 msgid "destination path '%s' already exists and is not an empty directory."
 msgstr "目标路径 '%s' 已经存在且不是一个空目录。"
 
-#: builtin/clone.c:705
+#: builtin/clone.c:693
 #, c-format
 msgid "working tree '%s' already exists."
 msgstr "工作区 '%s' 已经存在。"
 
-#: builtin/clone.c:718 builtin/clone.c:732
+#: builtin/clone.c:706 builtin/clone.c:720
 #, c-format
 msgid "could not create leading directories of '%s'"
 msgstr "无法为 '%s' 创建目录"
 
-#: builtin/clone.c:721
+#: builtin/clone.c:709
 #, c-format
 msgid "could not create work tree dir '%s'."
 msgstr "无法为 '%s' 创建工作区目录。"
 
-#: builtin/clone.c:740
+#: builtin/clone.c:728
 #, c-format
 msgid "Cloning into bare repository '%s'...\n"
 msgstr "克隆到裸版本库 '%s'...\n"
 
-#: builtin/clone.c:742
+#: builtin/clone.c:730
 #, c-format
 msgid "Cloning into '%s'...\n"
 msgstr "正克隆到 '%s'...\n"
 
-#: builtin/clone.c:798
+#: builtin/clone.c:786
 #, c-format
 msgid "Don't know how to clone %s"
 msgstr "不知道如何克隆 %s"
 
-#: builtin/clone.c:847
+#: builtin/clone.c:835
 #, c-format
 msgid "Remote branch %s not found in upstream %s"
 msgstr "远程分支 %s 在上游 %s 未发现"
 
-#: builtin/clone.c:854
+#: builtin/clone.c:842
 msgid "You appear to have cloned an empty repository."
 msgstr "您似乎克隆了一个空版本库。"
 
@@ -1346,8 +1393,8 @@ msgid ""
 "it empty. You can repeat your command with --allow-empty, or you can\n"
 "remove the commit entirely with \"git reset HEAD^\".\n"
 msgstr ""
-"您要求修补最近的提交,但这么做会造成空提交。您可重复您的命令并带上\n"
-"--allow-empty 选项,或者您可以整个删除该提交用 \"git reset HEAD^\"。\n"
+"您要修补最近的提交,但这么做会让它成为空提交。您可以重复您的命令并带上\n"
+"--allow-empty 选项,或者您可用命令 \"git reset HEAD^\" 整个删除该提交。\n"
 
 #: builtin/commit.c:59
 msgid ""
@@ -1358,11 +1405,12 @@ msgid ""
 "\n"
 "Otherwise, please use 'git reset'\n"
 msgstr ""
-"之前的拣选操作现在为空,可能是由冲突解决导致的。如果您想继续提交,用:\n"
+"之前的拣选操作现在是一个空提交,可能是由冲突解决导致的。如果您无论如何\n"
+"也要提交,使用命令:\n"
 "\n"
 "    git commit --allow-empty\n"
 "\n"
-"否则,请 'git reset'\n"
+"否则,请使用命令 'git reset'\n"
 
 #: builtin/commit.c:205 builtin/reset.c:33
 msgid "merge"
@@ -1477,28 +1525,29 @@ msgstr ""
 "\t%s\n"
 "然后重试。\n"
 
-#  注意保持前导空格
 #: builtin/commit.c:796
 msgid "Please enter the commit message for your changes."
 msgstr "请为您的修改输入提交说明。"
 
+#  前导空格用于拼接英文字串,中文字串拼接无需空格
 #: builtin/commit.c:799
 msgid ""
 " Lines starting\n"
 "with '#' will be ignored, and an empty message aborts the commit.\n"
 msgstr ""
-" 以 '#' 开头\n"
-"的行将被忽略,而且空提交说明将会终止提交。\n"
+"以 '#' 开头\n"
+"的行将被忽略,并且空的提交说明将会中止提交。\n"
 
-#  注意保持前导空格
+#  前导空格用于拼接英文字串,中文字串拼接无需空格
 #: builtin/commit.c:804
 msgid ""
 " Lines starting\n"
 "with '#' will be kept; you may remove them yourself if you want to.\n"
 "An empty message aborts the commit.\n"
 msgstr ""
-" 以 '#' 开头\n"
-"的行将被保留,您可以删除它们如果您想这样做。空提交说明将会终止提交。\n"
+"以 '#' 开头\n"
+"的行将被保留,您可以删除它们如果您想这样做的话。空的提交说明将会\n"
+"中止提交。\n"
 
 #  为保证在输出中对齐,注意调整句中空格!
 #: builtin/commit.c:816
@@ -1520,7 +1569,7 @@ msgstr "无法读取暂存区"
 msgid "Error building trees"
 msgstr "无法创建树对象"
 
-#: builtin/commit.c:895 builtin/tag.c:324
+#: builtin/commit.c:895 builtin/tag.c:357
 #, c-format
 msgid "Please supply the message using either -m or -F option.\n"
 msgstr "请使用 -m 或者 -F 选项提供说明。\n"
@@ -1581,7 +1630,7 @@ msgstr "聪明... 在暂存区不干净下修补最后的提交。"
 msgid "Explicit paths specified without -i nor -o; assuming --only paths..."
 msgstr "没有用 -i 或 -o 选项而显式地提供路径,认为是 --only paths..."
 
-#: builtin/commit.c:1096 builtin/tag.c:500
+#: builtin/commit.c:1096 builtin/tag.c:556
 #, c-format
 msgid "Invalid cleanup mode %s"
 msgstr "无效的清理模式 %s"
@@ -1611,7 +1660,7 @@ msgstr " (根提交)"
 msgid "could not parse HEAD commit"
 msgstr "无法解析 HEAD 提交"
 
-#: builtin/commit.c:1452 builtin/merge.c:507
+#: builtin/commit.c:1452 builtin/merge.c:509
 #, c-format
 msgid "could not open '%s' for reading"
 msgstr "无法打开 '%s' 读取"
@@ -1635,7 +1684,7 @@ msgstr "无法读取提交说明:%s"
 msgid "Aborting commit due to empty commit message.\n"
 msgstr "终止提交因为提交说明为空。\n"
 
-#: builtin/commit.c:1514 builtin/merge.c:933 builtin/merge.c:966
+#: builtin/commit.c:1514 builtin/merge.c:935 builtin/merge.c:968
 msgid "failed to write commit object"
 msgstr "写提交对象失败"
 
@@ -1750,26 +1799,26 @@ msgstr "'%s':不是一个正规文件或符号链接"
 msgid "invalid option: %s"
 msgstr "无效选项:%s"
 
-#: builtin/diff.c:293
+#: builtin/diff.c:297
 msgid "Not a git repository"
 msgstr "不是一个 git 版本库"
 
-#: builtin/diff.c:343
+#: builtin/diff.c:347
 #, c-format
 msgid "invalid object '%s' given."
 msgstr "提供了无效对象 '%s'。"
 
-#: builtin/diff.c:348
+#: builtin/diff.c:352
 #, c-format
 msgid "more than %d trees given: '%s'"
 msgstr "提供了超过 %d 个树对象:'%s'"
 
-#: builtin/diff.c:358
+#: builtin/diff.c:362
 #, c-format
 msgid "more than two blobs given: '%s'"
 msgstr "提供了超过两个 blob 对象:'%s'"
 
-#: builtin/diff.c:366
+#: builtin/diff.c:370
 #, c-format
 msgid "unhandled object '%s' given."
 msgstr "提供了无法处理的对象 '%s'。"
@@ -1959,77 +2008,62 @@ msgid ""
 "There are too many unreachable loose objects; run 'git prune' to remove them."
 msgstr "有太多无指向的松散对象,运行 'git prune' 删除它们。"
 
-#: builtin/grep.c:275
+#: builtin/grep.c:216
 #, c-format
 msgid "grep: failed to create thread: %s"
 msgstr "grep: 无法创建线程:%s"
 
-#: builtin/grep.c:390
-#, c-format
-msgid "'%s': unable to read %s"
-msgstr "'%s':无法读取 %s"
-
-#: builtin/grep.c:441
-#, c-format
-msgid "'%s': %s"
-msgstr "'%s':%s"
-
-#: builtin/grep.c:452
-#, c-format
-msgid "'%s': short read %s"
-msgstr "'%s':读取不完整 %s"
-
-#: builtin/grep.c:514
+#: builtin/grep.c:402
 #, c-format
 msgid "Failed to chdir: %s"
 msgstr "无法切换目录:%s"
 
-#: builtin/grep.c:590 builtin/grep.c:624
+#: builtin/grep.c:478 builtin/grep.c:512
 #, c-format
 msgid "unable to read tree (%s)"
 msgstr "无法读取代码树(%s)"
 
-#: builtin/grep.c:638
+#: builtin/grep.c:526
 #, c-format
 msgid "unable to grep from object of type %s"
 msgstr "无法抓取来自于 %s 类型的对象"
 
-#: builtin/grep.c:696
+#: builtin/grep.c:584
 #, c-format
 msgid "switch `%c' expects a numerical value"
 msgstr "开关 `%c' 期望一个数字值"
 
-#: builtin/grep.c:713
+#: builtin/grep.c:601
 #, c-format
 msgid "cannot open '%s'"
 msgstr "不能打开 '%s'"
 
-#: builtin/grep.c:1001
+#: builtin/grep.c:888
 msgid "no pattern given."
 msgstr "未提供模式匹配。"
 
-#: builtin/grep.c:1015
+#: builtin/grep.c:902
 #, c-format
 msgid "bad object %s"
 msgstr "坏对象 %s"
 
-#: builtin/grep.c:1058
+#: builtin/grep.c:943
 msgid "--open-files-in-pager only works on the worktree"
 msgstr "--open-files-in-pager 仅用于工作区"
 
-#: builtin/grep.c:1081
+#: builtin/grep.c:966
 msgid "--cached or --untracked cannot be used with --no-index."
 msgstr "--cached 或 --untracked 不能与 --no-index 共用"
 
-#: builtin/grep.c:1086
+#: builtin/grep.c:971
 msgid "--no-index or --untracked cannot be used with revs."
 msgstr "--no-index 或 --untracked 不能和版本共用。"
 
-#: builtin/grep.c:1089
+#: builtin/grep.c:974
 msgid "--[no-]exclude-standard cannot be used for tracked contents."
 msgstr "--[no-]exclude-standard 不能用于跟踪内容。"
 
-#: builtin/grep.c:1097
+#: builtin/grep.c:982
 msgid "both --cached and trees are given."
 msgstr "同时给出了 --cached 和树对象。"
 
@@ -2177,109 +2211,109 @@ msgstr "不能访问当前工作目录"
 msgid "Cannot access work tree '%s'"
 msgstr "不能访问工作区 '%s'"
 
-#: builtin/log.c:185
+#: builtin/log.c:187
 #, c-format
 msgid "Final output: %d %s\n"
 msgstr "最终输出:%d %s\n"
 
-#: builtin/log.c:393 builtin/log.c:479
+#: builtin/log.c:395 builtin/log.c:483
 #, c-format
 msgid "Could not read object %s"
 msgstr "无法读取对象 %s"
 
-#: builtin/log.c:503
+#: builtin/log.c:507
 #, c-format
 msgid "Unknown type: %d"
 msgstr "未知类型:%d"
 
-#: builtin/log.c:592
+#: builtin/log.c:596
 msgid "format.headers without value"
 msgstr "format.headers 没有值"
 
-#: builtin/log.c:665
+#: builtin/log.c:669
 msgid "name of output directory is too long"
 msgstr "输出目录名太长"
 
-#: builtin/log.c:676
+#: builtin/log.c:680
 #, c-format
 msgid "Cannot open patch file %s"
 msgstr "无法打开补丁文件 %s"
 
-#: builtin/log.c:690
+#: builtin/log.c:694
 msgid "Need exactly one range."
 msgstr "只需要一个范围。"
 
-#: builtin/log.c:698
+#: builtin/log.c:702
 msgid "Not a range."
 msgstr "不是一个范围。"
 
-#: builtin/log.c:735
+#: builtin/log.c:739
 msgid "Could not extract email from committer identity."
 msgstr "无法从提交者身份中提取邮件地址。"
 
-#: builtin/log.c:781
+#: builtin/log.c:785
 msgid "Cover letter needs email format"
 msgstr "信封需要邮件地址格式"
 
-#: builtin/log.c:875
+#: builtin/log.c:879
 #, c-format
 msgid "insane in-reply-to: %s"
 msgstr "不正常的 in-reply-to:%s"
 
-#: builtin/log.c:948
+#: builtin/log.c:952
 msgid "Two output directories?"
 msgstr "两个输出目录?"
 
-#: builtin/log.c:1169
+#: builtin/log.c:1173
 #, c-format
 msgid "bogus committer info %s"
 msgstr "虚假的提交者信息 %s"
 
-#: builtin/log.c:1214
+#: builtin/log.c:1218
 msgid "-n and -k are mutually exclusive."
 msgstr "-n 和 -k 互斥。"
 
-#: builtin/log.c:1216
+#: builtin/log.c:1220
 msgid "--subject-prefix and -k are mutually exclusive."
 msgstr "--subject-prefix 和 -k 互斥。"
 
-#: builtin/log.c:1221 builtin/shortlog.c:284
+#: builtin/log.c:1225 builtin/shortlog.c:284
 #, c-format
 msgid "unrecognized argument: %s"
 msgstr "未识别的参数:%s"
 
-#: builtin/log.c:1224
+#: builtin/log.c:1228
 msgid "--name-only does not make sense"
 msgstr "--name-only 无意义"
 
-#: builtin/log.c:1226
+#: builtin/log.c:1230
 msgid "--name-status does not make sense"
 msgstr "--name-status 无意义"
 
-#: builtin/log.c:1228
+#: builtin/log.c:1232
 msgid "--check does not make sense"
 msgstr "--check 无意义"
 
-#: builtin/log.c:1251
+#: builtin/log.c:1255
 msgid "standard output, or directory, which one?"
 msgstr "标准输出或目录,哪一个?"
 
-#: builtin/log.c:1253
+#: builtin/log.c:1257
 #, c-format
 msgid "Could not create directory '%s'"
 msgstr "无法创建目录 '%s'"
 
-#: builtin/log.c:1406
+#: builtin/log.c:1410
 msgid "Failed to create output files"
 msgstr "无法创建输出文件"
 
-#: builtin/log.c:1510
+#: builtin/log.c:1514
 #, c-format
 msgid ""
 "Could not find a tracked remote branch, please specify <upstream> manually.\n"
 msgstr "无法找到跟踪的远程分支,请手工提供 <upstream>。\n"
 
-#: builtin/log.c:1526 builtin/log.c:1528 builtin/log.c:1540
+#: builtin/log.c:1530 builtin/log.c:1532 builtin/log.c:1544
 #, c-format
 msgid "Unknown commit %s"
 msgstr "未知提交 %s"
@@ -2343,53 +2377,53 @@ msgstr "完成 SQUASH_MSG"
 msgid "No merge message -- not updating HEAD\n"
 msgstr "无合并信息 -- 未更新 HEAD\n"
 
-#: builtin/merge.c:435
+#: builtin/merge.c:437
 #, c-format
 msgid "'%s' does not point to a commit"
 msgstr "'%s' 没有指向一个提交"
 
-#: builtin/merge.c:534
+#: builtin/merge.c:536
 #, c-format
 msgid "Bad branch.%s.mergeoptions string: %s"
 msgstr "错的 branch.%s.mergeoptions 字串:%s"
 
-#: builtin/merge.c:627
+#: builtin/merge.c:629
 msgid "git write-tree failed to write a tree"
 msgstr "git write-tree 无法写入一树对象"
 
-#: builtin/merge.c:677
+#: builtin/merge.c:679
 msgid "failed to read the cache"
 msgstr "无法读取缓存"
 
-#: builtin/merge.c:694
+#: builtin/merge.c:696
 msgid "Unable to write index."
 msgstr "不能写暂存区。"
 
-#: builtin/merge.c:707
+#: builtin/merge.c:709
 msgid "Not handling anything other than two heads merge."
 msgstr "不能处理两个头合并之外的任何操作。"
 
-#: builtin/merge.c:721
+#: builtin/merge.c:723
 #, c-format
 msgid "Unknown option for merge-recursive: -X%s"
 msgstr "merge-recursive 的未知选项:-X%s"
 
-#: builtin/merge.c:735
+#: builtin/merge.c:737
 #, c-format
 msgid "unable to write %s"
 msgstr "不能写 %s"
 
-#: builtin/merge.c:874
+#: builtin/merge.c:876
 #, c-format
 msgid "Could not read from '%s'"
 msgstr "不能从 '%s' 读取"
 
-#: builtin/merge.c:883
+#: builtin/merge.c:885
 #, c-format
 msgid "Not committing merge; use 'git commit' to complete the merge.\n"
 msgstr "未提交合并,使用 'git commit' 完成此次合并。\n"
 
-#: builtin/merge.c:889
+#: builtin/merge.c:891
 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"
@@ -2402,47 +2436,47 @@ msgstr ""
 "\n"
 "以 '#' 开头的行将被忽略,而且空提交说明将会终止提交。\n"
 
-#: builtin/merge.c:913
+#: builtin/merge.c:915
 msgid "Empty commit message."
 msgstr "空提交信息。"
 
-#: builtin/merge.c:925
+#: builtin/merge.c:927
 #, c-format
 msgid "Wonderful.\n"
 msgstr "太棒了。\n"
 
-#: builtin/merge.c:998
+#: builtin/merge.c:1000
 #, c-format
 msgid "Automatic merge failed; fix conflicts and then commit the result.\n"
 msgstr "自动合并失败,修正冲突然后提交修正的结果。\n"
 
-#: builtin/merge.c:1014
+#: builtin/merge.c:1016
 #, c-format
 msgid "'%s' is not a commit"
 msgstr "'%s' 不是一个提交"
 
-#: builtin/merge.c:1055
+#: builtin/merge.c:1057
 msgid "No current branch."
 msgstr "当前不在分支上。"
 
-#: builtin/merge.c:1057
+#: builtin/merge.c:1059
 msgid "No remote for the current branch."
 msgstr "当前分支没有远程版本库。"
 
-#: builtin/merge.c:1059
+#: builtin/merge.c:1061
 msgid "No default upstream defined for the current branch."
 msgstr "当前分支未定义默认上游分支。"
 
-#: builtin/merge.c:1064
+#: builtin/merge.c:1066
 #, c-format
 msgid "No remote tracking branch for %s from %s"
 msgstr "%s 没有来自 %s 的远程跟踪分支"
 
-#: builtin/merge.c:1186
+#: builtin/merge.c:1188
 msgid "There is no merge to abort (MERGE_HEAD missing)."
 msgstr "没有要终止的合并(MERGE_HEAD 丢失)"
 
-#: builtin/merge.c:1202 git-pull.sh:31
+#: builtin/merge.c:1204 git-pull.sh:31
 msgid ""
 "You have not concluded your merge (MERGE_HEAD exists).\n"
 "Please, commit your changes before you can merge."
@@ -2450,11 +2484,11 @@ msgstr ""
 "您尚未结束您的合并(存在 MERGE_HEAD)。\n"
 "请先提交您的修改,您才能合并。"
 
-#: builtin/merge.c:1205 git-pull.sh:34
+#: builtin/merge.c:1207 git-pull.sh:34
 msgid "You have not concluded your merge (MERGE_HEAD exists)."
 msgstr "您尚未结束您的合并(存在 MERGE_HEAD)。"
 
-#: builtin/merge.c:1209
+#: builtin/merge.c:1211
 msgid ""
 "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
 "Please, commit your changes before you can merge."
@@ -2462,84 +2496,84 @@ msgstr ""
 "您尚未结束您的拣选(存在 CHERRY_PICK_HEAD)。\n"
 "请先提交您的修改,您才能合并。"
 
-#: builtin/merge.c:1212
+#: builtin/merge.c:1214
 msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)."
 msgstr "您尚未结束您的拣选(存在 CHERRY_PICK_HEAD)。"
 
-#: builtin/merge.c:1221
+#: builtin/merge.c:1223
 msgid "You cannot combine --squash with --no-ff."
 msgstr "您不能将 --squash 与 --no-ff 共用。"
 
-#: builtin/merge.c:1226
+#: builtin/merge.c:1228
 msgid "You cannot combine --no-ff with --ff-only."
 msgstr "您不能将 --no-ff 与 --ff-only 共用。"
 
-#: builtin/merge.c:1233
+#: builtin/merge.c:1235
 msgid "No commit specified and merge.defaultToUpstream not set."
 msgstr "未指出提交并且 merge.defaultToUpstream 未设置。"
 
-#: builtin/merge.c:1264
+#: builtin/merge.c:1266
 msgid "Can merge only exactly one commit into empty head"
 msgstr "只可将一个提交合并到空分支上"
 
-#: builtin/merge.c:1267
+#: builtin/merge.c:1269
 msgid "Squash commit into empty head not supported yet"
 msgstr "尚不支持到空分支的压缩提交"
 
-#: builtin/merge.c:1269
+#: builtin/merge.c:1271
 msgid "Non-fast-forward commit does not make sense into an empty head"
 msgstr "到空分支的非快进式提交没有意义"
 
-#: builtin/merge.c:1273 builtin/merge.c:1317
+#: builtin/merge.c:1275 builtin/merge.c:1319
 #, c-format
 msgid "%s - not something we can merge"
-msgstr "%s - 不是我们可以合并的东西"
+msgstr "%s - 不能被合并"
 
-#: builtin/merge.c:1382
+#: builtin/merge.c:1385
 #, c-format
 msgid "Updating %s..%s\n"
 msgstr "更新 %s..%s\n"
 
-#: builtin/merge.c:1420
+#: builtin/merge.c:1423
 #, c-format
 msgid "Trying really trivial in-index merge...\n"
 msgstr "尝试非常小的暂存区内合并...\n"
 
-#: builtin/merge.c:1427
+#: builtin/merge.c:1430
 #, c-format
 msgid "Nope.\n"
 msgstr "无。\n"
 
-#: builtin/merge.c:1459
+#: builtin/merge.c:1462
 msgid "Not possible to fast-forward, aborting."
-msgstr "不可能快进式,终止。"
+msgstr "无法快进,终止。"
 
-#: builtin/merge.c:1482 builtin/merge.c:1559
+#: builtin/merge.c:1485 builtin/merge.c:1562
 #, c-format
 msgid "Rewinding the tree to pristine...\n"
 msgstr "将树回滚至原始状态...\n"
 
-#: builtin/merge.c:1486
+#: builtin/merge.c:1489
 #, c-format
 msgid "Trying merge strategy %s...\n"
 msgstr "尝试合并策略 %s...\n"
 
-#: builtin/merge.c:1550
+#: builtin/merge.c:1553
 #, c-format
 msgid "No merge strategy handled the merge.\n"
 msgstr "没有合并策略处理此合并。\n"
 
-#: builtin/merge.c:1552
+#: builtin/merge.c:1555
 #, c-format
 msgid "Merge with strategy %s failed.\n"
 msgstr "使用策略 %s 合并失败。\n"
 
-#: builtin/merge.c:1561
+#: builtin/merge.c:1564
 #, c-format
 msgid "Using the %s to prepare resolving by hand.\n"
 msgstr "使用 %s 以准备手工解决。\n"
 
-#: builtin/merge.c:1572
+#: builtin/merge.c:1575
 #, c-format
 msgid "Automatic merge went well; stopped before committing as requested\n"
 msgstr "自动合并进展顺利,按要求在提交前停止\n"
@@ -2625,7 +2659,7 @@ msgstr "无法为对象 '%s' 的 'show' 关闭管道"
 msgid "failed to finish 'show' for object '%s'"
 msgstr "无法为对象 '%s' 完成 'show'"
 
-#: builtin/notes.c:175 builtin/tag.c:310
+#: builtin/notes.c:175 builtin/tag.c:343
 #, c-format
 msgid "could not create file '%s'"
 msgstr "不能创建文件 '%s'"
@@ -2648,12 +2682,12 @@ msgstr "不能写注解对象"
 msgid "The note contents has been left in %s"
 msgstr "注解内容被留在文件 %s 中"
 
-#: builtin/notes.c:251 builtin/tag.c:465
+#: builtin/notes.c:251 builtin/tag.c:521
 #, c-format
 msgid "cannot read '%s'"
 msgstr "不能读取 '%s'"
 
-#: builtin/notes.c:253 builtin/tag.c:468
+#: builtin/notes.c:253 builtin/tag.c:524
 #, c-format
 msgid "could not open or read '%s'"
 msgstr "不能打开或读取 '%s'"
@@ -2661,7 +2695,7 @@ msgstr "不能打开或读取 '%s'"
 #: builtin/notes.c:272 builtin/notes.c:445 builtin/notes.c:447
 #: builtin/notes.c:507 builtin/notes.c:561 builtin/notes.c:644
 #: builtin/notes.c:649 builtin/notes.c:724 builtin/notes.c:766
-#: builtin/notes.c:968 builtin/reset.c:293 builtin/tag.c:481
+#: builtin/notes.c:968 builtin/reset.c:293 builtin/tag.c:537
 #, c-format
 msgid "Failed to resolve '%s' as a valid ref."
 msgstr "无法解析 '%s' 为一个有效引用"
@@ -2760,6 +2794,26 @@ msgstr "对象 %s 没有注解\n"
 msgid "Unknown subcommand: %s"
 msgstr "未知子命令:%s"
 
+#: builtin/pack-objects.c:2310
+#, c-format
+msgid "unsupported index version %s"
+msgstr "不支持的暂存区版本 %s"
+
+#: builtin/pack-objects.c:2314
+#, c-format
+msgid "bad index version '%s'"
+msgstr "错误的暂存区版本 '%s'"
+
+#: builtin/pack-objects.c:2322
+#, c-format
+msgid "option %s does not accept negative form"
+msgstr "选项 '%s' 不接受否定格式"
+
+#: builtin/pack-objects.c:2326
+#, c-format
+msgid "unable to parse value '%s' for option %s"
+msgstr "不能解析值 '%s' 针对于选项 %s"
+
 #: builtin/push.c:44
 msgid "tag shorthand without <tag>"
 msgstr "tag 简写没有跟 <tag> 参数"
@@ -2872,11 +2926,11 @@ msgstr "--mirror 不能和引用表达式共用"
 msgid "--all and --mirror are incompatible"
 msgstr "--all 和 --mirror 不兼容"
 
-#: builtin/push.c:272
+#: builtin/push.c:274
 msgid "--delete is incompatible with --all, --mirror and --tags"
 msgstr "--delete 与 --all、--mirror 及 --tags 不兼容"
 
-#: builtin/push.c:274
+#: builtin/push.c:276
 msgid "--delete doesn't make sense without any refs"
 msgstr "--delete 未接任何引用没有意义"
 
@@ -3021,27 +3075,32 @@ msgstr "git rm:不能删除 %s"
 msgid "Missing author: %s"
 msgstr "缺少作者:%s"
 
-#: builtin/tag.c:172
+#: builtin/tag.c:58
+#, c-format
+msgid "malformed object at '%s'"
+msgstr "非法的对象于 '%s'"
+
+#: builtin/tag.c:205
 #, c-format
 msgid "tag name too long: %.*s..."
 msgstr "tag 名字太长:%.*s..."
 
-#: builtin/tag.c:177
+#: builtin/tag.c:210
 #, c-format
 msgid "tag '%s' not found."
 msgstr "tag '%s' 未发现。"
 
-#: builtin/tag.c:192
+#: builtin/tag.c:225
 #, c-format
 msgid "Deleted tag '%s' (was %s)\n"
 msgstr "已删除 tag '%s'(曾为 %s)\n"
 
-#: builtin/tag.c:204
+#: builtin/tag.c:237
 #, c-format
 msgid "could not verify the tag '%s'"
 msgstr "不能校验 tag '%s'"
 
-#: builtin/tag.c:214
+#: builtin/tag.c:247
 msgid ""
 "\n"
 "#\n"
@@ -3055,7 +3114,7 @@ msgstr ""
 "# 以 '#' 开头的行将被忽略。\n"
 "#\n"
 
-#: builtin/tag.c:221
+#: builtin/tag.c:254
 msgid ""
 "\n"
 "#\n"
@@ -3070,68 +3129,81 @@ msgstr ""
 "# 以 '#' 开头的行将被忽略,您可以删除它们如果您想这样做。\n"
 "#\n"
 
-#: builtin/tag.c:261
+#: builtin/tag.c:294
 msgid "unable to sign the tag"
 msgstr "无法签署 tag"
 
-#: builtin/tag.c:263
+#: builtin/tag.c:296
 msgid "unable to write tag file"
 msgstr "无法写 tag 文件"
 
-#: builtin/tag.c:288
+#: builtin/tag.c:321
 msgid "bad object type."
 msgstr "无效的对象类型"
 
-#: builtin/tag.c:301
+#: builtin/tag.c:334
 msgid "tag header too big."
 msgstr "tag 头信息太大"
 
-#: builtin/tag.c:333
+#: builtin/tag.c:366
 msgid "no tag message?"
 msgstr "无 tag 说明?"
 
-#: builtin/tag.c:339
+#: builtin/tag.c:372
 #, c-format
 msgid "The tag message has been left in %s\n"
 msgstr "tag 说明被保留在 %s\n"
 
-#: builtin/tag.c:448
+#: builtin/tag.c:421
+msgid "switch 'points-at' requires an object"
+msgstr "开关 'points-at' 需要一个对象"
+
+#: builtin/tag.c:423
+#, c-format
+msgid "malformed object name '%s'"
+msgstr "非法的对象名 '%s'"
+
+#: builtin/tag.c:502
 msgid "-n option is only allowed with -l."
 msgstr "-n 选项只允许和 -l 共用。"
 
-#: builtin/tag.c:450
+#: builtin/tag.c:504
 msgid "--contains option is only allowed with -l."
 msgstr "--contains 选项只允许和 -l 共用。"
 
-#: builtin/tag.c:458
+#: builtin/tag.c:506
+msgid "--points-at option is only allowed with -l."
+msgstr "--points-at 选项只允许和 -l 共用。"
+
+#: builtin/tag.c:514
 msgid "only one -F or -m option is allowed."
 msgstr "只允许一个 -F 或 -m 选项。"
 
-#: builtin/tag.c:478
+#: builtin/tag.c:534
 msgid "too many params"
 msgstr "太多参数"
 
-#: builtin/tag.c:484
+#: builtin/tag.c:540
 #, c-format
 msgid "'%s' is not a valid tag name."
 msgstr "'%s' 不是一个有效的tag名称"
 
-#: builtin/tag.c:489
+#: builtin/tag.c:545
 #, c-format
 msgid "tag '%s' already exists"
 msgstr "tag '%s' 已存在"
 
-#: builtin/tag.c:507
+#: builtin/tag.c:563
 #, c-format
 msgid "%s: cannot lock the ref"
 msgstr "%s:不能锁定引用"
 
-#: builtin/tag.c:509
+#: builtin/tag.c:565
 #, c-format
 msgid "%s: cannot update the ref"
 msgstr "%s:不能更新引用"
 
-#: builtin/tag.c:511
+#: builtin/tag.c:567
 #, c-format
 msgid "Updated tag '%s' (was %s)\n"
 msgstr "已更新tag '%s'(曾为 %s)\n"
@@ -3140,11 +3212,11 @@ msgstr "已更新tag '%s'(曾为 %s)\n"
 msgid "You need to set your committer info first"
 msgstr "您需要先设置你的提交者信息"
 
-#: git-am.sh:135
+#: git-am.sh:136
 msgid "Repository lacks necessary blobs to fall back on 3-way merge."
 msgstr "版本库缺乏必要的 blob 数据以进行三路合并。"
 
-#: git-am.sh:144
+#: git-am.sh:147
 msgid ""
 "Did you hand edit your patch?\n"
 "It does not apply to blobs recorded in its index."
@@ -3152,46 +3224,46 @@ msgstr ""
 "您是否曾手动编辑过您的补丁?\n"
 "无法应用补丁到暂存区的数据中。"
 
-#: git-am.sh:153
+#: git-am.sh:156
 msgid "Falling back to patching base and 3-way merge..."
 msgstr "转而使用补丁应用的基础版本和三路合并..."
 
-#: git-am.sh:265
+#: git-am.sh:268
 msgid "Only one StGIT patch series can be applied at once"
 msgstr "一次只能有一个 StGIT 补丁队列被应用"
 
-#: git-am.sh:352
+#: git-am.sh:355
 #, sh-format
 msgid "Patch format $patch_format is not supported."
 msgstr "不支持 $patch_format 补丁格式。"
 
-#: git-am.sh:354
+#: git-am.sh:357
 msgid "Patch format detection failed."
 msgstr "补丁格式检测失败。"
 
-#: git-am.sh:406
+#: git-am.sh:411
 msgid "-d option is no longer supported.  Do not use."
 msgstr "不再支持 -d 选项。不要使用。"
 
-#: git-am.sh:469
+#: git-am.sh:474
 #, sh-format
 msgid "previous rebase directory $dotest still exists but mbox given."
 msgstr "之前的变基目录 $dotest 仍然存在但给出了mbox。"
 
-#: git-am.sh:474
+#: git-am.sh:479
 msgid "Please make up your mind. --skip or --abort?"
 msgstr "请下决心。--skip 或是 --abort ?"
 
-#: git-am.sh:501
+#: git-am.sh:506
 msgid "Resolve operation not in progress, we are not resuming."
 msgstr "解决操作未进行,我们不会继续。"
 
-#: git-am.sh:567
+#: git-am.sh:572
 #, sh-format
 msgid "Dirty index: cannot apply patches (dirty: $files)"
 msgstr "脏的暂存区:不能应用补丁(脏文件:$files)"
 
-#: git-am.sh:743
+#: git-am.sh:748
 msgid "cannot be interactive without stdin connected to a terminal."
 msgstr "没有和终端关联的标准输入不能进行交互式操作。"
 
@@ -3199,20 +3271,20 @@ msgstr "没有和终端关联的标准输入不能进行交互式操作。"
 #. TRANSLATORS: Make sure to include [y], [n], [e], [v] and [a]
 #. in your translation. The program will only accept English
 #. input at this point.
-#: git-am.sh:754
+#: git-am.sh:759
 msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all "
 msgstr "应用?[y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all "
 
-#: git-am.sh:790
+#: git-am.sh:795
 #, sh-format
 msgid "Applying: $FIRSTLINE"
 msgstr "正应用:$FIRSTLINE"
 
-#: git-am.sh:835
+#: git-am.sh:840
 msgid "No changes -- Patch already applied."
 msgstr "没有变更 -- 补丁已经应用过。"
 
-#: git-am.sh:861
+#: git-am.sh:866
 msgid "applying to an empty history"
 msgstr "正应用到一个空历史上"
 
@@ -3328,15 +3400,15 @@ msgstr ""
 msgid "Pull is not possible because you have unmerged files."
 msgstr "Pull 不可用,因为你尚有未合并的文件。"
 
-#: git-pull.sh:193
+#: git-pull.sh:197
 msgid "updating an unborn branch with changes added to the index"
 msgstr "更新尚未诞生的分支,变更添加至暂存区"
 
-#: git-pull.sh:249
+#: git-pull.sh:253
 msgid "Cannot merge multiple branches into empty head"
 msgstr "无法将多个分支合并到空分支"
 
-#: git-pull.sh:253
+#: git-pull.sh:257
 msgid "Cannot rebase onto multiple branches"
 msgstr "无法变基到多个分支"
 
@@ -3456,11 +3528,16 @@ msgstr "无法从 url '$remoteurl' 剥离一个组件"
 msgid "No submodule mapping found in .gitmodules for path '$path'"
 msgstr "未在 .gitmodules 中发现路径 '$path' 的子模组映射"
 
-#: git-submodule.sh:173
+#: git-submodule.sh:149
 #, sh-format
 msgid "Clone of '$url' into submodule path '$path' failed"
 msgstr "克隆 '$url' 到子模组路径 '$path' 失败"
 
+#: git-submodule.sh:159
+#, sh-format
+msgid "Gitdir '$a' is part of the submodule path '$b' or vice versa"
+msgstr "Gitdir '$a' 在子模组路径 '$b' 之下或者相反"
+
 #: git-submodule.sh:247
 #, sh-format
 msgid "repo URL: '$repo' must be absolute or begin with ./|../"