Git安装与使用及整合IDEA使用的详细教程
1. 版本控制软件介绍
版本控制软件提供完备的版本管理功能,用于存储、追踪目录(文件夹)和文件的修改历史,是软件开发者的必备工具,是软件公司的基础设施。版本控制软件的最高目标,是支持软件公司的配置管理活动,追踪多个版本的开发和维护活动,及时发布软件。
编程中的代码版本控制工具是软件开发过程中不可或缺的一部分。它能够帮助开发团队有效地管理代码变更、追踪历史记录、协同工作以及解决冲突。
主流版本控制工具:Git、Svn 等
2. Git介绍
Git是一个开源、免费的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理.
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直是 Linux 内核开发人员在全球使用的主要源代码工具。开放源码社区中的有些人觉得 BitKeeper 的许可证并不适合开放源码社区的工作,因此 Torvalds 决定着手研究许可证更为灵活的版本控制系统。尽管最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们已经发现在很多其他自由软件项目中也使用了 Git。例如 最近很多 Freedesktop 的项目也迁移到了 Git 上。
3. Git工作原理
Git的工作原理可以概括为以下几个步骤:
(1)初始化仓库:使用git init命令在本地创建一个新的Git仓库。
(2)检出(Checkout):切换到想要工作的分支。
(3)暂存(Stage):使用git add命令将修改后的文件添加到暂存区。
(4)提交(Commit):使用git commit命令将暂存区的内容提交到本地仓库。
(5)推送(Push):使用git push将本地仓库的提交推送到远程仓库。
(6)拉取(Pull):使用git pull命令从远程仓库获取最新内容并合并到本地仓库。
(7)分支(Branch):创建、切换、合并分支。
(8)远程同步:使用git fetch和git pull从远程仓库获取最新的历史记录和数据。

4. Git下载
4.1 访问Git官网 https://git-scm.com/

4.2 进入下载页面,可以下载最近版的Git工具,选择对应的版本,例如:windows 64位


下载之后的文件为:
![]()
5. Git安装与配置
5.1 双击安装文件,之后按下图进行操作
5.2 看完许可声明,点击Next就好了

5.3 选择安装路径

5.4 选择组件

5.5 选择开始菜单文件夹
创建安装程序将在下面的“开始”菜单文件夹中创建程序的快捷方式。继续点击Next。如果要选择其他文件夹可以自行修改

5.6 选择Git使用的默认编辑器
使用Vim作为Git的默认编辑器,Vim编辑器虽然功能强大,但很难使用。它的用户界面是不直观的,它的关键绑定是尴尬的。建议改用现代GUI编辑器。其实这里用到编辑器并不多,就用默认的也是可以的

5.7 调整新存储库中初始分支的名称
默认创建存储库的初始分支为master,如果修改的话,可以选择第二个点击main,修改为想要的分支名

5.8 调整Path环境,推荐使用默认配置。
第一个是“仅从Git Bash只使用Git”。这是最安全的选择,因为PATH根本不会被修改,只能使用 Git Bash 的 Git 命令行工具,但是这将不能通过第三方软件使用。
第二个是“从命令行以及第三方软件进行Git”。默认这个配置也是被推荐的,被认为是安全的,因为它仅向PATH添加了一些最小的Git包装器,以避免使用可选的Unix工具造成环境混乱。能够从Git Bash,命令提示符和Windows PowerShell以及在PATH中寻找Git的任何第三方软件中使用Git。
第三个是“从命令提示符使用Git和可选的Unix工具”。警告:这将覆盖Windows工具,如“find 和sort ”。只有在了解其含义后才使用此选项。
推荐使用默认配置,点击“Next”按钮进入下一个安装界面。

5.9 选择SSH可执行文件
第一个使用Git附带的ssh.exe。
第二个使用外部OpenSSH,这使用外部ssh.exe。Git不会安装它自己的OpenSSH
(和相关的)二进制文件,但是使用它们就像在路径上找到的那样。
选择Git附带的就好,点击Next

5.10 选择HTTPS传输后端
第一个是使用OpenSSL库,服务器证书将使用ca-bundle.crt文件进行验证。
第二个使用本机Windows安全通道库,服务器证书将使用Windows证书存储进行验证。
点击Next

5.11 配置行结束转换
第一个是“签出Windows风格,提交Unix风格的行尾”。签出文本文件时,Git会将LF转换为
CRLF。提交文本文件时,CRLF将转换为LF。对于跨平台项目,这是Windows上的推荐设置(
core.autocrlf”设置为“ true”)
第二个是“按原样签出,提交Unix样式的行尾”。签出文本文件时,Git不会执行任何转换。 提交文本文件时,CRLF将转换为LF。对于跨平台项目,这是Unix上的建议设置(“ core.autocrlf”设置为“input”)
第三种是“按原样签出,按原样提交”。当签出或提交文本文件时,Git不会执行任何转换。不建议跨平台项目选择此选项(“core.autocrlf”设置为“ false”)
选择默认第一种选项,点击“Next”按钮到下一个安装界面。

5.12 配置用于Git Bash的终端模拟器
第一个是“使用MinTTY(MSYS2的默认终端)”。Git Bash将使用MinTTY作为终端模拟器,该模拟器具有可调整大小的窗口,非矩形选择和Unicode字体。Windows控制台程序(例如交互Python)必须通过“ winpty”启动才能在MinTTY中运行。
第二个是“使用Windows的默认控制台窗口”。Git将使用Windows的默认控制台窗(“cmd.exe”),
该窗口可以与Win32控制台程序(如交互式Python或node.js)一起使用,但默认的回滚非常有限,需要配置为使用unicode 字体以正确显示非ASCII字符,并且在Windows 10之前,其窗口不能自由调整大小,并且只允许矩形文本选择。
选择默认的第一种选项,点击“Next”按钮进入下一个安装界面。

5.13 选择git pull的默认行为
第一个是默认值,这是“git pu”的标准行为:尽可能将当前分支快速转发到获取的分支,否则创建合并提交
第二个是复位,将当前分支复位到获取的分支上。如果没有要重新设置基础的本地提交,这相当于快进,
第三个是只有快进,快进到获取的分支。如果不能获取,则失败。
选择默认的第一种选项,点击“Next”按钮进入下一个安装界面。

5.14 配置凭证管理器
第一个,Git凭证管理器
第二个,无,不要使用凭证管理器
选择默认的第一种选项,点击“Next”按钮进入下一个安装界面。

5.15 配置额外选项
第一个,“启用文件系统缓存”。文件系统数据将被批量读取并缓存在内存中用于某些操作
(“core.fscache”设置为“true”)。 这提供了显著的性能提升。
第二个,“启用符号链接”。启用符号链接(需要SeCreateSymbolicLink权限)。请注意,现有存储库不受此设置的影响。
选择第一种选项,点击“Next”按钮进入下一个安装界面。

5.16 配置实验选项
第一个,启用对伪控制台的实验性支持。
这允许在git bash窗口中运行Node或Python之类的本机控制台程序,而无需使用winpty,但它仍然存在已知的bug。
第二个,启用实验性内置文件系统监视器
自动运行内置的文件系统监视程序,以加速包含许多文件的工作树中的常见操作,如“git
status”、“git add”、“git commit”等,可以根据需要选择,这里都选上了,点击“Install”按钮开始安装

5.17 等待安装完成

5.18 点击finish安装完成,可以取消勾选,第二个是查看Git发行的,不取消勾选会在浏览器跳转

5.19 浏览器跳转页面

至此Git安装完毕。
6. Git 结合 Gitee使用
6.1 Gitee上创建仓库
6.1.1 登录Gitee官网,登录个人账号,新建仓库

新建仓库(填写项目名,项目介绍可以不写,项目初始化)

6.2 Git 克隆Gitee项目
6.2.1 进入项目,点击“克隆/下载”

6.2.2 使用https协议,复制url

6.2.3 使用Git克隆项目
6.2.3.1 进入指定的目录,执行git命令
例如:进入 D盘gitproject目录下,鼠标右键,选择“Open Git Bash here”

执行命令: git clone 远程仓库地址

6.3 Git将本地项目提交到Gitee远程仓库
6.3.1 在gitproject目录下创建code/index.html文件

6.3.2 切换到当前项目的根目录下

6.3.3 先要想本地代码添加到暂存区:git add 需要暂存的文件

6.3.4 将暂存区中的代码提交到本地仓库:git commit -m "说明文字"

6.3.5 将本地仓库的代码推送到远程仓库:git push
需要输入 gitee的用户名与密码

然后查看 gitee上内容是否有刚才创建的内容

6.3.6 如果提交的时候没有成功,需要配置提交人的信息,可以执行如下命令
注意:可以在刚安装好Git的时候,就设置用户签名(邮箱不一定需要真实的邮箱,因为Git不会去验证邮箱)
# git config --global user.email "you@example.com"
# git config --global user.name "Your Name"
git config --global user.email "377170019@qq.com"
git config --global user.name "lama"
6.4 SSH配置和使用
6.4.1 需要在本地配置相关的加密
执行 cd ~/.ssh

上图表示没有配置与ssh相关的加密文件
6.4.2 配置ssh相关的配置文件
命令: ssh-keygen -t rsa -C 'youremail@qq.com'
注意:邮箱最好和码云的保持一致
命令: ssh-keygen -t rsa -C '377170019@qq.com' (之后执行三次回车)

看到上面的内容,就表示本地的ssh相关的加密文件搞定啦,查看加密文件
id_rsa : 私钥
id_rsa.pub : 公钥

6.4.3 在码云上设置公钥


设置标题,并将C盘中生成的公钥内容复制进来

点击“确定”,如下

6.5 使用ssh克隆项目

执行

在code目录下添加 show.html,并进行提交

查看Gitee上的内容

6.6 冲突问题
6.6.1 什么是冲突
在开发中会出现多个人修改(操作)同一个文件。这时只要有一个人把修改的文件给提交了,其他人本地还没有去与远程仓库进行最新的文件拉去动作,但是其他人也改了相同的文件,这时不管谁提交文件,都会提示冲突,需要解决,否则无法提交
6.6.2 解决冲突方法
6.6.2.1 重新拉去远程仓库中最新的文件
6.6.2.2 本地就会出现冲突,需要人为介入解决冲突的代码
6.7 分支
在开发过程中,需要同时进行多个开发任务,这时我们可以使用Git分支功能,为每个任务创建单独的分支。使用分支把自己开发任务从开发主线上分离开来,开发自己分支时,不会影响主线分支的运行。
常用的分支操作如下:
6.7.1 查看当前仓库的分支情况:git branch

6.7.2 创建并切换到一个新的分支:git checkout -b 分支名

6.7.3 切换到已有分支(注意需要先把变更提交)git checkout 分支名

6.7.4 将指定的分支推送到gitee的master分支上
git push origin 分支名称

查看Gitee上的分支

6.7.5 删除远程仓库分支
git push origin --delete name

6.7.6 删除本地分支,否则远程仓库的删除分支,本地仓库还有分支
git branch –d name

6.7.7 将代码提交到指定的分支上,例如 test

7. Git 整合 IDEA
7.1 打开IDEA 工具,选择File=》Settings=》Version Control=》Git
选择Git的安装目录下git.exe ,然后点击“Test” 按钮进行测试

8. IDEA 将已有的本地项目关联到远程仓库
8.1 Gitee上创建对应的仓库,例如:shoppingproject

创建一个空白仓库

8.2 IDEA 中创建项目

8.3 创建本地仓库


项目文件的颜色改变

8.4 添加项目到本地仓库
项目右键,出来一下界面,然后点击“Add”添加项目到本地仓库。

执行完“Add” 之后,项目文件名的颜色也会发生变化

8.5 提交项目到本地仓库
项目右键,出现以下界面,然后点击“Commit Directory...”,将项目提交项目到本地仓库。

点击上图标记之后,进入提交界面,如图:(有可能出现的界面布局不同)

如下,然后点击“Commit” 即可

8.6 将项目添加到远程仓库
8.6.1 先获取远程仓库的https地址

8.6.2 设置远程仓库中项目路径

点击“+”号,添加地址


点击 OK 即可
8.6.3 push项目到远程仓库

选择“push” 即可

需要输入远程仓库,例如 Gitee码云的账号名与密码

输入完毕,点击“Log In” 即可。
然后查看Gitee上的项目

到此完成。
9. IDEA 从远程仓库克隆项目
9.1 将远程仓库Gitee中项目的url复制出来

9.2 打开IDEA工具,点击顶部菜单栏中的“VCS”(版本控制),然后选择“Get from Version Control”(从版本控制中检出)


完成项目的克隆

10. 使用IDEA进行Git操作
10.1 提交代码改动(在本地项目中创建一个jsp页面)
(1) 在IDEA的左侧导航栏中,你会看到项目的改动文件列表。
(2)右键点击需要提交的文件,然后选择“Git”->“Commit Directory...”(提交文件)。
(3)在弹出的提交窗口中,输入提交的描述信息,然后点击“Commit”(提交)按钮。
10.2 推送改动到远程仓库:
(1) 在IDEA的左侧导航栏中,点击顶部菜单栏中的“VCS”->“Git”->“Push”(推送)按钮(或者右键点击需要提交的文件,然后选择“Git”->“Commit Push”)。
(2) 输入你的Git仓库的远程URL和其他相关信息,然后点击“OK”按钮。
(3) IDEA将把你的本地改动推送到远程Git仓库。
10.3 更新代码改动:(测试方式,在远程仓库中创建一个jsp页面)
(1)在IDEA的左侧导航栏中,点击顶部菜单栏中的“VCS”->“Git”->“Pull”(更新项目)(或者右键点击需要提交的文件,然后选择“Git”->“Pull”)。
(2) IDEA将会从远程仓库获取最新的代码改动,并将其应用到你的项目中。
相关文章:
Git安装与使用及整合IDEA使用的详细教程
1. 版本控制软件介绍 版本控制软件提供完备的版本管理功能,用于存储、追踪目录(文件夹)和文件的修改历史,是软件开发者的必备工具,是软件公司的基础设施。版本控制软件的最高目标,是支持软件公司的配置管理…...
高效办公秘诀:使用Excel超级处理器提高工作效率,提升职场竞争力
在现今快节奏的工作环境中,如何高效地完成工作任务,减少加班时间,成为了许多职场人士关注的焦点。其中,Excel作为一款功能强大的电子表格软件,被广泛应用于数据处理、分析以及报表制作等领域。然而,仅仅依赖…...
深入探讨Python中的元编程:装饰器与元类
Python以其简洁明了的语法和强大的标准库,成为许多开发者的首选语言。而在高级开发中,元编程(Metaprogramming)是一个非常强大的工具,可以极大地提升代码的灵活性和可复用性。本文将深入探讨Python中的元编程ÿ…...
MaxKb/open-webui+Ollama运行模型
准备:虚拟机:centos7 安装Docker:首先,需要安装Docker,因为Ollama和MaxKB都是基于Docker的容器。使用以下命令安装Docker: sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum…...
2-requests模块(6节课学会爬虫)
2-requests模块(6节课学会爬虫) 1,安装requests2,发送get,post请求,获取响应3,response的方法方法一(Response.text)方法二(response.content.decode()&#…...
使用ECharts创建动态数据可视化图表
使用ECharts创建动态数据可视化图表 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 在现代Web应用开发中,数据可视化是至关重要的一环。ECharts作…...
Nacos配置中心客户端源码分析(一): 客户端如何初始化配置
本文收录于专栏 Nacos 推荐阅读:Nacos 架构 & 原理 文章目录 前言一、NacosConfigBeanDefinitionRegistrar二、NacosPropertySourcePostProcessor三、AbstractNacosPropertySourceBuilder总结「AI生成」 前言 专栏前几篇文章主要讲了Nacos作为服务注册中心相关…...
gin数据解析,绑定和渲染
一. 数据解析和绑定 1.1 Json数据解析和绑定 html文件: <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0&quo…...
Django 对模型创建的两表插入数据
1,添加模型 Test/app8/models.py from django.db import modelsclass User(models.Model):username models.CharField(max_length50, uniqueTrue)email models.EmailField(uniqueTrue)password models.CharField(max_length128) # 使用哈希存储密码first_name …...
Lua: 轻量级多用途脚本语言
Lua 是一种高效而轻量级的脚本语言,具备强大的扩展性和灵活性,广泛应用于游戏开发、嵌入式系统、Web 应用等多个领域。本文将深入探讨 Lua 的特性、应用场景以及如何使用 Lua 进行开发。 1. Lua 的起源与发展 Lua 的发展始于上世纪90年代初,…...
PotPlayer安装及高分辨率设置
第1步: 下载安装PotPlayer软件 PotPlayer链接:https://pan.baidu.com/s/1hW168dJrLBonUnpLI6F3qQ 提取码:z8xd 第2步: 下载插件,选择系统对应的位数进行运行,该文件不能删除,删除后将失效。 …...
实现写入缓存策略的最佳方法探讨
实现写入缓存策略的最佳方法探讨 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将探讨在软件开发中实现写入缓存策略的最佳方法。缓存在提升应用性能和…...
【Day03】0基础微信小程序入门-学习笔记
文章目录 视图与逻辑学习目标页面导航1. 声明式导航2. 编程式导航3. 导航传参 页面事件1. 下拉刷新2. 上拉触底3.扩展-自定义编译模式 生命周期1. 简介2. 生命周期函数3. 应用的生命周期函数4. 页面生命周期函数 WXS脚本1. 概述2. 基础语法3. WXS的特点4. 使用WXS处理手机号 总…...
libctk shared library的设计及编码实践记录
一、引言 1.1 <libctk>的由来 1.2 <libctk>的设计理论依据 1.3 <libctk>的设计理念 二、<libctk>的依赖库 三、<libctk>的目录说明 四、<libctk>的功能模块及使用实例说明 4.1 日志模块 4.2 mysql client模块 4.3 ftp client模块 4…...
【代码随想录训练营】【Day 65】【图论-2】| 卡码 99
【代码随想录训练营】【Day 65】【图论-2】| 卡码 99 需强化知识点 深度搜索和广度搜索 题目 99. 岛屿数量 思想:遍历到为1的节点,再搜索标记,每遇到新的陆地节点,增加计数 深度搜索广度搜索:此处用 [] 作为待遍…...
【动态规划】139. 单词拆分
139. 单词拆分 难度:中等 力扣地址:https://leetcode.cn/problems/word-break/description/ 问题描述 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。如果可以利用字典中出现的一个或多个单词拼接出 s 则返回 true。 注意:不要求字…...
【C++】空指针访问成员函数
空指针访问成员函数 C中空指针也是可以调用成员函数的,但是也要注意有没有用到this指针 如果用到this指针,需要加以判断保证代码的健壮性 class Animal { public:void fun1() {//正常的成员函数}void fun2() {if (this NULL) {return;//如果没有这个…...
Linux的IO易错点总结
本文主要记录IO的一些易错操作。 阻塞IO和非阻塞IO,一般都是针对数据读取的,因为write是主动行为,不存在阻塞这一说。 非阻塞式IO,一般都要配合while轮询来读取数据。 IO多路复用 当只检测一路IO的时候,和普通IO的作…...
【Android面试八股文】说一说你对Android中的Context的理解吧
文章目录 一、Context是什么?1.1 主要功能和用途1.2 如何获取 Context 实例?1.3 注意事项二、Context 类的层次结构三、Context的数量四、Context的注意事项五、Android 中有多少类型的 Context,它们有什么区别 ?六、Contextlmpl实例是什么时候生成的,在 Activity 的 oncr…...
AI在音乐创作中的角色:创造还是毁灭?
目录 一、基本情况介绍 二、近期新闻 三、AI生成音乐方面的商业模式 四、人工智能和音乐人可能的合作模式 五、人们如何借助AI来创作音乐 六、人工智能在创意产业引发的伦理道德问题 七、如何平衡技术发展与提高人类创造积极性的关系? 总结 一、基本情况介绍…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...
保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek
文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...
C#学习第29天:表达式树(Expression Trees)
目录 什么是表达式树? 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持: 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...
计算机基础知识解析:从应用到架构的全面拆解
目录 前言 1、 计算机的应用领域:无处不在的数字助手 2、 计算机的进化史:从算盘到量子计算 3、计算机的分类:不止 “台式机和笔记本” 4、计算机的组件:硬件与软件的协同 4.1 硬件:五大核心部件 4.2 软件&#…...
嵌入式常见 CPU 架构
架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集,单周期执行;低功耗、CIP 独立外设;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel(原始…...
实战设计模式之模板方法模式
概述 模板方法模式定义了一个操作中的算法骨架,并将某些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法结构的前提下,重新定义算法中的某些步骤。简单来说,就是在一个方法中定义了要执行的步骤顺序或算法框架,但允许子类…...
【PX4飞控】mavros gps相关话题分析,经纬度海拔获取方法,卫星数锁定状态获取方法
使用 ROS1-Noetic 和 mavros v1.20.1, 携带经纬度海拔的话题主要有三个: /mavros/global_position/raw/fix/mavros/gpsstatus/gps1/raw/mavros/global_position/global 查看 mavros 源码,来分析他们的发布过程。发现前两个话题都对应了同一…...
6.9本日总结
一、英语 复习默写list11list18,订正07年第3篇阅读 二、数学 学习线代第一讲,写15讲课后题 三、408 学习计组第二章,写计组习题 四、总结 明天结束线代第一章和计组第二章 五、明日计划 英语:复习l默写sit12list17&#…...
