《Git学习笔记:IDEA整合Git》

在IDEA中集成Git去使用

  • 通过Git命令可以完成Git相关操作,为了简化操作过程,我们可以在IDEA中配置Git,配置好后就可以在IDEA中通过图形化的方式来操作Git

在IDEA开发工具中可以集成Git:

集成后在IDEA中可以看到Git相关图标 

1. 在IDEA中配置Git

  • 在IDEA中使用Git,本质上还是使用的本地安装的Git软件,所以需要提前安装好Git并在IDEA中配置Git。

Git安装目录:

 

解释说明:  

  • gitk.exe:Git安装目录下的可执行文件,前面执行的git命令,其实就是执行的这个文件  

IDEA中的配置:

  • 首先关闭项目,找到Customize下的All settings:

 

1. 在IDEA当中去配置Git的安装目录 

点击OK即可~! 

2. 本地仓库操作 

在IDEA中使用Git获取仓库有两种方式:

  • 本地初始化仓库
  • 从远程仓库克隆 

2.1 本地初始化仓库

在IDEA中通过如下操作可以在本地初始化一个本地仓库,其实底层就是执行的 git init 命令

操作过程如下:

1)依次选择菜单【VCS】---【Import into Version Control】---【Create Git Repository】

 

2)在弹出的【Create Git Repository】对话框中选择当前项目根目录,点击【OK】按钮:  

操作完成后可以看到当前项目根目录下出现了.git隐藏目录:  

 

2.2 从远程仓库克隆

在IDEA中从远程仓库克隆本质就是执行的 git clone 命令,具体操作过程如下:  

1)在IDEA开始窗口中点击【Get from VCS】  

2)在弹出的【Get from VCS】窗口中输入远程仓库的URL地址对应的本地仓库存放目录,点击【Clone】按钮进行仓库克隆操作 

 

3. Git忽略文件:.gitignore

Git工作区中有一个特殊的文件 .gitignore通过此文件可以指定工作区中的哪些文件不需要Git管理

我们在码云上创建Git远程仓库时可以指定生成此文件,如下:  

创建完成后效果如下:

解释说明:
  1. 我们在使用Git管理项目代码时,并不是所有文件都需要Git管理,例如Java项目中编译的.class文件、开发工具自带的配置文件等,这些文件没有必要交给Git管理,所以也就不需要提交到Git版本库中。
  2. 注意:忽略文件的名称是固定的,不能修改
  3. 添加到忽略列表中的文件后续Git工具就会忽略它  

一个参考的.gitignore文件内容如下:

.git
logs
rebel.xml
target/
!.mvn/wrapper/maven-wrapper.jar
log.path_IS_UNDEFINED
.DS_Store
offline_user.md
*.class

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr

4. 本地仓库操作

本地仓库操作:

  • 将文件的修改加入暂存区,本质上就是执行git add命令
  • 将暂存区当中的文件提交到版本库,本质上就是执行git commit命令
  • 查看提交日志,本质上就是执行git log命令

4.1 将文件加入暂存区

当在Git工作区新增文件或者对已有文件修改后,就需要将文件的修改加入暂存区,具体操作如下:  

  • 但是,在IDEA当中这一步可以不做,它会自动操作,也就是说,你可以绕过添加暂存区这一步,直接提交! 

 

4.2 将暂存区文件提交到版本库

  • 将暂存区文件提交到版本库,可以选择一个文件进行提交,也可以选择整个项目提交多个文件。
  • 在IDEA中对文件的提交进行了简化操作,也就是说如果文件修改后,无需再加入暂存区,可以直接提交。 
1)提交一个文件:

可以看到,如果选中一个文件提交,则菜单名称为【Commit File...】 

 

2)提交多个文件:

可以看到,如果提交多个文件,则菜单名称为【Commit Directory...】 

由于提交操作属于高频操作,所以为了进一步方便操作,在IDEA的工具栏中提供了提交操作的快捷按钮

注意: 
  • 我们交给Git进行版本控制的代码只需要传src源码以及必要的配置文件就可以了,其它的像target目录下的信息是不需要交给Git进行版本控制的,因为如果JDK版本一改变,那么你编译后的class文件内容不就变了,那不就是没用了。
  • 上传到Git当中的代码只是源码!

.iml文件是IDEA的配置文件! 

4.3 查看日志

  • 查看日志,既可以查看整个仓库的提交日志,也可以查看某个文件的提交日志
1)查看整个项目的提交日志:  
2)查看某个文件的提交日志  

注意:如果代码运行报错,千万别提交! 

  • 我们拉取项目后第一步就是切换分支,公司有分测试环境和生产环境等不同环境,这时候需要问同事该项目的测试环境是哪个分支,正常情况下测试分支是dev,生产环境是prod。
  • commit提交代码后,该代码是还没有到我们的远程仓库的,只是提交到我们的本地库,我们还需要去push代码,如果只是提交了,没有push,这时候同事拉取代码是看不到你提交的代码的,因为你代码还没到远程仓库。 
  • Commit Message:这里写上备注,通常是写你这提交的文件是做什么的,什么内容。
  • 接着勾选自己需要提交的文件即可。
  • Push代码的意思是推送到远程仓库
  • 每次push到远程仓库之前都先提交到本地仓库再说!
  • 代码冲突时不要选择rebase(变基),因为那会将别人的代码给覆盖掉,但是merge不会。

5. 远程仓库操作

远程仓库操作:

  • 查看远程仓库,本质上就是执行git remote命令
  • 添加远程仓库,本质上就是执行git remote add命令
  • 推送至远程仓库,本质上就是执行git push命令
  • 从远程仓库拉取,本质上就是执行git pull命令 

一个本地仓库就关联一个远程仓库! 

项目(本地仓库)如何关联远程仓库? 

看到下面整个提示说明推送成功:

 

通过IDEA从远程仓库去克隆:

 

或者关闭项目,点击Projects,点击Get from VCS,输入URL地址,点击Clone即可! 

Directory表示克隆出来的代码往哪个目录或工程下面放! 

5.1 查看远程仓库

操作过程如下:

 

在弹出的【Git Remotes】窗口中可以看到配置的远程仓库:

5.2 添加远程仓库

一个本地仓库可以配置多个远程仓库,在【Git Remotes】窗口中点击【+】来添加一个新的远程仓库:

【Update Project】 :从远程仓库拉取

6. 分支操作

  • 各个分支之间是相互独立,相互隔离的! 

分支操作:

  • 查看分支,本质上就是执行git branch命令
  • 创建分支,本质上就是执行git branch 分支名 
  • 切换分支,本质上就是执行git checkout 
  • 将分支推送到远程仓库,本质上就是执行git push
  • 合并分支,本质上就是执行git merge命令 

 

由于分支操作属于高频操作,所以在IDEA的状态栏中提供了分支操作的快捷按钮:  

 

注意:分支合并时需要注意合并的方向! 

  • 合并分支是把指定分支合并到当前分支! 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/321353.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

在Eureka中注册多个服务(根据本地主机端口号区分)

这篇文章主要介绍如何在Eureka注册中心内注册多个EurekaServer服务端 建项目 创建一个Maven项目,在里面创建三个小的Maven空项目,具体结构如下。 EurekaServer3,即外面的大模块,为了清楚的观察项目结构,我将其src文…

【机器学习】条件随机场

一、马尔可夫随机场 1.1 概率图模型 什么是有向图模型和无向图模型? https://www.jianshu.com/p/dabbc78471d7 团、极大团、最大团 - 简书 (jianshu.com) 1.2 马尔可夫随机场 二、条件随机场概述 2.1 条件随机场简介 条件随机场(Conditional Random Fiel…

EMC VNXe / Unity存储系统如何找回密码

开始之前,先简单说说,EMC的VNXe存储之间的关系。 EMC的VNXe和Unity存储的操作系统OS是一样的,当然不是完全一样,但是架构是一样的,先推出的产品是VNXe,然后在这个基础上演进到了Unity,Unity XT…

(菜鸟自学)搭建虚拟渗透实验室——安装Kali Linux

安装Kali Linux Kali Linux 是一种基于 Debian 的专为渗透测试和网络安全应用而设计的开源操作系统。它提供了广泛的渗透测试工具和安全审计工具,使安全专业人员和黑客可以评估和增强网络的安全性。 安装KaliLinux可参考我的另一篇文章《Kali Linux的下载安装以及基…

MySQL的多版本并发控制(MVCC)

MVCC MVCC,是Multiversion Concurrency Control的缩写,翻译过来是多版本并发控制,和数据库锁样,他也是一种并发控制的解决方案 我们知道,在数据库中,对数据的操作主要有2种,分别是读和写&…

Pushmall智能AI数字名片— —SCRM客户资源管理系统

推贴数字AI名片说明: **Pushmall智能AI数字名片:**基于靠谱人脉的地理位置服务,资源查询,数字名片定制服务、企业名片:相互引荐、提供需求;建人脉群、客户群,及简介、短视频、宣传文档、电子图…

逸学Docker【java工程师基础】3.1安装Jenkins

1.下载镜像 docker pull jenkins/jenkins:lts 2.运行容器 docker run -d -u root -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home -v /etc/localtime:/etc/localtime --name jenkins jenkins/jenkins:lts 3.要启动名为 jenkins 的 Docker 容器 docker st…

Logstash应用-同步ES(elasticsearch)到HDFS

1.场景分析 现有需求需要将elasticsearch的备份至hdfs存储,根据以上需求,使用logstash按照天级别进行数据的同步 2.重难点 数据采集存在时间漂移问题,数据保存时使用的是采集时间而不是数据生成时间采用webhdfs无法对文件大小进行设置解决…

Codeforces Round 768 (Div. 1) D. Flipping Range(思维题 等价类性质 dp)

题目 思路来源 官方题解 洛谷题解 题解 可操作的最短区间长度肯定是gcd,记为g,然后考虑如何dp 考虑g个等价类,每个等价类i,ig,i2*g,... 每次翻转长度为g的区间,会同时影响到g个等价类总的翻转的奇偶性, 性质一&…

叉车车载终端定制_基于MT6762安卓核心板的车载终端设备方案

叉车车载终端是一款专为叉车车载场景设计的4英寸Android车载平板电脑。它采用了高能低耗的8核ARM架构处理器和交互开放的Android 12操作系统,算力表现强大。此外,该产品还具备丰富的Wi-Fi-5、4G LTE和蓝牙等通讯功能,可选配外部车载蘑菇天线&…

记录centos7.9 离线安装fastllm 编译遇到的问题

centos7.9 安装fastllm 编译步骤 Step1安装cmake: 参考: https://bitsanddragons.wordpress.com/2022/09/19/error-cmake-3-1-or-higher-is-required-you-are-running-version-on-centos-7-x/ ​ 问题1:/lib64/libstdc.so.6: version GLIBCXX_3.4.20‘ not found …

C语言程序设计——程序流程控制方法(二)

循环结构 while语句 while(表达式){代码块; }do{代码块; }while(表达式)while语句分为do-while和while两种,区别在于循环之前是不是先执行一次循环的内容,可以类似于i和i的关系,本质上来讲是相同的。当表达式为真时,则会执行一次…

常用的排序算法

该文章笔记结合菜鸟教程的排序算法,如果后面认识有改动或者完善再继续 最近笔试很多题目都考察过了基本的排序算法,尤其是快排、冒泡、选择,大家在这一方面一定要注意下。 一. 总述 1. 时间复杂度 详细介绍 1. 冒泡排序 冒泡排序重复地走…

大白菜U盘安装系统-戴尔电脑

1. 把U盘插入电脑,启动盘去大白菜官网找,镜像可以去微软官网下,想要专业版的网上找资源。 2. 重启电脑,等出现log之后狂按F12,进入BOSS模式。 3. 选择UEFI...也就是下面白色的,按下回车。 4. 选第一个 5.…

生成学习全景:从基础理论到GANs技术实战

本文全面探讨了生成学习的理论与实践,包括对生成学习与判别学习的比较、详细解析GANs、VAEs及自回归模型的工作原理与结构,并通过实战案例展示了GAN模型在PyTorch中的实现。 关注TechLead,分享AI全维度知识。作者拥有10年互联网服务架构、AI产…

基于java的SSM框架实现在线投稿网站系统项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架Vue实现在线投稿网站系统演示 摘要 随着计算机技术的飞速发展,稿件也已进入信息化时代。为了使稿件管理更高效、更科学,决定开发投稿审稿系统。 本文采用自顶向下的结构化的系统分析方法,阐述了一个功能全面的投稿审稿系统…

Open3D 两片点云的最小/最大距离(23)

Open3D 两片点云的最小/最大距离(23) 一、效果展示二、使用步骤1.代码三、cloudcompare量距小工具一、效果展示 算法与实际量测的结果保持一致,输出最近距离和对应点 二、使用步骤 1.代码 import open3d as o3d import numpy as np# 读取点云数据 cloud_2 = o3d.io.re…

性能瓶颈分析定位

用vmstat、sar、iostat检测是否是CPU瓶颈 用free、vmstat检测是否是内存瓶颈 用iostat、dmesg 检测是否是磁盘I/O瓶颈 用netstat检测是否是网络带宽瓶颈 1 首先进行OS层面的检查确认 首先要确认当前到底是哪些进程引起的负载高,以及这些进程卡在什么地方&#x…

软件需求分析报告—word

技术要求 1.1接口要求 1.2可靠性,稳定性,安全性,先进性,拓展性,性能,响应。 2.系统安全需求 2.1物理设计安全 2.2系统安全设计 2.3网络安全设计 2.4应用安全设计 2.5用户安全管理 进主页获取更多资料

目前目标跟踪算法研究202308

目标跟踪算法综述——附各算法源码和论文 概述 TBD(two-shot):SORT、DeepSORT、StrongSORT、ByteTrack、OC-SORT JDE(one-shot):BoT-SORT、 0 MutiSORT(多目标跟踪策略) 0.1 trackdetection 训练一个网…
最新文章