使用 GIT

学习目标

  • 使用 GIT 作为版本控制系统来跟踪文件中的更改。

GIT 版本控制系统

在软件项目中,跟踪文件上的更改非常重要。版本控制系统可帮助你跟踪这些更改。版本控制系统是一个随时间记录单个文件或一组文件的更改的系统,以便你可以回溯特定版本。GIT 就是这样一个版本控制系统。SAP Business Application Studio 附带内置的 GIT 客户端,用于与 GIT 系统交互。GIT 系统可以安装在本地,也可以是像 http://github.com 这样的云服务。让我们来看看其功能、状态和工作流:

功能

  • GIT 的工作方式类似一组快照,每次提交时 GIT 都会对底层文件的当前状态拍摄快照。对于未更改的文件,只存储对该文件的引用。

  • GIT 是一个免费开源的分布式版本控制系统。

  • GIT 旨在处理从小型到非常大型的项目,它以速度和效率为目标设计。

  • GIT 支持本地分支和暂存。

  • 使用 GIT 时,大多数操作只需要本地文件和资源,几乎每个操作都可以离线完成。

  • GIT 使用基于 SHA-1 哈希的校验和。

GIT 状态

  • Committed(已提交): 数据已安全地存储在本地数据库中。

  • Modified(已修改): 文件已更改,但尚未提交到本地数据库。

  • Changed(已变更): 文件在当前版本中被标记为已修改,并进入下一个提交快照。

GIT 工作流

  • Working Tree(工作区): 在工作区中修改文件。

  • Staging Area(暂存区): Staging Area:将文件暂存/把文件的快照添加到暂存区。

  • GIT Repository(GIT 仓库): 执行提交。从暂存区取出文件,并将快照永久存储到本地 GIT 仓库中。

更多信息,请访问 https://git-scm.com

GIT 流程

下图提供了开始使用 GIT 仓库的流程。

GIT 流程示意图:访问项目、初始化、暂存文件并提交更改。或者访问项目并克隆仓库。

该图向你展示了开始使用 GIT 仓库的两种选项:

  1. 将现有目录导入 GIT。

  2. 从服务器克隆现有 GIT 仓库。

观看此视频以了解 GIT 工作目录。

视频:本节含 SAP 官方视频(视频 ID 1_osfrj1hr),需在 learning.sap.com 在线观看。

使用本地 GIT 仓库

业务示例

在本练习中,你将学习如何使用本地 Git 仓库。

注意

SAP BTP Platform 和 SAP Business Application Studio 是云服务。由于云软件的特性,字段和按钮的命名以及步骤内容可能与此处提供的练习解决方案有所不同。

步骤

  1. 打开你的培训用 SAP Business Application Studio。

  2. 使用以下信息创建一个新的 SAP Fiori Freestyle 项目。

SAP Fiori Freestyle 项目信息

字段

Template

SAP Fiori application

Template Type

SAP Fiori

Template

Basic

Data source

None

View name

Main

Module name

repository

Application title

Repository-integration

Application namespace

student.com.sap.training.advancedsapui5

Description

A Fiori Application.

Project folder path

/home/user/projects

其他字段和单选按钮保留默认值。

  1. 按之前练习中所示执行此步骤。

  2. 打开 repository 文件夹的终端。通过执行以下命令初始化本地 GIT 仓库:git init

  3. 在上下文菜单中选择 Open in Integrated Terminal,打开 repository 文件夹的终端。

  4. 通过执行给定命令初始化本地 GIT 仓库。

  5. 通过 Git 视图暂存所有更改以进行首次提交。Git 视图位于左侧菜单中,形式为 branch 符号。如果你打开它,就会看到所有更改。你可以通过选择三个点符号,并在下拉菜单中选择 ChangesStage All Changes 来暂存所有更改。

  6. 在 SAP Business Application Studio 的左侧菜单中,选择 branch 符号 (Source Control)以打开 Git 视图。

  7. 检查 Git 视图的提交部分(位于 Message 输入字段下方)。这些文件被标记为未跟踪(U),并位于 Changes 下。 Git 窗格截图,显示所有标记为 U(未跟踪)的文件。

  8. 现在暂存所有更改以进行首次提交。对于暂存,请选择三个点符号(Views and More actions…),然后选择 ChangesStage All ChangesGit 窗格菜单选项的截图。

  9. 检查 Git 视图的提交部分。如你所见,这些文件现在被标记为已添加(A),并位于 Staged Changes 下。 Git 窗格截图,显示所有标记为 A(已添加)的文件。

  10. 将已暂存的文件提交到你的本地 Git 仓库。使用 Git 视图进行提交,并使用 Initial Commit 作为提交消息。然后你可以返回到 Explorer 窗格。

  11. 将已暂存的文件提交到你的本地 Git 仓库。对于提交,只需在 Git 视图的 Message 输入字段中输入 Initial Commit,然后选择 Commit 按钮或选择对勾符号。 Git 窗格截图。已输入注释,文件已准备好提交。

  12. Git 视图中的更改将为零: Git 窗格截图。更改已提交。不再显示任何文件。

  13. 返回到 Explorer 窗格。

  14. 在项目的 view 文件夹中添加所列的 XML 类型视图,并在 controller 文件夹中添加相应的 JavaScript 类型控制器。要创建这些文件,请使用 Main.view.xmlMain.controller.js 文件上下文菜单中的 CopyPaste。将它们重命名为所列的视图和控制器文件名。在创建的 Detail.view.xml 文件中,你需要将 controllerName 属性的一部分从 Main 改为 Detail,并移除 displayBlock 属性。然后将 Page 元素的 title 属性值改为字符串 Title。本练习使用字符串即可,无需使用 i18n。在创建的 Detail.controller.js 文件中,你需要将 extend 函数中控制器名称的一部分从 Main 改为 Detail

视图和控制器文件名

视图文件名

控制器文件名

Detail.view.xml

Detail.controller.js

  1. 在项目的 view 文件夹中添加 Detail.view.xml 文件,并在 controller 文件夹中添加相应的 Detail.controller.js 文件。使用 Main.view.xmlMain.controller.js 文件上下文菜单中的 Copy 然后 Paste 来创建文件。然后重命名它们。

  2. 在创建的 Detail.view.xml 文件中,你需要将 controllerName 属性的一部分从 Main 改为 Detail,并移除 displayBlock 属性。然后将 Page 元素的 title 属性值改为字符串 Title。本练习使用字符串即可,无需使用 i18n。

<mvc:View controllerName="student.com.sap.training.advancedsapui5.repository.controller.Detail"
xmlns:mvc="sap.ui.core.mvc"
xmlns="sap.m">
<Page id="page" title="Title">
<content />
</Page>
</mvc:View>
  1. 在创建的 Detail.controller.js 文件中,你需要将 extend 函数中控制器名称的一部分从 Main 改为 Detail。字符串的最后一部分应如下所示:

repository.controller.Detail", {
  1. 暂存你的更改并使用提交消息 Detail view and controller added 提交它们,然后返回到 Explorer 窗格。

  2. 打开 Git 视图并检查提交部分。如你所见,Detail.controller.jsDetail.view.xml 文件现在被标记为 untracked(U),并位于 Changes 下。 Git 窗格截图,显示两个标记为 U(未跟踪)的新文件。

  3. 现在暂存所有更改。对于暂存,请选择三个点符号(Views and More actions…),然后选择 ChangesStage All Changes。或者,你可以通过为每个文件选择 + 符号(Stage Changes)来单独暂存文件。现在,这些文件应被标记为已添加(A),并位于 Staged Changes 下。 Git 窗格截图,显示两个标记为 A(已添加)的文件。

  4. 将已暂存的文件提交到你的本地 Git 仓库。对于提交,只需在 Git 视图的 Message 输入字段中输入 Detail view and controller added,然后选择 Commit 按钮或选择对勾符号。现在更改应为零。 Git 窗格截图。更改已提交。不再显示任何文件。

  5. 返回到 Explorer 窗格。

  6. 打开 Detail.view.xml 文件,并将值 Detail 分配给 Page 元素的 title 属性。本练习无需使用 i18n,只需将值 Detail 作为字符串分配即可。然后保存你的更改。

  7. 打开 Detail.view.xml 文件。

  8. Page 元素的 title 属性值改为 Detail

<Page id="page" title="Detail">
<content />
</Page>
  1. 保存你的更改。

  2. 暂存你的更改并使用提交消息 Detail view title changed 提交它们。

  3. 打开 Git 视图。如你所见,Detail.view.xml 文件现在被标记为已修改(M),并位于 Changes 下。 Git 窗格截图,显示标记为 M(已修改)的视图文件。

  4. 现在暂存这些更改。对于暂存,你可以为 Detail.view.xml 文件选择 + 符号(Stage Changes)。此操作完成后,Detail.view.xml 文件应仍被标记为已修改(M),但现在位于 Staged Changes 下。 Git 窗格截图,显示标记为 M(已修改)的文件已被暂存。

  5. 将已暂存的文件提交到你的本地 Git 仓库。对于提交,请在 Git 视图的 Message 输入字段中输入 Detail view title changed,然后选择 Commit 按钮或选择对勾符号。现在更改应为零。

  6. 选择 Git: View history (Git log) 图标以查看提交历史。你应该会看到本练习中完成的全部三次提交: Git 历史窗格截图,显示全部三次提交。

使用远程 Git 仓库

业务示例

在本练习中,你将学习如何创建远程 Git 仓库并使用它。

正如我们在之前的练习中所见,SAP Business Application Studio 有一个用于 GIT 的本地仓库。不过,建议始终将工作保存在远程仓库中。远程仓库可以是公共的,也可以是私有的(也称为企业 GIT)。

在本练习中,我们将重点使用公共 GIT,特别是 GitHub https://github.com/。如果你已经有账户或熟悉其他工具,也可以使用任何其他工具。

注意

SAP BTP Platform 和 SAP Business Application Studio 是云服务。由于云软件的特性,字段和按钮的命名以及步骤内容可能与此处提供的练习解决方案有所不同。

步骤

  1. 如果你没有 GitHub 账户,请访问 https://github.com/ 并创建一个。确保你使用的是有效的电子邮件地址。此外,确保你能够访问该电子邮件账户。

  2. 转到 https://github.com/ 并选择 Sign up

  3. 逐步完成账户创建流程。

  4. 转到 https://github.com/ 并登录你的账户。然后使用以下信息创建一个新仓库:

仓库信息

字段

Repository name

trainingrepository

Description

Repository for training

Repository visibility

Private

  1. 在任意页面的右上角,使用 plus(+) 下拉菜单,并选择 New repository

  2. Repository name 中输入 trainingrepository

  3. Description 中输入 Repository for training

  4. 选择 Private 作为仓库可见性。

  5. 选择 Create repository

  6. 使用所列信息创建个人访问令牌。创建个人访问令牌后,请务必复制并保存它,因为你将无法再次看到它,而且你需要将它插入到 SAP Business Application Studio 的某个文件中。你可以在 GitHub 账户的 Developer settings 中创建个人访问令牌。

个人访问令牌信息

字段

Note

training

Select scope

repo, delete_repo and write:discussion

  1. 通过单击右上角的账户打开账户的个人设置,然后从下拉菜单中选择 Settings

  2. 选择 Developer settings

  3. 选择 Personal access tokens

  4. 选择 Tokens (classic)

  5. 选择 Generate new tokenGenerate new token (classic)

  6. Note 中输入 training,并在 Select scopes 中选择 repodelete_repowrite:discussion。选择 Generate token

  7. 请务必现在复制并保存你的新个人访问令牌,因为你将无法再次看到它;你需要将它插入到 SAP Business Application Studio 的某个文件中。

  8. 打开 SAP Business Application Studio。

  9. 打开 repository 文件夹的终端。通过执行以下命令为你的 Git 账户设置电子邮件地址和用户名:

  • git config --global user.email ""

  • git config --global user.name ""

  1. 打开 repository 文件夹的终端。通过执行所列命令设置你的电子邮件地址和用户名。

  2. 为了在 SAP Business Application Studio 中保存个人访问令牌,请在 /home/user 文件夹中创建一个包含所列信息的 .netrc 文件。键和值之间只需一个空格。

.netrc 文件的内容

machine

github.com

login

password

<Your personal access token from step 2>

  1. 选择 FileOpen Folder…

  2. 输入 /home/user/ 并选择 OK

  3. 选择 New File 图标。

  4. 输入 .netrc 并按键盘上的 Enter 键。

  5. 输入所列的键-值对。键-值对无需使用 :=。键和值之间只需一个空格。

  6. 它将如下图中所示: .netrc 文件的截图。

  7. 保存你的更改。

  8. 打开 repository 工作区。打开 repository 文件夹的终端,并将新的远程 Git 仓库分配给你的项目。要将新的远程 Git 仓库分配给你的项目,你可以使用以下命令,并带上你的 trainingrepository 远程 Git 仓库的 URL(可在 GitHub 上找到):git remote add origin https://<Git-Host-URL>/<full-path-to-repository>

  9. 选择 FileOpen Recent … 返回到你的项目。

  10. repository 文件夹的上下文菜单中,选择 Open in Integrated Terminal

  11. 在终端中,使用你的 trainingrepository 远程 Git 仓库的 URL(可在 GitHub 上找到)执行以下命令:git remote add origin https://<Git-Host-URL>/<full-path-to-repository>

  12. 将更改从本地 Git 仓库推送到远程 Git 仓库。你可以使用 Git 视图中的 Push to… 操作。

注意

如果屏幕右下角出现一个窗口,询问是否定期执行 git Fetch,请回答 No。

  1. 打开 Git 视图。

  2. 选择三个点符号(Views and More Actions…),然后选择 Pull, PushPush to… Git 窗格菜单选项的截图。选择 Pull,Push → Push to...

  3. 在输入字段中,选择 origin命令行截图。选择 origin。

  4. 如果出现以下窗口,请回答/选择 No消息框截图。选择 No。

  5. 在 GitHub 上检查你的远程 Git 仓库的内容。

  6. 转到 https://github.com/ 并登录你的账户。

  7. 打开你的远程 Git 仓库 trainingrepository

  8. 查看你的仓库内容。 github 网页截图,显示应用的实际状态。

  9. 要查看这三次提交,请选择时钟符号。 Github 网页截图,显示更改历史。