如您所知,最佳实践是始终对项目(甚至是个人项目)使用源代码管理(SCM)。 您是否知道Android Studio与Git集成了惊人的源代码管理管理功能? 如果您不知道或没有使用它的经验,请继续阅读这篇文章。 即使您已经使用了Android Studio的Git集成,您仍然可以在本文中学到一些有用的技巧。

我将向您展示Android Studio中Git支持的许多功能,以及从Android Studio内部进行不同的Git操作(提交,推入,拉出,分支等)有多容易。

在本教程中,我将带您浏览Android Studio中可用的SCM功能列表。 我们将研究以下领域:

  • 将新的Android Studio项目与Git集成
  • 使用GitHub或Bitbucket
  • 浏览版本控制窗口
  • 提交
  • 分行
  • 从远程存储库推入和拉出

先决条件

要遵循本教程,您需要:

启动Android Studio并创建一个名为MainActivity的空活动的新项目(您可以将其命名为GitApplicationDemo )。

android studio 工具栏 菜单栏 android studio工具栏不全_android studio

设置完Android Studio项目后,单击VCS菜单,将鼠标悬停在Import to Version Control菜单上,然后选择Create Git Repository...。

android studio 工具栏 菜单栏 android studio工具栏不全_选项卡_02

然后选择您的Android Studio项目的顶部父文件夹。

android studio 工具栏 菜单栏 android studio工具栏不全_git_03

单击确定按钮以使用Git初始化项目。 在后台,Android Studio执行Git命令:

git init

提醒一下,此命令将执行以下操作:

此命令创建一个空的Git存储库-基本是 .git目录,其中包含 objectsrefs/headsrefs/tags和模板文件的子目录。 还创建了一个引用master分支的HEAD的初始 HEAD文件。

弹出信息对话框:

android studio 工具栏 菜单栏 android studio工具栏不全_选项卡_04

这告诉我们有关.idea文件夹中名为vcs.xml的文件。 该文件夹仅包含特定于项目的设置。 请注意,这是所有最新的IntelliJ IDEA版本使用的格式。

理想情况下, .idea/的文件不应到达Git,因此应将其添加到.gitignore

默认情况下,我们切换到master分支。 您始终可以在Android Studio的右下角查看项目的当前分支。

android studio 工具栏 菜单栏 android studio工具栏不全_android studio_05

您可以轻松地在Android Studio中的GitHub或Bitbucket帐户中的任何Android源代码存储库中工作。 让我告诉你如何做。

从Version Control> GitHub导航到File> New> Project

android studio 工具栏 菜单栏 android studio工具栏不全_git_06

(如果要处理来自Bitbucket的存储库,请改为选择Bitbucket 。如果要仅将Internet上的Git存储库克隆到本地计算机中,请选择Git菜单选项。)

接下来,输入您的GitHub帐户凭据,然后单击登录

android studio 工具栏 菜单栏 android studio工具栏不全_Android_07

如果登录成功,将弹出“ 克隆存储库”对话框。 该对话框显示一个下拉列表,其中包含您当前拥有或正在使用的GitHub上的存储库列表。

android studio 工具栏 菜单栏 android studio工具栏不全_选项卡_08

单击“ 克隆”将存储库克隆到本地计算机中已选择的父目录中。

使用Git成功启动我们的Android Studio项目后,Android Studio将显示“ 版本控制”窗口。 单击“ 版本控制”选项卡(位于Android Studio的左下角),让我们探索那里的功能。 请注意,您可以使用Alt-9快速打开此窗口。

android studio 工具栏 菜单栏 android studio工具栏不全_git_09

在此窗口内,我们有三个不同的选项卡: Local ChangesConsoleLog

本地变化表

这将显示已在本地(在您自己的计算机上)修改但尚未提交到存储库的文件列表。

android studio 工具栏 菜单栏 android studio工具栏不全_git_10

让我们看一下在“ 本地更改”选项卡中可用的项目工具栏。

android studio 工具栏 菜单栏 android studio工具栏不全_选项卡_11

  1. 单击此图标刷新当前工作场所中文件的状态。 快捷方式是Control-F5
  2. 单击此图标将提交您当前的更改。 快捷方式是Control-Alt-Z
  3. 单击此图标以回滚任何选定的更改。
  4. 单击此图标创建一个新的更改列表。 请注意,变更列表是文件中的一组变更,代表源代码中的逻辑变更。 快捷方式是Alt-Insert
  5. 单击此按钮删除选定的更改列表。
  6. 要启用更改列表,只需单击此图标。
  7. 要将所选文件移动到另一个变更列表,请单击此图标。

android studio 工具栏 菜单栏 android studio工具栏不全_git_12

  1. 单击此图标以展开以查看所有文件。
  2. 单击此图标以折叠所有文件。
  3. 单击此图标可显示按文件夹分组的更改文件。
  4. 单击此图标可将所选文件的路径复制到系统剪贴板。
  5. 单击此图标以显示“忽略的文件”节点,以及Git忽略的现有文件列表。
  6. 单击此图标可以设置Git将忽略的文件列表。
  7. 单击此图标打开“ 预览差异”窗格,以将当前文件与最新提交的修订进行比较。

控制台选项卡

在此选项卡中,我们看到了执行与Git相关的命令的结果。 请注意,您不能在此标签内编写Git命令,而应在Android Studio的终端窗口中执行。

android studio 工具栏 菜单栏 android studio工具栏不全_android studio_13

日志标签

该选项卡显示了提交给本地和远程存储库的所有分支的所有更改。 在此选项卡中,您可以浏览对任何分支的提交。

android studio 工具栏 菜单栏 android studio工具栏不全_选项卡_14


 

搜索框用于搜索具有输入字符串或正则表达式的提交。

  1. 此下拉列表用于按分支过滤提交。 要查看所有本地和远程提交,只需选择全部 (默认)。
  2. 要过滤作者的提交,请使用此下拉列表。 您必须输入作者的姓名才能查看其提交。 选择全部以查看所有用户的提交。
  3. 使用此下拉列表可以按时间范围或特定日期过滤提交。 要指定日期,只需单击“ 选择”并选择日期。 选择全部以查看所有日期的提交。
  4. 使用此下拉列表可按修改文件的路径过滤提交。
  5. 通过首先在合并提交的正下方显示传入的提交,此按钮(IntelliSort)提供了一种更方便的方式来查看合并。
  6. 如果启用此按钮,即使没有分支,长分支也会完整显示。
  7. 使用此按钮刷新项目中的提交列表。
  8. 要转到哈希,标签或分支,只需使用此按钮。
  9. 单击此按钮可将所选提交中的更改应用于当前分支。
  10. 单击此按钮以突出显示所选分支中尚未应用到当前分支的提交。

您可以在IntelliJ IDEA文档中了解有关“ 版本控制”工具窗口的更多信息。

您会注意到,当我们在Android Studio项目中设置Git集成时,文件名的颜色变为棕色。 根据IntelliJ IDEA官方文档,对于带有棕色标签的文件:

文件在本地存在,但不在存储库中,并且未计划添加。

现在让我们看看如何在Android Studio中进行提交。 但是首先,我们需要将工作目录中的更改添加到登台区域。 在控制台中,我们将使用git add命令。

git add <file> || <directory>

但是我们可以直接在Android Studio中执行此操作。 在Local Changes选项卡中,选择Unversioned Files下拉菜单, 右键单击并转到Git> Add或使用Control-Alt-A 。 请记住,选择根文件夹会将其中的所有内容添加到暂存区域。

android studio 工具栏 菜单栏 android studio工具栏不全_android studio_15

现在,您将观察到文件标签的颜色已从棕色变为绿色。 这是IntelliJ IDEA文档中有关绿色显示的文件名的说明:

已计划将文件添加到存储库。

要了解有关文件名根据Android Studio(IntelliJ IDEA)中的文件状态可以具有的不同颜色的更多信息,请查看文件状态突出显示文档

要最终提交我们的更改,请单击“ 本地更改”选项卡中的“提交更改”按钮,然后将弹出“ 提交更改”对话框。

android studio 工具栏 菜单栏 android studio工具栏不全_android studio_16

  1. 在这里,我们可以选择或取消选择应包含在此提交中的文件。 默认情况下,将检查所有暂存文件。
  2. 在此处写您的提交消息。 如果您有以前编写的提交消息,它将默认显示在此处。
  3. 选择要提交到Git之前要执行的操作。
  4. 并排比较更改的文件。
  5. 使用此下拉按钮,您可以提交和推送或仅提交。

因此,要提交,让我们写一个提交消息:

Initial commit

在“ 提交”下拉列表中选择“ 提交 ”以最终提交您的更改。 请注意,您可以随时使用快捷键Control-K从Android Studio提交更改。

现在,如果您重新访问“ 版本控制”窗口中的“ 本地更改”选项卡,您将再也看不到任何文件,因为我们已成功将它们提交到了本地存储库中。

请注意,您还可以导航至VCS> Git>提交文件...进行提交,并导航至VCS > Git>添加以添加文件以进行登台。 此外,您可以点击Android Studio主顶部工具栏中的提交更改图标,以快速进行提交(或提交并推送)。

android studio 工具栏 菜单栏 android studio工具栏不全_android studio_17

在我们的MainActivity.kt类中,我通过重写onResume()在类中进行了简单的修改。 您会注意到修改后的文件名颜色现在是蓝色; 这意味着我们已经修改了文件。

android studio 工具栏 菜单栏 android studio工具栏不全_android studio_18

查看提交日志

现在,再次访问“ 版本控制”窗口,然后转到“ 日志”选项卡。 现在,您将看到对该项目所做的提交。 要获取有关任何提交的更多详细信息,只需单击它。

android studio 工具栏 菜单栏 android studio工具栏不全_Android_19

  1. 此主窗格根据所选过滤器显示项目上的所有提交。 换句话说,这向我们显示了提交历史。
  2. 此窗格显示受在“提交历史记录”窗格中选择的提交影响的文件和文件夹。
  3. 此窗格显示有关所选提交的更多详细信息。

通过右键单击提交,您还可以看到一个菜单,该菜单允许您复制修订号,创建补丁,签出修订,从该提交中分支出来,创建新标签以及将当前分支重置为该提交。 。

android studio 工具栏 菜单栏 android studio工具栏不全_git_20

现在让我们看一下如何查看添加,编辑或删除的代码。 换句话说,我们想更详细地检查所做的更改。

只需单击窗口上方的show diff图标,即可显示受提交影响的文件。 快捷方式是使用Control-D或双击文件或文件夹。

android studio 工具栏 菜单栏 android studio工具栏不全_Android_21

您将看到一个“ 显示差异”对话框,其中显示了先前提交与选定提交之间的差异。

android studio 工具栏 菜单栏 android studio工具栏不全_Android_22

文件中的绿色区域高亮显示了已添加到文件中的行-如果继续执行,则应该看到一些行。 灰色区域突出显示已删除的线。 蓝色突出显示已更改的行。 尝试浏览“ 显示差异”对话框顶部的过滤器和图标按钮,以了解更多信息。

请注意,您还可以在“ 显示差异”对话框中查看图像的更改!

通过右键单击文件,您还可以选择查看该文件的最后一次提交和当前提交之间的差异,即显示diff(快捷键Control-D )。 您还可以编辑源( F4 ),在存储库中打开版本,还原所选更改,显示修订的历史记录,以及显示该文件的提交详细信息。

android studio 工具栏 菜单栏 android studio工具栏不全_Android_23

默认情况下,主分支是当前分支。 但是,建议始终从母版中分支出来,并在单独的特定于功能的分支上进行工作。 完成对功能的编码后(以及测试更改),然后将更改合并到master分支。

让我们看看如何从母版创建分支。

转到Android Studio的右下角,然后单击Git:主下拉菜单。

android studio 工具栏 菜单栏 android studio工具栏不全_git_24

单击新分支按钮。

android studio 工具栏 菜单栏 android studio工具栏不全_android studio_25

输入分支名称。 在我们的例子中,使用dev

android studio 工具栏 菜单栏 android studio工具栏不全_git_26

最后,单击“ 确定”按钮以使Android Studio自动创建开发者 分支,并结帐至该分支。

我们现在正在开发中 科。 如您所见:

android studio 工具栏 菜单栏 android studio工具栏不全_Android_27

在后台,Android Studio执行以下命令:

git checkout -b dev

请注意,我们还可以通过导航到VCS> Git> Branches> New Branch创建新分支。

dev分支内,只需创建一个基本活动ProfileActivity.kt及其布局文件,然后提交更改即可。 我们将看到如何合并dev   掌握在Android Studio中的权限。

从当前分支( dev )转到master分支(这意味着我们正在从dev切换到 给主人)。

合并,签出,删除,比较,重命名分支

如果单击分支,将显示一些可以在该分支上执行的操作。 这些操作包括合并,比较两个分支,重命名该分支,重新定基,检出和删除该分支。

android studio 工具栏 菜单栏 android studio工具栏不全_选项卡_28

在本文中,我们将研究如何合并分支。 在主分支,通过导航到Dev分支,然后点击菜单中的合并合并的Dev分支英寸

android studio 工具栏 菜单栏 android studio工具栏不全_android studio_29

而已! 现在,我们已经成功地将dev分支合并到master分支。

android studio 工具栏 菜单栏 android studio工具栏不全_选项卡_30

在后台,Android Studio执行以下命令:

git merge dev

请注意,我们还可以在Android Studio内部进行高级合并。 我们可以指定合并策略(Resolve,Recursive,Octopus,Ours或Subtree),也可以不使用快进合并模式。

要在合并时进行设置,请导航至VCS> Git>合并更改...

android studio 工具栏 菜单栏 android studio工具栏不全_Android_31

在这里,您可以选择要合并的多个分支,选择合并策略并编写提交消息。 强烈建议您真正了解这些合并策略以及在合并之前是否使用快进模式。

每个Git项目都应该有一个远程或中央存储库,其他开发人员可以在该库中从世界任何地方进行协作。 在Android Studio中,也可以将我们的提交或更改推送到远程存储库。 为此,请导航至VCS> Git>推送...

android studio 工具栏 菜单栏 android studio工具栏不全_选项卡_32

在这里,我们可以通过单击弹出的“ 提交提交”对话框中的“ 定义远程”链接来添加远程存储库URL。 最后,完成后点击发送按钮! 快捷方式是使用Control-Shift-K

Android Studio在后台执行以下命令:

git push

您也可以通过单击主工具栏中的“提交更改”图标或使用Control-K来快速进行提交。

android studio 工具栏 菜单栏 android studio工具栏不全_android studio_33

要使用远程存储库中的最新更改(您应该已经添加了远程源)来更新项目(进行拉取),请导航至VCS> Git> Pull 。 这将使用远程存储库中的最新代码自动更新您的Android Studio项目。

要启动拉动,也可以单击主工具栏中的更新项目图标,或使用Control-T快捷方式。

android studio 工具栏 菜单栏 android studio工具栏不全_git_34

如果这样做,Android Studio将在后台执行Git pull命令:

git pull

请注意,如果在拉动或推入过程中遇到合并冲突,Android Studio将显示一个非常方便的合并冲突对话框,可帮助您解决该冲突。

结论

在本教程中,您了解了通常在命令行或终端中执行各种Git操作是多么容易。 使用Android Studio的Git工具可以更轻松,更高效地与其他开发人员在Android项目上进行协作。