翻译git版本文档的最佳实践

时间:2013-12-14 21:52:30

标签: git translate

我正在将一些文件翻译成日文。本文档正在使用git进行版本化。

由于文档会一次又一次地更新,因此翻译也需要跟踪更改。我创建了“ja”分支并将它们复制到“ja”目录中,如下所示:

.
├── 01.1.md
├── 01.2.md
├── README.md
└── ja
    ├── 01.1.md
    ├── 01.2.md
    └── README.md

然后我开始逐个翻译原始提交。 现在我想知道到目前为止哪些提交没有被翻译。 我应该如何在翻译的提交和原始提交之间进行绑定? 我可以改进版本控制相关的工作,比如还原原始提交树吗?


示例(更新)

现在整个提交日志如下所示:

$ git log --graph --all --oneline --decorate

* 63978c0 (HEAD, ja) cherry-pick 220d6f3 + translate
* eef200a cherry-pick 1f828c2 + translate
* 319100b copy files to ja dir
| * 220d6f3 (master) append line to 01.1.md
| * aff68a6 add text to 01.2.md
| * 1f828c2 add text to 01.1.md
|/  
* 33db727 init (touch {01.1.md|01.2.md|README.md})

我想知道我是否可以git-cherry,即使它包含修改后的内容。

$ git checkout master
$ git cherry --some-magic-option ja

+ aff68a6eb865590dab3768edeac43a318834dea0

1 个答案:

答案 0 :(得分:3)

由于两个分支共享相同的文件(ja分支仅添加翻译),我建议定期将master合并到ja

您基本上首先将master的新更改合并到您的翻译分支中。这应该没有问题,因为您的翻译分支不会更改原始文件。

之后,您可以使用git diff HEAD^git show -m查看新的更改,并在您的翻译中添加其他提交。

如果要检查未翻译的提交,则可以执行git fetch; git log -p ja..origin/master,其中显示远程主服务器上的所有提交,您尚未将其合并到本地ja分支。

当然,这无法检查您是否真正正确地翻译了所有内容,但它允许您执行git log -p -m --first-parent之类的操作来手动检查自己。这应该交替显示一个翻译的差异(由你)和一个未翻译的提交(来自合并)。

你也可以git fetch; gitk --all来获得正确的印象。

这会产生如下图:

→ M → T  →  M → T  →  M → T → (ja)
  ↑         ↑         ↑
→ O    →    O    →    O   →   (master)

其中O是一个原始提交M是合并,T是翻译提交。

您还可以将转换直接添加到合并提交中,以便每个原始提交只有一个(合并)提交,但是可能有两个单独的提交可能会更清楚。