git的使用2024-05-07(后续有续写)

分布式版本控制系统:git

集中式版本控制系统:
比如SVN
工作流程:所有的文件都保存在中央服务器上,每个人的电脑只保存副本,当你需要修改文件的时候,需要在中央服务器
上下载最新的版本,添加需要修改的内容,修改完再上传到中央服务器。

缺点:中央服务器单点故障问题

分布式版本控制系统:
每个人的电脑上有一个完整的库。可以在本地进行修改,不需要考虑网络的问题。即使中央服务器出现故障,我们也可以继续工作,当需要将修改内容
分享给其他人的时候,只需要将仓库同步一下就可以了

git的使用方式:
1、命令行方式
2、图形化界面GUI
3、IDEA插件的方式 比如vscode内置的本地库

使用git:
在使用git之前,第一步就是先使用git config命令配置一下用户名和邮箱
git config --global user.name “zengyuzhi”

–global: 全局配置。对所有的git仓库生效 如果不加这个参数,就是只对当前这个仓库有效

–system:系统配置。对所有的用户生效,一般使用的少

查看git版本
在这里插入图片描述
git的全局配置配置邮箱,配置用户名,保存信息

[root@jenkins ~]# git config --global user.name “zengyuzhi”
[root@jenkins ~]# git config --global user.email zeng_993@163.com
[root@jenkins ~]# git config --global credential.helper store

查看git当前的配置

[root@jenkins ~]# git config --global --list
在这里插入图片描述
创建git本地仓库test
[root@jenkins ~]# git init test在这里插入图片描述
或者先创建目录,进入目录后再git init也是可以的
在这里插入图片描述

或者使用git clone克隆的方式去下载一个远程仓库
git clone http://81.70.36.106:82/zeng_group/web_demo1.git
在这里插入图片描述
下载后可以查看这个目录也是有.git的隐藏文件的
在这里插入图片描述
git的四个区域:
1、工作区:就是你在电脑里面能看到的目录
2、暂存区:一般是存放在.git目录下的index文件。
3、本地仓库:git的版本库
4、远程仓库:托管在远程服务器上的仓库 比如:gitlab github

简单来说git的工作原理:
工作区就是我们实际操作的目录
暂存区就是一个中间区域,用于临时存放即将提交的修改内容
本地仓库就是git存储代码和版本信息的主要位置

当你修改为工作区的文件后,需要将他们添加到暂存区,然后再将暂存区的修改内容提交到本地仓库中

在这里插入图片描述
git文件的几种状态:
Untrack 未跟踪:未跟踪就是我们新创建的。还没有被git管理起来的文件
Unmodified 未修改:未修改就是我们已经被git管理起来,但是文件的内容没有发生变化,还没有被修改过
Modified 已修改:已修改就是我们已经修改了文件,但是还没有添加到暂存区里面
Staged 已暂存:已暂存就是我们修改后。并且已经添加到了暂存区域内的文件
在这里插入图片描述

git命令:
上面我创建了一个本地仓库test,下面就来看一下怎样将文件添加到仓库里面,涉及了以下命令
git init 创建仓库
git status 查看仓库的状态
git add 添加到暂存区
git commit 提交

[root@jenkins test]# git status
查看当前仓库处于哪个分支,有哪些文件以及这些文件当前处于怎么样的一个状态
因为现在没有任何提交操作,所以已下图看不到什么内容

在这里插入图片描述

新建一个文件查看仓库状态输出

[root@jenkins test]# touch test.txt
[root@jenkins test]# git status
可以看到命令的回显比刚才多了一个文件,这个就是刚刚新建的文件,这个文件现在就是处于一个未被跟踪的状态
在这里插入图片描述
接下来使用git add命令把文件添加到暂存区
在这里插入图片描述
他告诉我们还可以使用这个命令把刚刚添加到暂存区的文件取消暂存,这个命令后续咱们会使用,可以先不管
在这里插入图片描述

接下来,将文件提交到仓库中 使用git commit实现,文件只有被提交到本地仓库中,才算真正的保管了
注意:git commit只会提交暂存区中的文件,不会提交工作区中的其他文件
例如:
现在创建一个新的文件test2.txt

在这里插入图片描述

查看仓库状态,可以看到这个test2.txt是处于一个 Untracked files 未跟踪的状态
接下来直接commit提交一下
git commit -m ‘第一次提交’
在这里插入图片描述

注意:使用git commit参数提交需要使用-m参数 来指定提交的信息,这个信息会记录仓库中,如果不指定-m
直接执行git会进入一个交互式界面,默认使用vim进行编辑

查看状态,可以看到之前的test.txt已经不见了,这是因为我们已经把test.txt提交到仓库里面保管了
之前的截图:

在这里插入图片描述

现在的截图:
在这里插入图片描述

git commit只会提交暂存区的文件,而不会提交工作区中的其他文件。因为test.txt已经add了。test2.txt直接commit操作,在工作区 所以不会提交

git add 还可以使用通配符来添加多个文件
这边多添加几个文件测试:
有txt的 和sh结尾的文件
在这里插入图片描述
git add *.txt
已txt结尾的已经被提交到了暂存区,但是test6.sh因为这个文件不是txt结尾所以不会添加到暂存区
在这里插入图片描述
除了通配符,git add还可以接受文件作为参数
比如
git add .
这个点.代表当前目录,来吧当前文件夹下的所有文件都添加到暂存区里面
在这里插入图片描述
执行后可以看到所有文件都已经提交到了暂存区
现在再提交一下
这次直接使用上面所讲的
git commit 不加参数的形式,这里进入了交互界面,输入备注信息保存退出

在这里插入图片描述
这里一共有两次提交记录,这里可以使用git log命令查看提交记录
git log
在这里插入图片描述
这里可以看到有两次提交,每次提交都有唯一的提交id

git log --oneline 查看简介的提交记录

在这里插入图片描述

git reset 回退版本。可以回退到之前某一个提交的状态
日常开发时候需要经常撤销一些修改内容,或者回退到之前的某一个版本,这里就可以使用到git reset

git reset的三种模式
在这里插入图片描述

git reset --soft soft参数表示回退到某一个版本。 并且保留工作区和暂存区的所有修改内容
git reset --hard hard参数表示回退到某一个版本。并且丢弃工作区和暂存区的所有修改内容
git reset --mixed mixed参数表示回退到某一个版本。并且只保留工作区的修改内容,丢弃暂存区的修改内容

–mixed是reset命令的默认参数,只保留工作区的修改内容,丢弃暂存区的修改内容

例子:这里创建三个本地仓库分别是:repo-soft repo-hard repo-mixed
在这里插入图片描述

这里在三个不同仓库来演示git reset的三种模式
一、首先这里使用的是–soft参数
直接使用git reset --soft 要回退的版本id,这里回退的是第二次提交
git reset --soft 033ed24
回车之后再使用git log查看提交历史
可以看到提交只有两次了,指向了第二个版本

在这里插入图片描述
再看一下工作区和暂存区的内容
查看工作区:
ls
看到test3.txt文件还在内容也在
在这里插入图片描述

在这里插入图片描述
查看暂存区:
git ls-files
在这里插入图片描述
test3.txt在暂存区也是存在的。因为soft参数表示回退到某一个版本。 并且保留工作区和暂存区的所有修改内容

查看仓库状态:
提示test3.txt是新文件。这是因为soft参数,回退版本 我们已经回退到第二次提交了,第二次提交是提交的test2.txt、这里test3.txt还是存在的。test3.txt是在第三个版本才添加的,这次回退的是第二个版本,所以这个test3就是一个新文件

在这里插入图片描述
二、测试:reset --hard

也是一样回退到第二个版本,回退后,第三次提交的文件在工作区和暂存区都没有了,因为hard参数回退上一个版本。工作区和暂存区都会被删除
查看提交记录
git log --oneline
查看暂存区文件
git ls-files
git reset --hard 033ed24 (第二次提交的id)
在这里插入图片描述
在这里插入图片描述

三、默认参数reset --mixed
直接输入 git reset 033ed24
查看提交历史,看到提交历史只有两次
git log --oneline
工作区状态:
暂存区状态:
git ls-files
暂存区已经只有两个文件了,工作区的还在
在这里插入图片描述
这就是这三个参数的区别,在使用场景方面,soft和mixed作用基本相似,区别就在于是否保存暂存区的内容
一般来说当我们连续提交了多个版本,但是有觉得这些提交没有什么意义,可以合并成一个版本的时候,就可以通过这两个参数进行回退之后再重新提交
思路:
重新提交前,混合模式先执行git add将变动的内容重新添加到暂存区,而soft模式就不需要了,因为暂存区并没有被清空
而hard参数使用场景,需要真正放弃了本地所修改内容的时候使用。建议少用hard

误操作,git也可以回溯:
git reflog 命令来查看历史记录,找到误操作前的版本号
再使用git rest命令回退到这个版本即可
git reflog
git reset --hard

在这里插入图片描述

  • 18
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值