Fork 和 Branch Git 工作流
Fork and Branch 工作流¶
在此工作流类型中,贡献者会 fork 主仓库到他们自己的 GitHub 账户,为他们的工作创建特性分支,然后通过从这些分支提交拉取请求来贡献内容。
本 Gemstone 将逐步演示如何设置本地仓库以贡献到 GitHub 项目。它从初始项目 fork、设置本地和远程仓库、提交更改,以及创建拉取请求 (PR) 来提交你的贡献开始。
先决条件¶
- 一个 GitHub 账户。
- 您的系统上安装了
git
和GitHub CLI (gh)
。 - 在 GitHub 上项目的个人 fork。
过程¶
- 如果尚未存在,请使用 gh 工具创建项目的 fork。输入
gh repo fork rocky-linux/documentation --clone=true --remote=true
此 gh repo fork 命令中使用的选项是:- --clone=true
:将 fork 后的仓库克隆到您的本地机器。- --remote=true
:将原始仓库添加为远程仓库,允许您同步未来的更新。
- 导航到本地仓库目录。输入
cd documentation
- 验证所有相关的远程仓库是否已在您的本地仓库中正确配置,输入
git remote -vv
- 从上游远程仓库拉取最新更改
git fetch upstream
- 创建并检出名为 your-feature-branch 的新特性分支
git checkout -b your-feature-branch
- 进行更改、添加新文件,并将您的更改提交到本地仓库
git add .
git commit -m "Your commit message"
- 与名为
upstream
的远程仓库的主分支同步
git pull upstream main
- 将更改推送到您的 Fork**
git push origin your-feature-branch
- 最后,使用
gh
CLI 应用程序创建拉取请求 (PR)
gh pr create --base main --head your-feature-branch --title "Your PR Title" --body "Description of your changes"
此 gh pr create 命令中使用的选项是
--base
main:指定上游仓库中将合并更改的基础分支。--head
your-feature-branch:指示您 fork 中包含更改的 head 分支。--title
"Your PR Title":设置拉取请求的标题。--body
"Description of your changes":提供拉取请求中更改的详细描述。
结论¶
Fork and Branch 工作流是另一种常见的协作技术。涉及的高级步骤包括:
- Fork 仓库:在您的 GitHub 账户上创建项目仓库的个人副本。
- 克隆 Fork:将您的 fork 克隆到本地机器以进行开发工作。
- 设置上游远程:为了与原始仓库的更改保持同步,将原始项目仓库添加为“上游”远程。
- 创建特性分支:为每个新特性或修复从更新的主分支创建一个新分支。分支名称应描述该特性或修复。
- 提交更改:进行更改并使用清晰简洁的提交消息提交它们。
- 与上游同步:定期将您的 fork 和特性分支与上游主分支同步,以合并新更改并减少合并冲突。
- 创建拉取请求 (PR):将您的特性分支推送到 GitHub 上的您的 fork,并针对主项目打开 PR。您的 PR 应清楚地描述更改并链接到任何相关问题。
- 响应反馈:协作处理评审反馈,直到 PR 被合并或关闭。
优势
- 将开发工作隔离到特定分支,保持主分支整洁。
- 它使得审查和集成更改更加容易。
- 降低了与主项目不断发展的代码库发生冲突的风险。
作者:Wale Soyinka
贡献者:Ganna Zhyrnova