我试图理解/可视化与forking a repo相关的元素。 我的起始参考是这个帮助页面。
第一个问题:
当我在GitHub上fork了一个repo,例如Spoon-Knife(即在其网站上单击Fork按钮),这是否意味着Spoon-Knife被复制到我的GitHub账户中? 是否真的发生了实际的复制,还是只是一个概念?
第二个问题:
帮助页面中的下一步是进行clone:
$ git clone git@github.com:username/Spoon-Knife.git
该命令在我的本地机器上复制了源代码。 它是从我在GitHub帐户中分叉/复制的repo克隆的(请参见我的第一个问题)? 还是从原始的Spoon-Knife repo克隆的?
第三个问题:
关于配置远程的步骤:
当克隆一个repo时,它有一个名为
origin
的默认远程,指向您在GitHub上的fork而不是它被fork的原始repo。 要跟踪原始repo,您需要添加另一个名为upstream
的远程。
因此,origin
是我们本地副本和我在GitHub帐户上的repo副本之间的某种“代理”吗? upstream
呢?
提前感谢您的帮助。
origin
会自动创建吗? - moeyorigin
还是直接拉到我的本地副本? - moeyorigin
会被创建。远程仓库仅仅是一个名称和指针,例如如果你尝试以下命令:git init --bare Base; git clone Base dev1; cd dev1; git remote
,你会得到origin
作为名称,并且路径指向dev1
指向的Base
仓库,在 git-hub 上是一个 ssh 引用,在我的示例中是一个简单的路径,但两者都只是告诉 git 从哪里获取信息。远程仓库只是跟踪其他人的代码库,而origin
只是使用git clone
时 git 使用的默认名称。 - Mark Fisher