开源生态系统中的分叉工作流
在开源生态系统中,Git 和 Github 被广泛用于高效管理大型项目并与全球其他开发人员协作。因此,为这些开源项目做出贡献的每个开发人员都遵循一般的分叉工作流程。因此,让我们深入了解一下分叉工作在开源生态系统中究竟是如何工作的。
分叉存储库并在本地环境中克隆它
只需访问您想要贡献的开源项目的 Github 页面,然后在选择特定存储库后,只需单击右上角的“Fork”按钮。现在您已经通过分叉创建了自己的该存储库副本,让我们通过运行以下命令在本地计算机中克隆您的分叉存储库:
command: git clone https://github.com/your_username/forked_project.git
example: git clone https://github.com/Aniruddha-Shriwant/techdocs.git
将“上游”存储库添加到远程列表
Upstream 是一个存储库,您从中分叉了项目的本地副本。现在,为了让你的 fork 保持最新并将其与原始的“上游”存储库同步,让我们添加一个名为 upstream 的新远程:
git remote add upstream https://github.com/accordproject/techdocs.git
您可以通过运行
git remove -v
从上游远程获取
要使用最新的上游更改更新您的 fork,您需要使用 git fetch 命令获取上游 repo 的分支及其最新提交
git fetch upstream
现在签出您自己的主分支并合并上游仓库的主分支:
git checkout master
git merge upstream/master
现在您的本地主分支是最新的,所有内容都在上游更新。
创建一个新分支
每当您开始处理新功能/错误修复时,创建一个单独的新分支非常重要,不仅因为它是正确的 git 礼仪,而且您可以将您的更改与主分支分开,并且可以轻松管理提交的多个拉取请求。要创建一个新分支,首先检查到 master 分支,因为我们希望我们的新分支来自 master 分支,然后创建新分支并相应地编辑您的更改
git checkout master
git checkout -b yourNewBranch //This command will create a new branch and then checkout in it
在发出拉取请求之前重新定位您的分支
在您的开发分支上工作时,如果在上游的主分支中进行了任何新的提交,那么您将需要重新设置您的分支,以便维护人员可以轻松地合并您的 PullRequest,并且可以提前避免任何冲突。
获取上游主分支,然后将其与本地存储库的主分支合并:
git fetch upstream
git checkout master
git merge upstream/master
使用 master 分支重新设置你的开发分支:
git checkout yourNewBranch // yourNewBranch = your development branch that you have created earlier
git rebase master
重新定位分支后,您就可以推送这些更改并在 Github 上创建拉取请求。
结论
总而言之,掌握此工作流程礼仪将有助于您的开源之旅,并且您不会遇到初学者在为开源项目做出贡献时面临的任何问题。