我不得不承认我从未参与过开源项目,因为我不了解工作流程。我在git文档中多次浏览过但发现它太难了。
我已经使用Team Foundation Server(TFS)或Visual Studio Team Services(Visual Studio Online)等前端为git存储库向我的客户端提供了对私有存储库的pull请求。我也可以使用git命令行轻松地在git存储库上工作,因为该工作流很简单。但我想学习git工作流程,使用其命令行为开源项目做贡献。
我从github文档中读到了以下文章。我想我有点了解工作流程,但我不确定,我很害怕在别人的项目上试一试。
我真正需要的是有人通过一些易于理解的要点来简化步骤。
到目前为止,根据我的研究,这是我理解的。
让我们假设我们想要为名为 Boo Boo 的虚构项目做出贡献,该项目的所有者名为 Baabaa 。让我们假设我,想要为 Boo Boo 做出贡献的人,在https://www.github.com/Water-Cooler-v2/
拥有github帐户以下是我知道工作流程的步骤。完成这些步骤后,我不知道该怎么做。
首先,我将https://www.github.com/Baabaa/Boo-Boo中的 Boo Boo 分叉到我自己的github帐户中。现在,我在https://www.github.com/Water-Cooler-v2/Boo-Boo拥有自己的 Boo Boo 分叉。
然后,我将自己的 Boo Boo 克隆到我计算机上的文件夹中,如下所示:
MrWaterCooler@WatersComputer MINGW64 /c/WaterCooler/MyFolder/
$ git clone https://www.github.com/Water-Cooler-v2/Boo-Boo.git
这会将 MyFolder / Boo-Boo 文件夹中我的本地副本链接到指向我自己的分叉的remote
origin
,即{{} 3}}
然后,我将 Myfolder / Boo-Boo 中的本地存储库与 Baabaa 的远程存储库链接起来。我这样做是通过复制 Baabaa 的存储库的URL并输入:
MrWaterCooler@WatersComputer MINGW64 /c/WaterCooler/MyFolder/Boo-Boo
$ git remote add upstream https://www.github.com/Baabaa/Boo-Boo.git
接下来,我验证名为upstream
的新远程已链接到:
MrWaterCooler@WatersComputer MINGW64 /c/WaterCooler/MyFolder/Boo-Boo
$ git remote --v
接下来,我通过输入以下内容将远程upstream
中的所有分支提取到计算机的本地存储库中:
MrWaterCooler@WatersComputer MINGW64 /c/WaterCooler/MyFolder/Boo-Boo
$ git fetch upstream/master
现在,我会检查我的本地master
分支,默认情况下会将其检出,但无论如何我都会检查出来以确定:
MrWaterCooler@WatersComputer MINGW64 /c/WaterCooler/MyFolder/Boo-Boo
$ git checkout master
然后,我将对本地存储库中的文件进行一些更改。在这种情况下,我将编辑一个现有文件(下面没有显示,因为它不使用任何git命令),我将添加一个名为MyNewFile.txt的新文件。
MrWaterCooler@WatersComputer MINGW64 /c/WaterCooler/MyFolder/Boo-Boo
$ touch MyNewFile.txt
现在,我将upstream/master
分支合并到我自己的master
分支中。
MrWaterCooler@WatersComputer MINGW64 /c/WaterCooler/MyFolder/Boo-Boo
$ git merge upstream/master
然后,现在是我不太清楚的步骤。我推吗?去哪里?我自己的叉子(远程origin master
)或 Baabaa 的 Boo-Boo (远程upstream master
)?
或者,我是否创建拉取请求?
您能否验证上面列出的前8个步骤的工作流程,然后完成它?
答案 0 :(得分:3)
您的工作流程正确无误。
始终在您的分支上创建自己的分支并将其推送到origin
。在审查您的分支时,创建分支有助于维护者。
推送更改后,转到原始仓库,页面顶部应该有一个按钮,提示您创建拉取请求。
通常,为开源项目做出贡献最具挑战性的部分是找到从哪里开始。为了解决这个问题,有两个站点可以帮助找到跳转问题很好的项目。
答案 1 :(得分:2)
您只需将repo分叉,将其克隆到本地计算机,可选择创建分支并进行更改。在本地或在您自己的回购中工作的方式并不重要。你不必使用GitFlow。您可以进行基于Trunk的开发或任何适合您的开发。完成后,将其推送到您自己的仓库。然后去GitHub并打开原始仓库的公关。这就是它的全部内容。
关于将原始作为远程添加:将原始仓库添加为远程的主要原因是当您打算使用原始仓库(合并,变基,挑选等)的更改来更新您的分支。如果你只是打算对原版进行一次性贡献,比如修复一些bug,通常没有必要使用遥控器。将它添加为长期贡献是有道理的。