使用 Visual Studio for Mac 中的 Git

重要

根据 Microsoft 的新式生命周期策略,Visual Studio for Mac 计划于 2024 年 8 月 31 日停用。 虽然你可以继续使用 Visual Studio for Mac,但 Mac 上的开发人员还可以使用其他几个选项,例如适用于 VS Code 的新 C# 开发工具包扩展的预览版本。

详细了解支持时间表和替代方案

Git 是分布式版本控制系统,使团队可以同时在同一文档上工作。 这意味着有一个中央服务器包含所有文件,但从此中央源中签出存储库时,整个存储库都会被克隆到本地计算机。

以下各部分将探索如何为 Visual Studio for Mac 中的版本控制使用 Git。

Git 版本控制菜单

下图显示 Visual Studio for Mac 通过 Git 菜单提供的选项:

Screenshot of the Git menu in Visual Studio for Mac, showing options for Clone Repository, Pull, Commit or Stash, Push, Switch to branch, Merge, Rebase, Manage branches and remotes, Stash, pop stash, manage stashes, and branch history.

在 Visual Studio for Mac 中提交 Git

任何 Git 工作流的核心部分都是修改文件并提交这些文件中的更改。 虽然本文引用的是 GitHub 存储库,但你可以远程处理所选的 Git 提供程序,例如 GitHub 或 Azure DevOps。 或者,你也可以在本地工作,而不使用任何提供程序。

当你操作时,Git 会跟踪存储库中的文件更改,并将存储库中的文件分为三类。 这些更改等效于在命令行中输入 git status 命令时看到的内容:

  • 未修改的文件:自上次提交以来,这些文件未更改。
  • 已修改的文件:自上次提交以来,这些文件已更改,但尚未被暂存以用于下一次提交。
  • 已暂存的文件:这些文件已更改并将添加到下一次提交中。

当你执行操作时,Visual Studio for Mac 会在“Git 更改”窗口的“更改”部分中跟踪对项目的文件更改。

Screenshot of the Git Changes window in Visual Studio for Mac, with a launchSettings.json file displayed in the list of Staged files.

若要在就绪时暂存更改,请选择要暂存的每个文件并单击“暂存”按钮,或右键单击文件然后选择“暂存”。

暂存更改时,Visual Studio 将创建“已暂存的更改”部分。 只有“已暂存的更改”部分的更改会添加到下一次提交中,可以通过选择“提交暂存内容”来执行此操作 。 此操作的等效命令是 git commit -m "Your commit message"

Screenshot of the Git changes dialog, with a launchSettings.json file in the list of Changes, and a SubscriptionService.cs file in the list of staged changes. The current branch name is shown at the top of the window, along with Push, Pull, and Commit Staged buttons.

还可以通过选择所有暂存更改并单击“取消暂存”按钮来取消暂存更改。 此操作的等效命令是 git reset <file_path>(用于取消暂存一个文件)或 git reset <directory_path>(用于取消暂存目录中的所有文件)。

也可以通过跳过暂存区域来选择不暂存已修改的文件。 在这种情况下,Visual Studio 允许直接提交更改,而无需暂存更改。 只需输入提交消息,然后选择“全部提交”。 此操作的等效命令是 git commit -a

还可通过 Visual Studio 的“全部提交并推送”和“全部提交并同步”快捷方式(位于“...”按钮下),轻松地一键提交和同步。 双击“更改”和“已暂存的更改”部分中的任何文件时,可以看到与该文件的未修改版本的逐行比较 。

A screenshot of the comparison view, showing line-by-line differences in changed files.

推送和拉取更改

推送和拉取是 Git 中最常用的两个操作。 若要同步其他人对远程存储库做的更改,必须从这里进行“拉取” 。 在 Visual Studio for Mac 中可通过选择“Git”>“拉取”菜单完成这一操作。

更新、评审并提交文件后,必须将文件“推送” 到远程存储库,以便其他用户可以访问所做更改。 在 Visual Studio for Mac 中可通过选择“Git”>“推送”菜单完成这一操作。

还可通过“Git 更改”窗口同时“提交”和“推送”更改:

Screenshot of the git Changes window open, showing a ... menu open with a Commit Staged and Push item highlighted.

使用“意见”、“日志”和“合并”视图

在编辑器窗口顶部,有一个带有版本控制选项的下拉列表,如下所示:

Screenshot of a drop down menu with choices for Source, Changes, Blame, and History.

可以执行以下操作:

  • - 显示源代码文件。
  • 更改 - 显示本地文件和基础文件之间的代码更改。 还可以比较不同哈希的文件的不同版本:
  • 责备 - 显示和每个代码部分有关的用户名。
  • 日志 - 显示所有提交、时间、日期、消息和对此文件负责的用户:
  • 合并 - 可在提交工作出现合并冲突时使用。 显示更改的可视化表示形式,这些更改是你和其他开发者创建的,使你可以彻底合并代码的两个部分。

切换分支

默认情况下,存储库中创建的第一个分支称为“主”分支。 主分支和任何其他分支之间没有任何技术上的不同,但是主分支通常被认为是开发团队的“实时”或“生产”分支。

从主分支(或任何其他分支)再进行分支,可形成独立的开发线。 这提供了某个时间点的主分支的新版本,使开发独立于“实时”分支。 使用这种方式的分支通常用于软件开发功能

用户可为每个存储库创建任意数量的分支,但建议在完成使用分支后,删除分支以保持存储库结构。

可通过浏览到“Git”>“管理分支和远程...”,在 Visual Studio for Mac 中查看分支:

A screenshot of the Manage Branches and Remotes view, with a location branch selected.

通过在列表中选中分支并按“切换到分支” 按钮可切换到另一个分支。

若要创建新分支,请选择 Git 存储库配置对话框中的“新建” 按钮。 输入新分支名称:

A screenshot of the create new branch dialog, showing a blank name field and a message listing out allowed characters for the branch name.

还可为“跟踪” 分支设置一个远程分支。 请参阅 Git 文档了解更多关于跟踪分支的详细信息。

在解决方案窗口中查看当前分支(在项目名称旁):

A screenshot of the solution window showing a solution named NetPodcast.Services with a branch name of main in parentheses.

另请参阅