Skip to main content

在 GitHub Desktop 中提交并审查对项目的更改

GitHub Desktop 会在您编辑文件时跟踪您对所有文件所做的全部更改。 您可以决定如何对更改分组以创建有意义的提交。

Platform navigation

关于提交

类似于保存已经编辑的文件,提交会记录对分支中一个或多个文件的更改。 Git 将为每个提交分配唯一的 ID,称为 SHA 或哈希,用于识别:

  • 具体的更改
  • 进行更改的时间
  • 更改创建者

在进行提交时,必须包含简要描述更改的提交消息。 你还可以为参与协作的任何提交添加共同作者。

如果在 GitHub Desktop 中所做的提交与 GitHub 上的错误帐户相关联,请使用 GitHub Desktop 在 Git 配置中更新电子邮件地址。 有关详细信息,请参阅 配置 Git 用于 GitHub Desktop

存储库管理员可以为分支启用规则集,以便在提交时强制实施特定约定。 例如,规则集可能要求对提交进行签名,或者要求在提交消息的开头引用问题编号。 GitHub Desktop 如果提交不遵循规则集,将显示警告并阻止提交。 有关详细信息,请参阅“关于规则集”。

选择一个分支并进行更改

  1. 创建新分支,或通过单击 工具栏上的 Current Branch 并从列表中选择分支来选择现有分支。

“当前分支”下拉菜单视图的屏幕截图。 在“最近分支”下,一个名为“my-feature”的分支用橙色轮廓突出显示。

  1. 使用你喜欢的文本编辑器,例如 Visual Studio Code,对项目中的文件进行必要的更改。

选择如何显示差异

你可以更改在 GitHub Desktop 中显示差异的方式,以满足你的审阅需求。

若要更改查看差异的方式,请在差异视图的右上角单击

  • 若要更改显示整个差异的方式,请在“Diff display”下选择“Unified”或“Split”********。 统一视图线性显示变化,而分割视图则在左侧显示旧内容,在右侧显示新内容。
  • 要隐藏空格更改以便专注于更实质性的更改,请选择“隐藏空格更改”。

文件差异视图的屏幕截图。 齿轮图标以橙色标出,并展开以显示“空白”和“差异显示”设置。

提示

用于显示差异的默认选项卡大小为 8。 可在“设置”对话框的“外观”窗格中自定义此大小********。

提示

用于显示差异的默认选项卡大小为 8。 可在“选项”对话框的“外观”窗格中自定义此大小********。

如果你需要查看 GitHub Desktop 默认显示之外的更多文件内容,可以展开差异视图。

  • 要查看突出显示的更改的上下几行,请单击行号上方或下方的箭头。
  • 要查看整个文件,请在差异视图中右键单击,然后单击“扩展整个文件”。

“README”文件的差异视图的屏幕截图。 在上下文菜单中的绿色“addition”行上,光标悬停在“Expand Whole File”上方。

选择要包含在提交中的更改

对文本编辑器中的文件进行更改并将其保存在本地时,还将看到这些更改。GitHub Desktop

在左侧边栏中的“更改”选项卡中:

  • 红色 图标指示已删除的文件。

  • 黄色 图标指示修改的文件。

  • 绿色 图标指示已添加的文件。

  • 要访问暂存的更改,请单击“暂存的更改”。

  • 要将“所有文件中的所有更改”添加到单个提交中,请保留所选列表顶部的复选框处于选中状态。

    “更改”选项卡的屏幕截图。在已更改文件列表上方,文本“3 changed files”旁边,选中的复选框以橙色轮廓显示。

  • 要将“一个或多个文件中的所有更改”添加到单个提交中,请取消选中不想包含的文件旁边的复选框,只保留要包含在提交中的文件。 在选择文件后使用 SpacebarEnter 键可切换复选框状态。

创建部分提交

如果一个文件包含多处更改,但只有部分更改要包含在提交中,则可创建部分提交。 其余更改会保持不动,以便您进行其他修改和提交。 这允许您进行单独、有意义的提交,例如使提交中的换行符更改区别于代码或文字更改。

要从提交中排除更改的行,请单击一条或多条更改的行,以使蓝色消失。 仍以蓝色突出显示的行将包含在提交中。

文件差异视图的屏幕截图。 “不包含此行”行号的背景色为绿色,而非蓝色。

放弃更改

如果您有不想保留的未提交更改,可以放弃这些更改。 这将从计算机上的文件中删除更改。 您可以放弃一个或多个文件中所有未提交的更改,也可以丢弃添加的特定行。

丢弃的更改保存在回收站中带日期的文件中。 您可以恢复已删除的更改,直到回收站被清空。

弃用一个或多个文件中的更改

  1. 在已更改文件的列表中,选择要放弃自上次提交后更改的文件。 要选择多个文件,请单击 shift 并单击要放弃更改的文件范围。

  2. 单击“放弃更改”或“放弃所选更改”以放弃对一个或多个文件的更改,或单击“放弃所有更改”以放弃自上次提交后对所有文件的更改 。

“更改”选项卡的屏幕截图。两个选定的文件以蓝色突出显示。 在上下文菜单中,光标悬停在“放弃所选的 2 处更改”上。

  1. 若要确认更改,请在“确认放弃更改”窗口中查看受影响的文件,然后单击“放弃更改”。

丢弃一行或多行中的更改

您可以丢弃一个或多个未提交的已更改行。

注意

在添加和删除行的一组更改中不可放弃单行。

要放弃一个已添加的行,请在已更改的行列表中,右键单击要放弃的行的行号,然后选择“放弃添加的行”。

文件差异视图的屏幕截图。 在上下文菜单中,光标悬停在“Discard Added Line”上,以蓝色突出显示。

要放弃一组更改的行,请右键单击要放弃的行的行号右侧的垂直条,然后选择“放弃已添加的行”。

文件差异视图的屏幕截图。 在行号的右侧,用橙色轮廓突出显示一条较窄的深蓝色线。

编写提交消息并推送更改

对选择要包含在提交中的更改感到满意后,需要填写提交说明并推送更改。 如果协作处理了某个提交,也可以将提交归于多个作者。

注意

默认情况下,GitHub Desktop 会将您创建的标记推送到含相关提交的仓库。 有关详细信息,请参阅 在 GitHub Desktop 中管理标记

  1. 在更改列表的底部、在您的个人资料图片旁边,描述您的提交:

    • 如果有权访问 GitHub Copilot,可以根据所做的更改自动创建提交消息和详细信息。 单击
    • 如果要重新生成其他提交消息,请再次单击 以生成新建议。
    • 若要选择用于生成提交消息的模型,请配置 Copilot 设置。 有关详细信息,请参阅“Configuring Copilot in GitHub Desktop”。
    • Copilot 使用任何存储库自定义说明来塑造生成的提交消息和详细信息。 有关详细信息,请参阅“为GitHub Copilot添加存储库自定义说明”。
    • Copilot 还使用任何存储库规则集来限制提交元数据以塑造生成的提交消息和详细信息。 有关详细信息,请参阅“创建存储库的规则集”。
    • 或者,在“Summary”字段中键入自己的简短且有意义的提交消息。 还可以在 Description 字段中添加关于更改的更多信息。

    “更改”选项卡的屏幕截图。“Summary”字段和“Generate commit message with Copilot”按钮以橙色边框显示。

  2. (可选)要将某个提交归于另一个作者,请单击合作作者图标并输入要包含的用户名。

“更改”选项卡的屏幕截图。在“说明”字段的角落,用于添加共同作者的图标以橙色显示。

  1. 在“说明”字段下,单击“提交到分支”。

    提示

    如果存储库具有预提交或 commit-msg 钩子,则提交时它们将自动运行。 您可以通过点击提交消息字段旁边的 ,然后选择 绕过提交钩子,来对特定提交绕过钩子。 有关详细信息,请参阅“在 GitHub Desktop 中使用 Git hooks 进行操作”。

  2. 如果您尝试提交的分支受保护,Desktop 将警告您。

    • 若要移动更改,请单击“切换分支”。
    • 若要将更改提交到受保护的分支,请单击“提交到 BRANCH”。

    有关受保护分支的详细信息,请参阅“关于受保护分支”。

  3. 若要将本地更改推送到远程存储库,请在存储库栏中单击“推送源”。

    存储库栏的屏幕截图。 标有“推送源”的按钮用橙色轮廓突出显示。

  4. 如果你有一个基于当前正在处理的分支的拉取请求,GitHub Desktop 将在仓库栏中“Current Branch”部分的旁边显示该拉取请求已运行检查的状态。 有关检查的详细信息,请参阅“在 GitHub Desktop 中查看和重新运行检查”。

    如果尚未为当前分支创建拉取请求,GitHub Desktop 将为你提供预览更改并创建拉取请求的选项。 有关详细信息,请参阅“从 GitHub Desktop 创建问题或提交请求”。

    “无本地更改”视图的屏幕截图。 标有“Preview Pull Request”的按钮以橙色轮廓突出显示。

管理提交历史记录

如果你需要撤销提交或修改提交历史(以便审阅者更轻松地查看你的更改),GitHub Desktop 提供了多种管理提交历史的选项。 有关详细信息,请参阅“用于在 GitHub Desktop 中管理提交的选项”。

其他阅读材料