.NET Tools How-To's

在 Rider 中使用 GitHub 的基础知识

Read this post in other languages:
English, 한국어

GitHub 是 Git 版本控制系统的在线托管服务。 它具有 Git 的许多功能,自身也有很多功能,包括一些社交编程功能。 在这篇博文中,我们将介绍在 Rider 中使用 GitHub 的基础知识

了解 GitHub

首先,我们有必要了解一下 Git 与 GitHub 的区别。 Git 是源代码控制系统,而 GitHub 是 Git 仓库的托管平台。 这意味着您是将 Git 作为版本控制系统 (VCS) 在本地运行。 然后,您可以使用 Git 命令将源控制的代码同步到 GitHub 托管服务。 幸运的是,Rider 提供了与 GitHub 集成的人性化用户体验,并能够代表您发出 Git 命令。

由于 GitHub 是一个托管平台,公司可以在自己的私有服务器上采用和托管 GitHub Enterprise。 Rider 也支持 GitHub Enterprise。

通过 GitHub 帐户登录 Rider

在使用 GitHub 之前,您必须首先连接您的 GitHub 帐户和 Rider。 从 Rider 的 Settings(设置)导航到 Version Control | GitHub(版本控制 | GitHub),然后输入您 GitHub 帐户的登录凭据。 这样 Rider 就能登录 GitHub,以发布和检索代码。 

您可以使用您的 GitHub 电子邮件/密码组合或 GitHub 令牌进行注册。 如果贵公司使用的是 GitHub Enterprise,您需要从管理员那里获取服务器名称和令牌,并输入该信息。

Connect Rider and GitHub

创建和共享仓库

您启动了一个很棒的项目,并已准备好通过 GitHub 与团队共享该项目。 为此,请从 Git 菜单中选择 GitHub | Share Project on GitHub(GitHub | 在 GitHub 上共享项目)(如果没有 Git 菜单,请查看下面的说明)。 继续输入 Repository Name(仓库名称)和 Remote(远程)字段,它们是必填项。 该名称是 GitHub 已知的项目名称。 remote 是 GitHub 上存储代码的仓库的别名。 默认值为 origin,不过您可以对其进行更改。 添加一个 Description(描述)并根据需要标记为 Private(私有)。 然后继续并选择 Share(共享)。

由于您刚刚创建了一个空仓库,Rider 会立即通过 Commit(提交)对话框提示您向其中添加项目代码以进行初始提交。 继续并提交变更。 此操作还会将代码推送到 GitHub。

Commit and push

注意:如果您尚未登录以向 Rider 注册您的 GitHub 帐户,使用 VCS | Share Project on GitHub(VCS | 在 GitHub 上共享项目)菜单选项将首先显示登录提示。 如前所述,这与通过 Rider 的设置连接您帐户的过程相同。 注册后,VCS 菜单将被替换为 Git 菜单。

现在可以查看您在 GitHub 上的工作了。 前往 Git | GitHub | Open on GitHub(Git | GitHub | 在 GitHub 上打开),然后 Rider 将启动您的默认网络浏览器来显示项目的仓库。 真方便!

复刻仓库

您可以共享自己的代码,但复刻是您复刻(复制)到自己的 GitHub 仓库的其他人的仓库的快照。 复刻代码后,即可创建拉取请求。 这是因为拉取请求会在两个在线 GitHub 仓库之间运行,而不是在您的本地仓库和在线仓库之间运行。 虽然一些仓库所有者允许人们直接提交和推送到他们的仓库,但大部分开源软件的 VCS 操作都通过拉取请求来执行。 

复刻是一个必须通过 GitHub 用户界面完全在线完成的操作。 要复刻仓库,请访问该仓库,然后点击页面右上角的 Fork(复刻)按钮。 随后会出现一个弹出窗口,询问您要将仓库复刻到哪里。 选择您想要复刻到的 GitHub 帐户,然后 Github 会复制所有代码。 您现在可以选择使用这个复刻的代码库,并使用您自己的增强功能将其作为您自己的代码库继续开发。 或者,您可以发出拉取请求,并为您刚刚复刻的仓库做贡献。 

通过克隆仓库获取代码

如果这是您第一次使用 GitHub 上托管的现有仓库,您必须克隆该仓库。 这通常是别人的仓库,但也可能是您从新机器或新安装的操作系统访问的您自己的仓库。 从 GitHub 克隆代码会将仓库复制到本地,并将其链接到 GitHub 上托管的远程仓库。

打开 Rider 后,您可以通过点击 Welcome(欢迎)屏幕右上角的 Get from VCS(从 VCS 获取)按钮克隆仓库。 但是,在您看到 Welcome(欢迎)屏幕之前,请花点时间欣赏组成 Rider 启动画面的精美艺术效果。

要克隆 GitHub 仓库,您需要该仓库的 URL。 仓库 URL 以 .git 扩展名结尾,可以定位到 GitHub 网站上的每个仓库。 每个仓库的每个分支都有自己的 URL,默认 URL 指向主分支,通常称为 main

Rider 提供了一些用于克隆仓库的选项:

  1. 在 URL 字段中输入 URL。
  2. 浏览仓库并选择一个。
  3. 浏览贵公司的企业仓库并选择一个。

验证对话框中显示的本地目录是否是您要克隆到的目录。

Clone a project

Git 会将整个仓库拉取到您在 Clone(克隆)对话框中输入的本地位置,并设置名为 origin 的远程仓库。 现在是时候开始编码和协作了! 

当您想从 GitHub 打开一个项目,并且已经打开 Rider 时,可以使用 Git | Clone(Git | 克隆)菜单选项。 这会显示相同的 Clone(克隆)对话框。

提交和拉取请求

对代码进行更改后,您需要提交代码。 提交代码意味着保存自上次提交以来所做变更的快照。 这是 Git 在后台执行的跟踪的一部分,这样一来,您就可以查看快照中的变更,或者及时恢复到某个特定的快照。 在推送到 GitHub 仓库之前,会在本地跟踪提交。 

Rider 提供了一个 Commit Window(提交窗口),您可以在其中查看代码变更和差异,选择应该提交的变更、回滚或提交代码。此窗口中还有一些其他选项,例如管理变更列表。 

使用 Ctrl+Alt+K 键盘快捷键显示 Commit Window(提交窗口),然后从菜单中选择 Git | Commit(Git | 提交)进行本地提交,或者选择 Commit and Push(提交并推送)将变更发送到 GitHub。 如果您在本地提交,可以稍后使用 Git | Push(Git | 推送)将变更上传到 GitHub 上的远程仓库。 如果您在 GitHub 上复刻了仓库,请记住,只有您的复刻会获取这些变更。 为了将代码与原始仓库合并,您必须发出拉取请求。

Commit and push changes to GitHub

在提交并推送代码后,您可以发出拉取请求。 但是,您首先需要同步复刻。 您可以通过从菜单中选择 Git | GitHub | Sync Fork(Git | GitHub | 同步复刻)来执行此操作。 这将确保您的复刻和原始源处于最新状态,并确保您已将自上次更新以来所做的所有变更整合到您的复刻中。 请注意,在开始处理新功能之前,最好也进行同步,以便所有内容都处于最新状态。 然后继续使用 Git | GitHub | Create Pull Request(Git | GitHub | 创建拉取请求)选项发出拉取请求。 在 Pull Requests Window(拉取请求窗口)中,填写标题和描述,然后选择您的合并选项。

Create a Pull Request

在任何时候,都可以使用 Git | GitHub 菜单中的 View Pull Requests(查看拉取请求)选项来查看仓库所有拉取请求的列表。 点击任意一个拉取请求会显示它的详细信息。

View Pull Requests in Rider

合并代码

许多开发者可能会同时在同一个代码库上工作。 在某些时候,他们需要将这些变更整合到 GitHub 上托管的中央代码库中。 这就是合并(和变基),也就是将来自任意数量的开发者的修改整合到一个叫作分支的目标位置。 一个分支就是一条开发线。 每个仓库都有一个 main 分支,而大多数仓库都会有其他分支。 这些其他分支可供开发者处理特定工作,可能是一个新功能或者错误修正。 

当您创建拉取请求时,Rider 会询问您是否要合并,并提供不同的合并选项:Merge(合并)、Rebase and Merge(变基并合并)、Squash and Merge(压缩并合并)。 

变基是标准代码合并的一种替代方式。 在将两个分支的历史记录合并在一起时,变基会将您正在处理的分支的提交合并到目标分支(通常是 main 分支)。 这意味着提交历史记录会被重写。 因此,您的团队需要决定管理提交历史记录的方式,因为每种方式都各有利弊。 但是,在合并时,您可以选择将多个提交压缩为一个提交。 如您所料,这也会重写提交历史记录,因为它压缩了所有内容。 Rider 提供了很好的用户体验,支持使用其中的任何一个命令来管理提交。

结论

学习 GitHub 的基础知识是了解 Git 源代码控制的绝佳途径。 因此,了解一些 Git 基本概念(如拉取推送代码,以及分支),可以使您充分利用 GitHub。 Rider 的用户体验旨在使 GitHub 和 Git 的源代码控制尽可能顺畅和高效。下载 Rider 副本亲自尝试一下吧。

本博文英文原作者:

Sue

Rachel Appel

Discover more

Refactor code to use new C# language features

重构代码以使用新的 C# 语言功能

在使用任何语言时,向现代语言功能进行现代化改造或迁移有助于提高代码的可读性、效率和安全性。在这篇博文中,我们将研究对代码进行现代化改造的方式,从而优化代码。 利用现代语言功能 为何只为使代码现代化就要重构代码?倘若完好,何必修正?有时,人们会有充分的理由去升级或迁移到新版本的平台或语言。例如,语言逐渐演变并添加了功能,以便利用操作系统功能、设备和浏览器功能、云或其他技术。此外,语言更新还包括引入错误修正、更简洁的语法和语法糖,以及更高效的对象和数据处理方式。 对代码进行现代化改造的重构可以通过提高可读性和可维护性来显著提高代码质量。这是因为随着语言的逐渐演变,新添加的语法往往会有助于减少您必须编写的代码行数并降低代码的复杂性。 ReSharper 和 Rider 等工具可以帮助您实现代码库的现代化。它们会随时更新以支持 .NET 语言的新功能,并且可以在有机会充分利用这些功能时提供建议。附带的好处是,这些建议有助于使您的团队不断更新自身的 C# 技能。 顶级语句 顶级语句在 C# 9 中引入,使您无需恪守显式定义命名空间或类的旧规即可立即开始编写代码。在引入顶级语句之前,即使是打印单个“Hello World”风格消息的最基础应用,也需要包含三层嵌套中括号才能支持一行实际运行代码。这样就会牵扯到大量不必要的样板代码。这真的有必要吗? usi