程序员scholar 程序员scholar
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • Vue3 + TS
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • Vue3 + TS
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
npm

(进入注册为作者充电)

  • 依赖管理 - Maven

  • 开发管理 - Git

    • Git - 介绍与安装
    • Git - 常用命令
    • Git - 基本原理
    • Git - SSH免密登录
    • Git - IDEA集成
      • IDEA集成Git
        • 配置Git忽略文件
        • 定位Git程序
        • 初始化本地库
        • 移除Git版本控制
        • 添加到暂存区
        • 提交到本地仓库
        • 切换版本
        • 创建分支
        • 切换分支
        • 合并分支
        • 解决冲突
      • IDEA集成GitHub
        • 设置GitHub账号
        • 分享工程到GitHub
        • 推送本地库到远程库
        • 拉取远程库到本地库
        • 克隆远程库到本地
      • IDEA集成Gitee
        • IDEA安装Gitee插件
        • 本地库推送到远程库
        • 码云复制GitHub项目
    • Git - 上传文件到远程仓库完整流程
    • Git - 自建代码托管平台
    • Git - Commit常用表情
  • Git小乌龟教程

  • 代码管理
  • 开发管理 - Git
scholar
2023-12-08
目录

Git - IDEA集成

笔记

实际开发上,我们更愿意利用图形化界面如 IDEA 来进行 Git 的操作。

2024-01-04 @scholar

  • IDEA集成Git
    • 配置Git忽略文件
    • 定位Git程序
    • 初始化本地库
    • 移除Git版本控制
    • 添加到暂存区
    • 提交到本地仓库
    • 切换版本
    • 创建分支
    • 切换分支
    • 合并分支
    • 解决冲突
  • IDEA集成GitHub
    • 设置GitHub账号
    • 分享工程到GitHub
    • 推送本地库到远程库
    • 拉取远程库到本地库
    • 克隆远程库到本地
  • IDEA集成Gitee
    • IDEA安装Gitee插件
    • 本地库推送到远程库
    • 码云复制GitHub项目

# IDEA集成Git

# 配置Git忽略文件

在开发过程中,IDEA 中集成 Git 是常见的操作。某些文件(如 *.class、*.jar 等)不需要提交到 Git 仓库,因此需要配置 全局忽略文件 和 项目局部忽略文件。


小提示

  • 项目根目录下的 .gitignore 文件优先生效,且作用范围更广。
  • .idea 下的 .gitignore 文件作用范围仅限 .idea 文件夹及子目录。

如果你想忽略整个项目的通用文件(例如 *.log、target/),请把规则写在 项目根目录 下的 .gitignore 文件中。

1. 全局忽略配置

目的:适用于当前电脑上的所有 Git 项目,忽略固定的一些文件和文件夹。

步骤 1:创建全局忽略文件

  1. 选择存放位置 将忽略规则文件放在用户家目录下(Windows 示例路径:C:/Users/用户名/)。

    • 文件名:git.ignore
    • 完整路径示例:C:/Users/你的用户名/git.ignore
  2. 编写忽略规则 打开 git.ignore 文件,写入以下内容:

    # 编译产生的 class 文件
    *.class
    
    # 日志文件
    *.log
    
    # IDE 配置文件和缓存
    .idea/
    *.iml
    *.ipr
    *.iws
    
    # Maven 和 Gradle 生成的目标文件
    target/
    build/
    
    # 包文件
    *.jar
    *.war
    *.nar
    *.ear
    *.zip
    *.tar.gz
    *.rar
    
    # 临时文件
    *~ 
    *.tmp
    
    # 虚拟机崩溃日志
    hs_err_pid*
    
    # Java 开发工具文件
    .classpath
    .project
    .settings
    
    # VS Code 配置
    .vscode/
    
    # STS (Spring Tool Suite)
    .apt_generated
    .springBeans
    .sts4-cache
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44

步骤 2:引用全局忽略文件

告诉 Git 在所有项目中使用上面创建的 git.ignore 文件。

  1. 打开用户目录下的 Git 配置文件: 文件路径:C:/Users/你的用户名/.gitconfig

    • 如果文件不存在,可以手动新建 .gitconfig。
  2. 在 .gitconfig 文件中添加以下配置:

    [user]
        name = 你的Git用户名
        email = 你的Git邮箱
    [core]
        excludesfile = C:/Users/你的用户名/git.ignore
    
    1
    2
    3
    4
    5

    注意:

    • 路径分隔符必须使用正斜线 /,不能使用反斜线 \,即使是在 Windows 上。
  3. 验证配置

    • 执行以下命令查看 Git 全局配置,确保

      excludesfile
      
      1

      正确生效:

      git config --global --list
      
      1

2. 项目局部忽略配置

目的:仅对当前项目生效的忽略规则。

步骤:创建局部 .gitignore 文件

  1. 在项目的根目录下新建一个 .gitignore 文件。

  2. 填写 .gitignore 内容,可以参考以下模板:

    # Maven 目标目录
    target/
    !**/src/main/**/target/
    !**/src/test/**/target/
    
    # Gradle 构建目录
    build/
    !**/src/main/**/build/
    !**/src/test/**/build/
    
    # STS (Spring Tool Suite) 文件
    .apt_generated
    .factorypath
    .project
    .settings
    .springBeans
    .sts4-cache
    
    # IntelliJ IDEA 配置文件
    .idea/
    *.iml
    *.ipr
    *.iws
    
    # NetBeans 配置文件
    nbproject/private/
    nbbuild/
    dist/
    nbdist/
    .nb-gradle/
    
    # Visual Studio Code 配置
    .vscode/
    
    # 日志和临时文件
    *.log
    *.tmp
    *~
    
    # 包文件
    *.jar
    *.war
    *.zip
    
    # 虚拟机崩溃日志
    hs_err_pid*
    
    # 系统文件
    Thumbs.db
    ehthumbs.db
    Desktop.ini
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51

3. 验证忽略文件生效

  1. 检查全局忽略文件是否生效: 在任意新项目中创建一个 test.class 和 test.log 文件,运行以下命令:

    git status
    
    1
    • 如果文件被忽略,则不会出现在 Untracked files 列表中。
  2. 检查局部 .gitignore 是否生效: 在项目中放入 .idea/ 或 target/ 文件夹,运行 git status,确保这些文件被忽略。


提示

  1. 全局忽略:通过 ~/.gitconfig 文件引用 git.ignore,适用于所有项目。
  2. 局部忽略:在项目根目录下创建 .gitignore,适用于特定项目。
  3. IDEA 配置 Git:无需额外操作,IDEA 会自动识别 .gitignore 文件并排除指定文件。

# 定位Git程序

image-20240120225155110

# 初始化本地库

image-20240120225455572

选择要创建 Git 本地仓库的工程

image-20240120225620284

# 移除Git版本控制

一般情况下直接把目录底下的.git文件删除即可,需要特别注意的是idea里面的目录映射也需要删除掉!

image-20240120213940086

# 添加到暂存区

右键点击项目选择 Git -> Add 将项目添加到暂存区

image-20240120225811208

# 提交到本地仓库

image-20240120230605580

image-20240120230459034

# 切换版本

在 IDEA 的左下角,点击 Version Control(新版是 Git),右键选择要切换的版本,然后在菜单里点击 Checkout Revision

image-20240120232846671

# 创建分支

选择 Git,在 Repository 里面,点击 Branches 按钮

image-20240120233244055

在弹出的 Git Branches 框里,点击 New Branch 按钮,填写分支名称,创建 develop1分支

image-20240120233406369

然后再 IDEA 的右下角看到 develop1,说明分支创建成功,并且当前已经切换成 develop1分支

image-20240120233508207

# 切换分支

在 IDEA 窗口的右下角,切换到 master 分支

image-20240120233627526

然后在 IDEA 窗口的左下角看到了 master,说明 master 分支切换成功

image-20240120233704984

# 合并分支

注意事项:master 分支是我们部署在生产环境服务器的分支,master 分支的代码往往是最新的代码。通常我们有一个新的需求时不会直接在 master 分支进行实施编码,而是基于 master 分支拉出一个新的分支,在拉出来的新分支进行实施编码。只有当新分支的代码经过 code review 以及测试联调通过之后,才会将代码合并到 master 分支等待部署上线。

  • 在将新分支的更改合并到master之前,首先将master分支的最新更改合并到新分支中。这确保了新分支包含了最新的代码。
  • 这个步骤很重要,因为它可以揭示和解决任何潜在的合并冲突,确保新分支与master分支保持同步。
  • 这样操作可以减少因丢失最新修改的代码而可能导致的线上问题。
  1. 切换到master分支并拉取最新代码:
    • 在 IntelliJ IDEA 左下角的 Git 面板中,切换到master分支。
    • 拉取最新的远程更改以确保master分支是最新的。
  2. 将master分支的更改合并到develop分支:
    • 接着,切换到develop分支。
    • 将master分支的更改合并到develop分支。这一步确保develop分支包含了master的所有最新更改。
  3. 将develop1分支的更改合并到master分支:
    • 现在,切换回master分支。
    • 将develop1分支的更改合并到当前的master分支,合并完成。

image-20240120235352472

如果代码没有冲突,分支直接合并成功,分支合并成功以后,代码自动提交,无需手动提交本地库。

# 解决冲突

注意

冲突发生的原因

  • 相同代码的修改:当两个或多个开发人员修改了同一个文件的同一部分,并且一个人的更改已经被推送到远程仓库,其他人在拉取或推送时就可能遇到冲突。
  • 合并操作:在执行合并操作时(例如子分支合并到master分支),如果master分支上的代码在合并期间发生了更改,那么也可能产生冲突。

例如 在提交合并后的分支的时候,发现 本地master 分支和 远程master 分支都修改了相同的代码,在合并分支的时候就会发生冲突,这个时候就需要你手动解决冲突了!!

所以在我看来,只要你的同事不和你修改同一个文件的同一部分,一般不会出什么问题,就算冲突发生了也不要慌,和同事沟通一下,决定哪些更改应该保留,哪些应该放弃!!

image-20240121001010439

# IDEA集成GitHub

# 设置GitHub账号

image-20220208183622208

如果出现 401 等情况连接不上的,是因为网络原因,可以使用以下方式连接:

image-20220208183638206

然后去 GitHub 账户上设置 token

1705755028040

image-20240120205530810

image-20240120205728443

image-20240120205823227

点击生成 token

image-20240120210105643

复制红框中的字符串到 idea 中

image-20220208183748534

点击登录

image-20240120205932513

# 分享工程到GitHub

输入仓库名称和介绍

image-20240120212915537

来到 GitHub 中发现已经帮我们创建好了 gitTest 的远程仓库

image-20240120212834436

注意:如果推送失败可以把远程地址定义为ssh密钥来进行连接

image-20240120212612394

# 推送本地库到远程库

右键点击项目,可以将当前分支的内容 push 到 GitHub 的远程仓库中

image-20220208183915262

image-20220208183923958

image-20220208183932702

image-20220208183939636

image-20220208183947933

注意:push 是将本地库代码推送到远程库,如果本地库代码跟远程库代码版本不一致,push 的操作是会被拒绝的。也就是说,要想 push 成功,一定要保证本地库的版本要比远程库的版本高。

因此一个成熟的程序员在动手改本地代码之前,一定会先检查下远程库跟本地代码的区别。如果本地的代码版本已经落后,切记要先 pull 拉取一下远程库的代码,将本地代码更新到最新以后,然后再修改,提交,推送。

# 拉取远程库到本地库

右键点击项目,可以将远程仓库的内容 pull 到本地仓库

image-20220208184032348

image-20220208184039037

注意:pull 是拉取远端仓库代码到本地,如果远程库代码和本地库代码不一致,会自动合并,如果自动合并失败,还会涉及到手动解决冲突的问题。

# 克隆远程库到本地

image-20220208184103854

image-20220208184111142

为 clone 下来的项目创建一个工程,然后点击 Next

image-20220208184127990

image-20220208184135500

image-20220208184155575

image-20220208184149924

# IDEA集成Gitee

众所周知,GitHub 服务器在国外,使用 GitHub 作为项目托管网站,如果网速不好的话,严重影响使用体验,甚至会出现登录不上的情况。针对这个情况,可以使用国内的项目托管网站:码云(Gitee)。

码云是开源中国推出的基于 Git 的代码托管服务中心,网址是 https://gitee.com/,使用方式跟 GitHub 一样,而且它还是一个中文网站,如果你英文不是很好它是最好的选择。

# IDEA安装Gitee插件

IDEA 默认不带码云插件,我们第一步要安装 Gitee 插件。

如图所示,在 IDEA 插件商店搜索 Gitee,然后点击右侧的 Install 按钮。

image-20220208184401317

IDEA 链接码云和链接 GitHub 几乎一样,安装成功后,重启 IDEA

image-20220208184421471

IDEA 重启以后在 Version Control 设置里面看到 Gitee,说明码云插件安装成功

image-20220208184436677

然后在码云插件里面添加码云帐号,我们就可以用 IDEA 连接码云了

image-20220208184450863

# 本地库推送到远程库

IDEA 连接码云和连接 GitHub 几乎一样,首先在 Idea 里面创建一个工程,初始化 Git 工程,然后将代码添加到暂存区,提交到本地库,这些步骤上面已经讲过,此处不再赘述。

image-20220208184643772

自定义远程库链接

image-20220208184656996

给远程库链接定义个 name,然后再 URL 里面填入码云远程库的 HTTPS 链接即可。码云服务器在国内,用 HTTPS 链接即可,没必要用 SSH 免密链接

image-20220208184716829

然后选择定义好的远程链接,点击 Push 即可

image-20220208184727596

看到提示就说明 Push 远程库成功。

只要码云远程库链接定义好以后,对码云远程库进行 pull 和 clone 的操作和 Github 一致,此处不再赘述。

# 码云复制GitHub项目

码云提供了直接复制 GitHub 项目的功能,方便我们做项目的迁移和下载。

具体操作如下:

image-20220208184821581

将 GitHub 的远程库 HTTPS 链接复制过来,点击创建按钮即可 image-20220208184832837

image-20220208184839708

如果 GitHub 项目更新了以后,在码云项目端可以手动重新同步,进行更新

image-20220208184853116

image-20220208184901276

编辑此页 (opens new window)
上次更新: 2024/12/28, 18:32:08
Git - SSH免密登录
Git - 上传文件到远程仓库完整流程

← Git - SSH免密登录 Git - 上传文件到远程仓库完整流程→

Theme by Vdoing | Copyright © 2019-2025 程序员scholar
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式