Git的安装和配置(idea中配置Git)

news2025/7/16 17:26:02

一、Git的下载和安装 

前提条件:IntelliJ IDEA 版本是2023.3 ,那么配置 Git 时推荐使用 Git 2.40.x 或更高版本

下载地址:CNPM Binaries Mirror

操作:打开链接 → 滚动到页面底部 → 选择2.40.x或更高版本的 .exe 文件(如 Git-2.41.0.3-64-bit.exe)下载 

1、选择一个2.40.x或更高的版本

2、点击后缀名为 64-bit.exe 即可

3、安装Git只需要双击软件包然后一直下一步 即可

 4、在D盘或其他盘  新建一个目录(目录名称确保是英文)

 注意目录的名称是英文(名称随意)

5、一直点击next 即可 

6、鼠标右键   出现了如下图两个指令那么就是安装成功了

Open Git GUl here:图形化操作界面

Open Git Bash here:Unix/Linux风格的命令行,使用多,推荐


二、Git常用命令的使用

文档地址:Git 大全 - Gitee.com

常用指令示意图:

1、配置用户名和邮箱

(1)鼠标右键并点击Open Git Bash here

(2)使用下面命令:查看配置信息

git config -l

 如图我之前配置好的用户名和邮箱

(3)使用下面的命令配置用户信息 (注意是填自己的用户信息)

git config --global user.name "dhp"
git config --global user.email "dhp041011@qq.com"

 (4)配置完后继续使用命令查看


2、查看配置信息的命令:

查看所有配置:

git config -l

查看系统配置:

git config --system --list

查看当前用户配置:

git config --global --list

 3、创建全新的本地仓库

(1)在G盘新建一个文件夹(名称要求是英文)

(2) 进入新创建的目录,鼠标右键并点击Open Git Bash here

(3)输入命令:git init  即可

git init

进入.git文件后就可以看见 所有的信息


4、克隆远程仓库

克隆远程仓库相当于实现创建了一个本地的仓库

(1)在G盘新建一个文件夹(名称要求是英文)

(2)在gitee/github上找一个开源项目地址

如果没有账号那么就先注册

随便搜一个java项目 

直接复制这个带命令的地址 

 (3) 进入新创建的目录,鼠标右键并点击Open Git Bash here

(4)将复制的命令粘贴到终端执行即可 

git clone 


5、文件操作指令

版本控制就是对文件的版本控制,在Git管理中,文件被统一管理,有四个状态 

1.Untracked:未跟踪,此文件在文件夹中,但并没有加入到git库,不参与版本控制。通过git add 状态变为Staged

2.Unmodify:文件已经入库,未修改,即版本库中的文件快照内容与文件夹中完全一致,这种类型的文件有两种处理方式,如果它被修改,变为Modified.如果使用git rm移出版本库,则成为Untracked

3.Modified:文件已修改,仅仅是修改,并没有进行其他的操作,这种文件有两个去处,通过git add可进入暂存staged状态,使用git checkout 则丢弃修改过,返回到unmodify状态,这个git checkout即从库中取出文件,覆盖当前修改

4.Staged: 暂存状态,执行git commit则将修改同步到库中,这时库中的文件和本地文件又变为一致,文件为Unmodify状态.执行git reset HEAD filename取消暂存,文件状态为Modified

(1)在克隆的本地仓库中新建一个文本文件作为测试 (名称随意例如 a.txt)

 (2)鼠标右键并点击Open Git Bash here进入终端

(3)使用pwd查看当前所在目录,使用git status 文件名 查看文件的状态

git的命令和Linux的常用命令是相同的,因为发明者是同一个人

git status 文件名

查看所有文件的状态:

git status

(4) 使用git add .  将所有文件添加到暂存区

git add .
# 添加指定文件到暂存区
$ git add [file1] [file2] ...

(5)提交暂存区中的内容到本地仓库:git  commit -m '消息内容'

git commit -m [message]


三、gitignore忽略文件 

不想把某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件等,在主目录下建立".gitignore"文件(默认就有),此文件有如下规则:

1.忽略文件中的空行或以井号(#)开始的行

2.支持Linux通配符。例如:星号(*)代表任意多个字符,问号(?)代表一个字符,方括号([abc])代表可选字符范围,大括号({string1,string2.….})代表可选的字符串等。

3.如果名称的最前面有一个感叹号(!),表示例外规则,将不被忽略。

4.如果名称的最前面是一个路径分隔符(/),表示忽略.gitignore文件所在的目录,不包括其任何子目录 中的dir日录

5.如果名称的最后面是一个路径分隔符(/),忽略 .gitignore文件所在的目录和所有子目录的dir目录


四、创建自己的远程仓库

(1)进入gitee官网  工作台 - Gitee.com   点击新建仓库

(2)填写相关信息 

(3)点击创建即可 

如下图:这样就创建好了 

扩展: 

readme.md文件是一个该项目的介绍文件

如果想修改readme.md文件可以直接点击链接

点击编辑就可以修改 

点击管理可以修改一些配置信息 


五、设置SSH公钥实现免密登录

(1)找到.ssh文件夹

.ssh 文件夹默认位于 用户主目录 下,具体路径因操作系统而异:

  1. Windows 系统
    • 路径:C:\Users\你的用户名\.ssh
    • 特性:默认隐藏,需在文件资源管理器中启用「隐藏的项目」显示 。
  2. Mac/Linux 系统
    • 路径:~/.ssh/(即 /home/你的用户名/.ssh
    • 特性:直接通过终端访问(如 cd ~/.ssh) 。

注意:.ssh 文件夹通常在使用 SSH 命令(如 ssh-keygen)生成密钥时自动创建。若未执行过相关操作,文件夹可能不存在 。(如果没有该文件夹需要自己创建)

右键创建.ssh文件

(2)进入.ssh文件右键点击 Open Git Bash here

(3)使用ssh-keygen命令生成密钥,输入后连续enter即可

ssh-keygen

(4)使用记事本打开公钥并复制里面的内容(注意不要修改!!!)

(5)进入Gitee官网 工作台 - Gitee.com 点击账号设置

(6)找到ssh公钥 

(7)将刚刚复制的公钥内容粘贴到下面 

(8)输入密码验证 

结果如下: 

这样你就可以使用同样的方式将你的远程仓库的项目克隆到本地仓库

git clone https://gitee.com/deardhp/java-learning-project-01.git


六、IDEA 项目使用Git管理

1、配置git

(1) 在IDEA中配置Git

(2)找到自己安装git的位置,并找到git.exe文件


2、clone远程仓库项目到idea

(1) 从gitee官网中复制自己创建的空项目(没有创建的看前面第四点)

(2)clone远程仓库的项目到idea中

(3)clone项目 (确保网络畅通)


3、创建子模块并将Main类push到远程仓库

(1)创建子模块

(2)Main类爆红,因为该类的状态是 Untracked 还没有参与版本控制

(3) 添加Main到暂存区

(4)commit  Main到本地仓库

(5)编写注释并提交

(6)push Main 到远程仓库 


4、命令行的方式将Test类推到远程仓库

一般还是推荐使用ide图形化界面

(1)创建一个测试类

(2)打开终端,将所有文件添加到暂存区 

git add .

(3)提交到本地仓库

git commit -m "消息"

(4)push 到远程仓库

git push


5、分支与合并

(1)创建一个忽略Maven的远程仓库

(2)克隆到本地的一个文件夹中 

(3)复制项目里的内容

(4)在idea中新创建一个Maven项目

(5)快速定位项目存放的位置

 

 (6)将第(3)点复制的内容粘贴到这里

(7)进入idea并刷新Maven 

此时该项目接收了版本控制 

测试一下:将Main类推送到远程仓库 (前面有push教程)


5.1、将本地分支推送到远程仓库(指令操作)

(1)列出所有本地仓库的分支

git branch

(2)列出所有远程仓库分支

git branch -r

(3)创建本地分支(v1.0是分支的名称)

git branch v1.0

(4)切换到v1.0分支

此时可以看到v1.0前面有一个“*”表示当前所在的分支 

git checkout v1.0

(5)推送本地分支到远程仓库

远程分支不存在时:Git 会自动在远程仓库创建同名分支。

git push origin <本地分支名>
git push <远程仓库名> <本地引用>:<远程引用>
git branch origin v1.0


5.2、在idea项目创建分支推送到远程仓库

(1)找到git日志台(一般在左下角)

(2)选中你要推送的分支,右键 

(3)checkout 签出 到v2.0版本

可以看出当前的分支 

(4)在Main类中新增一条记录 

 (5)提交(commit)并推送(push)Main到远程仓库

提交(commit)并推送(push)的步骤在上面有教程

注意:分支1与分支2之间是独立的,即:push代码到v2.0分支不会影响master分支的代码 


5.3、在idea中实现合并分支

这个部分和前面创建分支相关联,需要先看创建分支部分

(1)创建一个Hi类用来测试合并

(2)把这个Hi类push到远程仓库中,从add->commit->push

从Gitee中可以看到如下结果

(3)checkout 签出版本到master分支(切换版本为master) 

(4)选中v2.0,右键,选择“将v2.0合并到master中 ”

此时,master分支多了一个Hi类 

(5)将Hi推送到远程仓库

(6)如果合并分支的时候有冲突,可以选择一种情况

请看下面两种情况,当v2.0的Hi类与master分支的Hi类发生冲突时:区别是输出内容不同

将v2.0分支合并到master分支时,会出现下面这种情况

这里演示选择“接收他们的”即:将v2.0的代码覆盖master的代码

还有一种解决方案:手动修改代码

直接选择关闭 

此时这个文件会爆红,这里不要害怕,将多余的部分删除即可 

这里保存了两个分支的代码,具体情况根据实际业务修改代码 

自己修改代码后经过add->commit->push即可

注意事项和细节: 

1.如果同一文件在合并分支时都被修改了则会引起冲突,修改冲突文件后重新提交(说明:这时要决定保留哪个分支代码)

2.Master主分支应该非常稳定,用来发布新版本,一般情况下不要在上面工作,工作一般在新建的分支(比如dev、y1.0、v2.0)上工作

3.分支代码稳定后,可以合并到主分支Master

4.在进行分支合并时,最好是各分支都已经处于Committed的状态,这样可以减小处理合并冲突的难度.

5.Push操作即:Push 你已经Committed的代码,如果你修改了一个文件,但是你没有执行Commit,那么你Push的其实是上次Committed的状态

6.add、 commit 、push 的操作可以针对单个文件,也可以针对文件夹(可以看一下Idea的git操作菜单)

7.文件要Commit 前需要先Add 到 暂存区,以后文件修改了,就可以直接Commit

8.如果要删除文件,可以在本地删除该文件,然后commit 文件所在文件夹即可,并重新push该分支,那么在远程仓库,也会删除对应分支的文件.

总结:结合下面的流程图和参考Git 大全 - Gitee.com

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【2025版】Spring Boot面试题

文章目录 1. Spring, Spring MVC, SpringBoot是什么关系&#xff1f;2. 谈一谈对Spring IoC的理解3. Component 和 Bean 的区别&#xff1f;4. Autowired 和 Resource 的区别&#xff1f;5. 注入Bean的方法有哪些&#xff1f;6. 为什么Spring 官方推荐构造函数注入&#xff1f;…

火山引擎实时音视频 高代码跑通日志

实时音视频 SDK 概览--实时音视频-火山引擎 什么是实时音视频 火山引擎实时音视频&#xff08;Volcengine Real Time Communication&#xff0c;veRTC&#xff09;提供全球范围内高可靠、高并发、低延时的实时音视频通信能力&#xff0c;实现多种类型的实时交流和互动。 通…

jenkins 启动报错

java.lang.UnsatisfiedLinkError: /opt/application/jdk-17.0.11/lib/libfontmanager.so: libfreetype.so.6: cannot open shared object file: No such file or directory。 解决方案&#xff1a; yum install freetype-devel 安装完成之后重启jenkins。

【合新通信】无人机天线拉远RFOF(射频光纤传输)解决方案

无人机天线拉远RFOF方案通过光纤替代传统射频电缆&#xff0c;实现无人机与地面控制站之间的高保真、低损耗信号传输&#xff0c;尤其适用于高频段&#xff08;如毫米波&#xff09;、远距离或复杂电磁环境下的无人机作业场景。 核心应用场景 军事侦察与电子战 隐蔽部署&…

程序设计语言----软考中级软件设计师(自用学习笔记)

目录 1、解释器和编译器 2、程序的三种控制结构 3、程序中的数据必须具有类型 4、编译、解释程序翻译阶段 5、符号表 6、编译过程 7、上下文无关文法 8、前、中、后缀表达式 9、前、后缀表达式计算 10、语法树中、后序遍历 11、脚本语言和动态语言 12、语法分析方法…

通过SMTP协议实现Linux邮件发送配置指南

一、环境准备与基础配置 1. SMTP服务开通&#xff08;以qq邮箱为例&#xff09; 登录qq邮箱网页端&#xff0c;进入「设置」-「POP3/SMTP/IMAP」 开启「SMTP服务」并获取16位授权码&#xff08;替代邮箱密码使用&#xff09; 记录关键参数&#xff1a; SMTP服务器地址&#…

若依框架页面

1.页面地址 若依管理系统 2.账号和密码 管理员 账号admin 密码admin123 运维 账号yuwei 密码123456 自己搭建的地址方便大家学习&#xff0c;不要攻击哦&#xff0c;谢谢啊

44、私有程序集与共享程序集有什么区别?

私有程序集&#xff08;Private Assembly&#xff09;与共享程序集&#xff08;Shared Assembly&#xff09;是.NET框架中程序集部署的两种不同方式&#xff0c;它们在部署位置、版本控制、访问权限等方面存在显著差异&#xff0c;以下是对二者的详细比较&#xff1a; 1. 部署…

【Java面试题】——this 和 super 的区别

&#x1f381;个人主页&#xff1a;User_芊芊君子 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 &#x1f50d;系列专栏&#xff1a;【Java】内容概括 【前言】 在Java的世界里&#xff0c;this和 super是两个非常重要且容易混淆的关键字。无论是在日常…

CentOS 7 内核升级指南:解决兼容性问题并提升性能

点击上方“程序猿技术大咖”&#xff0c;关注并选择“设为星标” 回复“加群”获取入群讨论资格&#xff01; CentOS 7 默认搭载的 3.10.x 版本内核虽然稳定&#xff0c;但随着硬件和软件技术的快速发展&#xff0c;可能面临以下问题&#xff1a; 硬件兼容性不足&#xff1a;新…

解决 PicGo 上传 GitHub图床及Marp中Github图片编译常见难题指南

[目录] 0.行文概述 1.PicGo图片上传失败 2.*关于在Vscode中Marp图片的编译问题* 3.总结与启示行文概述 写作本文的动机是本人看到了Awesome Marp&#xff0c;发现使用 Markdown \texttt{Markdown} Markdown做PPT若加持一些 CSS , JavaScript \texttt{CSS},\texttt{JavaScript} …

软考 系统架构设计师系列知识点之杂项集萃(59)

接前一篇文章&#xff1a;软考 系统架构设计师系列知识点之杂项集萃&#xff08;58&#xff09; 第96题 假设关系模式R(U, F)&#xff0c;属性集U{A, B, C}&#xff0c;函数依赖集F{A->B, B->C}。若将其分解为p{R1(U1, F1), R2(U2, F2)&#xff0c;其中U1{A, B}, U2{A, …

python使用matplotlib画图

【README】 plot画图有两种方法&#xff1a;包括 plt.plot(), ax.plot()-画多个子图 &#xff0c;其中ax表示某个坐标轴; 【1】画单个图 import matplotlib # 避免兼容性问题&#xff1a;明确指定 matplotlib 使用兼容的后端&#xff0c;TkAgg 或 Agg matplotlib.use(TkAgg) …

upload-labs通关笔记-第5关 文件上传之.ini绕过

目录 一、ini文件绕过原理 二、源码审计 三、渗透实战 1、查看提示 2、制作.user.ini文件 &#xff08;1&#xff09;首先创建一个文本文件 &#xff08;2&#xff09;保存文件名为.user.ini 2、制作jpg后缀脚本 &#xff08;1&#xff09;创建一个文本文件 &#xf…

ssti模板注入学习

ssti模板注入原理 ssti模板注入是一种基于服务器的模板引擎的特性和漏洞产生的一种漏洞&#xff0c;通过将而已代码注入模板中实现的服务器的攻击 模板引擎 为什么要有模板引擎 在web开发中&#xff0c;为了使用户界面与业务数据&#xff08;内容&#xff09;分离而产生的&…

填涂颜色(bfs)

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍+ 收藏⭐ + 留言​📝 含泪播种的人一定能含笑收获! 题目描述 由数字 0 0 0 组成的方阵中,有一任意形状的由数字 1 1 1 构成的闭合圈。现…

ros1+docker环境快速搭建

快速使用python 解析ros1的bag消息ros这个东西可以说安装起来非常麻烦的&#xff0c;费时费力&#xff0c;很可能还安装不成功&#xff0c;特别是我的环境是ubuntu22.04 &#xff0c;官方都不支持安装ros1。因此一个可行且快速的方法是使用别人配置好的ros的docker环境 一、下…

GpuGeek全栈AI开发实战:从零构建企业级大模型生产管线(附完整案例)

目录 背景一、算力困境&#xff1a;AI开发者的「三重诅咒」1.1 硬件成本黑洞‌1.2 资源调度失衡‌1.3 环境部署陷阱‌ 二、三大核心技术突破GpuGeek的破局方案2.1 ‌分时切片调度引擎&#xff08;Time-Slicing Scheduler&#xff09;‌2.2 ‌异构计算融合架构2.3 ‌AI资产自动化…

DataX从Mysql导数据到Hive分区表案例

0、下载DataX并解压到对应目录 DataX安装包&#xff0c;开箱即用&#xff0c;无需配置。 https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202308/datax.tar.gz 相关参考文档 https://github.com/alibaba/DataX/blob/master/hdfswriter/doc/hdfswriter.md 1、Hive分区…

vulnhub靶场——secarmy

靶机&#xff1a;secarmy靶机&#xff0c;IP地址为192.168.230.18 攻击&#xff1a;kali&#xff0c;IP地址为192.168.230.134 靶机和攻击机都采用VMware虚拟机&#xff0c;都采用NAT模式 端口扫描&#xff1a; nmap 192.168.230.18 -O -A -p- --reason -sV 21/tcp (ftp): 开…