zoukankan      html  css  js  c++  java
  • git 查看和撤销

    linux下文本的新建和追加内容

    git cat-file -p ID可查看当前master的数据

    观察Git 內部如何储存Commit
    随便便抓一個 Commit 的 SHA1 开始:

    git cat-file -p a08181bf3(观察这个commit,找出 tree 位置 )
    git cat-file -p ea44d629 (观察 tree,找出任一个 blob SHA1)
    git cat-file -p d9647d8a (观察blob 的內容)

    通过git diff命令,可比较工作区与暂存区的差异


    “diff --git a/index.html b/index.html” ,代表的是对git里面的命令,进行可视化显示。其中“a/index.html”和“b/index.html ”分别代表的是暂存区和工作区中的index.html文件。
    index 6cef113..684ae9d 代表两个版本的git哈希值(暂存区的文件对象对应的哈希值6cef113,与工作区文件对应的哈希值684ae9d )。

    我们可以通过git cat-file -t查看git哈希值的类型

    可通过 git cat-file -p查看其内容

    "@@ -1,2 +1,3 @@" 代表差异的定位语句,减号后是原文件的开始行号和行数(若只有一行,就不显示行数)。加号后是新文件的开始行号和行数。

    上面的意思表示原文件从第一行开始,只有两行。新文件从第一行开始,共三行

    "---" 表示变动前的文件

    "+++" 表示变动后的文件

    “abcdef”前面的+号,代表该行是新增的。

    关于文件内容内容的每一行最前面,会有一个标记位。

    如果为空,表示该行无变化

    如果是感叹号(!),表示该行有改动

    如果是减号(-),表示该行被删除

    如果是加号(+),表示该行为新增

    100644 代表当前文件类型和权限,100代表regular file,644代表权限是:拥有者(读+写),所属组(读),其他人(读)

    四、如何比较工作区与本地仓库的差异

    通过git diff HEAD命令,可比较工作区与本地仓库的差异。

    五、如何比较暂存区与本地仓库的差异

    通过git diff --cached 命令,可比较工作区与本地仓库的差异。(没测试成功,原因不明)

    六、如何撤回工作区的改动

    在git的工作区里面,有的时候,不小心改动了某个文件,可以使用git checkout -- file来取消上次改动,原理:把暂存区的数据加载到工作区覆盖掉修改

    七、如何撤回工作区的提交

    撤回工作区的提交,也就是将暂存区里面,因本次工作区里提交,而修改的blog对象,回退到修改为之前的blog对象。

    有的时候,需要提交到暂存区的文件很多,为了简便,我们执行了如下命令:

    	
    git add .
    

    将工作区内所有文件(已经添加git跟踪的文件和尚未添加到git跟踪的文件),统统搞到暂存区,那么怎样撤回其中一个多少几个文件呢?

    当然是有的,我们可以使用git reset HEAD(或者git reset,HEAD可缺省)来从暂存区删除内容,原理:在版本库中把当前版本数据加载到暂存区覆盖掉原来的

    八、如何撤回暂存区的提交

    当我们执行了git commit 的时候,发现提交的内容有问题,或是不应该提交,我们怎样取消上次提交呢?

    其实,就是改变版本库当前分支指向的commit对象。首先来了解什么是HEAD
    HEAD是一个引用,引用的是当前的分支,如果当前处于master分支,那么HEAD就会指向master

    比如,通过git log查看所有提交(思考:git log 跟 git reflog 的区别)

    git log只有当前所在版本之前提交的commit记录,git reflog有所有对本地版本库的操作记录

    如何比较两次提交(两个版本)中的文件的差异
    可以用git diff 哈希值 哈希值,哈希值是Blog类型

    当然,我们也可以通过git cat-file -p命令查对应commit(版本)的内容

    branch 指向該 branch 最新的 commit
    HEAD 指向 current branch

    参考
    参考二

    个人网站

  • 相关阅读:
    Python基础语法 第2节课(数据类型转换、运算符、字符串)
    python基础语法 第5节课 ( if 、 for )
    python基础语法 第4节课 (字典 元组 集合)
    Python基础语法 第3节课 (列表)
    A. Peter and Snow Blower 解析(思維、幾何)
    C. Dima and Salad 解析(思維、DP)
    D. Serval and Rooted Tree (樹狀DP)
    C2. Balanced Removals (Harder) (幾何、思維)
    B. Two Fairs 解析(思維、DFS、組合)
    D. Bash and a Tough Math Puzzle 解析(線段樹、數論)
  • 原文地址:https://www.cnblogs.com/panbingwen/p/10736878.html
Copyright © 2011-2022 走看看