JavaRush /Java 博客 /Random-ZH /让我们将 Git 与 Intellij IDEA 连接起来
Roman Beekeeper
第 35 级

让我们将 Git 与 Intellij IDEA 连接起来

已在 Random-ZH 群组中发布
按照传统,我欢迎你们,未来的高级软件工程师。 让我们将 Git 与 Intellij IDEA 连接起来 - 1今天我们将讨论我关于Git的文章的逻辑延续。我还建议阅读我之前发布的有关分支策略的材料。在有关 Git 的文章中,我描述了如何在命令行上使用它,今天我将向您展示如何在 Intellij IDEA 中完成这一切。在我作为一名开发人员的旅程开始时,我使用了命令行,并认为我不需要使用 UI 来处理这件事。毕竟,一切都清楚了……但那正是直到我开始在 Intellij IDEA 中使用 Git 的那一刻……我马上想说,我将描述我的个人经历。使用 Intellij IDEA 解决相同问题有多种选择,如果您知道如何更好地完成我在文章中描述的内容,请写在评论中,我们将进行讨论。

必要的介绍性说明:

  1. 阅读、重复并理解有关 git 的文章。这将有助于确保一切都已设置完毕并准备就绪。
  2. 安装 Intellij IDEA。
  3. 留出一个小时的个人时间来完全吸收。
为了工作,我们以我在有关 Git 的文章中使用的 演示项目为例。更新:在发布时,新的 Github UI 已经可用,并且某些图标不会出现在文章中显示的位置。不要惊慌:您只需要要么不切换到新的用户界面,要么寻找它们。

将项目克隆到本地

这里有两个选择。
  1. 如果你已经有一个 Github 帐户并且想稍后推送一些东西,最好将项目分叉给你自己并克隆你的副本。如何进行分叉 - 我在本文的章节中描述了分叉工作流程的示例
  2. 从我的存储库克隆并在本地执行所有操作,而无法将整个操作推送到服务器上。毕竟,这将是我的存储库))
要从 Github 克隆项目,您需要复制该项目的链接并将其传递到 IntelliJ IDEA:
  1. 复制项目地址:

    让我们将 Git 与 Intellij IDEA 连接起来 - 2
  2. 打开 Intellij IDEA 并选择从版本控制获取:

    让我们将 Git 与 Intellij IDEA 连接起来 - 3
  3. 将地址复制并粘贴到项目中:

    让我们将 Git 与 Intellij IDEA 连接起来 - 4
  4. 系统将提示您创建 Intellij IDEA 项目。我们接受报价:

    让我们将 Git 与 Intellij IDEA 连接起来 - 5
  5. 由于没有构建系统,并且这不是本文的范围,因此选择从现有源创建项目

    让我们将 Git 与 Intellij IDEA 连接起来 - 6
  6. 接下来会有这样一幅油画: 让我们将 Git 与 Intellij IDEA 连接起来 - 7我们已经整理好了克隆,现在我们可以四处看看了。

首先看一下 Intellij IDEA 作为 Git UI

再仔细看看克隆的项目:您已经可以在那里获得有关版本控制系统的大量信息。第一个是左下角的版本控制面板。在其中您可以找到所有本地更改并获取提交列表(类似于 git log)。让我们继续进行日志讲座。有一个特定的可视化组件有助于准确理解开发过程是如何进行的。例如,您可以看到创建了一个新分支,并向txt 添加了提交标头,然后将其合并到 master 分支中。如果单击某个提交,您可以在右上角看到有关该提交的所有信息:所有更改及其元数据。 Подружим Git с Intellij IDEA - 8此外,您还可以看到进行了哪些更改。而且,冲突在那里得到了解决。IDEA也完美地体现了这一点。如果双击在此提交期间更改的文件,我们将看到冲突是如何解决的: Подружим Git с Intellij IDEA - 9值得注意的是,在右侧和左侧有同一文件的两个版本需要合并为一个。中间是最终结果。当一个项目有很多分支、提交以及在该项目中工作的用户时,需要按分支(branch)、用户(user)和日期(date)分别进行搜索: Подружим Git с Intellij IDEA - 10而开始之前我要解释的最后一件事是如何理解我们在哪个分行。我给你一分钟时间去搜索...你找到了吗?你要放弃吗?:D 右下角有一个Git: master按钮,在 Git: 之后显示了项目当前所在的分支。如果单击该按钮,您可以执行许多有用的操作:移动到另一个分支、创建新分支、重命名现有分支等等。 Подружим Git с Intellij IDEA - 11

使用存储库

有用的热键

要继续工作,您需要记住一些非常有用的热键:
  1. ctrl + t - 从远程存储库获取最新更改(git pull)。
  2. ctrl + k - 提交/查看当前可用的所有更改。这包括未跟踪和修改的文件(请参阅我关于 git 的文章,其中对此进行了描述)(git commit)。
  3. ctrl + shift + k是将更改推送到远程存储库的命令。所有在本地创建但尚未在远程提交的提交都将提供推送 (git Push)。
  4. alt + ctrl + z - 将特定文件中的更改回滚到本地存储库中最后创建的提交的状态。如果您在左上角选择整个项目,则可以回滚对所有文件的更改。
Подружим Git с Intellij IDEA - 12

我们想要什么?

为了工作,我们需要掌握无处不在的基本脚本。任务是在单独的分支中实现新功能并将其推送到远程存储库(然后您需要为主分支创建另一个拉取请求,但这超出了我们文章的范围)。我需要做什么?
  1. 获取当前主分支(例如 master)中的所有更改。

  2. 基于这个主要的,为您的工作创建一个单独的。

  3. 实施新功能。

  4. 转到主分支并检查您工作时是否有任何新的更改。如果不是,那么一切都很好,如果是,那么我们执行以下操作:我们转到工作分支并将主分支的更改重新设置为我们的分支如果一切顺利,那就太好了。但很可能会发生冲突。并且可以提前解决它们,而无需在远程存储库上浪费时间。

    看起来,为什么要这样做呢?这是一个良好形式的规则,它可以防止在将分支推送到本地存储库后出现冲突(当然,它们有可能仍然存在,但它会变得小得多)。

  5. 将您的更改推送到远程存储库。
接下来发生的事情取决于您的目标和想象力。

从远程服务器接收更改?

我在自述文件中添加了新提交的描述,并希望收到这些更改。如果在本地和远程存储库中都进行了更改,则可以在合并和变基之间进行选择。选择合并。输入ctrl + tПодружим Git с Intellij IDEA - 13结果,您可以看到 README 发生了怎样的变化,即:来自远程存储库的更改已被拉出,在右下角您可以看到来自服务器的更改的所有详细信息。 Подружим Git с Intellij IDEA - 14

在master的基础上创建一个新分支

这里一切都很简单。
  1. 转到右下角,点击Git: master,选择+ New Branch

    Подружим Git с Intellij IDEA - 15
  2. 保留“结帐分支”复选框并写入新分支的名称。对我来说,这将是readme-improver

    Подружим Git с Intellij IDEA - 16

    之后,Git: master将更改为Git: readme-improver

模拟并行工作

为了出现冲突,必须有人创建它们:D 我将通过浏览器使用新的提交来编辑自述文件,从而模拟并行工作。他们说有人在我工作期间对与我相同的文件进行了更改,这将导致冲突。我将从第 10 行删除“完全”一词。

实现您的功能

任务是更改README并为新文章添加描述,即git中的工作是通过Intellij IDEA完成的。添加以下内容: Подружим Git с Intellij IDEA - 17更改已完成,现在您可以创建提交。按热键ctrl + k,我们得到: Подружим Git с Intellij IDEA - 18在创建提交之前,您需要仔细查看此窗口中提供的内容。我特意添加了一个箭头来告诉你该往哪里看。那里有很多有趣的事情。在“提交消息”部分中,我们编写提交的文本,要创建它,您需要单击“提交”按钮。我还没有找到如何使用热键来做到这一点,所以如果有人找到它,写下来,我会很高兴。我们写自述文件已更改并创建提交。结果,左下角会弹出一个警报,其中包含提交的名称: Подружим Git с Intellij IDEA - 19

检查master分支是否发生变化

我们完成了任务,它有效,我们编写了测试,一切都很好。但在推送到服务器之前,需要检查一下主分支在这段时间是否有变化。怎么会发生这种事?很简单:有人在你之后被分配了任务,而这个人比你完成得更快。因此,我们转移到 master 分支。为此,您需要在右下角执行如下图所示的操作: Подружим Git с Intellij IDEA - 20在 master 分支中,按ctrl + t从远程服务器获取其最新更改。如果您查看所做的更改,您可以很容易地注意到发生了什么: Подружим Git с Intellij IDEA - 21如您所见,“完全”一词被删除了。也许是营销部门的人决定不能这样写,并给了开发人员更新它的任务。我们现在本地有最新版本的 master 分支。让我们回到readme-improver。现在我们需要将主分支的更改重新设置为我们的分支。我们这样做: Подружим Git с Intellij IDEA - 22如果你正确地遵循了我的建议,结果应该是 README 文件中的冲突: Подружим Git с Intellij IDEA - 23这里还有很多信息需要理解和吸收。这显示了存在冲突的文件列表(在我们的例子中是一个元素)。我们可以选择三个选项:
  1. 接受你的 - 仅接受自述文件改进者的更改。
  2. 接受他们的 - 只接受来自主人的更改。
  3. 合并 - 自己选择保留什么和删除什么。
目前还不清楚那里发生了什么变化,如果变化是在 master 中,那么那里需要它们,我们不能只接受我们的变化,所以我们选择mergeПодружим Git с Intellij IDEA - 24在这里你可以看到有三个部分:
  1. 这些是来自 readme-improver 的更改。
  2. 结果。目前,它与更改之前相同。
  3. 来自 master 分支的更改。
我们需要以让每个人都满意的方式收集结果。因此,我们研究了他们在我们之前所做的事情,并意识到他们只是删除了“完全”这个词。好吧,没问题。这意味着我们将删除它并添加我们的更改。一旦我们更正结果,您就可以单击“应用”。之后,将弹出一条通知,表明变基成功: Подружим Git с Intellij IDEA - 25这就是我们使用 Intellij IDEA 解决第一个冲突的方法:D

将更改推送到远程服务器

下一步是将更改推送到远程服务器并创建拉取请求。为此,只需按ctrl + shift + k即可,然后我们会得到: Подружим Git с Intellij IDEA - 26左侧将是尚未推送到远程存储库的提交列表,右侧将是所有已推送到远程存储库的文件改变了。就这样:点击Push,你就会高兴了:) 如果推送成功,右下角会有这样的通知: Подружим Git с Intellij IDEA - 27

奖金部分

我最初并不想在文章中添加拉取请求的创建,但结果发现它并不是很完整。因此,我们转到 GitHub 存储库(当然,如果它是您的))))并看到 GitHub 已经知道要为我们提供什么: Подружим Git с Intellij IDEA - 28单击Compare & pull request,然后单击Create pull request。由于我们提前解决了冲突,现在在创建拉取请求时,您可以立即合并它: Подружим Git с Intellij IDEA - 29这就是我这次想告诉您的。当然,我只是打开门给你们看了一小部分。您将根据需要自行找到其余部分。像往常一样,我邀请您订阅我的GitHub 帐户,我在其中发布基于我在工作中使用的各种技术的项目。我最近取得了一项个人成就——我的项目已经得到了一百多个开发者的评级。有人使用你所做的东西是一种令人难以置信的喜悦感。并永远利用它。

有用的链接

  1. JavaRush:Git 入门:初学者的详细指南
  2. GitHub:可供使用的演示项目
  3. JavaRush:分析 Git 中的分支策略
  4. JetBrains:设置 Git 存储库
  5. Habr:Git 变基
  6. GitHub:我的帐户
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION