JavaEE从入门到起飞(八) ~ Git

git

概括

Git是一个分布式版本控制工具,主要用于管理开发过程中的源代码文件(Java类、xml文件、html页面等)。

学了git能干什么?

代码回溯

查看历史提交记录并恢复到之前的某个状态。这在发现错误或需要查看特定版本时非常有用。和Ctrl+Z的区别在于git就算一个月前的代码也可以回退。

查看提交历史: git log 这个命令会列出所有提交记录,包括提交哈希、作者、日期以及提交信息。

查看精简版的历史:git reflog 这种方便阅读。

查看某次提交的内容: git show \<commit-hash> 使用 <commit-hash> 替换为具体的提交哈希值。

回到某个提交状态: git checkout \<commit-hash> 这会将工作目录恢复到指定提交的状态。

版本切换

版本切换通常指的是在不同的分支之间切换,以便于在不同的功能开发、修复bug或维护版本之间进行切换。

查看当前分支: git branch 当前分支会用 * 标记。

创建分支:git branch 分支名称

切换分支:git checkout 分支名称

创建新分支并切换: git checkout -b 分支名称

合并分支: git merge 分支名称 切换到目标分支,然后合并另一个分支

推送至远程分支:git push 远程仓库名称 本地分支的名称

删除分支:git branch -d 分支名称

多人协作

多人协作是指多个开发者共同在一个项目上工作,每个开发者有自己的本地仓库,并且这些仓库都与远程仓库同步。

拉取远程仓库的变化: git pull origin master 这个命令的意思是将本地的 master 分支推送到远程仓库 origin 中对应的 master 分支。

推送本地变化到远程仓库: git push origin master

解决冲突: 在合并分支时可能会遇到冲突,需要手动解决冲突后再提交。

使用分支: 每个人在自己的分支上工作,完成后合并到主分支。

远程备份

远程备份是指将代码推送到远程服务器或代码托管平台,以防止数据丢失。

添加远程仓库: git remote add origin 远程仓库的 URL

推送代码到远程仓库: git push -u origin master -u 参数用于设置远程跟踪分支。

本地电脑生成秘钥对

Git操作流程

创建本地仓库

本地仓库可以通过两种方式获取,图形化界面创建

提交文件

提交操作的作用是将文件放到本地仓库中进行管理

修改文件
历史版本
删除文件

删除文件需要做两件事: 1) 删除文件 2) 提交更新到本地仓库

命令行操作流程

除了使用小乌龟进行操作外,还可以直接使用命令完成上面的操作

markdown 复制代码
* 创建本地仓库
		git init

* 查看本地库状态
		git status 
		
* 添加到暂存区
		git add 文件名
		
* 提交到本地仓库
		git commit -m '日志信息' 文件名
		
* 查看历史记录
		git reflog  精简
		git log     详细
		
* 版本穿梭
		git reset --hard 版本号
		
* 删除工作区文件
		git rm 文件名
		
		git commit -m '日志'

忽略文件

在特定情况下,我们不希望自己的某些文件被git管理,这时候,我们就要设置git忽略掉此文件

工作流程

一般工作流程如下:

  1. 得到本地仓库(手动本地创建或者从远程仓库中克隆)
  2. 从本地仓库中执行checkout,检出项目到工作目录(自动执行)
  3. 在工作目录中编写代码,然后执行add命令将代码添加到暂存区(其实就是将代码添加到git管理)
  4. 执行commit代码到本地仓库,本地仓库中会保存代码各个历史版本
  5. 后面可以对代码进行修改、删除,当需要保存到本地仓库时,执行commit即可(无需再执行add)
  6. 如果需要跟团队其他成员共享文件,可以将代码push(推送)到远程仓库,也可以通过pull(拉取)得到远程仓库中的最新代码

创建远程仓库

仓库连接协议

git仓库支持两种连接协议:

  • HTTPS:是以安全为目标的HTTP通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性
  • SSH:安全外壳协议,通过密钥对方式对传输的数据进行加密,实现免密登录

复制git的地址(一定注意:这个地址是SSH的,以git开头,千万不要复制成HTTPS的)

SSH 密钥 :生成的密钥对(包括公钥和私钥)常用于 SSH 连接。SSH 密钥可以让你安全地访问远程 Git 仓库,比如 GitHub、GitLab 或 Bitbucket,而无需每次都输入用户名和密码。你将公钥添加到远程仓库的账户设置中,而私钥则保存在本地计算机上,Git 使用它来进行身份验证。

使用cmd命令启动dos窗口,然后输入ssh-keygen -t rsa命令按回车键,然后一路回车,生成秘钥对

注意两个坑:

  1. 输入ssh-keygen -t rsa回车的时候,提示ssh-keygen不是内部或外部命令,直接把问题放到百度上就有答案

  2. 由于某些同学电脑用户名是中文的,就有可能出现创建目录失败的问题(如下图),解决方案参考补充2--秘钥创建问题的解决方案视频

将公钥复制到gitee中

配置小乌龟开启ssh认证协议

操作远程仓库

克隆远程仓库到本地

在本地新建一个zhang文件夹,然后在文件夹中右键点击Git克隆...,填写URL(从网页中复制),点击确定

在本地仓库中添加文件

在文件夹中新建一个hello.txt文件,并执行add--commit操作,将其添加到本地仓库

将文件推送到远程仓库
远程仓库中查看文件
命令操作
markdown 复制代码
* 克隆远程仓库到本地
		git clone  远程仓库地址
		
* 拉取远程仓库最新代码合并到本地仓库
		git pull 远程仓库名称 本地分支名
		
* 将本地仓库代码推送到远程仓库
		git push 远程仓库名称 远程分支名称

Idea操作Git

基础操作

在idea中配置Git
使用idea打开要管理的项目
在idea中配置git管理
在idea中配置忽略文件

安装文件忽略插件,重启idea

解释:

​ .idea/ 忽略.idea文件夹

​ *.iml 忽略所有的.iml文件

​ out/ 忽略out文件夹

​ target/ 忽略target文件夹

提交代码到本地仓库
创建远程仓库
推送代码到远程仓库

代码冲突

代码冲突,表示两个人同时改变同一个文件的同一行。git开发,不修改的内容,不会覆盖。

模拟冲突

1)在本地新建一个文件夹,然后将代码克隆一份下来,然后修改下pom.xml

2)通过小乌龟现将本地other文件夹的代码提交到远程仓库

3)在idea中也对pom.xml文件进行修改操作

4)再通过idea将idea中的代码推送到远程仓库,再推送的过程中,就会出现下面的错误

接下来,我们点击Merge开始合并代码(解决冲突)

解决冲突

1)在idea中手动合并代码,解决掉冲突

2)将改好代码再次向远程仓库推送

分支管理(难点)

切分支一定要先commit在切分支。

分支操作:分支是Git 使用过程中非常重要的概念。使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。相当于,你本地有多少分支就有多少套隔离的代码。

同一个仓库可以有多个分支,各个分支相互独立,互不干扰。例如,你们一起开发

通过git init 命令创建本地仓库时默认会创建一个master分支。分支主要用于版本控制。

创建分支

① 创建新分支,名称为hm

② 在hm新分支上开发代码

合并分支

① 在新分支上开发完代码后,进行提交和推送

② 切换到master分支

③ 将hm分支的代码合并到当前分支(注意:此时的当前分支是master)

先拉取到主分支,然后再合并到主分支,如果在推送到主分支中。

顺序: add-------开发----commit到本地----->pull代码(可能出现代码冲突, 需要merge代码)-------->push代码

真正开发的过程。
相关推荐
徐*红31 分钟前
Elasticsearch 8.+ 版本查询方式
大数据·elasticsearch
为祖国添砖爪哇40 分钟前
【Git原理与使用】多人协作与开发模型(2)
git
码爸1 小时前
flink 例子(scala)
大数据·elasticsearch·flink·scala
memories1981 小时前
git使用方法详解(适合新手)
git
txtsteve1 小时前
es由一个集群迁移到另外一个集群es的数据迁移
大数据·elasticsearch·搜索引擎
工作中的程序员2 小时前
ES 索引或索引模板
大数据·数据库·elasticsearch
为祖国添砖爪哇2 小时前
【Git原理与使用】版本管理与分支管理(1)
git
GoppViper4 小时前
golang学习笔记29——golang 中如何将 GitHub 最新提交的版本设置为 v1.0.0
笔记·git·后端·学习·golang·github·源代码管理
m0_464832365 小时前
Linux服务器上安装git lfs命令
git
贩卖纯净水.13 小时前
白月光git
git·github