{"action":"created","comment":{"url":"https://api.github.com/repos/taichunmin/progit2/pulls/comments/28910262","id":28910262,"diff_hunk":"@@ -99,85 +98,88 @@ To https://github.com/tonychacon/blink\n  * [new branch]      slow-blink -> slow-blink\n ----\n \n-<1> Clone our fork of the project locally\n-<2> Create a descriptive topic branch\n-<3> Make our change to the code\n-<4> Check that the change is good\n-<5> Commit our change to the topic branch\n-<6> Push our new topic branch back up to our GitHub fork\n+<1> 把我們 fork 的專案克隆一份到本機\n+<2> 建立名稱有意義的主題分支\n+<3> 對程式碼作變更\n+<4> 確認這個變更一切 OK\n+<5> 把變更加入我們的主題分支\n+<6> 把我們的新分支 Push 回 GitHub 的 fork 上\n \n-Now if we go back to our fork on GitHub, we can see that GitHub noticed that we pushed a new topic branch up and present us with a big green button to check out our changes and open a Pull Request to the original project.\n+如果我們回到我們在 GitHub 上的 fork ，我們可以看到 GitHub 發現我們推了新分支上來，並且顯示了一個大大的綠色按鈕讓我們可以檢視我們的變更，並能對原始專案開啟一個 Pull Request 。\n \n-You can alternatively go to the ``Branches'' page at `https://github.com/<user>/<project>/branches` to locate your branch and open a new Pull Request from there.\n+你也可以去到 在 `https://github.com/<user>/<project>/branches` 上的 ``Branches'' 頁面去找出你的 branch 並從那邊開啟一個新的 Pull Request。\n \n-.Pull Request button\n-image::images/blink-02-pr.png[Pull Request button]\n+.Pull Request 按鈕\n+image::images/blink-02-pr.png[Pull Request 按鈕]\n \n (((GitHub, pull requests)))\n-If we click that green button, we'll see a screen that allows us to create a title and description for the change we would like to request so the project owner has a good reason to consider it. It is generally a good idea to spend some effort making this description as useful as possible so the author knows why this is being suggested and why it would be a valuable change for them to accept.\n-\n-We also see a list of the commits in our topic branch that are ``ahead'' of the `master` branch (in this case, just the one) and a unified diff of all the changes that will be made should this branch get merged by the project owner.\n+如果我們按下綠色按鈕，我們會看到一個畫面，可以針對這次的變更來編寫標題和描述，讓專案擁有人願意對這變更考慮一下。\n+通常花點心力來寫出一個讓這個描述盡可能的有意義會是個不錯的主意，這樣原作者就能知道這個變更的好處進而讓他接受這個變更。\n+同時也會看到一個我們比主分支多做過的所有變動的清單(在這個案例裡只有一個)，和一個包含所有將要合併的差異總表。\n \n-.Pull Request creation page\n+.Pull Request 建立頁面\n image::images/blink-03-pull-request-open.png[Pull Request creation]\n \n-When you hit the 'Create pull request' button on this screen, the owner of the project you forked will get a notification that someone is suggesting a change and will link to a page that has all of this information on it.\n+當你按下畫面中的 'Create pull request' 按鈕時，你 fork 的來源專案的擁有者會收到一個通知，通知他有人建議一個變動並且會附上連往包含所有資訊的頁面連結。\n \n [NOTE]\n ====\n-Though Pull Requests are used commonly for public projects like this when the contributor has a complete change ready to be made, it's also often used in internal projects _at the beginning_ of the development cycle.  Since you can keep pushing to the topic branch even *after* the Pull Request is opened, it's often opened early and used as a way to iterate on work as a team within a context, rather than opened at the very end of the process.\n+雖然在這種公開專案上，Pull Requests 通常都是在貢獻者已經準備好要加入的變更時才會發出；但是他常用於專案 _剛開始_ 時的一些內部專案。\n+基於 Pull Request 在建立 *之後* 仍然可以持續加入新的變更的特性，因此也常會在初期建立當作一個團隊合作的環境，而非在最後才使用。\n ====\n \n-===== Iterating on a Pull Request\n+===== 重複使用一個 Pull Request\n \n-At this point, the project owner can look at the suggested change and merge it, reject it or comment on it. Let's say that he likes the idea, but would prefer a slightly longer time for the light to be off than on.\n+現在呢，專案的擁有者可以閱覽所有建議的變更，然後決定要合併進來、拒絕變更或是對這留下評論。在這邊我們當作他覺得他喜歡這點子好了，但是他覺得燈暗掉的時間要比亮的時間長一點。\n \n-Where this conversation may take place over email in the workflows presented in <<_distributed_git>>, on GitHub this happens online. The project owner can review the unified diff and leave a comment by clicking on any of the lines.\n+這個互動或許會透過電子郵件並依照在 <<_distributed_git>> 提到的工作流程運作；而在 GitHub 上，這是在線上運作的。專案擁有者可以在審閱差異總表時，點一下想要評論的那行內容並留下評論。\n \n-.Comment on a specific line of code in a Pull Request\n+.對 Pull Request 的某行程式碼下評論\n image::images/blink-04-pr-comment.png[PR line comment]\n \n-Once the maintainer makes this comment, the person who opened the Pull Request (and indeed, anyone else watching the repository) will get a notification. We'll go over customizing this later, but if he had email notifications turned on, Tony would get an email like this:\n+當維護者留下評論，建立這個 Pull Request 的人（以及所有關注這個倉儲的人）都會收到通知。我們等等會對這做自訂，不過如果有開啟電子郵件通知，Tony 會這樣的一封信：\n \n [[_email_notification]]\n-.Comments sent as email notifications\n+.以電子郵件型式寄送的評論\n image::images/blink-04-email.png[Email notification]\n \n-Anyone can also leave general comments on the Pull Request. In <<_pr_discussion>> we can see an example of the project owner both commenting on a line of code and then leaving a general comment in the discussion section. You can see that the code comments are brought into the conversation as well.\n+其他人也可以對 Pull Request 留下一般評論。 在 <<_pr_discussion>> 裏面我們可以看到專案擁有者對某行程式碼做評論，同時也在討論區塊留了一般評論。你可以看到程式碼評論也會被帶到這個互動之中。\n \n [[_pr_discussion]]\n-.Pull Request discussion page\n+.Pull Request 討論頁\n image::images/blink-05-general-comment.png[PR discussion page]\n \n-Now the contributor can see what they need to do in order to get their change accepted. Luckily this is also a very simple thing to do. Where over email you may have to re-roll your series and resubmit it to the mailing list, with GitHub you simply commit to the topic branch again and push.\n+現在貢獻者就可以知道他要做哪些處理才能讓擁有者接受這個變更。剛好這也是個能輕鬆達成的事。如果是透過電子郵件的話你需要把所有的變動重新執行一次然後重新上傳，但是在 GitHub 上你只要對主題分支再次做 commit 然後 push 上去即可。\n \n-If the contributor does that then the project owner will get notified again and when they visit the page they will see that it's been addressed. In fact, since a line of code changed that had a comment on it, GitHub notices that and collapses the outdated diff.\n+如果貢獻者做了這樣的動作，專案擁有者會再次收到通知；當他們再次開啟這個頁面時就可以看到新發佈的變動。 事實上，當有加評論的那行程式碼有變動時，GitHub 會注意到並處理過期的差異表。\n \n [[_pr_final]]\n-.Pull Request final\n+.結束 Pull Request\n image::images/blink-06-final.png[PR final]\n \n-An interesting thing to notice is that if you click on the ``Files Changed'' tab on this Pull Request, you'll get the ``unified'' diff -- that is, the total aggregate difference that would be introduced to your main branch if this topic branch was merged in. In `git diff` terms, it basically automatically shows you `git diff master...<branch>` for the branch this Pull Request is based on. See <<_what_is_introduced>> for more about this type of diff.\n+有個有趣的東西就是如果你點開 Pull Request 的 ``Files Changed'' 分頁，你會得到一份 ``統整過的'' 差異表－也就是所有當這個主題分支被合併進主要分支時會做的變動。以 ``git diff'' 的方式來講，就是自動顯示給你對 Pull Request 指定的主題分支做 ``git diff master...<branch>'' 的結果。看 <<_what_is_introduced>> 來了解更多關於這種差異表的事情。","path":"book/06-github/sections/2-contributing.asc","position":186,"original_position":186,"commit_id":"452989ee8ee5db7481488c249e9e98acf845024c","original_commit_id":"452989ee8ee5db7481488c249e9e98acf845024c","user":{"login":"taichunmin","id":2192626,"avatar_url":"https://avatars.githubusercontent.com/u/2192626?v=3","gravatar_id":"","url":"https://api.github.com/users/taichunmin","html_url":"https://github.com/taichunmin","followers_url":"https://api.github.com/users/taichunmin/followers","following_url":"https://api.github.com/users/taichunmin/following{/other_user}","gists_url":"https://api.github.com/users/taichunmin/gists{/gist_id}","starred_url":"https://api.github.com/users/taichunmin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/taichunmin/subscriptions","organizations_url":"https://api.github.com/users/taichunmin/orgs","repos_url":"https://api.github.com/users/taichunmin/repos","events_url":"https://api.github.com/users/taichunmin/events{/privacy}","received_events_url":"https://api.github.com/users/taichunmin/received_events","type":"User","site_admin":false},"body":"用兩個連字號好了，這樣才不會跟「一」搞混。\r\n——","created_at":"2015-04-22T20:14:45Z","updated_at":"2015-04-22T20:14:45Z","html_url":"https://github.com/taichunmin/progit2/pull/9#discussion_r28910262","pull_request_url":"https://api.github.com/repos/taichunmin/progit2/pulls/9","_links":{"self":{"href":"https://api.github.com/repos/taichunmin/progit2/pulls/comments/28910262"},"html":{"href":"https://github.com/taichunmin/progit2/pull/9#discussion_r28910262"},"pull_request":{"href":"https://api.github.com/repos/taichunmin/progit2/pulls/9"}}},"pull_request":{"url":"https://api.github.com/repos/taichunmin/progit2/pulls/9","id":33597733,"html_url":"https://github.com/taichunmin/progit2/pull/9","diff_url":"https://github.com/taichunmin/progit2/pull/9.diff","patch_url":"https://github.com/taichunmin/progit2/pull/9.patch","issue_url":"https://api.github.com/repos/taichunmin/progit2/issues/9","number":9,"state":"open","locked":false,"title":"6-2 的三分之一","user":{"login":"NightFeather","id":4570441,"avatar_url":"https://avatars.githubusercontent.com/u/4570441?v=3","gravatar_id":"","url":"https://api.github.com/users/NightFeather","html_url":"https://github.com/NightFeather","followers_url":"https://api.github.com/users/NightFeather/followers","following_url":"https://api.github.com/users/NightFeather/following{/other_user}","gists_url":"https://api.github.com/users/NightFeather/gists{/gist_id}","starred_url":"https://api.github.com/users/NightFeather/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/NightFeather/subscriptions","organizations_url":"https://api.github.com/users/NightFeather/orgs","repos_url":"https://api.github.com/users/NightFeather/repos","events_url":"https://api.github.com/users/NightFeather/events{/privacy}","received_events_url":"https://api.github.com/users/NightFeather/received_events","type":"User","site_admin":false},"body":"","created_at":"2015-04-18T06:45:12Z","updated_at":"2015-04-22T20:14:45Z","closed_at":null,"merged_at":null,"merge_commit_sha":"c0651d6a9be82021e70b43b0494543b5fe0a2b7b","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/taichunmin/progit2/pulls/9/commits","review_comments_url":"https://api.github.com/repos/taichunmin/progit2/pulls/9/comments","review_comment_url":"https://api.github.com/repos/taichunmin/progit2/pulls/comments{/number}","comments_url":"https://api.github.com/repos/taichunmin/progit2/issues/9/comments","statuses_url":"https://api.github.com/repos/taichunmin/progit2/statuses/452989ee8ee5db7481488c249e9e98acf845024c","head":{"label":"NightFeather:zh-tw","ref":"zh-tw","sha":"452989ee8ee5db7481488c249e9e98acf845024c","user":{"login":"NightFeather","id":4570441,"avatar_url":"https://avatars.githubusercontent.com/u/4570441?v=3","gravatar_id":"","url":"https://api.github.com/users/NightFeather","html_url":"https://github.com/NightFeather","followers_url":"https://api.github.com/users/NightFeather/followers","following_url":"https://api.github.com/users/NightFeather/following{/other_user}","gists_url":"https://api.github.com/users/NightFeather/gists{/gist_id}","starred_url":"https://api.github.com/users/NightFeather/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/NightFeather/subscriptions","organizations_url":"https://api.github.com/users/NightFeather/orgs","repos_url":"https://api.github.com/users/NightFeather/repos","events_url":"https://api.github.com/users/NightFeather/events{/privacy}","received_events_url":"https://api.github.com/users/NightFeather/received_events","type":"User","site_admin":false},"repo":{"id":32629582,"name":"progit2","full_name":"NightFeather/progit2","owner":{"login":"NightFeather","id":4570441,"avatar_url":"https://avatars.githubusercontent.com/u/4570441?v=3","gravatar_id":"","url":"https://api.github.com/users/NightFeather","html_url":"https://github.com/NightFeather","followers_url":"https://api.github.com/users/NightFeather/followers","following_url":"https://api.github.com/users/NightFeather/following{/other_user}","gists_url":"https://api.github.com/users/NightFeather/gists{/gist_id}","starred_url":"https://api.github.com/users/NightFeather/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/NightFeather/subscriptions","organizations_url":"https://api.github.com/users/NightFeather/orgs","repos_url":"https://api.github.com/users/NightFeather/repos","events_url":"https://api.github.com/users/NightFeather/events{/privacy}","received_events_url":"https://api.github.com/users/NightFeather/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/NightFeather/progit2","description":"Pro Git 2nd Edition","fork":true,"url":"https://api.github.com/repos/NightFeather/progit2","forks_url":"https://api.github.com/repos/NightFeather/progit2/forks","keys_url":"https://api.github.com/repos/NightFeather/progit2/keys{/key_id}","collaborators_url":"https://api.github.com/repos/NightFeather/progit2/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/NightFeather/progit2/teams","hooks_url":"https://api.github.com/repos/NightFeather/progit2/hooks","issue_events_url":"https://api.github.com/repos/NightFeather/progit2/issues/events{/number}","events_url":"https://api.github.com/repos/NightFeather/progit2/events","assignees_url":"https://api.github.com/repos/NightFeather/progit2/assignees{/user}","branches_url":"https://api.github.com/repos/NightFeather/progit2/branches{/branch}","tags_url":"https://api.github.com/repos/NightFeather/progit2/tags","blobs_url":"https://api.github.com/repos/NightFeather/progit2/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/NightFeather/progit2/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/NightFeather/progit2/git/refs{/sha}","trees_url":"https://api.github.com/repos/NightFeather/progit2/git/trees{/sha}","statuses_url":"https://api.github.com/repos/NightFeather/progit2/statuses/{sha}","languages_url":"https://api.github.com/repos/NightFeather/progit2/languages","stargazers_url":"https://api.github.com/repos/NightFeather/progit2/stargazers","contributors_url":"https://api.github.com/repos/NightFeather/progit2/contributors","subscribers_url":"https://api.github.com/repos/NightFeather/progit2/subscribers","subscription_url":"https://api.github.com/repos/NightFeather/progit2/subscription","commits_url":"https://api.github.com/repos/NightFeather/progit2/commits{/sha}","git_commits_url":"https://api.github.com/repos/NightFeather/progit2/git/commits{/sha}","comments_url":"https://api.github.com/repos/NightFeather/progit2/comments{/number}","issue_comment_url":"https://api.github.com/repos/NightFeather/progit2/issues/comments{/number}","contents_url":"https://api.github.com/repos/NightFeather/progit2/contents/{+path}","compare_url":"https://api.github.com/repos/NightFeather/progit2/compare/{base}...{head}","merges_url":"https://api.github.com/repos/NightFeather/progit2/merges","archive_url":"https://api.github.com/repos/NightFeather/progit2/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/NightFeather/progit2/downloads","issues_url":"https://api.github.com/repos/NightFeather/progit2/issues{/number}","pulls_url":"https://api.github.com/repos/NightFeather/progit2/pulls{/number}","milestones_url":"https://api.github.com/repos/NightFeather/progit2/milestones{/number}","notifications_url":"https://api.github.com/repos/NightFeather/progit2/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/NightFeather/progit2/labels{/name}","releases_url":"https://api.github.com/repos/NightFeather/progit2/releases{/id}","created_at":"2015-03-21T11:18:42Z","updated_at":"2015-04-18T06:27:11Z","pushed_at":"2015-04-22T19:40:37Z","git_url":"git://github.com/NightFeather/progit2.git","ssh_url":"git@github.com:NightFeather/progit2.git","clone_url":"https://github.com/NightFeather/progit2.git","svn_url":"https://github.com/NightFeather/progit2","homepage":null,"size":166372,"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":"taichunmin:master","ref":"master","sha":"69e25c67b8691f346afaeb05162f2ee3e23ae695","user":{"login":"taichunmin","id":2192626,"avatar_url":"https://avatars.githubusercontent.com/u/2192626?v=3","gravatar_id":"","url":"https://api.github.com/users/taichunmin","html_url":"https://github.com/taichunmin","followers_url":"https://api.github.com/users/taichunmin/followers","following_url":"https://api.github.com/users/taichunmin/following{/other_user}","gists_url":"https://api.github.com/users/taichunmin/gists{/gist_id}","starred_url":"https://api.github.com/users/taichunmin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/taichunmin/subscriptions","organizations_url":"https://api.github.com/users/taichunmin/orgs","repos_url":"https://api.github.com/users/taichunmin/repos","events_url":"https://api.github.com/users/taichunmin/events{/privacy}","received_events_url":"https://api.github.com/users/taichunmin/received_events","type":"User","site_admin":false},"repo":{"id":32493501,"name":"progit2","full_name":"taichunmin/progit2","owner":{"login":"taichunmin","id":2192626,"avatar_url":"https://avatars.githubusercontent.com/u/2192626?v=3","gravatar_id":"","url":"https://api.github.com/users/taichunmin","html_url":"https://github.com/taichunmin","followers_url":"https://api.github.com/users/taichunmin/followers","following_url":"https://api.github.com/users/taichunmin/following{/other_user}","gists_url":"https://api.github.com/users/taichunmin/gists{/gist_id}","starred_url":"https://api.github.com/users/taichunmin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/taichunmin/subscriptions","organizations_url":"https://api.github.com/users/taichunmin/orgs","repos_url":"https://api.github.com/users/taichunmin/repos","events_url":"https://api.github.com/users/taichunmin/events{/privacy}","received_events_url":"https://api.github.com/users/taichunmin/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/taichunmin/progit2","description":"Pro Git 2nd Edition","fork":true,"url":"https://api.github.com/repos/taichunmin/progit2","forks_url":"https://api.github.com/repos/taichunmin/progit2/forks","keys_url":"https://api.github.com/repos/taichunmin/progit2/keys{/key_id}","collaborators_url":"https://api.github.com/repos/taichunmin/progit2/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/taichunmin/progit2/teams","hooks_url":"https://api.github.com/repos/taichunmin/progit2/hooks","issue_events_url":"https://api.github.com/repos/taichunmin/progit2/issues/events{/number}","events_url":"https://api.github.com/repos/taichunmin/progit2/events","assignees_url":"https://api.github.com/repos/taichunmin/progit2/assignees{/user}","branches_url":"https://api.github.com/repos/taichunmin/progit2/branches{/branch}","tags_url":"https://api.github.com/repos/taichunmin/progit2/tags","blobs_url":"https://api.github.com/repos/taichunmin/progit2/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/taichunmin/progit2/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/taichunmin/progit2/git/refs{/sha}","trees_url":"https://api.github.com/repos/taichunmin/progit2/git/trees{/sha}","statuses_url":"https://api.github.com/repos/taichunmin/progit2/statuses/{sha}","languages_url":"https://api.github.com/repos/taichunmin/progit2/languages","stargazers_url":"https://api.github.com/repos/taichunmin/progit2/stargazers","contributors_url":"https://api.github.com/repos/taichunmin/progit2/contributors","subscribers_url":"https://api.github.com/repos/taichunmin/progit2/subscribers","subscription_url":"https://api.github.com/repos/taichunmin/progit2/subscription","commits_url":"https://api.github.com/repos/taichunmin/progit2/commits{/sha}","git_commits_url":"https://api.github.com/repos/taichunmin/progit2/git/commits{/sha}","comments_url":"https://api.github.com/repos/taichunmin/progit2/comments{/number}","issue_comment_url":"https://api.github.com/repos/taichunmin/progit2/issues/comments{/number}","contents_url":"https://api.github.com/repos/taichunmin/progit2/contents/{+path}","compare_url":"https://api.github.com/repos/taichunmin/progit2/compare/{base}...{head}","merges_url":"https://api.github.com/repos/taichunmin/progit2/merges","archive_url":"https://api.github.com/repos/taichunmin/progit2/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/taichunmin/progit2/downloads","issues_url":"https://api.github.com/repos/taichunmin/progit2/issues{/number}","pulls_url":"https://api.github.com/repos/taichunmin/progit2/pulls{/number}","milestones_url":"https://api.github.com/repos/taichunmin/progit2/milestones{/number}","notifications_url":"https://api.github.com/repos/taichunmin/progit2/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/taichunmin/progit2/labels{/name}","releases_url":"https://api.github.com/repos/taichunmin/progit2/releases{/id}","created_at":"2015-03-19T01:14:07Z","updated_at":"2015-04-18T20:41:12Z","pushed_at":"2015-04-22T19:40:37Z","git_url":"git://github.com/taichunmin/progit2.git","ssh_url":"git@github.com:taichunmin/progit2.git","clone_url":"https://github.com/taichunmin/progit2.git","svn_url":"https://github.com/taichunmin/progit2","homepage":null,"size":166493,"stargazers_count":2,"watchers_count":2,"language":"CSS","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":4,"mirror_url":null,"open_issues_count":1,"forks":4,"open_issues":1,"watchers":2,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/taichunmin/progit2/pulls/9"},"html":{"href":"https://github.com/taichunmin/progit2/pull/9"},"issue":{"href":"https://api.github.com/repos/taichunmin/progit2/issues/9"},"comments":{"href":"https://api.github.com/repos/taichunmin/progit2/issues/9/comments"},"review_comments":{"href":"https://api.github.com/repos/taichunmin/progit2/pulls/9/comments"},"review_comment":{"href":"https://api.github.com/repos/taichunmin/progit2/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/taichunmin/progit2/pulls/9/commits"},"statuses":{"href":"https://api.github.com/repos/taichunmin/progit2/statuses/452989ee8ee5db7481488c249e9e98acf845024c"}}}}