理解GitHub工作流

GitHub Comments

GitHub 流是一个轻量级、基于分支的工作流,支持定期进行部署的团队和项目。本指南解释了 GitHub 流程的工作原理和原因。

创建一个分支

当你在做一个项目时,你会在任何给定的时间有一堆不同的功能或想法正在进行中——其中一些已经准备好,而另一些则没有。分支的存在是为了帮助您管理此工作流程。

当您在项目中创建分支时,您正在创建一个可以尝试新想法的环境。您在分支上所做的更改不会影响main分支,因此您可以自由地试验和提交更改,并且知道您的分支在准备好由您合作的人审查之前不会被合并。

分支是 Git 中的一个核心概念,整个 GitHub 流程都基于它。只有一个规则:main分支中的任何内容始终是可部署的。

因此,在处理功能或修复时,在主分支之外创建新分支非常重要。您的分支名称应该是描述性的(例如,refactor-authenticationuser-content-cache-keymake-retina-avatars),以便其他人可以看到正在处理的内容。

添加提交

创建分支后,就可以开始进行更改了。每当您添加、编辑或删除文件时,您都是在进行提交,并将它们添加到您的分支中。每当您添加、编辑或删除文件时,您都是在进行提交,并将它们添加到您的分支中。当您在功能分支上工作时,此添加提交的过程会跟踪您的进度。

提交还为您的工作创建了一个透明的历史记录,其他人可以通过它来了解您所做的工作以及原因。每个提交都有一个关联的提交消息,它是解释为什么进行特定更改的描述。此外,每个提交都被视为一个单独的更改单元。这使您可以在发现错误时回滚更改,或者如果您决定转向不同的方向。

提交消息很重要,尤其是因为 Git 会跟踪您的更改,然后在将它们推送到服务器后将它们显示为提交。通过编写清晰的提交消息,您可以让其他人更容易跟进并提供反馈。

打开Pull Requests

Pull Requests 发起关于你的提交的讨论。因为它们与底层 Git 存储库紧密集成,所以任何人都可以确切地看到如果他们接受您的请求将合并哪些更改。

您可以在开发过程中的任何时候打开拉取请求:当您只有很少或没有代码但想分享一些屏幕截图或一般想法时,当您遇到困难并需要帮助或建议时,或者当您准备好让某人审查您的工作时。通过在您的 Pull Request 消息中使用 GitHub 的 @mention 系统,您可以询问特定人员或团队的反馈,无论他们是在大厅里还是在十个时区之外。

拉取请求对于为开源项目做出贡献和管理对共享存储库的更改非常有用。如果您使用的是 Fork & Pull 模型,Pull Requests 提供了一种方法来通知项目维护者您希望他们考虑的更改。如果您使用的是共享存储库模型,拉取请求有助于在将提议的更改合并到主分支之前开始代码审查和对话。

讨论和审查您的代码

一旦拉取请求被打开,审查您的更改的人员或团队可能会有问题或意见。也许编码风格与项目指南不符,更改缺少单元测试,或者一切看起来都很好,道具也井井有条。拉取请求旨在鼓励和捕捉这种类型的对话。

您还可以根据有关您提交的讨论和反馈继续推送到您的分支。如果有人评论说你忘记做某事或者代码中有错误,你可以在你的分支中修复它并推送更改。GitHub 将在统一的 Pull Request 视图中显示您的新提交以及您可能收到的任何其他反馈。

拉取请求注释是用 Markdown 编写的,因此您可以嵌入图像和表情符号、使用预先格式化的文本块和其他轻量级格式。

部署

使用 GitHub,您可以从分支进行部署,以便在合并到主分支之前在生产中进行最终测试。

一旦您的拉取请求被审查并且分支通过您的测试,您就可以部署您的更改以在生产中验证它们。如果您的分支导致问题,您可以通过将现有主分支部署到生产中来回滚它。

不同的团队可能有不同的部署策略。对于某些人来说,最好部署到专门提供的测试环境。

合并

现在您的更改已在生产中得到验证,是时候将您的代码合并到主分支中了。

合并后,拉取请求会保留对代码的历史更改记录。因为它们是可搜索的,所以它们让任何人都能及时返回以了解做出决定的原因和方式。

通过将某些关键字合并到您的拉取请求的文本中,您可以将问题与代码相关联。当你的 Pull Request 被合并时,相关的问题也会被关闭。例如,输入短语 Closes #32 将关闭存储库中的问题编号 32。有关更多信息,请查看我们的帮助文章

什么是 GitHub?

我很高兴你问了!很多人来到 GitHub 是因为他们想为开源项目做出贡献,或者是被队友或同学邀请,将其用于他们的项目。为什么人们将 GitHub 用于这些项目?

从本质上讲,GitHub 是一个协作平台。

从软件到法律文档,您都可以依靠 GitHub 来帮助您利用团队所需的协作和安全工具完成最佳工作。使用 GitHub,您可以将项目完全保密,邀请全世界进行协作,并简化项目的每一步。

GitHub 也是一个强大的版本控制工具。

GitHub 使用最流行的开源版本控制软件 Git 来跟踪项目的每一个贡献者和贡献者——因此您可以准确地知道每一行代码的来源。

GitHub 帮助人们做更多事情。

GitHub 用于构建世界上一些最先进的技术。无论您是在可视化数据还是构建新游戏,GitHub 上都有一个完整的社区和一组工具可以帮助您进行下一步。本课程从基础开始,但我们稍后会深入研究其余部分!

探索 GitHub 存储库

更多功能

  • 项目板:在 GitHub 中创建看板风格的任务跟踪板
  • Wiki:创建和存储相关项目文档
  • 见解:查看包含指向存储库分析工具链接的下拉菜单,包括:
    • Pulse:在此项目仪表板中查找有关已完成工作和正在进行的工作的信息
    • 图表:图表提供了更精细的存储库活动视图,包括谁对存储库做出了贡献、谁对其进行了分叉以及他们何时完成了工作

特殊文件

  • CONTRIBUTING.md:CONTRIBUTING.md 用于描述为存储库做出贡献的过程。每当有人创建新问题或拉取请求时,都会显示指向 CONTRIBUTING.md 文件的链接。
  • ISSUE_TEMPLATE.md:ISSUE_TEMPLATE.md 是另一个可用于预填充问题正文的文件。例如,如果您总是需要相同类型的错误报告信息,请将其包含在问题模板中,并且每个新问题都将使用您推荐的起始文本打开。

Commit

  • 不要以句点结束你的提交信息。
  • 将提交消息保持在 50 个字符或更少。如有必要,在扩展描述窗口中添加额外的细节。它位于主题行的正下方。
  • 使用主动语态。例如,“添加”而不是“添加”和“合并”而不是“合并”。
  • 将您的提交视为表达引入更改的意图。