Skip to content

使用 Git 管理翻译的文档

Alexinea edited this page Jun 13, 2016 · 1 revision

0. 准备工作,和心理准备工作

先装好这两个:VS Code 和 Git ,参考这篇 ,这里就不细说了。

心理准备工作: 先镇定一下情绪,不要被本文的长度吓住,内容不多,都是图片!

都是基本操作,非常简单,旨在给不熟悉git的同学,说明一下使用流程,简单过一遍就行了!

会用的同学,完全没必要看了。

行文随意,语言粗糙,内容简单,以图为主,非常啰嗦。

1. 复刻翻译项目

  1. 注册并登陆 GitHub(略)。

  2. 来到咱们的总项目(你好像已经来了):https://github.com/dotnetcore/aspnetcore-doc-cn

  3. 先点一下星星,再按一下 Fork 按钮,如图:

  4. 如果提示让你选头像,选择自己就行了

这就复刻完成了,注意观察一下,和上游仓库页面的不同。

2. 把翻译项目克隆到本地

1.在你硬盘里找一片空地,比如 d:\docs

2.打开命令行,cd 到这个文件夹

3.去自己的项目页面上获取自己的项目 git 地址,注意是自己的项目地址,如图:

我的地址就是:https://github.com/YaoaY/aspnetcore-doc-cn.git

4.执行 git clone https://github.com/YaoaY/aspnetcore-doc-cn.git,稍等片刻,如图:

5.好了,这样项目就克隆到我们本地了。要用 VS Code 打开项目进行编辑,建议采用以下步骤:

  • 资源管理器直接切换到项目文件夹下,即本例中的 D:\Docs\aspnetcore-doc-cn
  • 在该文件下,按住Shift的同时,在空白处点击右键,这样弹出的菜单,会有‘在此处打开命令窗口’的选项,选择它就打开了命令行窗口。

  • 注意这样打开的命令行窗口直接就定位在项目文件夹上的,所以可以直接通过执行 code .(不要忘了这个点) 启动 VS Code 并加载该文件夹。

现在 VS Code 已经启动并且打开了我们的项目文件夹:

点击左边的 Git 图标,可以看到当前的文件更改状态(图上还没有修改文件,所以没有);注意左下角的分支信息,显示的 'dev' 当然就指的是当前分支是dev了:

这里还得啰嗦强调一下,启动 VS Code 的位置很重要,一定要在项目文件夹下启动,当然你熟习以后可以手动在 VS Code 中打开项目文件夹,但是为了方便起见,还是推荐用 code . 启动,所以一定不要搞错位置,搞错位置就会这样:

其实这样也没什么,关了重新打开就行了,我贴上面这个图,是想让你心里有个数,万一遇到这情况,知道是怎么回事就行了,哈哈

先别着急开始干活,还有个事。

3.同步项目仓库

在你开始翻译一篇文章之前,应该先为这篇文章创建一个分支; 在创建分支之前,应该先把本地仓库和上游仓库同步一下。

上游仓库说的是咱们的总项目,不是你复刻的项目。因为你复刻的项目一般情况下只有你自己在修改,而上游仓库可能每天都会有很多改动,所以应该尽量保持我们复刻的仓库和上游仓库是同步的。没有必要完全同步,但是尽量同步。 这个同步的流程大概是这样的: 直接从上游 dev 分支拉取最新的内容 --> 合并到本地 dev --> 再推送到 GitHub 上自己的仓库

  1. 还是在项目位置打开命令行窗口。 D:\Docs\aspnetcore-doc-cn>
  2. 执行 git remote -v ,查看一下远程仓库,非必须。
  3. 去上游仓库页面,获取 git 地址,注意这次不是自己的,是总项目了。其实就是这个:https://github.com/dotnetcore/aspnetcore-doc-cn.git
  4. 执行 git remote add dotnetcore https://github.com/dotnetcore/aspnetcore-doc-cn.git ,这条指令把上游仓库加进来,并起个名字叫 dotnetcore ,这个名字你可以自己选。如果之前已经加过了,就不必重复了
  5. 执行 git checkout dev,确保在 dev 分支下继续其他操作。目前执行情况如图:

接下来要准备同步了啊。

  1. 执行 git fetch dotnetcore ,还记得刚才加的叫 dotnetcore 的总项目地址不?现在就是要拉取它的最新内容。

  1. 已经拉取成功了,但是还没合并到我们本地的分支里,所以在当前dev分支下,执行 git merge dotnetcore/dev ,就会把刚才拉取的仓库的 dev 分支合并到我们本地的 dev 分支上了。

  2. 此时你可以观察 VS Code 左下角,dev 旁边的数字,这些数字代表了 dev 分支发生了更改。因为我们刚才合并新内容了啊!

  1. 最后,要把本地最新的内容,推送回 GitHub 上我们自己复刻的仓库里,执行 git push 就可以了,其实你可以点击 VS Code 左下角的数字,它也会给你推送的。

推送完成,左下角的数字变回 0 了:

4.新建分支,开始翻译

为每篇翻译工作新建一个分支,有利于后续的工作。方法很简单,我们举个例子操作一遍就可以了。 比如现在我准备翻译 aspnet/mvc/index.rst 这一篇文档: 在开工之前,我应该:

  1. 按照上面介绍的方法,同步一下仓库。

  2. 确保当前分支是 dev (可以在 VS Code 中瞄一下左下角),这一点其实挺重要,因为所有新分支都从 dev 创建的话,可以极大的避免分支之间的干扰,有利于后续的提交工作。

  3. 给新分支起个名字,我的已经想好了,叫 trans-mvc-index ,你可以根据自己的喜好起名字,只要自己能明白谁是谁就行了。

  4. 可以从命令行执行 git branch trans-mvc-index 创建这个分支,不过VS Code操作也很方便,直接按下 Ctrl + P,输入命令回车就行了:

5.分支创建成功了,点击左下角的分支名,可以方便地在各个分支之间切换:

6.发布分支。是发布到自己的 GitHub 仓库里,其实不用急着发布,不过为了保持本文的啰嗦风格,我们现在发布一下:

看上图左下角,分支名旁边的云朵按钮,点一下就发布了,不过请注意,点了之后要你选择发布到哪个远程仓库,是要发布到自己的仓库里,你可别选错了

7.去你的 GitHub 页面上,看看新发布的分支:

8.终于可以开始干正事了吗?

打开我们要翻译的 mvc/index.rst 文档,禅精竭虑,几经修改,终于翻译出来了。 在文件保存之后,可以看到左下角分支名字上出现了星号,左边 git 按钮出现了数字标签,点进去看到当前已修改的文件列表,在上面的输入框里随便写一下本次修改的简介,按一下上面的 √ 就保存提交了:

现在只是保存在了本地仓库里,继续观察左下角,会看到数字 1,代表有一条可以推送到远程仓库里,点一下它自己就给你推送了:

再去刷新一下你的 GitHub,在对应的分支下,你可以看到刚才提交的修改:

5.翻译完成,提交 PR

大家时间都有限,一篇文档的翻译可能会分很多次进行,每完成一段,都可以根据需要保存提交一下,也可以随时推送到自己的 GitHub,这个不必拘束,反正最终都要保存和推送的。

当我觉得这篇已经差不多了,我就可以提交PR到上游仓库里,给大家审阅,修订,最终合并到上游仓库。

具体方法也很简单,先把本地的修改都保存提交,然后把还没推送的都推送到自己的远程仓库上。然后去 GitHub 上,进入分支管理页面:

在需要提交的分支右边,直接提交PR的按钮,进入下一步:

简单填写一下信息,就可以提交了,完成之后:

这样大家就可以帮我评审这篇翻译,发现问题可以在评论里提出来。 然后我根据建议还在这个分支下进行修改 -> 保存 -> 提交 -> 推送,然后刚才提交的这个 PR,会自动把最新提交的内容包括进去。 也就是说,不必再提交新的 PR。直到最终定稿,合并 PR。