Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022
Visual Studio 2019 |Visual Studio 2022
修改存储库中的文件时,Git 不会自动拍摄工作快照。 通过将特定更改暂存,您可以告诉 Git 希望在快照中捕获哪些文件更改。 暂存后,通过提交保存快照。
本文提供以下任务的执行步骤:
- Git 如何跟踪更改
- 提交包含了什么
- 如何暂存更改
- 如何创建提交
- 如何更新您上次的提交
有关 Git 工作流的概述,请参阅 Azure Repos Git 教程。
先决条件
| 类别 | 要求 |
|---|---|
| 项目访问权限 | 项目的成员。 |
| 权限 | - 查看私有项目中的代码:至少 基本 访问权限。 - 克隆或贡献代码到私有项目中:必须是“贡献者”安全组的成员或拥有项目中的相应权限。 - 设置分支或存储库权限: 管理权限 是分支或存储库的权限。 - 更改默认分支: 编辑策略 是存储库的权限。 - 导入存储库: 项目管理员 安全组的成员或 Git 项目级 “创建存储库 ”权限设置为 “允许”。 有关详细信息,请参阅设置 Git 存储库权限。 |
| Services | 已启用存储库。 |
| 工具 | 可选。 使用 az repos 命令: Azure DevOps CLI。 |
注释
在公共项目中,具有 利益干系人 访问权限的用户具有对 Azure Repos 的完全访问权限,包括查看、克隆和参与代码。
Git 如何跟踪更改
在存储库中工作时,Git 会跟踪所有 已跟踪 文件的更改。 跟踪的文件是当前暂存或包含在上一次提交中的文件。 Git 将跟踪的文件分为三个类别:
- 未修改的文件 - 自上次提交以来尚未更改的文件。
- 已修改的文件 - 自上次提交以来已更改的文件,但尚未为下一次提交暂存。
- 已暂存文件 - 你自上次提交以来更改的文件,这些文件已为下次提交做好准备。
当您创建提交时,仅使用暂存文件和未修改文件来创建快照。 保留对已修改文件的未暂存更改,但快照中包含这些文件的未修改版本。 Git 不会跟踪对新文件的更改,也不会在快照中包含新文件,直到你将它们暂存之前。
提交是在本地 Git 存储库中创建的。 每个提交不必完美,可能需要多次提交才能完成预期更改。 在工作时创建提交,完成后,可以将提交 推送 到远程存储库,以便与他人共享你的工作。
提交内容
每个 提交 都包含以下信息:
- 提交时存储库中所有跟踪文件的快照。 虽然 Git 使用快照来计算差异,但快照本身并不是提交之间的差异。 快照支持在 分支 之间快速切换,并支持 合并 分支。
- 对父提交(s)的引用。 大多数提交都有一个父提交,但在分支合并后,下一个提交有多个父提交,而代码库中的第一个提交没有任何父提交。
- 描述提交中更改的消息。 在创建提交时,你输入消息。
Git 使用每个提交的快照和父引用来维护存储库中开发的完整记录。 若要调查代码中的更改,可以查看存储库的 Git 历史记录 。
如何暂存更改
请按照以下步骤操作,为提交创建快照:
- 暂存 新文件 ,让 Git 知道要将它们添加到快照,并且希望 Git 跟踪这些文件的更改。
- 暂 存已编辑的文件 ,以告知 Git 想要快照中修改的文件版本,而不是未修改的文件版本。
- 暂存 已删除的文件 ,让 Git 知道你想要从快照中删除这些文件,并且不再被跟踪。
若要从快照中排除临时文件、日志文件或其他文件,可以将 Git 配置为 忽略特定文件。
注释
Git 支持对已编辑的文件进行交互式暂存,以便你可以选择在文件中暂存特定更改。 当你希望在不同的提交中编辑不同的文件时,此功能非常有用。
Visual Studio 2022 通过使用 Git 菜单、Git 更改以及解决方案资源管理器中的上下文菜单提供 Git 版本控制体验。 Visual Studio 2019 版本 16.8 还提供 团队资源管理器 Git 用户界面。 有关详细信息,请参阅 Visual Studio 2019 - 团队资源管理器 选项卡。
在 “Git 更改” 窗口中,右键单击 “更改” 部分中的文件,然后选择 “暂存” 以将其添加到 “已暂存更改” 部分。
或者,可以通过选择文件旁边的加号来暂存已更改的文件。 若要暂存文件夹中所有已更改的文件,请选择文件夹旁边的加号。 若要暂存存储库中的所有已更改文件,请选择 “更改” 部分右上角的加号。
可以通过右键单击文件来告诉 Git 忽略文件,然后选择“忽略此本地项”或“忽略此扩展名”。 如果存储库中不存在 .gitignore 文件,则任一命令都创建一个 .gitignore 文件,并为其添加一个条目。 忽略的文件不会显示在 Visual Studio 的 “更改” 部分中。 但是, .gitignore 文件对跟踪的文件没有影响。 有关如何将 Git 配置为忽略跟踪的文件的信息,请参阅 “忽略文件”。 为了节省时间,可以从 GitHub gitignore 存储库下载适用于各种开发环境的 .gitignore 模板。
注释
从 Visual Studio 2022 版本 17.3 开始,Visual Studio 支持在文件中暂存部分更改。 有关详细信息,请参阅 Visual Studio 中的阶段代码行。
如何创建提交
在Git 更改窗口中,输入描述暂存更改的消息,然后选择提交暂存。
选择提交链接以获取提交详细信息。
如何更新您上次的提交
Git 支持更改上次提交的暂存文件或提交信息。 此操作将用一个新提交替换您最后一次提交,该新提交合并了两个提交中的暂存文件,并使用新的提交消息。 修改提交非常有用,尤其是在您忘记暂存文件或上一次提交消息中存在拼写错误时。
警告
不要修改已 推送的 提交,因为这将导致远程存储库出现同步问题。 对于推送提交,请使用以下策略之一:
- 创建并推送另一个提交,以修复先前提交导致的问题。
- 使用
git revert创建一个新提交,还原 先前提交所做的所有更改,从而撤消已推送的先前提交。 然后推送新提交。
在 “Git 更改” 窗口中,可以选择暂存一个或多个文件,输入提交消息,选择“ 修订”,然后选择“ 提交暂存”。
“Git 更改”窗口支持修改提交消息、暂存文件或同时修改这两者。 选择 “修订”时,将显示上一个提交的标识符 SHA。