Git(代码版本控制系统)

目录

一、介绍

二、安装下载

三、Git操作入门

(一)Git基本工作流程

1.了解本地仓库

2.Git常用命令

3.Git常用命令小试牛刀

四、Git版本管理

(一)历史版本切换

1.命令

2.小试牛刀

(二)分支管理

1.介绍

2.分支工作流程

②命令

3.小试牛刀

五、远程仓库

(一)工作流程

(二)远程仓库平台介绍

1.GitHub

2.码云

(三)安装和配置第一个远程仓库(GitHub)

(四)推送到远程仓库(先有本地仓库)

1.命令

2.小试牛刀

(五)克隆拉取(先有远程仓库)

1.命令

2.小试牛刀

(六)代码冲突

1.冲突情况

2.解决方法

六、IDEA集成Git

(一)创建本地仓库,提交代码

1.idea集成Git

2.创建本地仓库

3.提交代码

(二)实现版本切换

1.会丢失1.2版本以上的所有版本

2.不会丢失任何版本

(三)在IDEA中操作远程仓库

1.推送项目文件到远程仓库

2.克隆远程仓库的项目代码到IDEA

七、GitHub使用的小知识点

(一)如何删除GitHub仓库的文件(GitHub只能删除仓库,不能删除仓库中的文件)如何删除GitHub仓库的文件(GitHub只能删除仓库,不能删除仓库中的文件))

(二)清空GitHub仓库的文件后,想将本地的文件推送到GitHub仓库(要先在本地拉取远程仓库文件后才能推送)

1.所遇到的问题

2.解决方法


一、介绍

SVN:集中式版本控制系统,版本库是集中放在中央服务器的,而开发人员工作的时候,用的都是自己的电脑,所以要首先从中央服务器下载最新的版本,然后开发,开发完后需要把自己开发的代码提交到中央服务器。

Git: 是一种分布式版本控制系统,分为本地仓库和远程仓库,每个客户端都;保存了完整的历史记录。

二、安装下载

可在CSDN或哔哩哔哩等网站搜索安装下载教程。操作较简单,博主已经按照成功。

三、Git操作入门

(一)Git基本工作流程

1.了解本地仓库

工作目录:代码的存放位置

暂存区:代码提交到仓库之前的临时存储空间

本地历史仓库:存放不同版本的代码

2.Git常用命令

命令 作用
git init 初始化,创建git仓库
git status 查看git状态(文件是否进行了添加、提交操作)
git add + 文件名 添加,将指定文件添加到暂存区
git commit -m '备注' 提交,将暂存区文件提交到历史仓库
git log 查看日志(git提交的历史日志)

3.Git常用命令小试牛刀

①创建一个新的空文件夹打开文件夹 --右键 --点击"Open Git Bash here" (如图1)--**执行"git init"**命令创建本地仓库(如图2)
图1
图2

②创建一个test.txt文件执行"git status"命令查看test.txt文件的状态(如图3)
图3

执行"git add + 文件名"命令 将test.txt文件存入暂存区,执行"git status"命令再次查看test.txt文件的状态(如图4)
图4

执行"git commit -m '备注'"命令 将test.txt文件存入本地历史仓库,执行"git status"命令再次查看test.txt文件的状态(如图5)
图5

执行"git log"命令 查看日志,修改test..txt文件的内容 ,执行添加、提交、查看状态和查看日志的操作 (如图6),"git log"命令的结果中"commit"后面接着的一串黄色符号是该文件的唯一标识号
图6

四、Git版本管理

(一)历史版本切换

1.命令

命令 作用
git reflog 可以查看所有分支的所有操作记录(包括已经被删除的commit记录的操作)
git reset --hard 唯一索引值 回退到索引值所代表的文件内容

2.小试牛刀

执行"git reflog"命令 ,查看修改的次数和版本的唯一索引值(如图7)(红框内的是唯一标识的后7位)
图7

执行"git reset --hard 唯一索引值"命令,回退到第一个版本(如图8),可以查看test.txt文件的内容来确定是否回退到第一个版本。
图8

(二)分支管理

1.介绍

①分支:由每次提交的代码,串成的一条时间线

②使用场景 :周期较长的模块开发;尝试性的模块开发

③意义 :可以把工作从开发主线上分离开,以免影响开发主线

2.分支工作流程

①指针:Master--代表主线Head--代表当前所使用的分支(路线选择就改变Head指针所指线路)

②命令
命令 作用
git branch 查看分支
git branch 分支名 创建分支
git checkout 分支名 切换分支
ls 列出该分支下的所有文件
git --help 列出所有git的命令
git branch 查看分支列表
git merge 分支名 合并分支命令
git branch -d 分支名 删除分支

3.小试牛刀

执行"git branch 分支名"命令 ,建立一个新的分支,执行"git checkout 分支名"命令,切换到新建的分支(如图9)

②查看是否正确切换分支的两种方法(如图9)
图9

③在文件夹下新建一个新文件test2.txt执行添加、提交、和查看状态的操作执行"ls"命令 查看该分支下的文件(如图10),可以发现在div这个分支下,"ls"命令结果有两个文件(包含了主线的文件)
图10

执行"git checkout 分支名"命令 切换回主线"Master"下,执行"ls"命令 查看该分支下的文件(如图11),可以发现只有一个主线内的文件,并且文件夹内只显示一个主线内的文件
图11

在"Master"分支下执行"git merge 分支名"命令 将"div"这个分支合并到"Master"分支下(如图12),执行"ls"命令 查看"Master"分支下的文件,可以发现有两个文件,已经完成合并
图12

执行"git branch -d 分支名"命令 删除多余的"div"分支,执行"git branch"命令 查看现在存在的分支(如图13),可以发现只剩下"Master"一个分支了
图13

五、远程仓库

(一)工作流程

(二)远程仓库平台介绍

1.GitHub

域名:https://github.com

介绍:GitHub是全球最大的开源项目托管平台

2.码云

域名:https://gitee.com

介绍:码云是全国最大的开源项目托管平台

(三)安装和配置第一个远程仓库(GitHub)

可查看下面链接的博文安装配置

【2025版】最新GitHub新手用法详解(适合新手入门)零基础入门到精通,收藏这篇就够了_github使用详解https://blog.csdn.net/bdfcfff77fa/article/details/145791820?fromshare=blogdetail&sharetype=blogdetail&sharerId=145791820&sharerefer=PC&sharesource=2401_88065518&sharefrom=from_link

(四)推送到远程仓库(先有本地仓库)

1.命令

命令 作用
git remote add 远程名称 远程仓库URL 为远程仓库的URL自定义仓库名称
git push -u 仓库名称 分支名 推送

2.小试牛刀

执行"git remote add 远程名称 远程仓库URL"命令 自定义仓库名称,执行"git push -u 仓库名称 分支名"命令 推送本地文件或文件夹到远程仓库,执行"git log"命令可以查看推送的文件(如图14)

黄色框内容: 第一次推送需要**先完成身份验证,**Git 会弹出一个浏览器窗口或直接在终端提示你输入

绿色框内容: 因为网络问题,推送失败。在身份验证的那个浏览器中成功打开GitHub就能解决

**红色框内容:**成功推送的信息
图14

(五)克隆拉取(先有远程仓库)

1.命令

命令 作用
git clone 仓库地址 将远程仓库的代码克隆到本地仓库
git pull 远程仓库名 分支名 项目拉取更新

2.小试牛刀

①新建一个新文件夹打开文件夹 --右键 --点击"Open Git Bash here",执行"git clone 仓库地址"命令将远程仓库的代码克隆到本地仓库(如图15)
图15

打开克隆的文件夹, 创建新文件夹/文件右键 --点击"Open Git Bash here"添加、提交 到本地仓库,推送到远程仓库(如图16)

黄色框内容: Git 无法找到或访问该远程仓库。我们每一次推送都要执行"git remote add 远程名称 远程仓库URL"命令为远程仓库的URL自定义仓库名称。

**红色框内容:**推送成功。
图16

③打开原本的文件夹执行"git pull 远程仓库名 分支名"命令拉取更新项目(如图17)
图17

(六)代码冲突

1.冲突情况

即多人拉取同一份代码后修改,第一个人修改并推送到远程仓库后,第二个人仍使用之前的拉取的代码修改并推送,此时第一个人和第二个人推送的文件会发生冲突。(远程仓库会阻止第二个人提交,并报错)

2.解决方法

执行"git pull 远程仓库名 分支名"命令拉取最新的文件

执行"cat 文件名"命令 查看冲突部分(<<<<<<<和>>>>>>>中间的内容是冲突部分)(如图17),修改、保存,即可解决冲突
图17

③再次添加、提交到本地仓库,推送到远程仓库

六、IDEA集成Git

(一)创建本地仓库,提交代码

1.idea集成Git

idea打开一个项目点击"file"--"settings"--左侧栏"Version Control"--"Git" ,此时idea会自动检测到git.exe,点击"Text" 后下方出现版本号即git能正常运行,点击"OK"

2.创建本地仓库

点击File那一栏的"VCS"--"Create Git Repository" ,选择要管理的项目,点击"OK" ,此时顶栏左侧会出现"master"这个工具

3.提交代码

点击"master"--"commit" ,在黄色框1中选择要提交的代码文件,黄色框2中写上代码备注,点击"commit"

完成提交后会出现下图的信息

点击左下角最后的图标即可查看该项目的日志

(二)实现版本切换

当我们有多个版本时,想从1.4版本回退到1.2版本,有两种方法

1.会丢失1.2版本以上的所有版本

①在1.2版本上右键点击"Reset Current Branch to Here..." ,在弹出的对话框中直接点击"Reset"

②此时会发现,1.4版本中修改的代码还是存在,并且1.2版本以上的版本已经丢失,无法再次回退到1.3或1.4版本,想要还原会1.2版本的代码需要按下图步骤实现

2.不会丢失任何版本

①在1.2版本上右键点击"Revert Commit",会弹出对话框说代码冲突(如下图)

  • 接受您的更改:2号黄色框,保留当前分支的代码,丢弃被还原提交的更改。
  • 接受他们的更改:3号黄色,框接受被还原提交的原始代码,覆盖当前分支的代码。
  • 合并 (M)...:4号黄色框,手动合并代码(推荐)。或者双击1号黄色框

②推荐点击"Merge..." ,之后会弹出当前版本、想要还原到的版本和服务器上原本版本的代码对比,按下图点击❌号 修改代码冲突,最后**点击"Apply"**应用

③点击"Apply"应用后,会弹出提交版本的对话框,可以修改一些备注后直接点击"Commit"提交此次还原的版本

④此时我们可以看到,所有的版本都在,代码都自动还原了并多了一个还原之后的版本

(三)在IDEA中操作远程仓库

1.推送项目文件到远程仓库

①**点击"Git"--"Push"**后会弹出对话框

填写远程仓库名和URL地址,点击"OK"

③选择好文件后**点击"Push"**即可

2.克隆远程仓库的项目代码到IDEA

①关闭IDEA中的项目,点击右上角的"Get from VCS"

②在弹出的对话框中点击"Repository URL"填写右侧的远程仓库URL信息和Directory目录地址,点击"Clone"即可

七、GitHub使用的小知识点

(一)如何删除GitHub仓库的文件(GitHub只能删除仓库,不能删除仓库中的文件)

git如何删除github上的文件,亲测有效https://xat-suda.blog.csdn.net/article/details/127810043?fromshare=blogdetail&sharetype=blogdetail&sharerId=127810043&sharerefer=PC&sharesource=2401_88065518&sharefrom=from_link

(二)清空GitHub仓库的文件后,想将本地的文件推送到GitHub仓库(要先在本地拉取远程仓库文件后才能推送)

1.所遇到的问题

①按(一)清空GitHub仓库的文件后,如果直接推送 本地文件到远程仓库,会报代码冲突错误,并且如果想修改冲突的代码,此时远程仓库又没文件,无法解决冲突代码

②如果在idea中先拉取再推送 ,第一步的拉取就无法进行,因为远程仓库此时没有文件,idea无法识别有效文件拉取

2.解决方法

①按(一)清空GitHub仓库的文件后,在想推送的项目文件夹下右键 点击**"Open Git Bash here"**

②在弹出的对话框中,执行新建本地仓库<git init>拉取远程仓库的内容<git pull 远程仓库名 分支名>

③成功拉取后,就可以在对话框或者idea中推送项目

相关推荐
腻害兔4 小时前
【若依项目-产品经理视角】深度拆解 RuoYi-Vue-Pro 商城模块:从商品管理到交易引擎,50 张表撑起一整套电商系统
java·大数据·vue.js·产品经理·ai编程
zzqssliu5 小时前
煤炉自动代拍系统的队列设计与超时控制机制
git·github
一支绝命钩5 小时前
FPGA工程Git常用操作手册
git
码智社5 小时前
AES加密原理详解及Java实现加解密实战
java·开发语言
萧瑟余晖6 小时前
JDK 26 新特性详解
java·开发语言
马优晨7 小时前
Freemarker 完整讲解(后端 Java 模板引擎)
java·开发语言·freemarker·freemarker 完整讲解·freemarker模板引擎
fthux7 小时前
“装闭”,让装修套路“装”不下去
人工智能·ai·开源·github·open source
不搞学术柒柒9 小时前
Git新功能完整开发提交流程
git
维天说10 小时前
CLI-Switch 2026年3月版历史设计:Hook、TTY 隔离与 JSON 状态
java·服务器·json
Zane199410 小时前
并发 vs 并行:别再傻傻分不清了,一文讲透 Java 并发编程的第一课
java·后端