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将会从远程仓库获取最新的代码改动,并将其应用到你的项目中。

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

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

相关文章

管理统计学

第1章 统计学是收集、处理、分析、解释数据并从数据中得出结论的科学。 统计学是处理数据的方法论。 参数 表示总体特征的概括性数字度量,是研究者想要了解的总体的某种特征值。 统计量 是用来描述样本特征的概括性数字度量。 常用统计量包括: &#xff…

ESP8266[ 关于-巴发云MQTT/TCP:arduino 设置回调函数 ] 日志2024/6/29

ESP8266 [ 关于-巴发云MQTT/TCP:arduino 设置回调函数 ] 日志2024/6/29 arduino库:#include <PubSubClient.h> 回调函数 是其库设置好的 可以改名字 这里只写上关键代码 设置客户端为 A 关键代码: A.setCallback(回调名) //MQTT 回调处理mqttmsgg(自定义…

zdppy_api+vue3实现前后端分离的登录功能

实现思路 1、准备zdppy的开发环境 2、使用amauth提供的低代码接口&#xff0c;直接生成login登录接口 3、使用之前开发的登录模板渲染登录界面 4、给登录按钮绑定点击事件 5、给用户名和密码的输入框双向绑定数据 6、使用axios在登录按钮点击的时候&#xff0c;携带用户数据发…

C++ | Leetcode C++题解之第207题课程表

题目&#xff1a; 题解&#xff1a; class Solution { private:vector<vector<int>> edges;vector<int> indeg;public:bool canFinish(int numCourses, vector<vector<int>>& prerequisites) {edges.resize(numCourses);indeg.resize(numCo…

昇思25天学习打卡营第13天|MindNLP ChatGLM-6B StreamChat

学AI还能赢奖品&#xff1f;每天30分钟&#xff0c;25天打通AI任督二脉 (qq.com) MindNLP ChatGLM-6B StreamChat 本案例基于MindNLP和ChatGLM-6B实现一个聊天应用。 1 环境配置 %%capture captured_output # 实验环境已经预装了mindspore2.2.14&#xff0c;如需更换mindspo…

[知识点篇]《计算机组成原理》之数据信息的表示

1、数据表示的作用 &#xff08;1&#xff09;定义&#xff1a;将数据按照某种方式组织&#xff0c;以便机器硬件能直接识别和使用。现代计算机采用二进制进行数据表示。 &#xff08;2&#xff09;数据表示考虑因素&#xff1a; 数据的类型&#xff1a; 数值/非数值、小数、…

读AI新生:破解人机共存密码笔记17不确定性和概率

1. 前向搜索 1.1. 通过前向搜索&#xff0c;通过考虑各种可能的动作序列的结果&#xff0c;来选择动作&#xff0c;是智能系统的基本能力 1.2. 如果一家卡车运输公司想要优化其100辆卡车在美国的运输&#xff0c;那么该公司可能需要考虑的状态数量将是10^700个 1.3. 几乎所有…

解决Install/Remove of the Service Denied报错

1、问题概述&#xff1f; 在Windows系统中安装MySQL5.7.43的时候&#xff0c;运行mysqld install命令提示报错&#xff1a;Install/Remove of the Service Denied 意思是&#xff1a;安装/删除服务被拒绝 问题原因所在&#xff1a;就是你当前的权限不够&#xff0c;以管理员…

Linux【环境 CenOS7】部分软件安装链接整理

优质博文&#xff1a;IT-BLOG-CN 一、开启网络 【问题】&#xff1a; 刚安装完CentOS&#xff0c;当ping www.baidu.com时&#xff0c;ping不通&#xff1b; 【解决】&#xff1a; 进入cd /etc/sysconfig/network-scripts/我这里修改的是ifcfg-ens33文件&#xff0c;将ONBOOT…

p2p、分布式,区块链笔记:试用ZeroTier组网

ZeroTier 是一种用于创建和管理虚拟局域网&#xff08;Virtual Local Area Network&#xff0c;VLAN&#xff09;的软件定义网络&#xff08;SDN&#xff09;解决方案。它可以通过互联网将多个设备安全地连接在一起&#xff0c;就像它们在同一个本地网络上一样。主要开发语言为…

【Python从入门到进阶】59、Pandas库中Series对象的操作(二)

接上篇《58、Pandas库中Series对象的操作(一)》 上一篇我们讲解了Pandas库中Series对象的基本概念、对象创建和操作&#xff0c;本篇我们来继续学习Series对象的运算、函数应用、时间序列操作&#xff0c;以及Series的案例实践。 一、Series对象的运算 1. 数值型数据的算术运…

1、音视频解封装流程---解复用

对于一个视频文件(mp4格式/flv格式)&#xff0c;audio_pkt或者video_pkt是其最基本的数据单元&#xff0c;即视频文件是由独立的视频编码包或者音频编码包组成的。 解复用就是从视频文件中把视频包/音频包单独读取出来保存成独立文件&#xff0c;那么如何得知packet是视频包还是…

【一篇搞懂】操作系统期末大题:进程同步与互斥 PV操作

文章目录 一、前言&#x1f680;&#x1f680;&#x1f680;二、正文&#xff1a;☀️☀️☀️题型一&#xff1a;利用信号量实现前驱关系题型二&#xff1a;利用信号量实现资源同步与互斥 一、前言&#x1f680;&#x1f680;&#x1f680; 本文简介&#xff1a;这是一篇基于b…

无人机远程控制:北斗短报文技术详解

无人机&#xff08;UAV&#xff09;技术的快速发展和应用&#xff0c;使得远程控制成为了一项关键技术。无人机远程控制涉及无线通信、数据处理等多个方面&#xff0c;其中北斗短报文技术以其独特的优势&#xff0c;在无人机远程控制领域发挥着重要作用。本文将详细解析无人机远…

2024-06-26 base SAS programming 学习笔记6(proc report)

proc report可以生成报表&#xff0c;基本格式&#xff1a; proc report data options; (options 可以是windows/WD表示将结果输出至单独的报表窗口&#xff0c;或者nowindows/nowd将结果输出至HTML结果窗口) column variables ;(筛选待输出的变量&#xff0c;变量名与变量名之…

09_计算机网络模型

目录 OSI/RM七层模型 OSI/RM七层模型 各层介绍及硬件设备 传输介质 TCP/IP协议簇 网络层协议 传输层协议 应用层协议 完整URL的组成 IP地址表示与计算 分类地址格式 子网划分和超网聚合 无分类编址 特殊含义的IP地址 IPv6协议 过渡技术 OSI/RM七层模型 OSI/RM七…

区间动态规划——最长回文子序列长度(C++)

把夜熬成粥&#xff0c;然后喝了它。 ——2024年7月1日 书接上回&#xff1a;区间动态规划——最长回文子串&#xff08;C&#xff09;-CSDN博客&#xff0c;大家有想到解决办法吗&#xff1f; 题目描述 给定一个字符串s&#xff08;s仅由数字和英文大小写字母组成&#xff0…

微积分-导数3(微分法则)

常见函数的导数 常量函数的导数 d d x ( c ) 0 \frac{d}{dx}(c) 0 dxd​(c)0 常量函数的图像是一条水平线 y c y c yc&#xff0c;它的斜率为0&#xff0c;所以我们必须有 f ′ ( x ) 0 f(x) 0 f′(x)0。从导数的定义来看&#xff0c;证明也很简单&#xff1a; f ′ …

QT拖放事件之三:自定义拖放操作-利用QDrag来拖动完成数据的传输

1、运行效果 1)Qt::MoveAction 2)Qt::CopyAction 2、源码 #include "Widget.h" #include "ui_Widget.h" #include "common.h"

二级建造师(建筑工程专业)考试题库,高效备考!!!

16.在施工合同履行期间发生的变更事项中&#xff0c;属于工程变更的是&#xff08;&#xff09;。 A.质量要求变更 B.分包单位变更 C.合同价款变更 D.相关法规变更 答案&#xff1a;A 解析&#xff1a;工程变更一般是指在工程施工过程中&#xff0c;根据合同约定对施工的…