保持GitHub分叉仓库同步,确保你的分叉仓库与原始仓库的最新更改保持一致至关重要。这可以通过将原始仓库的更改拉取到本地仓库,然后推送到分叉仓库来实现。
更新分叉仓库的过程包括:分叉仓库、克隆分叉仓库、链接到原始仓库、从原始仓库拉取更改以及将更改推送到分叉仓库。此过程假设你已经分叉了仓库并在本地机器上克隆了分叉仓库。
在处理分叉仓库时,最好避免直接向分叉仓库或本地仓库的主分支提交更改。此分支应仅用于保存来自原始仓库的更新代码。所有更改都应在新的功能或错误分支中进行,并推送到分叉仓库上同名的分支。
要理解更新分叉仓库的概念,首先必须了解为什么这必要。
组织机构无法向每个潜在贡献者授予其主仓库的写入权限,因此公众只能查看原始仓库。分叉是用户可以创建的原始仓库的副本。用户对其自己的分叉拥有读写权限。
通常,编程是在本地机器(或虚拟机)上进行的,而不是直接在GitHub界面上进行,因此通常会创建分叉仓库的克隆。
一旦贡献者向本地副本提交了更改,就需要将其推送到GitHub上的分叉仓库(由于拥有写入权限,这是可能的)。然后,从分叉仓库创建到原始仓库的拉取请求。
当原始仓库使用其他人的代码更新后(在分叉创建后),这些新的提交不会自动出现在分叉仓库中。必须首先将这些更改下载并合并到本地仓库,然后将其推送到分叉仓库。
出于历史原因,在我们的本地仓库中,我们将原始仓库的远程仓库命名为upstream
,将分叉仓库命名为origin
。
理想情况下,你永远不应该直接对分叉仓库或本地仓库的主分支进行任何提交。此分支必须仅用于保存来自upstream
的更新代码。所有更改都必须在新的功能或错误分支中进行,并推送到分叉仓库上同名的分支。
因此,以下步骤有助于使用来自原始仓库的最新提交更新分叉仓库:
upstream
的主分支拉取到本地仓库的主分支这些步骤假设你已经分叉了仓库并在本地机器上克隆了分叉仓库。
为了演示,我们将使用GitHub上e-Cidadania的仓库。
要分叉仓库,你需要点击分叉按钮(截图的右上角)。
要克隆你的分叉仓库,你首先需要从下拉菜单中选择协议(如下面的截图所示)并复制链接。在本演示中,我们将选择SSH协议:
打开终端并运行以下命令:
git clone git@github.com:sdaityari/e-cidadania.git
然后,你需要将你的本地仓库链接到原始仓库,以便能够从原始仓库拉取更改。这是通过添加upstream
远程仓库来完成的。首先,从原始仓库复制SSH链接,然后通过运行以下命令添加远程仓库:
git remote add upstream git@github.com:cidadania/e-cidadania.git
要验证远程仓库是否已添加,请通过运行以下命令检查远程仓库列表:
git remote -v
输出应如下所示:
<code>origin git@github.com:sdaityari/e-cidadania.git (fetch) origin git@github.com:sdaityari/e-cidadania.git (push) upstream git@github.com:cidadania/e-cidadania.git (fetch) upstream git@github.com:cidadania/e-cidadania.git (push)</code>
upstream
(原始仓库)拉取更改当原始仓库的主分支中有新的提交,而你的分叉仓库中没有这些提交时,你会在分叉仓库的页面上收到GitHub的消息。在截图中,你可以看到一条消息,上面写着“此分支落后于cidadania:master 36 次提交”:
要将这些更改拉取到你的本地仓库,请运行以下命令:
git pull upstream master
此命令会从upstream
远程仓库更新你的主分支。
origin
(分叉仓库)要将这些来自原始仓库的更新推送到分叉仓库,只需运行以下命令:
git push origin master
要确认更改已更新,请再次访问GitHub上的分叉仓库页面!
消息“此分支与cidadania:master 保持一致”表明更改已添加到分叉仓库的主分支。
(此处省略FAQ部分,因为篇幅过长,且与伪原创目标不符。FAQ部分内容可以根据需要重新组织和改写,但需保证信息完整且不改变原意。)
以上是快速提示:通过命令行同步github叉的详细内容。更多信息请关注PHP中文网其他相关文章!