git - Git fork 实际上是 Git 克隆吗?

标签 git github git-clone git-fork

我一直听到人们说他们在 Git 中 fork 代码。 Git“fork”听起来很像 Git“克隆”加上一些(无意义的)放弃 future merge 的心理意愿。 Git 中没有 fork 命令吧?

GitHub 通过在 fork 上装订信件使 fork 更加真实。也就是说,您按下 fork 按钮,稍后,当您按下 pull request 按钮时,系统足够智能,可以向所有者发送电子邮件。因此,它有点像围绕存储库所有权和权限的舞蹈。

是/否?对 GitHub 向这个方向扩展 Git 有什么担忧吗?或者有任何关于 Git 吸收该功能的谣言?

最佳答案

Fork ,在 GitHub 上下文中,不扩展 Git。
它只允许在服务器端进行克隆。

当您在本地工作站上克隆 GitHub 存储库时,您不能回馈上游存储库,除非您被明确声明为“贡献者”。那是因为您的克隆是该项目的一个单独实例。如果你想为项目做贡献,你可以使用 forking 来做,方式如下:

  • 在您的 GitHub 帐户上克隆该 GitHub 存储库(即 "fork" part,服务器端的克隆)
  • 向该 GitHub 存储库贡献提交(它在您自己的 GitHub 帐户中,因此您有权向其推送)
  • 将任何有趣的贡献反馈给原始 GitHub 存储库(即 "pull request" part 通过您对自己的 GitHub 存储库所做的更改)

同时检查“Collaborative GitHub Workflow”。

如果您想与原始存储库(也称为上游)保持链接,则需要添加一个引用该原始存储库的远程。
参见“What is the difference between origin and upstream on GitHub?

fork and upstream

使用 Git 2.20(2018 年第 4 季度)及更多版本,从 fork 中获取数据更加高效,with delta islands .

关于git - Git fork 实际上是 Git 克隆吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6286571/

相关文章:

node.js - Haste 模块映射中不存在模块 `expo`

github - Git 拉取 : EGit with GitHub

github - 如何在 Github 提交中添加标签?

Git 部分克隆 : how to disable dynamic object fetching?

Git:通过符号链接(symbolic link)克隆需要密码?

git - 暂停 git clone 并稍后恢复?

git - Git 中的 "Unable to obtain your identity"错误

用于保持 2 个分支同步的 Git 流程,但有一个异常(exception)

mysql - 在 MySQL 数据库上使用版本控制 (Git)

Git 将分支从一个 Remote 推送到另一个 Remote ?