CLion 2025.1 Help

教程:在 CLion 中开始使用 Git

本教程将引导您完成最常用的 Git 操作,并展示如何在 CLion 中执行这些操作。 您将学习如何从项目中创建 Git 仓库,将其共享到 GitHub,提交并推送更改,创建和合并分支,调查文件历史记录等。

在开始之前

在本教程中,我们将创建一个简单的项目,将其共享到 GitHub,并执行以下描述的一些 Git 任务。 如果您想使用托管在 GitHub 上的现有项目,请按照 从远程主机检出项目(git clone) 中的描述克隆它。

创建一个新项目

  1. 启动 CLion,然后在 欢迎 屏幕上点击 新建项目

  2. 在打开的对话框中,选择项目类型(例如, C++ 可执行文件 ),提供位置路径并设置语言标准。 点击 创建

    创建一个新项目
  3. 新项目将立即在 CLion 中打开:

    项目未连接到任何版本控制系统

步骤 1。 启用 Git 集成

  1. 在主菜单中,进入 VCS | 启用版本控制集成.

  2. 在打开的对话框中,从可用的版本控制系统列表中选择 Git ,然后点击 确定

    启用 Git 集成

或者,按 Alt+` 并选择 创建 Git 仓库 (或按 1 )。 在打开的 Finder 窗口中,为本地 Git 仓库指定一个根文件夹。

您将收到一条通知,告知已为您的项目创建了本地 Git 仓库。 在工具栏和状态栏上,将出现与 Git 相关的控件:

Git 集成已启用

用于处理 Git 的专用工具窗口现在可用: 提交Ctrl+K视图 | 工具窗口 | 提交 )和 GitAlt+9视图 | 工具窗口 | Git)。

Git 工具窗口

提交 工具窗口 Alt+0 ,您可以 查看本地更改 并将其 提交 到本地 Git 仓库。 从 Git 工具窗口,您可以 处理 Git 日志管理来自 GitHub 的拉取请求 ,以及 更多

步骤 2。 将文件添加到 .gitignore

本地更改 工具窗口 提交Alt+0 选项卡上,您可以看到属于您项目的文件列表。 这些文件尚未添加到 Git 仓库中——您需要选择要共享的文件以及版本控制系统应忽略的文件。

  1. 按目录分组文件:按 Ctrl+Alt+P 或点击工具栏上的 “分组”按钮 并选择 目录

    按目录分组
  2. 选择您不想共享的目录。 例如,以下目录可以被忽略而不会破坏项目的完整性:

    • .idea :您本地 CLion 安装的 设置。 除非您想在团队成员之间共享设置,否则请忽略此目录。

    • cmake-构建-debug :为 CMake 构建工件自动创建的目录。

  3. 右键点击所选内容并选择 添加到 .gitignore | 添加到 .gitignore

    添加到 .gitignore
  4. 系统将提示您确认在项目根目录中创建一个新的 .gitignore 文件。 点击 创建

  5. 在打开的对话框中,您可以通过按 Add 立即将新创建的文件添加到 Git,或者通过按 取消 推迟此操作。

    点击 Add。 您将看到 .gitignore 文件已添加到项目的根目录,并放置在 更改 区域中。 您选择忽略的目录不再显示在 未版本化文件 列表中:

    .gitignore 已添加到 Git

    您可以随时编辑 .gitignore 文件,将新目录添加到列表或移除现有目录。

步骤 3。 将您的项目提交到本地 Git 仓库

现在,当所有不必要的目录都从未版本化文件列表中排除后,您只需将所有文件添加到仓库并提交它们以保存其当前状态。

  1. 提交 工具窗口 Alt+0 中,通过拖放将所有文件从 未版本化文件 列表移动到 更改。 通过点击根文件夹复选框选择所有文件。

  2. 为您的第一次提交输入消息:

    提交工具窗口
  3. 点击 提交。 提交完成后,将出现相应的通知:

    文件已提交通知

步骤 4。 在 GitHub 上共享您的项目

为了让其他贡献者可以访问您的项目,您需要将其发布到远程仓库,例如 github.com。 CLion 提供与 GitHub 的集成,允许您 管理托管在 GitHub 上的项目派生外部仓库管理拉取请求 ,以及从 IDE 执行其他 GitHub 操作。 有关更多详细信息,请参阅 GitHub 部分。

  1. 在主菜单中,进入 版本控制系统 | 在 GitHub 上共享项目.

  2. 在打开的对话框中,输入您的 GitHub 登录名和密码,然后点击 登录

    登录到 GitHub

    如果您尚未在 GitHub 上注册,请点击 注册 GitHub 转到 github.com 并在那里创建一个新账户。

  3. 如果您为 GitHub 启用了双因素身份验证,将会出现以下对话框:

    GitHub 的双因素身份验证

    输入代码并点击 确定

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

    GitHub 仓库设置

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

    仓库已共享到 GitHub

    点击通知中的链接以在 GitHub 上打开仓库。

步骤 5。 创建一个新分支

您可能需要创建一个单独的分支,例如,当您正在开发一个新功能时,您不希望您的更改在测试之前进入主(master)分支。

  1. Ctrl+T 拉取当前分支的最新版本。

  2. 在状态栏上,您可以看到当前分支——master。 点击它以打开 Git 分支 菜单:

    Git 分支菜单
  3. Git 分支 菜单中选择 新建分支

  4. 在打开的对话框中,指定分支名称,例如 new_feature ,并选择 签出分支 复选框以立即切换到新分支。

    新建 Git 分支

    现在,您已切换到新创建的分支:

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

    推送 Git 分支

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

    远程 Git 分支

步骤 6。 进行并查看更改

  1. Ctrl+T 拉取当前分支的最新版本。

  2. 添加 一个新文件到项目,例如 subfunc.cpp ,并修改 main.cpp 文件。

    Project 工具窗口 Alt+1 和编辑器选项卡中,CLion 对文件应用不同的颜色:蓝色表示已修改,绿色表示新添加。 此外,在已修改文件的边距区域,彩色更改标记会出现在修改的行旁边。 您可以点击边距标记查看详细信息:

    编辑器和项目工具窗口中的更改
  3. 点击 显示差异图标 在单独的窗口中查看差异:

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

    本地更改

    请参阅 调查 Git 仓库中的更改 了解更多信息。

步骤 7. 提交并推送更改

  1. Ctrl+T 拉取当前分支的最新版本。

  2. 提交 工具窗口 Alt+0 中,查看更改,确保您要添加到 Git 的新文件已被选中,输入提交消息,然后点击 提交

  3. Ctrl+Shift+K 或从主菜单中选择 Git | 推送 将更改推送到远程仓库。 推送提交 对话框已打开。 在这里,您可以看到所有待推送的提交以及所有受影响的文件。 在推送更改之前,您可以查看每个文件的差异。 为此,右键点击一个文件并选择 显示差异 或按 Ctrl+D

    推送提交
  4. 点击 推送

步骤 8. 合并分支并解决冲突

您可以通过多种方式将更改从一个分支应用到另一个分支,例如合并和变基分支、挑拣提交、应用单独的更改或文件。 所有这些方法的详细说明请参阅 合并、变基或挑拣以应用更改

在本教程中,您将学习如何合并两个分支以及 挑拣提交

合并分支

  1. 在状态栏的 Git 分支 菜单中选择 master 分支并点击 检出

  2. main.cpp 中进行一些更改,该分支之前已在 new_feature 分支中修改,例如:

    master 中的更改

    通过这种方式,我们模拟了一个冲突情况。 按照 上文 的描述推送并提交更改。

  3. Git 分支 菜单中选择 new_feature 并点击 合并到当前分支

由于我们在不同分支中对同一文件进行了更改, 冲突 对话框出现。

冲突

解决冲突

  1. 冲突 对话框中,您有几种选项来解决冲突:

    • 接受您的更改 :保留当前分支中所做的更改。

    • 接受他们的更改 :应用您想要合并到当前分支的分支中的更改。

    • 合并 :在专用对话框中手动解决冲突。

    点击 合并合并修订 对话框打开:

    解决冲突
  2. 在此对话框中,您可以通过点击 从左侧应用更改/从右侧应用更改 接受更改,通过点击 拒绝更改,并在 结果 窗格中输入代码。 请参阅 解决 Git 冲突 了解更多信息。

    语法错误会在 合并修订 窗口中突出显示:

    冲突已解决

    按照上图中的截图解决冲突并点击 Apply

  3. 通过按 Ctrl+Shift+K 或从主菜单中选择 Git | 推送 将更改推送到远程仓库。

您可以在 日志 选项卡的 Git 工具窗口 Alt+9 中查看所有分支的提交:

Git 日志选项卡

从这里,您还可以还原提交、从一个分支挑拣更改到另一个分支,以及更多操作。 详情请参见 日志选项卡

步骤 9. 查看历史记录

master 分支中,打开 main.cpp 文件。 您会看到文件的语法已损坏——一个视图中有两个容器。 假设这些更改是很久以前或由其他人完成的:您可能会对这些代码来自哪个提交感兴趣。 要找出答案,请执行以下操作之一:

  • 右键点击编辑器或 Project 工具窗口 Alt+1 中的文件并选择 Git | 显示历史历史记录 选项卡的 Git 工具窗口打开:

    Git 文件历史记录

    在此选项卡中,您可以查看影响该文件的所有提交,并找出您感兴趣的更改是在哪个提交中添加的。

  • 在编辑器中,选择您想要查看历史记录的代码片段,右键点击所选内容并选择 Git | 显示所选内容的历史选定内容的历史记录 窗口将打开:

    选定内容的 Git 历史记录

    在这里,您可以查看影响您感兴趣的代码选择的所有提交。

调查 Git 仓库中的更改 中找到更多探索 Git 历史的方法。

步骤 10. 挑拣提交

此操作允许您将选定提交的更改从一个分支应用到另一个分支。

  1. master 分支中,进行您打算挑拣的更改。 提交 Ctrl+K 并推送 Ctrl+Shift+K 此更改。

  2. 切换new_feature 分支。

  3. Git 工具窗口 Alt+9 中,打开 日志 选项卡。

  4. 分支 列表中,选择 master

  5. 选择您的最后一次提交并点击

    挑拣
  6. 通过按 接受他们的更改 解决打开的对话框中的冲突。 这意味着我们通过挑拣提交的更改覆盖了 main.cpp 文件中的代码。

  7. 从打开的 提交更改 对话框中提交更改并将其 推送Ctrl+Shift+K

    提交挑拣

未来计划

如果您没有在本教程中找到如何执行某些特定的 Git 任务,请参阅 Git 指南——IDE 中可用的所有 Git 操作都在其中进行了描述。

有关使用版本控制系统的一般信息,请转到 版本控制 部分。 CLion 还支持 MercurialPerforceSubversion

如果您的项目未在版本控制下,您仍然可以使用 本地历史记录 功能跟踪和管理本地更改、回滚到特定文件状态、恢复已删除的文件等。

最后修改日期: 2025年 7月 13日