翻译资料:https://help.github.com/articles/fork-a-repo/#platform-mac
fork是把github里的repository拷贝到自己的Repositories里。fork repository可以让你在不影响到原项目的情况下自由修改这个项目。
通常情况下,fork被用于向别人的项目提出修改建议;或者把别人的项目作为自己的项目,以此为起点做一些自己的修改。
向别人的项目提出修改建议
使用fork来提出修改建议的一个很好的例子,就是bug修复。与其为了您发现过的bug记录问题,您可以:
- 先,fork一个repository。
- 再,做出修改。
- 最后,向项目所有者提交一个拉取需求。
如果项目所有者喜欢你做出的修改,他们可能会将你的修补程序放入原始repository中!
把别人的项目作为自己的项目,以此为起点做一些自己的修改
开源程序的核心 是通过分享代码,使我们可以制作更好,更可靠的软件。
当您从fork别人的项目来创建自己的公共repository时,请确保包含一个 许可证文件,该文件确定您希望项目与其他人分享的方式。
有关源代码的更多信息,特别是如何创建和开发一个开源项目,我们创建了 开源指南 ,通过推荐创建和维护开源项目的最佳实践,来帮助您培养健康的开源社区。
fork repository 示例
fork一个repository是简单的两步操作。我们创建了一个repository来供您练习!
1.在GitHub上, 导航到 octocat/Spoon-Knife repository。
2.在页面的右上角,点击 Fork。
就是它! 现在,你已经fork了octocat/Spoon-Knife的repository或者说拥有了octocat/Spoon-Knife repository的分支。
保持您的分支(fork后的repository)的同步
您可能fork一个项目,以便对上游或原始repository提出修改建议。在这种情况下,对于经常与上游的repository同步您的分支(fork)来说,是很好的一个做法。为了更好地同步fork,您需要习惯使用Git命令行。您可以通过刚刚fork的 octocat/Spoon-Knife repository,来练习设置上游repository!
第一步: 设置Git
如果还没有,你应该首先设置 Git。以及不要忘了 从Git设置身份认证到GitHub。
第二步: 创建fork的本地克隆
现在,你已经有一个Spoon-Knife repository的分支(fork), 但在你的电脑上没有repository的文件。让我们在你的电脑上创建一个fork的本地克隆。
1.在GitHub上,导航到Spoon-Knife repository的 你的fork上。
2.在repository名字下面,点击 Clone or download。
3.在“Clone With HTTPs”选项中,点击 来复制repository的URL。
4.打开终端。
5.键入 git clone
,接着粘贴在第二步中复制的URL。 会像下面这样,然后用你的GitGub的名字代替 YOUR-USERNAME
:
git clone https://github.com/YOUR-USERNAME/Spoon-Knife
6.按下 Enter 键。 你的本地克隆就会创建了。
git clone https://github.com/YOUR-USERNAME/Spoon-Knife Cloning into `Spoon-Knife`... remote: Counting objects: 10, done. remote: Compressing objects: 100% (8/8), done. remove: Total 10 (delta 1), reused 10 (delta 1) Unpacking objects: 100% (10/10), done.
现在,你已经有了Spoon-Knife repository的分支的本地克隆!
第三步: 配置Git来同步你的分支(fork)到Spoon-Knife repository的原始代码中
当你为了向原始repository提出修改建议而fork一个项目时,你可以配置Git来从原始repository或上游repository拉取修改内容,以此来fork到你的本地副本中。
1.在GitHub上,导航到 octocat/Spoon-Knife repository。
2.在repository的名字下,点击 Clone or download。
3.在“Clone with HTTPs”选项中, 点击 来复制repository的URL。
4.打开终端。
5.修改目录为你在 第二步: 创建fork的本地克隆中的fork的本地目录。
要进入你的主目录,只要键入 cd
即可。
要列出当前目录的所以文件夹和文件,只要键入 ls
。
要进入列出的其中一个目录,键入 cd your_listed_directory
。
要走上一个目录,键入 cd ..
。
6.键入 git remote -v
再按 Enter。 你会看到当前为你的分支配置过的远程repository。
git remote -v origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch) origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
7.键入 git remote add upstream
,接着粘贴你刚刚在第二步复制的URL,再按Enter键,会出现如下情况:
git remote add upstream https://github.com/octocat/Spoon-Knife.git
8.要验证你fork的新的上游repository,请再次键入 git remote -v
。 你应该会看到你的分支为 origin
, 以及原始repository为 upstream
。
git remote -v origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch) origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (push) upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch) upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (push)
现在,你可以用一些Git的命令来让你的fork保持与上游repository的同步。有关更多的信息,请查看 "Syncing a fork"。
下一步
天空才是你修改你的fork的极限,其中包括:
- 建立你的分支机构: Branches 可以让你建立一些新的功能或测试创意,而不会让你的主项目处于风险之中。
- 打开拉取需求:如果你希望从回馈到原始repositoryk中,你可以发送一个请求给原始作者,让你通过提交 拉取请求 来将你的拉入他们的repository。
找到另一个repository来fork
fork一个repository来开始为项目做贡献。你可以fork任何公共的repository或者一些你可以访问的私有的repository。有关更多信息,请查看 "About forks"。
你可以浏览 Explore 来查找项目并开始贡献开始repository。有关更多信息,请查看 "Finding open source projects on GitHub."
庆祝
你现在已经fork了一个repository,已经练习了你的fork的克隆,还有配置了上游的repository。下一步你该做什么呢?
- "设置 Git"
- "创建一个 repository"
- Fork 一个 repository
- " 社交"
- 在 GitHub 社区论坛 与世界各地的人联系