如果我在GitHub上fork一个项目,是否会同时fork所有分支?我如何知道我的fork是基于哪个分支的?换句话说,哪个分支会被下载到我的电脑上?
如果我在GitHub上fork一个项目,是否会同时fork所有分支?我如何知道我的fork是基于哪个分支的?换句话说,哪个分支会被下载到我的电脑上?
这么说吧:
Repo(仓库) 是团队在一个或多个分支上协作工作的集合。所有贡献者都有自己的副本。
每个 fork(分叉) 对应一个贡献者的工作。Fork实际上是Github(不是Git)的构造,用于将存储库的克隆存储在用户帐户中。作为一个克隆,它将包含在您创建Fork时主repo中的所有分支。
在fork和/或主repo中的每个分支可以对应几种不同的东西,具体取决于您想要工作的方式。每个分支可以引用项目的一个版本,也可以对应于开发的不同渠道,如热修复或实验性工作。
在GitHub生态系统中,拉取请求 对应于任务。每当我想要将一个独立完成的任务贡献给主repo时,我会创建一个对应于该任务中进行的提交的拉取请求。这些提交从我的fork 或分支拉到主repo中。
提交 是代码更改的一组记录。这是Git最有趣的事情之一。您不需要传输文件,而是传输更改日志。
所有 GitHub 上的分支将会在 fork 中被复制(显然,这不包括从未推送到 GitHub 的分支)。
但是,fork 是一个 GitHub 到 GitHub 的操作;没有内容被复制到您的个人电脑。它与 Git 的 clone 不完全相同。如果你想问“当我克隆一个项目时会复制什么?”,请参阅 git-clone(1)
的手册。
Fork是在GitHub上的一个克隆(它会克隆所有内容)。
当您克隆一个存储库时,您将获取该存储库的全部历史记录,包括其所有分支。
尽管理论上您可以更改远程存储库的默认分支,但从GitHub存储库克隆的副本主要查找默认的master分支。这意味着要更改GitHub克隆将获取的“默认”分支,您需要重命名master分支。
这可以很好地解释。您在 GitHub 上有一个中央存储库。每当您在个人计算机上克隆它以进行一些更改时,主存储库的此本地克隆称为 fork。
分支是另一回事,并包含在 fork/repo 中。实际上,分支是您在开发的不同阶段的工作。它们根据需要创建,以保存一组功能,向不同用户提供访问权限,向客户演示站点等。
https://github.com/yardpenalty/mainproject.git
分支使用:
假设该分支名为It_doesnt_matter
一旦我们将分支准备好用于生产,我们会进行最终推送到该分支并创建合并请求,然后进入UAT测试。一旦测试经过QC,更改就会被合并到生产环境中。
从It_doesnt_matter
分支的合并现在被推送到主项目
位于https://github.com/yardpenalty/mainproject.git
假设包项目位于
https://github.com/yardpenalty/mypackage.git
{
"type": "github",
"url": "https://github.com/yardpenalty/yard/mypackage.git"
}
]