## 如何参与到项目的维护呢? 以\`javaGuide\`为例,这里提供 3 种方式: 1. \*\*提出 \`Issue\`\*\* :在 Issue 中指出你觉得需要改进/完善的地方(能够独立解决的话,可以在提出 Issue 后再提交 \`PR\` )。 2. \*\*处理 \`Issue\`\*\* : 帮忙处理一些待处理的 \`Issue\`。 3. \*\*提交 \`PR\`\*\*\`: 对于错别字/笔误这类问题可以直接提交\`PR\`,无需提交\`Issue\` 确认。 ### 提出 Issue 如果你在学习 \`JavaGuide\` 的过程中,发现了需要改进的地方,或者你想为 \`JavaGuide\` 添加更多的内容的话,你可以提交 \`Issue\`。 \[!\[img\](https://camo.githubusercontent.com/2f147092f0789168ccf4170da4bbdcfe411f23bbe88012bce9b72e2dcb639195/68747470733a2f2f696d672d626c6f672e6373646e696d672e636e2f32303231303531323137333535313436382e706e67)\](https://camo.githubusercontent.com/2f147092f0789168ccf4170da4bbdcfe411f23bbe88012bce9b72e2dcb639195/68747470733a2f2f696d672d626c6f672e6373646e696d672e636e2f32303231303531323137333535313436382e706e67) 具体步骤如下: 1. 点击项目右上角的 \`New Issue\` 按钮,就可以创建一个新的 \`Issue\` 了。 2. 在 \`Issue\` 中,你需要写清楚自己遇到的问题,例如:你觉得哪里需要改进,或者你觉得还可以添加哪些内容。 例如,下面就是一个具体的例子:一位同学在学习 \`JavaGuide\` 的过程中,发现缺失了操作系统中的死锁部分存在问题,于是提出了这个 \`Issue\`。下面有另一位同学认领了这块部分,并且随后为 \`JavaGuide\` 添加了死锁相关内容。 \[!\[img\](https://camo.githubusercontent.com/4df0ed4103756ab4b149f0b1fbd3045535ab62586ad74f6e714b0e1a9c6c1fc7/68747470733a2f2f696d672d626c6f672e6373646e696d672e636e2f32303231303531323137333631303231392e706e67)\](https://camo.githubusercontent.com/4df0ed4103756ab4b149f0b1fbd3045535ab62586ad74f6e714b0e1a9c6c1fc7/68747470733a2f2f696d672d626c6f672e6373646e696d672e636e2f32303231303531323137333631303231392e706e67) 你可以仿照已有的 \`Issue\`,编写自己的 \`Issue\` 内容。 在 \`Issue\` 内,你可以和大家共同探讨所遇到的问题以及合适的解决方案。探讨完毕后,就可以开始真正为项目作出贡献了! ### 处理 Issue 如果你发现一些\*\*待处理\*\* 的 \`Issue\` 的话,可以帮忙解决。 我会把一些 \*\*待处理\*\* 的 \`Issue\` 标记出来,如果你想帮忙解决这个 \`Issue\` 的话,直接在 \`Issue\` 区回复一下自己想要帮忙处理即可。 \[!\[img\](https://camo.githubusercontent.com/7b0a72cf12567767dd6c299856a2bf11da1f1f3f1c60c2c07c05aa530b3c43e5/68747470733a2f2f696d672d626c6f672e6373646e696d672e636e2f32303231303531323137313231393830322e706e67)\](https://camo.githubusercontent.com/7b0a72cf12567767dd6c299856a2bf11da1f1f3f1c60c2c07c05aa530b3c43e5/68747470733a2f2f696d672d626c6f672e6373646e696d672e636e2f32303231303531323137313231393830322e706e67) 涉及到内容修改/完善的话,你需要提交 PR。 ### 提交 PR 我们知道,\`JavaGuide\` 仓库是属于 \`Snailclimb\` 账户的,因此我们无权对其进行修改。所以首先,我们需要 \`Fork\` 原仓库,到自己的账户名下。 \[!\[img\](https://camo.githubusercontent.com/c6eb2ac2586ecf541c48a46574d2b0287d3574e4a3615d405efcc322d9b870f4/68747470733a2f2f696d672d626c6f672e6373646e696d672e636e2f32303231303531323137323830393830362e706e673f782d6f73732d70726f636573733d696d6167652f77617465726d61726b2c747970655f5a6d46755a33706f5a57356e6147567064476b2c736861646f775f31302c746578745f6148523063484d364c7939696247396e4c6d4e7a5a473475626d56304c334678587a4d304d7a4d334d6a63792c73697a655f31362c636f6c6f725f4646464646462c745f3730)\](https://camo.githubusercontent.com/c6eb2ac2586ecf541c48a46574d2b0287d3574e4a3615d405efcc322d9b870f4/68747470733a2f2f696d672d626c6f672e6373646e696d672e636e2f32303231303531323137323830393830362e706e673f782d6f73732d70726f636573733d696d6167652f77617465726d61726b2c747970655f5a6d46755a33706f5a57356e6147567064476b2c736861646f775f31302c746578745f6148523063484d364c7939696247396e4c6d4e7a5a473475626d56304c334678587a4d304d7a4d334d6a63792c73697a655f31362c636f6c6f725f4646464646462c745f3730) 点击上图的 Fork 按钮后,Github 就会自动为仓库创建一份副本,到自己的账户名下。 \[!\[img\](https://camo.githubusercontent.com/af78f72e92d75922985381fcee8f693ca63978b8995036d49c9f2ef6308ed4a3/68747470733a2f2f696d672d626c6f672e6373646e696d672e636e2f32303231303531323137323833323239392e706e673f782d6f73732d70726f636573733d696d6167652f77617465726d61726b2c747970655f5a6d46755a33706f5a57356e6147567064476b2c736861646f775f31302c746578745f6148523063484d364c7939696247396e4c6d4e7a5a473475626d56304c334678587a4d304d7a4d334d6a63792c73697a655f31362c636f6c6f725f4646464646462c745f3730)\](https://camo.githubusercontent.com/af78f72e92d75922985381fcee8f693ca63978b8995036d49c9f2ef6308ed4a3/68747470733a2f2f696d672d626c6f672e6373646e696d672e636e2f32303231303531323137323833323239392e706e673f782d6f73732d70726f636573733d696d6167652f77617465726d61726b2c747970655f5a6d46755a33706f5a57356e6147567064476b2c736861646f775f31302c746578745f6148523063484d364c7939696247396e4c6d4e7a5a473475626d56304c334678587a4d304d7a4d334d6a63792c73697a655f31362c636f6c6f725f4646464646462c745f3730) 例如,上图就是我点击 \`Fork\` 后,在自己账户下自动生成的仓库。 然后,我们就可以自由的对自己的仓库进行修改,编写相关内容了~因为该仓库是原仓库的复制品,所以不论你对其做什么修改,都不会影响到原仓库! 在对自己的仓库修改完毕后,你就可以向原仓库提交 \`Pull Request\`,也就是合并请求了。 \*\*那么具体该如何操作呢?\*\* 在自己 \`Fork\` 的项目中,点击 \`Pull Request\`,然后点击 \`New Pull Request\` \[!\[img\](https://camo.githubusercontent.com/88d250d4f79bc0f4570e0ec329807dc4b95f6cdc3bdf8c95590e496bbd7a2f3a/68747470733a2f2f696d672d626c6f672e6373646e696d672e636e2f323032313035313231373239303037392e706e673f782d6f73732d70726f636573733d696d6167652f77617465726d61726b2c747970655f5a6d46755a33706f5a57356e6147567064476b2c736861646f775f31302c746578745f6148523063484d364c7939696247396e4c6d4e7a5a473475626d56304c334678587a4d304d7a4d334d6a63792c73697a655f31362c636f6c6f725f4646464646462c745f3730)\](https://camo.githubusercontent.com/88d250d4f79bc0f4570e0ec329807dc4b95f6cdc3bdf8c95590e496bbd7a2f3a/68747470733a2f2f696d672d626c6f672e6373646e696d672e636e2f323032313035313231373239303037392e706e673f782d6f73732d70726f636573733d696d6167652f77617465726d61726b2c747970655f5a6d46755a33706f5a57356e6147567064476b2c736861646f775f31302c746578745f6148523063484d364c7939696247396e4c6d4e7a5a473475626d56304c334678587a4d304d7a4d334d6a63792c73697a655f31362c636f6c6f725f4646464646462c745f3730) 然后,根据提示,创建 \`Pull Request\` 即可。是不是非常简单? 接下来,你只需要等待原仓库管理员的审核就可以了。 在收到你的 \`Pull Request\` 后,原仓库管理员可以决定是否合并你的提交,如果同意合并的话,你的贡献就能真正融入原项目了! \> 来自: https://github.com/Snailclimb/JavaGuide/issues/1235