{"action":"created","comment":{"url":"https://api.github.com/repos/progit/progit2-zh/pulls/comments/36028938","id":36028938,"diff_hunk":"@@ -275,105 +275,105 @@ $ git merge-base contrib master\n $ git diff 36c7db\n -----\n \n-However, that isn't convenient, so Git provides another shorthand for doing the same thing: the triple-dot syntax.\n-In the context of the `diff` command, you can put three periods after another branch to do a `diff` between the last commit of the branch you're on and its common ancestor with another branch:\n+然而，这种做法比较麻烦，所以 Git 提供了一种比较便捷的方式：三点语法。\n+对于 `diff` 命令来说，你可以通过把 `...` 置于另一个分支名后，来对该分支的最新提交与两个分支的共同祖先进行比较：\n \n [source,console]\n -----\n $ git diff master...contrib\n -----\n \n-This command shows you only the work your current topic branch has introduced since its common ancestor with master.\n-That is a very useful syntax to remember.\n+该命令仅会显示自当前主题分支与 master 分支的共同祖先起，该分支中的工作。\n+这个语法很有用，应该牢记。\n \n-==== Integrating Contributed Work\n+==== 将贡献的工作整合进来\n \n (((integrating work)))\n-When all the work in your topic branch is ready to be integrated into a more mainline branch, the question is how to do it.\n-Furthermore, what overall workflow do you want to use to maintain your project?\n-You have a number of choices, so we'll cover a few of them.\n+当主题分支中所有的工作都已经准备好整合进入更靠近主线的分支时，接下来的问题就是如何进行整合了。\n+此外，还有一个问题是，你想使用怎样的总体工作流来维护你的项目？\n+你可能的选择有很多，我们会介绍其中的一部分。\n \n-===== Merging Workflows\n+===== 合并工作流\n \n (((workflows, merging)))\n-One simple workflow merges your work into your `master` branch.\n-In this scenario, you have a `master` branch that contains basically stable code.\n-When you have work in a topic branch that you've done or that someone has contributed and you've verified, you merge it into your master branch, delete the topic branch, and then continue the process.\n-If we have a repository with work in two branches named `ruby_client` and `php_client` that looks like <<merwf_a>> and merge `ruby_client` first and then `php_client` next, then your history will end up looking like <<merwf_b>>.\n+一种非常简单的工作流会直接将工作合并进入 `master` 分支。\n+在这种情况下，`master` 分支包含的代码是基本稳定的。\n+当你完成某个主题分支的工作，或审核通过了其他人所贡献的工作时，你会将其合并进入 master 分支，之后将主题分支删除，如此反复。\n+如果我们的版本库包含类似 <<merwf_a>> 的两个名称分别为 `ruby_client` 和 `php_client` 的分支，并且我们先合并 `ruby_client` 分支，之后合并 `php_client` 分支，那么提交历史最后会变成 <<merwf_b>> 的样子。\n \n [[merwf_a]]\n-.History with several topic branches.\n-image::images/merging-workflows-1.png[History with several topic branches.]\n+.包含若干主题分支的提交历史\n+image::images/merging-workflows-1.png[包含若干主题分支的提交历史]\n \n [[merwf_b]]\n-.After a topic branch merge.\n-image::images/merging-workflows-2.png[After a topic branch merge.]\n+.合并主题分支之后\n+image::images/merging-workflows-2.png[合并主题分支之后]\n \n-That is probably the simplest workflow, but it can possibly be problematic if you're dealing with larger or more stable projects where you want to be really careful about what you introduce.\n+这也许是最简单的工作流了，但是当项目更大，或更稳定，你对自己所引入的工作更加在意时，它可能会带来问题。\n \n-If you have a more important project, you might want to use a two-phase merge cycle.\n-In this scenario, you have two long-running branches, `master` and `develop`, in which you determine that `master` is updated only when a very stable release is cut and all new code is integrated into the `develop` branch.\n-You regularly push both of these branches to the public repository.\n-Each time you have a new topic branch to merge in (<<merwf_c>>), you merge it into `develop` (<<merwf_d>>); then, when you tag a release, you fast-forward `master` to wherever the now-stable `develop` branch is (<<merwf_e>>).\n+如果你的项目更加重要，你可能会使用两阶段合并循环。\n+在这种情况下，你会维护两个长期分支，分别是 `master` 和 `develop`，`master` 分支只会在一个非常稳定的版本发布时才会更新，而所有的新代码会首先整合进入 `develop` 分支。\n+你定期将这两个分支推送到公共版本库中。\n+每次需要合并新的主题分支时（<<merwf_c>>），你都应该合并进入 `develop` 分支（<<merwf_d>>）；当打标签发布的时候，你会将 `master` 分支快进到已经稳定的 `develop` 分支（<<merwf_e>>）。\n \n [[merwf_c]]\n-.Before a topic branch merge.\n-image::images/merging-workflows-3.png[Before a topic branch merge.]\n+.合并主题分支前\n+image::images/merging-workflows-3.png[合并主题分支前]\n \n [[merwf_d]]\n-.After a topic branch merge.\n-image::images/merging-workflows-4.png[After a topic branch merge.]\n+.合并主题分支后\n+image::images/merging-workflows-4.png[合并主题分支后]\n \n [[merwf_e]]\n-.After a project release.\n-image::images/merging-workflows-5.png[After a topic branch release.]\n+.一次发布之后\n+image::images/merging-workflows-5.png[一次发布之后]\n \n-This way, when people clone your project's repository, they can either check out master to build the latest stable version and keep up to date on that easily, or they can check out develop, which is the more cutting-edge stuff.\n-You can also continue this concept, having an integrate branch where all the work is merged together.\n-Then, when the codebase on that branch is stable and passes tests, you merge it into a develop branch; and when that has proven itself stable for a while, you fast-forward your master branch.\n+这样当人们克隆你项目的版本库后，既可以检出 master 分支以构建最新的稳定版本并保持更新，也可以检出包含更多新东西的 develop 分支。\n+你也可以扩展这个概念，维护一个所有工作被合并到一起的整合分支。","path":"book/05-distributed-git/sections/maintaining.asc","position":407,"original_position":407,"commit_id":"19a2e3470f7b781a415ec41c5fbe0213c6ef7696","original_commit_id":"19a2e3470f7b781a415ec41c5fbe0213c6ef7696","user":{"login":"IceNature","id":7970130,"avatar_url":"https://avatars.githubusercontent.com/u/7970130?v=3","gravatar_id":"","url":"https://api.github.com/users/IceNature","html_url":"https://github.com/IceNature","followers_url":"https://api.github.com/users/IceNature/followers","following_url":"https://api.github.com/users/IceNature/following{/other_user}","gists_url":"https://api.github.com/users/IceNature/gists{/gist_id}","starred_url":"https://api.github.com/users/IceNature/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/IceNature/subscriptions","organizations_url":"https://api.github.com/users/IceNature/orgs","repos_url":"https://api.github.com/users/IceNature/repos","events_url":"https://api.github.com/users/IceNature/events{/privacy}","received_events_url":"https://api.github.com/users/IceNature/received_events","type":"User","site_admin":false},"body":"一个所有工作=》一个`将`所有工作","created_at":"2015-08-01T01:31:31Z","updated_at":"2015-08-01T01:31:31Z","html_url":"https://github.com/progit/progit2-zh/pull/136#discussion_r36028938","pull_request_url":"https://api.github.com/repos/progit/progit2-zh/pulls/136","_links":{"self":{"href":"https://api.github.com/repos/progit/progit2-zh/pulls/comments/36028938"},"html":{"href":"https://github.com/progit/progit2-zh/pull/136#discussion_r36028938"},"pull_request":{"href":"https://api.github.com/repos/progit/progit2-zh/pulls/136"}}},"pull_request":{"url":"https://api.github.com/repos/progit/progit2-zh/pulls/136","id":38179993,"html_url":"https://github.com/progit/progit2-zh/pull/136","diff_url":"https://github.com/progit/progit2-zh/pull/136.diff","patch_url":"https://github.com/progit/progit2-zh/pull/136.patch","issue_url":"https://api.github.com/repos/progit/progit2-zh/issues/136","number":136,"state":"open","locked":false,"title":"Translate 05-distributed-git maintaining","user":{"login":"secondwtq","id":2009799,"avatar_url":"https://avatars.githubusercontent.com/u/2009799?v=3","gravatar_id":"","url":"https://api.github.com/users/secondwtq","html_url":"https://github.com/secondwtq","followers_url":"https://api.github.com/users/secondwtq/followers","following_url":"https://api.github.com/users/secondwtq/following{/other_user}","gists_url":"https://api.github.com/users/secondwtq/gists{/gist_id}","starred_url":"https://api.github.com/users/secondwtq/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/secondwtq/subscriptions","organizations_url":"https://api.github.com/users/secondwtq/orgs","repos_url":"https://api.github.com/users/secondwtq/repos","events_url":"https://api.github.com/users/secondwtq/events{/privacy}","received_events_url":"https://api.github.com/users/secondwtq/received_events","type":"User","site_admin":false},"body":"","created_at":"2015-06-21T06:33:19Z","updated_at":"2015-08-01T01:31:31Z","closed_at":null,"merged_at":null,"merge_commit_sha":"6cfced484bbb247bac5d4ae44fbafa2cd68fc3e6","assignee":null,"milestone":{"url":"https://api.github.com/repos/progit/progit2-zh/milestones/1","html_url":"https://github.com/progit/progit2-zh/milestones/v1.0.0","labels_url":"https://api.github.com/repos/progit/progit2-zh/milestones/1/labels","id":1231002,"number":1,"title":"v1.0.0","description":"所有内容翻译完成并经过审校后合并入主干分支。","creator":{"login":"networm","id":440624,"avatar_url":"https://avatars.githubusercontent.com/u/440624?v=3","gravatar_id":"","url":"https://api.github.com/users/networm","html_url":"https://github.com/networm","followers_url":"https://api.github.com/users/networm/followers","following_url":"https://api.github.com/users/networm/following{/other_user}","gists_url":"https://api.github.com/users/networm/gists{/gist_id}","starred_url":"https://api.github.com/users/networm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/networm/subscriptions","organizations_url":"https://api.github.com/users/networm/orgs","repos_url":"https://api.github.com/users/networm/repos","events_url":"https://api.github.com/users/networm/events{/privacy}","received_events_url":"https://api.github.com/users/networm/received_events","type":"User","site_admin":false},"open_issues":50,"closed_issues":5,"state":"open","created_at":"2015-07-29T06:50:16Z","updated_at":"2015-07-31T16:02:55Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/progit/progit2-zh/pulls/136/commits","review_comments_url":"https://api.github.com/repos/progit/progit2-zh/pulls/136/comments","review_comment_url":"https://api.github.com/repos/progit/progit2-zh/pulls/comments{/number}","comments_url":"https://api.github.com/repos/progit/progit2-zh/issues/136/comments","statuses_url":"https://api.github.com/repos/progit/progit2-zh/statuses/19a2e3470f7b781a415ec41c5fbe0213c6ef7696","head":{"label":"secondwtq:05-distributed-git-maintaining","ref":"05-distributed-git-maintaining","sha":"19a2e3470f7b781a415ec41c5fbe0213c6ef7696","user":{"login":"secondwtq","id":2009799,"avatar_url":"https://avatars.githubusercontent.com/u/2009799?v=3","gravatar_id":"","url":"https://api.github.com/users/secondwtq","html_url":"https://github.com/secondwtq","followers_url":"https://api.github.com/users/secondwtq/followers","following_url":"https://api.github.com/users/secondwtq/following{/other_user}","gists_url":"https://api.github.com/users/secondwtq/gists{/gist_id}","starred_url":"https://api.github.com/users/secondwtq/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/secondwtq/subscriptions","organizations_url":"https://api.github.com/users/secondwtq/orgs","repos_url":"https://api.github.com/users/secondwtq/repos","events_url":"https://api.github.com/users/secondwtq/events{/privacy}","received_events_url":"https://api.github.com/users/secondwtq/received_events","type":"User","site_admin":false},"repo":{"id":37685866,"name":"progit2-zh","full_name":"secondwtq/progit2-zh","owner":{"login":"secondwtq","id":2009799,"avatar_url":"https://avatars.githubusercontent.com/u/2009799?v=3","gravatar_id":"","url":"https://api.github.com/users/secondwtq","html_url":"https://github.com/secondwtq","followers_url":"https://api.github.com/users/secondwtq/followers","following_url":"https://api.github.com/users/secondwtq/following{/other_user}","gists_url":"https://api.github.com/users/secondwtq/gists{/gist_id}","starred_url":"https://api.github.com/users/secondwtq/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/secondwtq/subscriptions","organizations_url":"https://api.github.com/users/secondwtq/orgs","repos_url":"https://api.github.com/users/secondwtq/repos","events_url":"https://api.github.com/users/secondwtq/events{/privacy}","received_events_url":"https://api.github.com/users/secondwtq/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/secondwtq/progit2-zh","description":"","fork":true,"url":"https://api.github.com/repos/secondwtq/progit2-zh","forks_url":"https://api.github.com/repos/secondwtq/progit2-zh/forks","keys_url":"https://api.github.com/repos/secondwtq/progit2-zh/keys{/key_id}","collaborators_url":"https://api.github.com/repos/secondwtq/progit2-zh/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/secondwtq/progit2-zh/teams","hooks_url":"https://api.github.com/repos/secondwtq/progit2-zh/hooks","issue_events_url":"https://api.github.com/repos/secondwtq/progit2-zh/issues/events{/number}","events_url":"https://api.github.com/repos/secondwtq/progit2-zh/events","assignees_url":"https://api.github.com/repos/secondwtq/progit2-zh/assignees{/user}","branches_url":"https://api.github.com/repos/secondwtq/progit2-zh/branches{/branch}","tags_url":"https://api.github.com/repos/secondwtq/progit2-zh/tags","blobs_url":"https://api.github.com/repos/secondwtq/progit2-zh/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/secondwtq/progit2-zh/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/secondwtq/progit2-zh/git/refs{/sha}","trees_url":"https://api.github.com/repos/secondwtq/progit2-zh/git/trees{/sha}","statuses_url":"https://api.github.com/repos/secondwtq/progit2-zh/statuses/{sha}","languages_url":"https://api.github.com/repos/secondwtq/progit2-zh/languages","stargazers_url":"https://api.github.com/repos/secondwtq/progit2-zh/stargazers","contributors_url":"https://api.github.com/repos/secondwtq/progit2-zh/contributors","subscribers_url":"https://api.github.com/repos/secondwtq/progit2-zh/subscribers","subscription_url":"https://api.github.com/repos/secondwtq/progit2-zh/subscription","commits_url":"https://api.github.com/repos/secondwtq/progit2-zh/commits{/sha}","git_commits_url":"https://api.github.com/repos/secondwtq/progit2-zh/git/commits{/sha}","comments_url":"https://api.github.com/repos/secondwtq/progit2-zh/comments{/number}","issue_comment_url":"https://api.github.com/repos/secondwtq/progit2-zh/issues/comments{/number}","contents_url":"https://api.github.com/repos/secondwtq/progit2-zh/contents/{+path}","compare_url":"https://api.github.com/repos/secondwtq/progit2-zh/compare/{base}...{head}","merges_url":"https://api.github.com/repos/secondwtq/progit2-zh/merges","archive_url":"https://api.github.com/repos/secondwtq/progit2-zh/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/secondwtq/progit2-zh/downloads","issues_url":"https://api.github.com/repos/secondwtq/progit2-zh/issues{/number}","pulls_url":"https://api.github.com/repos/secondwtq/progit2-zh/pulls{/number}","milestones_url":"https://api.github.com/repos/secondwtq/progit2-zh/milestones{/number}","notifications_url":"https://api.github.com/repos/secondwtq/progit2-zh/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/secondwtq/progit2-zh/labels{/name}","releases_url":"https://api.github.com/repos/secondwtq/progit2-zh/releases{/id}","created_at":"2015-06-18T21:24:53Z","updated_at":"2015-06-18T21:24:54Z","pushed_at":"2015-06-21T06:23:30Z","git_url":"git://github.com/secondwtq/progit2-zh.git","ssh_url":"git@github.com:secondwtq/progit2-zh.git","clone_url":"https://github.com/secondwtq/progit2-zh.git","svn_url":"https://github.com/secondwtq/progit2-zh","homepage":null,"size":159601,"stargazers_count":0,"watchers_count":0,"language":"CSS","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"progit:master","ref":"master","sha":"af9ee732e6977aa621e30c8ceb152375f0911346","user":{"login":"progit","id":95588,"avatar_url":"https://avatars.githubusercontent.com/u/95588?v=3","gravatar_id":"","url":"https://api.github.com/users/progit","html_url":"https://github.com/progit","followers_url":"https://api.github.com/users/progit/followers","following_url":"https://api.github.com/users/progit/following{/other_user}","gists_url":"https://api.github.com/users/progit/gists{/gist_id}","starred_url":"https://api.github.com/users/progit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/progit/subscriptions","organizations_url":"https://api.github.com/users/progit/orgs","repos_url":"https://api.github.com/users/progit/repos","events_url":"https://api.github.com/users/progit/events{/privacy}","received_events_url":"https://api.github.com/users/progit/received_events","type":"Organization","site_admin":false},"repo":{"id":26017730,"name":"progit2-zh","full_name":"progit/progit2-zh","owner":{"login":"progit","id":95588,"avatar_url":"https://avatars.githubusercontent.com/u/95588?v=3","gravatar_id":"","url":"https://api.github.com/users/progit","html_url":"https://github.com/progit","followers_url":"https://api.github.com/users/progit/followers","following_url":"https://api.github.com/users/progit/following{/other_user}","gists_url":"https://api.github.com/users/progit/gists{/gist_id}","starred_url":"https://api.github.com/users/progit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/progit/subscriptions","organizations_url":"https://api.github.com/users/progit/orgs","repos_url":"https://api.github.com/users/progit/repos","events_url":"https://api.github.com/users/progit/events{/privacy}","received_events_url":"https://api.github.com/users/progit/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/progit/progit2-zh","description":"","fork":false,"url":"https://api.github.com/repos/progit/progit2-zh","forks_url":"https://api.github.com/repos/progit/progit2-zh/forks","keys_url":"https://api.github.com/repos/progit/progit2-zh/keys{/key_id}","collaborators_url":"https://api.github.com/repos/progit/progit2-zh/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/progit/progit2-zh/teams","hooks_url":"https://api.github.com/repos/progit/progit2-zh/hooks","issue_events_url":"https://api.github.com/repos/progit/progit2-zh/issues/events{/number}","events_url":"https://api.github.com/repos/progit/progit2-zh/events","assignees_url":"https://api.github.com/repos/progit/progit2-zh/assignees{/user}","branches_url":"https://api.github.com/repos/progit/progit2-zh/branches{/branch}","tags_url":"https://api.github.com/repos/progit/progit2-zh/tags","blobs_url":"https://api.github.com/repos/progit/progit2-zh/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/progit/progit2-zh/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/progit/progit2-zh/git/refs{/sha}","trees_url":"https://api.github.com/repos/progit/progit2-zh/git/trees{/sha}","statuses_url":"https://api.github.com/repos/progit/progit2-zh/statuses/{sha}","languages_url":"https://api.github.com/repos/progit/progit2-zh/languages","stargazers_url":"https://api.github.com/repos/progit/progit2-zh/stargazers","contributors_url":"https://api.github.com/repos/progit/progit2-zh/contributors","subscribers_url":"https://api.github.com/repos/progit/progit2-zh/subscribers","subscription_url":"https://api.github.com/repos/progit/progit2-zh/subscription","commits_url":"https://api.github.com/repos/progit/progit2-zh/commits{/sha}","git_commits_url":"https://api.github.com/repos/progit/progit2-zh/git/commits{/sha}","comments_url":"https://api.github.com/repos/progit/progit2-zh/comments{/number}","issue_comment_url":"https://api.github.com/repos/progit/progit2-zh/issues/comments{/number}","contents_url":"https://api.github.com/repos/progit/progit2-zh/contents/{+path}","compare_url":"https://api.github.com/repos/progit/progit2-zh/compare/{base}...{head}","merges_url":"https://api.github.com/repos/progit/progit2-zh/merges","archive_url":"https://api.github.com/repos/progit/progit2-zh/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/progit/progit2-zh/downloads","issues_url":"https://api.github.com/repos/progit/progit2-zh/issues{/number}","pulls_url":"https://api.github.com/repos/progit/progit2-zh/pulls{/number}","milestones_url":"https://api.github.com/repos/progit/progit2-zh/milestones{/number}","notifications_url":"https://api.github.com/repos/progit/progit2-zh/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/progit/progit2-zh/labels{/name}","releases_url":"https://api.github.com/repos/progit/progit2-zh/releases{/id}","created_at":"2014-10-31T13:43:10Z","updated_at":"2015-07-31T09:37:19Z","pushed_at":"2015-07-31T16:02:55Z","git_url":"git://github.com/progit/progit2-zh.git","ssh_url":"git@github.com:progit/progit2-zh.git","clone_url":"https://github.com/progit/progit2-zh.git","svn_url":"https://github.com/progit/progit2-zh","homepage":null,"size":162479,"stargazers_count":289,"watchers_count":289,"language":"CSS","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":101,"mirror_url":null,"open_issues_count":67,"forks":101,"open_issues":67,"watchers":289,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/progit/progit2-zh/pulls/136"},"html":{"href":"https://github.com/progit/progit2-zh/pull/136"},"issue":{"href":"https://api.github.com/repos/progit/progit2-zh/issues/136"},"comments":{"href":"https://api.github.com/repos/progit/progit2-zh/issues/136/comments"},"review_comments":{"href":"https://api.github.com/repos/progit/progit2-zh/pulls/136/comments"},"review_comment":{"href":"https://api.github.com/repos/progit/progit2-zh/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/progit/progit2-zh/pulls/136/commits"},"statuses":{"href":"https://api.github.com/repos/progit/progit2-zh/statuses/19a2e3470f7b781a415ec41c5fbe0213c6ef7696"}}}}