Linux -- git

1  啥是git

git是一个代码的历史版本管理工具,通过用树形结构管理一个代码版本可以快速实现回滚等操作

1.1  git基本概念

  • 工作区(Working Directory/Working Tree)

    • 这是你当前正在处理项目文件的地方。你可以在工作区中创建、修改、删除文件,这些改动是未被追踪或提交到版本控制系统中的。
  • 暂存区(Staging Area/Index)

    • 暂存区是一个临时区域,你可以将工作区中的改动放入这里,以便在提交之前进行整理和准备。可以理解为一个待提交的快照。当你运行 git add 命令时,文件的改动被添加到暂存区。
  • 版本库(Repository/Local Repository)

    • 版本库是项目的历史记录,包含了所有提交的历史快照。版本库存储在本地机器上,并且包含所有已提交的更改记录。你可以通过 git commit 命令将暂存区中的内容提交到版本库中,从而生成一个新的提交历史记录。

2  git常用命令

2.1  设置信息

git config --global user.name # 设置用户名
git config --global user.email # 设置全局邮箱

信息设置在了~/.gitconfig


2.2  将一个文件夹配置成仓库

git init

所有的信息放在了.git/隐藏文件夹中,此文件夹是一个树状结构

git status # 可查看仓库状态,看文件有无存进暂存区等
git add # 将文件加进暂存区
git add . # 全部加进去


2.3  将历史版本存进版本库里

 git commit -m 备注

        更新代码

git status
git add 更改文件名


此时在输入git status,当文件名变绿说明已经放进了暂存区,输入git commit -m则表明永久存下来,放入了新节点


        具体操作的结果如下图所示:


2.4   查看某个文件与当前分支最新的版本区别(暂存区里最新版本的区别)

git diff 文件名


2.5  从暂存区删除

git rm --cached xxx
git restore --stage

两者的区别在于,前者属于不希望管理该文件,将文件从列表中删除出来,后者输运仍管理文件,但从暂存区中取出


2.6  查看当前分支(从最初起点走到当前head的路径)的所有版本

git log 

        顺序从下向上显示,按q退出

--pretty=oneline

        实现一行显示

2.7  往前回滚某一个历史记录

git reset --hard HEAD^
git reset --head HEAD ~

 一个~一个版本,两个^^两个版本,~^相同
回滚并不会将内容删掉

        实现回退回来:

git reflog # 查看HEAD指针的所有的移动记录

在给出的移动记录中,会有每一个点的编号,即哈希值前7位

        回滚到任意结点

git reset --head 版本号

        重点:git loggit reflog的区别

git log从起点到当前head节点的路径
git refloghead的所有的移动历史节点

        恢复文件

主要的背景是:当前文件修改放在暂存区,但是想恢复到未修改前的状态
下面是将文件未存入暂存区的删除

git checkout - 文件名git restore 文件名

其中git restore并非回滚到上一个历史版本,而是从工作区回滚到暂存区版本
如果回滚到暂存区后,暂存区也不想留,可输入以下命令

git restore --stage 文件名

2.8   持久化

git commit -m # 将暂存区持久化

commit可以只一部分,具体操作如下图所示:


 2.9  删除文件

        一开始,与一般的文件命令管理一样

rm 文件

        在文件删除的操作完成后,需要进行持久化

        如果文件不小心删除,要回滚回去

git restore 文件名

         前提是:修改文件已经从暂存区中拿出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

颜回.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值