{"action":"created","comment":{"url":"https://api.github.com/repos/progit/progit2-zh/pulls/comments/33902863","id":33902863,"diff_hunk":"@@ -1,88 +1,87 @@\n-=== Distributed Workflows\n+=== 分布式工作流程\n \n (((workflows)))\n-Unlike Centralized Version Control Systems (CVCSs), the distributed nature of Git allows you to be far more flexible in how developers collaborate on projects.\n-In centralized systems, every developer is a node working more or less equally on a central hub.\n-In Git, however, every developer is potentially both a node and a hub – that is, every developer can both contribute code to other repositories and maintain a public repository on which others can base their work and which they can contribute to.\n-This opens a vast range of workflow possibilities for your project and/or your team, so we'll cover a few common paradigms that take advantage of this flexibility.\n-We'll go over the strengths and possible weaknesses of each design; you can choose a single one to use, or you can mix and match features from each.\n+同传统的集中式版本控制系统（CVCS）不同，Git 的分布式特性使得开发者间的协作变得更加灵活多样。\n+在集中式系统中，每个开发者就像是连接在集线器上的节点，彼此的工作方式大体相像。\n+而在 Git 中，每个开发者同时扮演着节点和集线器的角色——也就是说，每个开发者既可以将自己的代码贡献到其他的仓库中，也能同时维护自己的公有仓库，让其他人可以在其基础上工作并贡献代码。\n+由此，Git 的分布式协作可以为你的项目和团队衍生出种种不同的工作流程，接下来的章节会介绍几种常见的应用方式，它们都利用了 Git 这种灵活的特性。\n+我们将讨论每种方式的优缺点，你可以选择其中的一种，或者将它们的特性结合起来使用。\n \n-==== Centralized Workflow\n+==== 集中式工作流\n \n (((workflows, centralized)))\n-In centralized systems, there is generally a single collaboration model–the centralized workflow.\n-One central hub, or repository, can accept code, and everyone synchronizes their work to it.\n-A number of developers are nodes – consumers of that hub – and synchronize to that one place.\n+集中式系统中通常使用的是单点协作模型——集中式工作流。\n+一个中心集线器，或者说仓库，用于接收代码，以同步所有人的工作。\n+所有的开发者都是普通的节点，作为中心仓库的消费者，平时的工作就是在同一个地方同步数据。\n \n-.Centralized workflow.\n-image::images/centralized.png[Centralized workflow.]\n+.集中式工作流。\n+image::images/centralized.png[集中式工作流。]\n \n-This means that if two developers clone from the hub and both make changes, the first developer to push their changes back up can do so with no problems.\n-The second developer must merge in the first one's work before pushing changes up, so as not to overwrite the first developer's changes.\n-This concept is as true in Git as it is in Subversion(((Subversion))) (or any CVCS), and this model works perfectly well in Git.\n+这意味着如果两个开发者从中心仓库克隆代码下来，同时作了一些修改，那么只有第一个开发者可以顺利地把数据推送回共享服务器。\n+第二个开发者在推送修改之前，必须先将第一个人的工作合并进来，这样才不会覆盖第一个人的修改。\n+这和 Subversion(((Subversion))) （或任何 CVCS）中的概念一样，而且这个模式也可以很好地运用到 Git 中。\n \n-If you are already comfortable with a centralized workflow in your company or team, you can easily continue using that workflow with Git.\n-Simply set up a single repository, and give everyone on your team push access; Git won't let users overwrite each other.\n-Say John and Jessica both start working at the same time.\n-John finishes his change and pushes it to the server.\n-Then Jessica tries to push her changes, but the server rejects them.\n-She is told that she's trying to push non-fast-forward changes and that she won't be able to do so until she fetches and merges.\n-This workflow is attractive to a lot of people because it's a paradigm that many are familiar and comfortable with.\n+如果在公司或者团队中，你已经习惯了使用这种集中式工作流程，完全可以继续采用这种简单的模式。\n+只需要搭建好一个中心仓库，并给开发团队中的每个人推送数据的权限，就可以开展工作了。 Git 不会让用户覆盖彼此的代码。\n+例如 John 和 Jessica 同时开始工作。\n+John 完成了他的修改并将数据推送到服务器。\n+接着 Jessica 尝试提交她自己的修改，却遭到服务器拒绝。\n+她被告知她的修改正通过非快进式（non-fast-forward）的方式推送，只有将数据抓取下来并且合并后方能推送。\n+这种模式的工作流程为大多数人所熟悉和习惯，所以它的使用也非常广泛。\n \n-This is also not limited to small teams. With Git's branching model, it's possible for hundreds of developers to successfully work on a single project through dozens of branches simultaneously.\n+当然这并不局限于小团队。利用 Git 的分支模型，通过同时在多个分支上工作的方式，即使是上百人的开发团队也可以很好地在单个项目上协作。\n \n [[_integration_manager]]\n-==== Integration-Manager Workflow\n+==== 集成管理者工作流\n \n (((workflows, integration manager)))\n-Because Git allows you to have multiple remote repositories, it's possible to have a workflow where each developer has write access to their own public repository and read access to everyone else's.\n-This scenario often includes a canonical repository that represents the ``official'' project.\n-To contribute to that project, you create your own public clone of the project and push your changes to it.\n-Then, you can send a request to the maintainer of the main project to pull in your changes.\n-The maintainer can then add your repository as a remote, test your changes locally, merge them into their branch, and push back to their repository.\n-The process works as follows (see <<wfdiag_b>>):\n-\n-1.  The project maintainer pushes to their public repository.\n-2.  A contributor clones that repository and makes changes.\n-3.  The contributor pushes to their own public copy.\n-4.  The contributor sends the maintainer an e-mail asking them to pull changes.\n-5.  The maintainer adds the contributor's repo as a remote and merges locally.\n-6.  The maintainer pushes merged changes to the main repository.\n+由于 Git 允许使用多个远程仓库，开发者便可以建立自己的公共仓库，往里面写数据并共享给他人，而同时又可以读取别人仓库中的数据。\n+这种情形下通常会有个代表``官方''项目的权威的仓库（blessed repository）。\n+要为这个项目做贡献，你需要从该项目克隆出一个自己的公共仓库（developer public），然后将自己的修改推送上去。\n+接着你可以请求官方仓库的维护者拉取更新合并到主项目。\n+维护者可以将你的仓库作为远程仓库添加进来，在本地的克隆仓库（integration manager）将你的修改测试无误后合并到自己的分支，然后再推送到官方仓库。\n+这一流程的工作方式如下所示（见 <<wfdiag_b>>）：\n+\n+1.  项目维护者推送数据到公共仓库（blessed repository）。\n+2.  贡献者克隆此仓库，做出修改。\n+3.  贡献者将数据推送到自己的公共仓库（developer public）。\n+4.  贡献者给维护者发送邮件，请求拉取自己的更新。\n+5.  维护者在自己本地的仓库（integration manger）中，将贡献者的仓库加为远程仓库并合并修改。\n+6.  维护者将合并后的修改推送到主仓库（blessed repository）。\n \n [[wfdiag_b]]\n-.Integration-manager workflow.\n-image::images/integration-manager.png[Integration-manager workflow.]\n+.集成管理者工作流。\n+image::images/integration-manager.png[集成管理者工作流。]\n \n (((forking)))\n-This is a very common workflow with hub-based tools like GitHub or GitLab, where it's easy to fork a project and push your changes into your fork for everyone to see.\n-One of the main advantages of this approach is that you can continue to work, and the maintainer of the main repository can pull in your changes at any time.\n-Contributors don't have to wait for the project to incorporate their changes – each party can work at their own pace.\n+这是 GitHub 和 GitLab 等集线器式（hub-based）工具最常用的工作流程。人们可以容易地将某个项目衍生成为自己的公共仓库，向这个仓库推送自己的修改，并为每个人所见。\n+这么做最主要的优点之一是你可以持续地工作，而主仓库的维护者可以随时拉取你的修改。\n+贡献者不必等待维护者处理完提交的更新——每一方都可以按照自己节奏工作。\n \n-==== Dictator and Lieutenants Workflow\n+==== 司令官与副官工作流\n \n (((workflows, dictator and lieutenants)))\n-This is a variant of a multiple-repository workflow.\n-It's generally used by huge projects with hundreds of collaborators; one famous example is the Linux kernel.\n-Various integration managers are in charge of certain parts of the repository; they're called lieutenants.\n-All the lieutenants have one integration manager known as the benevolent dictator.\n-The benevolent dictator's repository serves as the reference repository from which all the collaborators need to pull.\n-The process works like this (see <<wfdiag_c>>):\n-\n-1.  Regular developers work on their topic branch and rebase their work on top of `master`.\n-    The `master` branch is that of the dictator.\n-2.  Lieutenants merge the developers' topic branches into their `master` branch.\n-3.  The dictator merges the lieutenants' `master` branches into the dictator's `master` branch.\n-4.  The dictator pushes their `master` to the reference repository so the other developers can rebase on it.\n+这其实是上一种工作流程的变体。\n+一般拥有数百位协作开发者的超大型项目才会用到这样的工作方式，例如著名的 Linux 内核项目。","path":"book/05-distributed-git/sections/distributed-workflows.asc","position":120,"original_position":120,"commit_id":"ee164ba09810d5e73fbe45db34e0556776e8c6b6","original_commit_id":"ee164ba09810d5e73fbe45db34e0556776e8c6b6","user":{"login":"leshiv","id":5011483,"avatar_url":"https://avatars.githubusercontent.com/u/5011483?v=3","gravatar_id":"","url":"https://api.github.com/users/leshiv","html_url":"https://github.com/leshiv","followers_url":"https://api.github.com/users/leshiv/followers","following_url":"https://api.github.com/users/leshiv/following{/other_user}","gists_url":"https://api.github.com/users/leshiv/gists{/gist_id}","starred_url":"https://api.github.com/users/leshiv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/leshiv/subscriptions","organizations_url":"https://api.github.com/users/leshiv/orgs","repos_url":"https://api.github.com/users/leshiv/repos","events_url":"https://api.github.com/users/leshiv/events{/privacy}","received_events_url":"https://api.github.com/users/leshiv/received_events","type":"User","site_admin":false},"body":"觉得 ”著名的例子“ 和 ”例如著名的“ 是一个意思。","created_at":"2015-07-06T02:27:34Z","updated_at":"2015-07-06T02:27:34Z","html_url":"https://github.com/progit/progit2-zh/pull/117#discussion_r33902863","pull_request_url":"https://api.github.com/repos/progit/progit2-zh/pulls/117","_links":{"self":{"href":"https://api.github.com/repos/progit/progit2-zh/pulls/comments/33902863"},"html":{"href":"https://github.com/progit/progit2-zh/pull/117#discussion_r33902863"},"pull_request":{"href":"https://api.github.com/repos/progit/progit2-zh/pulls/117"}}},"pull_request":{"url":"https://api.github.com/repos/progit/progit2-zh/pulls/117","id":38071677,"html_url":"https://github.com/progit/progit2-zh/pull/117","diff_url":"https://github.com/progit/progit2-zh/pull/117.diff","patch_url":"https://github.com/progit/progit2-zh/pull/117.patch","issue_url":"https://api.github.com/repos/progit/progit2-zh/issues/117","number":117,"state":"open","locked":false,"title":"Translate 05-distributed-git distributed-workflows","user":{"login":"leshiv","id":5011483,"avatar_url":"https://avatars.githubusercontent.com/u/5011483?v=3","gravatar_id":"","url":"https://api.github.com/users/leshiv","html_url":"https://github.com/leshiv","followers_url":"https://api.github.com/users/leshiv/followers","following_url":"https://api.github.com/users/leshiv/following{/other_user}","gists_url":"https://api.github.com/users/leshiv/gists{/gist_id}","starred_url":"https://api.github.com/users/leshiv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/leshiv/subscriptions","organizations_url":"https://api.github.com/users/leshiv/orgs","repos_url":"https://api.github.com/users/leshiv/repos","events_url":"https://api.github.com/users/leshiv/events{/privacy}","received_events_url":"https://api.github.com/users/leshiv/received_events","type":"User","site_admin":false},"body":"v1版本的译者加了一些便于读者理解的个人注释，这里暂时没有保留。\r\n请review，会及时修改，感谢！","created_at":"2015-06-19T02:18:34Z","updated_at":"2015-07-06T02:27:34Z","closed_at":null,"merged_at":null,"merge_commit_sha":"d3b9dae504282425c7e8f486d11c63f9ca3c3bbd","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/progit/progit2-zh/pulls/117/commits","review_comments_url":"https://api.github.com/repos/progit/progit2-zh/pulls/117/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/117/comments","statuses_url":"https://api.github.com/repos/progit/progit2-zh/statuses/ee164ba09810d5e73fbe45db34e0556776e8c6b6","head":{"label":"leshiv:master","ref":"master","sha":"ee164ba09810d5e73fbe45db34e0556776e8c6b6","user":{"login":"leshiv","id":5011483,"avatar_url":"https://avatars.githubusercontent.com/u/5011483?v=3","gravatar_id":"","url":"https://api.github.com/users/leshiv","html_url":"https://github.com/leshiv","followers_url":"https://api.github.com/users/leshiv/followers","following_url":"https://api.github.com/users/leshiv/following{/other_user}","gists_url":"https://api.github.com/users/leshiv/gists{/gist_id}","starred_url":"https://api.github.com/users/leshiv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/leshiv/subscriptions","organizations_url":"https://api.github.com/users/leshiv/orgs","repos_url":"https://api.github.com/users/leshiv/repos","events_url":"https://api.github.com/users/leshiv/events{/privacy}","received_events_url":"https://api.github.com/users/leshiv/received_events","type":"User","site_admin":false},"repo":{"id":37566189,"name":"progit2-zh","full_name":"leshiv/progit2-zh","owner":{"login":"leshiv","id":5011483,"avatar_url":"https://avatars.githubusercontent.com/u/5011483?v=3","gravatar_id":"","url":"https://api.github.com/users/leshiv","html_url":"https://github.com/leshiv","followers_url":"https://api.github.com/users/leshiv/followers","following_url":"https://api.github.com/users/leshiv/following{/other_user}","gists_url":"https://api.github.com/users/leshiv/gists{/gist_id}","starred_url":"https://api.github.com/users/leshiv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/leshiv/subscriptions","organizations_url":"https://api.github.com/users/leshiv/orgs","repos_url":"https://api.github.com/users/leshiv/repos","events_url":"https://api.github.com/users/leshiv/events{/privacy}","received_events_url":"https://api.github.com/users/leshiv/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/leshiv/progit2-zh","description":"","fork":true,"url":"https://api.github.com/repos/leshiv/progit2-zh","forks_url":"https://api.github.com/repos/leshiv/progit2-zh/forks","keys_url":"https://api.github.com/repos/leshiv/progit2-zh/keys{/key_id}","collaborators_url":"https://api.github.com/repos/leshiv/progit2-zh/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/leshiv/progit2-zh/teams","hooks_url":"https://api.github.com/repos/leshiv/progit2-zh/hooks","issue_events_url":"https://api.github.com/repos/leshiv/progit2-zh/issues/events{/number}","events_url":"https://api.github.com/repos/leshiv/progit2-zh/events","assignees_url":"https://api.github.com/repos/leshiv/progit2-zh/assignees{/user}","branches_url":"https://api.github.com/repos/leshiv/progit2-zh/branches{/branch}","tags_url":"https://api.github.com/repos/leshiv/progit2-zh/tags","blobs_url":"https://api.github.com/repos/leshiv/progit2-zh/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/leshiv/progit2-zh/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/leshiv/progit2-zh/git/refs{/sha}","trees_url":"https://api.github.com/repos/leshiv/progit2-zh/git/trees{/sha}","statuses_url":"https://api.github.com/repos/leshiv/progit2-zh/statuses/{sha}","languages_url":"https://api.github.com/repos/leshiv/progit2-zh/languages","stargazers_url":"https://api.github.com/repos/leshiv/progit2-zh/stargazers","contributors_url":"https://api.github.com/repos/leshiv/progit2-zh/contributors","subscribers_url":"https://api.github.com/repos/leshiv/progit2-zh/subscribers","subscription_url":"https://api.github.com/repos/leshiv/progit2-zh/subscription","commits_url":"https://api.github.com/repos/leshiv/progit2-zh/commits{/sha}","git_commits_url":"https://api.github.com/repos/leshiv/progit2-zh/git/commits{/sha}","comments_url":"https://api.github.com/repos/leshiv/progit2-zh/comments{/number}","issue_comment_url":"https://api.github.com/repos/leshiv/progit2-zh/issues/comments{/number}","contents_url":"https://api.github.com/repos/leshiv/progit2-zh/contents/{+path}","compare_url":"https://api.github.com/repos/leshiv/progit2-zh/compare/{base}...{head}","merges_url":"https://api.github.com/repos/leshiv/progit2-zh/merges","archive_url":"https://api.github.com/repos/leshiv/progit2-zh/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/leshiv/progit2-zh/downloads","issues_url":"https://api.github.com/repos/leshiv/progit2-zh/issues{/number}","pulls_url":"https://api.github.com/repos/leshiv/progit2-zh/pulls{/number}","milestones_url":"https://api.github.com/repos/leshiv/progit2-zh/milestones{/number}","notifications_url":"https://api.github.com/repos/leshiv/progit2-zh/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/leshiv/progit2-zh/labels{/name}","releases_url":"https://api.github.com/repos/leshiv/progit2-zh/releases{/id}","created_at":"2015-06-17T01:47:18Z","updated_at":"2015-06-17T01:47:19Z","pushed_at":"2015-07-02T03:15:00Z","git_url":"git://github.com/leshiv/progit2-zh.git","ssh_url":"git@github.com:leshiv/progit2-zh.git","clone_url":"https://github.com/leshiv/progit2-zh.git","svn_url":"https://github.com/leshiv/progit2-zh","homepage":null,"size":159620,"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-04T03:40:11Z","pushed_at":"2015-07-06T02:09:50Z","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":161414,"stargazers_count":240,"watchers_count":240,"language":"CSS","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":93,"mirror_url":null,"open_issues_count":75,"forks":93,"open_issues":75,"watchers":240,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/progit/progit2-zh/pulls/117"},"html":{"href":"https://github.com/progit/progit2-zh/pull/117"},"issue":{"href":"https://api.github.com/repos/progit/progit2-zh/issues/117"},"comments":{"href":"https://api.github.com/repos/progit/progit2-zh/issues/117/comments"},"review_comments":{"href":"https://api.github.com/repos/progit/progit2-zh/pulls/117/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/117/commits"},"statuses":{"href":"https://api.github.com/repos/progit/progit2-zh/statuses/ee164ba09810d5e73fbe45db34e0556776e8c6b6"}}}}