教程:在 CLion 中开始使用 Git
本教程将引导您完成最常用的 Git 操作,并展示如何在 CLion 中执行这些操作。 您将学习如何从项目中创建 Git 仓库,将其共享到 GitHub,提交并推送更改,创建和合并分支,调查文件历史记录等。
在开始之前
在本教程中,我们将创建一个简单的项目,将其共享到 GitHub,并执行以下描述的一些 Git 任务。 如果您想使用托管在 GitHub 上的现有项目,请按照 从远程主机检出项目(git clone) 中的描述克隆它。
创建一个新项目
启动 CLion,然后在 欢迎 屏幕上点击 新建项目。
在打开的对话框中,选择项目类型(例如, C++ 可执行文件 ),提供位置路径并设置语言标准。 点击 创建。

新项目将立即在 CLion 中打开:

步骤 1。 启用 Git 集成
在主菜单中,进入 .
在打开的对话框中,从可用的版本控制系统列表中选择 Git ,然后点击 确定。

或者,按 Alt+` 并选择 创建 Git 仓库 (或按 1 )。 在打开的 Finder 窗口中,为本地 Git 仓库指定一个根文件夹。
您将收到一条通知,告知已为您的项目创建了本地 Git 仓库。 在工具栏和状态栏上,将出现与 Git 相关的控件:

用于处理 Git 的专用工具窗口现在可用: 提交 (Ctrl+K 或 )和 Git (Alt+9 或 )。

从 提交 工具窗口 Alt+0 ,您可以 查看本地更改 并将其 提交 到本地 Git 仓库。 从 Git 工具窗口,您可以 处理 Git 日志, 管理来自 GitHub 的拉取请求 ,以及 更多。
步骤 2。 将文件添加到 .gitignore
在 本地更改 工具窗口 提交 的 Alt+0 选项卡上,您可以看到属于您项目的文件列表。 这些文件尚未添加到 Git 仓库中——您需要选择要共享的文件以及版本控制系统应忽略的文件。
按目录分组文件:按 Ctrl+Alt+P 或点击工具栏上的
并选择 目录。

选择您不想共享的目录。 例如,以下目录可以被忽略而不会破坏项目的完整性:
.idea :您本地 CLion 安装的 设置。 除非您想在团队成员之间共享设置,否则请忽略此目录。
cmake-构建-debug :为 CMake 构建工件自动创建的目录。
右键点击所选内容并选择 。

系统将提示您确认在项目根目录中创建一个新的 .gitignore 文件。 点击 创建。
在打开的对话框中,您可以通过按 Add 立即将新创建的文件添加到 Git,或者通过按 取消 推迟此操作。
点击 Add。 您将看到 .gitignore 文件已添加到项目的根目录,并放置在 更改 区域中。 您选择忽略的目录不再显示在 未版本化文件 列表中:

您可以随时编辑 .gitignore 文件,将新目录添加到列表或移除现有目录。
步骤 3。 将您的项目提交到本地 Git 仓库
现在,当所有不必要的目录都从未版本化文件列表中排除后,您只需将所有文件添加到仓库并提交它们以保存其当前状态。
在 提交 工具窗口 Alt+0 中,通过拖放将所有文件从 未版本化文件 列表移动到 更改。 通过点击根文件夹复选框选择所有文件。
为您的第一次提交输入消息:

点击 提交。 提交完成后,将出现相应的通知:

步骤 4。 在 GitHub 上共享您的项目
为了让其他贡献者可以访问您的项目,您需要将其发布到远程仓库,例如 github.com。 CLion 提供与 GitHub 的集成,允许您 管理托管在 GitHub 上的项目, 派生外部仓库, 管理拉取请求 ,以及从 IDE 执行其他 GitHub 操作。 有关更多详细信息,请参阅 GitHub 部分。
在主菜单中,进入 .
在打开的对话框中,输入您的 GitHub 登录名和密码,然后点击 登录:

如果您尚未在 GitHub 上注册,请点击 注册 GitHub 转到 github.com 并在那里创建一个新账户。
如果您为 GitHub 启用了双因素身份验证,将会出现以下对话框:

输入代码并点击 确定。
在打开的对话框中,您可以更改仓库名称(默认与项目名称相同)、远程名称(默认是 origin),选择仓库类型(公共或私有),并根据需要添加一些描述:

点击 共享。 项目成功发布到 GitHub 后,将出现以下通知:

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

将相应的分支添加到远程仓库。 为此,请在 Git 分支 菜单中选择本地分支并点击 推送:

在打开的对话框中,点击 推送。 新分支将被添加到远程仓库,并会出现在 远程分支 列表中的 Git 分支 菜单中:

步骤 6。 进行并查看更改
按 Ctrl+T 拉取当前分支的最新版本。
添加 一个新文件到项目,例如 subfunc.cpp ,并修改 main.cpp 文件。
在 Project 工具窗口 Alt+1 和编辑器选项卡中,CLion 对文件应用不同的颜色:蓝色表示已修改,绿色表示新添加。 此外,在已修改文件的边距区域,彩色更改标记会出现在修改的行旁边。 您可以点击边距标记查看详细信息:

点击
在单独的窗口中查看差异:

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

请参阅 调查 Git 仓库中的更改 了解更多信息。
步骤 7. 提交并推送更改
按 Ctrl+T 拉取当前分支的最新版本。
在 提交 工具窗口 Alt+0 中,查看更改,确保您要添加到 Git 的新文件已被选中,输入提交消息,然后点击 提交。
按 Ctrl+Shift+K 或从主菜单中选择 将更改推送到远程仓库。 推送提交 对话框已打开。 在这里,您可以看到所有待推送的提交以及所有受影响的文件。 在推送更改之前,您可以查看每个文件的差异。 为此,右键点击一个文件并选择 显示差异 或按 Ctrl+D:

点击 推送。
步骤 8. 合并分支并解决冲突
您可以通过多种方式将更改从一个分支应用到另一个分支,例如合并和变基分支、挑拣提交、应用单独的更改或文件。 所有这些方法的详细说明请参阅 合并、变基或挑拣以应用更改。
在本教程中,您将学习如何合并两个分支以及 挑拣提交。
合并分支
由于我们在不同分支中对同一文件进行了更改, 冲突 对话框出现。

解决冲突
在 冲突 对话框中,您有几种选项来解决冲突:
接受您的更改 :保留当前分支中所做的更改。
接受他们的更改 :应用您想要合并到当前分支的分支中的更改。
合并 :在专用对话框中手动解决冲突。
点击 合并。 合并修订 对话框打开:

在此对话框中,您可以通过点击
/
接受更改,通过点击
拒绝更改,并在 结果 窗格中输入代码。 请参阅 解决 Git 冲突 了解更多信息。
语法错误会在 合并修订 窗口中突出显示:

按照上图中的截图解决冲突并点击 Apply。
通过按 Ctrl+Shift+K 或从主菜单中选择 将更改推送到远程仓库。
您可以在 日志 选项卡的 Git 工具窗口 Alt+9 中查看所有分支的提交:

从这里,您还可以还原提交、从一个分支挑拣更改到另一个分支,以及更多操作。 详情请参见 日志选项卡。
步骤 9. 查看历史记录
在 master 分支中,打开 main.cpp 文件。 您会看到文件的语法已损坏——一个视图中有两个容器。 假设这些更改是很久以前或由其他人完成的:您可能会对这些代码来自哪个提交感兴趣。 要找出答案,请执行以下操作之一:
右键点击编辑器或 Project 工具窗口 Alt+1 中的文件并选择 。 历史记录 选项卡的 Git 工具窗口打开:

在此选项卡中,您可以查看影响该文件的所有提交,并找出您感兴趣的更改是在哪个提交中添加的。
在编辑器中,选择您想要查看历史记录的代码片段,右键点击所选内容并选择 。 选定内容的历史记录 窗口将打开:

在这里,您可以查看影响您感兴趣的代码选择的所有提交。
在 调查 Git 仓库中的更改 中找到更多探索 Git 历史的方法。
步骤 10. 挑拣提交
此操作允许您将选定提交的更改从一个分支应用到另一个分支。
未来计划
如果您没有在本教程中找到如何执行某些特定的 Git 任务,请参阅 Git 指南——IDE 中可用的所有 Git 操作都在其中进行了描述。
有关使用版本控制系统的一般信息,请转到 版本控制 部分。 CLion 还支持 Mercurial、 Perforce 和 Subversion。
如果您的项目未在版本控制下,您仍然可以使用 本地历史记录 功能跟踪和管理本地更改、回滚到特定文件状态、恢复已删除的文件等。



