git :快照流(每个历史版本都存储完整文件)
svn: 每一个版本只保存修改的部分git创建分支是创建了一个指针testing,切换分支就是把HEAD指针指向testing

版本库(repository)也叫仓库,可以看做一个目录,这个目录里的所以文件都由Git进行管理,每个文件的修改、删除,Git都能跟踪。从狂神那扒拉一张图片


最基础的操作
        git init 把这个目录变成Git可以管理的仓库(创建.git文件): 
        添加并提交一个readme.txt文件 git add ------- git commit


修改了提交后的readme.txt文件,使用 git status 查看工作区状态
        查看上次是怎么修改readme.txt 文件  git diff
        接着再 git add---------git commit

git commit -m "My second commit" readme.txt //-m"",提交日志

查看版本

继续对 readme.txt 文件进行修改,再add,commit.

目前为止,readme.txt 文件一共有三个版本被提交到了 Git 仓库里,我们可以用

git log --pretty=oneline 命令进行查看版本记录 (git reflog 是简化命令,可查看指针)


回退版本

readme.txt 文件退回到上一个版本,就可以使用 git reset 命令:git reset --hard HEAD^ //HEAD表示当前版本,则HEAD^表示上一个版本,那么上上版本就是HEAD^^

另外一种方式:
git reset --hard 9a9ebe0//基于索引值操作HEAD指针

查看文件内容并切换版本
cat 命令查看一下 readme.txt 的内容:
现在又想要回到最新的版本  git reset --hard 1094a //这里不能用HEAD而必须使用 commit id


隐藏目录 .git 是 Git 的版本库。    
版本库里面的 index(stage) 文件叫暂存区,还有Git为我们自动创建的第一个分支 master ,以及指向 master 的一个指针叫做 HEAD。


二次修改情况
我们对 readme.txt 文件进行修改,然后添加 git add readme.txt。
然后再修改readme.txt 文件,接着提交。发现第二次修改并没有被提交。因为git commit 命令只负责把暂存区的修改提交了。


撤销修改3种情况

(1) 没有 git add 之前
        手动删除,手动把文件恢复到上一个版本的状态。然后再用 git checkout -- file 命令丢弃工作区的修改//git checkout -- readme.txt
  (2) git add了,但没有git commit
         git reset HEAD file 命令把把暂存区的修改撤销掉,重新放回工作区
         git reset HEAD readme.txt //git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区,HEAD表示最新版本。
   (3) 既 git add 了,也 git commit 了
        可以回退到上一个版本,见回退版本内容。


删除已提交的文件
新建一个 test.txt 文件,并添加和提交到Git: rm test.txt删除文件.接着分俩种情况
(1)确实要删除该文件
$ git rm test.txt
$ git commit -m "remove test.txt"
(2)删错了,也好恢复,因为这时版本库里有
git checkout -- test.txt


侯非侯,王非王,千乘万骑走北芒。

长城和长安之间,是无尽的彷徨。

唯有燃烧在长城的篝火,让我放下野望

屠魔的少年终究成魔,存活最后的魔做了救世主

这是最好的时代,这是最坏的时代,我们一无所有,我们巍然矗立

长城之上是千亿的星空,星空之上是不灭的守望

血肉之躯,燃烧一次足矣

这里是为我所统率的战场

这里是,让我忘却野心的战场

2021/10/04 git 详细流程相关推荐

  1. 还在用表驱动方式做Go测试?可以试试基准突变测试 | Gopher Daily (2021.10.04) ʕ◔ϖ◔ʔ...

    每日一谚:永远不要在运行时做在编译时间可以做的事情 Go技术生态 还在用表驱动方式做Go测试?可以试试基准突变测试 - https://www.clinicallyawesome.com/2021/1 ...

  2. 2021/10/04 北京 鲁班大师技能总结

    机关,是数字的哲学:真理,是时间的孩子. 别被对面的野蛮人左右,我们的武器是头脑 偶然性,也在科学的范畴之内 没有战斗,我只是在攻克科学堡垒 因为我妹的事情,做了一晚上关于她的梦,是那种醒来三次又做了 ...

  3. 2021.10.02超详细实现过程-Linux 环境下的简易聊天室,采用CS模型,实现多客户端之间的稳定数据传输。(添加好友,删除好友、屏蔽好友、查看好友列表(针对数据库的操作))

    这次主要对加好友.删除好友.屏蔽好友.查看好友列表功能(单纯的基于数据库操作),并且也对之前的代码做了部分的改动,为中间涉及全局变量问题. 对之前的改动(主要): 其中对结构体进行了改动和结构体全局变 ...

  4. 2021 从零开始学Git【新版本Git - 8000字详细介绍】

    我写的这篇文章,主要是记录自己的学习过程,也希望帮助读者少踩坑(比如不同版本可能命令不兼容等).本文面向git零基础初学者,建议读者按照文中命令自己全部操作一遍(注意运行环境). 我的运行环境:win ...

  5. Git使用流程及技巧 - 详细教程

    Git使用流程及技巧 - 详细教程 前言 1. 技巧 1.1. 基础技巧 1.2. 提升SSH传输速度 1.3. 解决Git Bash命令行的中文乱码问题 1.3.1. 情况1:内部资源乱码 1.3. ...

  6. uboot 2021.10源码分析(启动流程)

    uboot版本:2021.10 平台:armv8  rk3399  eMMC 16G  LPDDR4 4G 本文主要基于uboot的执行流程进行分析而忽略了相关细节,从uboot的基本框架结构着手,新 ...

  7. DL之IDE:深度学习之计算机视觉开发环境搭建的详细流程(Ubuntu16.04+cuda9.0+cuDNN7.4.2+tensorflow_gpu)

    DL之IDE:深度学习之计算机视觉开发环境搭建的详细流程(Ubuntu16.04+cuda9.0+cuDNN7.4.2+tensorflow_gpu) 目录 1.安装nvidia驱动 2.安装CUDA ...

  8. 记一次华为2288H V5服务器安装Ubuntu18.04操作系统(详细流程)

    记一次华为2288H V5服务器安装Ubuntu18.04操作系统(详细流程) 2288H V5服务器配置 [SATA盘480Gx2-SATA盘960Gx1:NVIDIA–tesla --V100–3 ...

  9. TS:git clone出现 fatal unable to access ‘httpsgithub.com...‘的解决办法(已解决)-2021.12.04

    TS:git clone出现 fatal: unable to access 'https://github.com/-'的解决办法(已解决)-2021.12.04 目录 文章目录 TS:git cl ...

  10. git推送上传文件详细流程

    推 : 1.复制你要推的仓库地址,地址如下 2.在桌面新建一个文件夹,点进文件夹右键Git Bash Here  回车.这时候就会弹出一个黑色的框 3. 输入 git clone 右键选择Paste( ...

最新文章

  1. BZOJ 1176: [Balkan2007]Mokia( CDQ分治 + 树状数组 )
  2. python 遍历字典
  3. 陈桥五笔用户编号怎么获取_委托书中“样品原编号”怎么填?
  4. 基于fiddler的网络爬虫校园网自动登陆系统
  5. 真正的取真实IP地址及利弊Asp.net
  6. 能pingt通外部的Ip和dns,但上不了网络
  7. freebsd nginx php mysql_FreeBSD 安装配置Nginx+PHP+APC+MySQL
  8. linux 卷文件满,LVM逻辑卷容量的增减
  9. mysql实现了四种通信协议_MySQL 通信协议
  10. matlab 图片序列与视频互转(来源于matlab官网)
  11. 风云四(FY-4)气象卫星 tif文件解析成txt
  12. eclipse安装tomcat时只有locahost,不显示server name
  13. Java关键字详解-配视频讲解链接(附带一些面试题)
  14. ]获取android应用的MD5签名
  15. Góra urządzenia z dwoma zwiększyć moc może sprawić
  16. VB中对EXCEL的各种操作
  17. 大数据及人工智能基础系列2 B+树
  18. 计算机组成原理中op,计算机组成原理课程习题答案秦磊华
  19. pr怎样进行素材嵌套
  20. 区别辨析(选择)choose、select、elect、pick、prefer、opt

热门文章

  1. 【ML特征工程】第 6 章 :降维:用 PCA 压缩数据薄饼
  2. 离散数学笔记--重言式
  3. 通讯录管理系统(C语言版)
  4. The Fifty-eighth Of Word-Day
  5. 证券交易系统 -- 为什么要低延迟?
  6. 桌面计算机休眠快捷键,Win7怎么在桌面创建休眠快捷方式|win7休眠快捷键
  7. 《MATLAB 神经网络43个案例分析》:第37章 基于灰色神经网络的预测算法研究——订单需求预测
  8. 八爪鱼采集ajax表格,设置八爪鱼采集器ajax延时采集分页列表的方法
  9. cannot find zipfile directory
  10. 时间,是个什么东东?