教程:在 RubyMine 中开始使用 Git
本教程将引导您了解最常用的 Git 操作,并演示如何在 RubyMine 中执行这些操作。 您将学习如何从项目中创建 Git 仓库、将其共享至 GitHub、提交并推送更改、创建并合并分支、解决合并冲突以及查看文件历史记录。
步骤 1。 使用 Git 仓库创建新项目
在本教程中,您将创建一个简单的项目,将其分享到 GitHub,并执行以下 Git 操作。
启动 RubyMine,然后在 欢迎 屏幕点击 新建项目。
在打开的对话框中,选择项目类型(本教程中,我们将创建一个 空项目 ),指定项目名称(例如,
gitdemo),然后设置位置路径。请选择 创建 Git 仓库 复选框。

点击 创建。 新项目将立即在 RubyMine 中打开。
您将收到通知,提示已为项目创建本地 Git 仓库。 还会启用用于 Git 操作的专用工具窗口。

步骤 2。 将文件添加到 Git
启用 Git 集成后,RubyMine 将显示哪些文件已修改,哪些新文件已添加到 Git,以及哪些文件尚未被 Git 跟踪。
为了解其工作机制,我们来创建一个简单的 README.md 文件,并添加简要说明,然后将其加入 Git。
在 Project 工具窗口 Alt+1 中,选择项目目录(
gitdemo)。点击工具窗口工具栏上的
,然后从列表中选择 File。 将文件命名为
README.md。在打开的对话框中,点击 Add ,以便 Git 开始跟踪该文件。

现在,每当您修改该文件时,RubyMine 会自动索引更改(即添加到 Git 缓存区 ),无需手动操作。
将以下文本添加到新创建的文件中:
#Tutorial This is a tutorial where you will learn how to create Git repositories from your projects and share them on GitHub.稍后我们将使用它来学习如何解决合并冲突。
现在新建文件已被 Git 跟踪,并添加到 Changes 变更列表中,该列表位于 Commit 工具窗口 Alt+0 中。

Changes 变更列表可帮助您管理尚未提交到 Git 仓库的本地更改。 详细了解请参阅 将更改分组到changelist中。
还有一个 未版本化文件 变更列表,其中包含属于您项目但尚未添加到 Git 仓库的文件。 在本教程中我们不会使用这些文件,但您可以随时通过 将文件排除在版本控制之外(忽略) 了解关于未版本控制文件的更多信息。
步骤 3。 第 3 步:将项目提交到本地 Git 仓库
现在,添加所有您要共享的文件到仓库,并提交以保存当前状态。
在 Commit 工具窗口 Alt+0 中,通过单击文件旁边的复选框选择要提交的文件。
为您的首次提交输入消息:

点击 Commit。 提交成功后,RubyMine 会通知您:

如果您尚未在计算机上使用 Git,在提交更改之前,RubyMine 会要求您输入用户名和电子邮件地址。 Git 会将该信息存储在
.git/config中,以便将您作为提交的作者。
步骤 4。 第 4 步:将项目共享到 GitHub
要使您的项目可供其他贡献者使用,您需要将其发布到远程版本库,例如 GitHub 或 GitLab。 RubyMine 提供与这两个平台的集成。 详细了解,请参见 管理托管在 GitHub 上的项目 和 管理托管在 GitLab 上的项目。
在本教程中,我们将在 GitHub 上发布项目。
在主菜单中,进入 .
在打开的对话框中,您可以更改版本库名称(默认为项目名称),远程名称(默认为 origin),选择版本库类型(公开或私有),并根据需要添加描述。
如果您尚未注册 GitHub,请点击 添加账户 ,然后点击 通过 GitHub 登录。

在打开的浏览器窗口中输入您的 GitHub 凭据,或在那里创建新帐户。 返回 RubyMine 后, 通过以下方式共享 字段将显示您的帐户名称。
点击 共享。 项目成功发布到 GitHub 后,将显示以下通知:

点击通知中的链接以打开 GitHub 上的版本库。
步骤 5。 创建一个新分支
例如,当您在开发新功能,并且不希望更改在测试前进入主分支时,可能需要创建一个单独的分支。
按 Ctrl+T 拉取当前分支的最新版本。
在打开的对话框中,指定分支名称(例如,
new_feature),并勾选 签出分支 复选框以立即切换到新分支。
现在您已切换到新创建的分支:

步骤 6。 第 6 步:进行并查看更改
将新文件(例如
git-features.md)添加到项目中,当 RubyMine 建议将其添加到 Git 版本控制时,请点击 Add。之后,打开
README.md文件,并将现有文本替换为新描述:#Demo This is a demo project where you will learn how to commit and push changes, create and merge branches. Refer to `git-features.md` to check the list of Git operations.在 Project 工具窗口 Alt+1 与编辑器选项卡中,RubyMine 会以不同颜色标识文件:蓝色表示已修改、绿色表示新添加。 此外,在已修改文件的边距区域,将在修改的代码行旁显示彩色更改标记。

要查看具体更改内容,请单击边距标记:

如需在独立编辑器选项卡中查看差异,请点击
:

转到 Commit 工具窗口 Alt+0 ,可一次预览所有更改。 双击文件,在编辑器中打开差异视图:

了解更多信息请参见 调查 Git 仓库中的更改。
第 7 步 提交并推送更改
在我们的 new_feature 分支中,我们创建了一个新的 git-features.md 文件,并修改了 README.md 文件。 现在我们来提交更改并将其推送到远程版本库。
在 Commit 工具窗口 Alt+0 中,选中两个文件对应的复选框,并输入提交说明(例如
Update README.md)。输入提交说明时,您可以使用项目文件名的自动补全功能 Ctrl+Space:

点击 Commit。
按 Ctrl+Shift+K 或在主菜单中选择 ,将更改推送到远程版本库。 推送提交 对话框打开。 在此处,您可以查看所有将被推送的提交以及所有受影响的文件。 推送更改前,您可以查看各文件的差异。 为此,右键点击文件,选择 显示差异 或按 Ctrl+D:

点击 推送。
第 8 步 合并分支并解决冲突
您可以通过多种方式将一个分支中的变更应用到另一个分支中,例如合并与变基分支、cherry-pick 提交、应用单独的更改或文件。 有关所有方法的详细说明,请参见 合并、变基或挑拣以应用更改。
本教程将指导您如何合并两个分支。 我们还将故意制造合并冲突,以学习如何使用 RubyMine 的合并工具轻松解决冲突。
合并分支
在 Git 分支 弹窗中选择
main分支,然后单击 检出。在 步骤 6 中,我们在
new_feature分支中修改了README.md文件。 现在让我们再次在main分支中更新文本,以模拟一个合并冲突,例如:#Tutorial This is a test project where you will learn how to work with the most popular Git operations.按照 步骤 7 的说明提交并推送更改。
在 Git 分支 弹窗的 本地 节点中,选择
new_feature并单击 将 'new_feature' 合并到 'main'。
由于我们在不同的分支中对同一文件做了更改, 冲突 对话框将出现。

解决冲突
在 冲突 对话框中,您可以选择以下方式来解决冲突:
接受您的更改 以保留当前分支中的更改。
接受对方的更改 以应用您要合并到当前分支的另一个分支中的更改。
合并 以在专用对话框中手动解决冲突。
点击 合并。 合并修订 对话框将打开:

名为 来自 main 的更改 的左侧窗格显示来自本地副本的只读更改。
名为 来自 new_feature 的更改 的右侧窗格显示从我们希望合并到
main的new_feature分支中传入的只读更改。名为 Result 的中间窗格为全功能编辑器,显示冲突解决的结果。
在此对话框中,您可以单击
/
接受更改,单击
拒绝更改,并在中间的 Result 窗格中输入代码。 详细了解内容请参见 解决 Git 冲突。
让我们通过单击
从左侧窗格中接受
main的一项更改。 由于我们不需要来自new_feature的同一行更改,请在右侧窗格中红色冲突行中单击以丢弃这些更改。
对于来自
new_feature的剩余非冲突更改,请在右侧窗格中点击。
在中间窗格中查看合并结果。 合并后的文本应如下所示:
#Demo This is a test project where you will learn how to work with the most popular Git operations. Refer to `git-features.md` to check the list of Git operations.
点击 Apply。
按下 Ctrl+Shift+K 或在主菜单中选择 以将更改推送到远程代码库。
您可以在 日志 选项卡的 Git 工具窗口 Alt+9 中查看所有分支中的提交记录:

在此,您还可以撤销提交、在分支之间挑选更改等等。有关更多详情,请参阅 日志选项卡。
第 9 步 查看历史记录
当您与他人协作开发项目时,可能会想知道某个文件是何时、如何以及为什么被更改的。
在 main 分支中,打开 README.md 文件。 若要了解这些更改来自哪个提交,请按以下方式操作之一:
右键单击编辑器或 Project 工具窗口 Alt+1 中的文件,然后选择 。 Git 工具窗口中的 历史记录 选项卡将打开:

在此选项卡中,您可以查看影响该文件的所有提交,并查明添加您关注内容的提交记录。
在编辑器中,选择要查看历史记录的代码片段,右键单击所选区域,然后选择 。 所选内容的历史记录 窗口将打开:

在此,您可以查看影响所选代码段的所有提交记录。
在 调查 Git 仓库中的更改 中了解更多探索 Git 历史的方法。
后续操作
如果您在本教程中未找到执行某些特定 Git 操作的方法,请参阅 Git 指南 — 其中描述了 IDE 中可用的所有 Git 操作。
如果您的项目未受 Git 管理,您仍然可以使用 本地历史记录 功能来跟踪并管理本地更改、回滚到特定文件状态、恢复已删除的文件等操作。
