Git

作者: 四季明 | 来源:发表于2018-11-10 19:52 被阅读0次

    Git 三棵树结构

    这里的树不是准确地代表数据结构,可以简单理解为 “文件的集合”

    HEAD 上一次提交的快照,下一次提交的父节点

    Index 下一次提交的快照

    Working Directory 本地工作目录,接下来简称 work

    一个简单的操作循环如下:

    Work stage files --> Index commit --> HEAD checkout file/project --> Work

    HEAD 相当于一个指针,始终指向当前分支,并保证分支引用指向最顶端的 commit 快照

    每次 commit 形成一个快照,链接于当前分支的最顶端快照,并移动 HEAD 指向的分支指向这个快照

    git reset

    • --soft,第一级:移动 HEAD

    reset 移动 HEAD 指向的分支,使分支指向上一个快照,相当于撤销了上一次的 commit

    • --mixed,第二级:更新索引(默认级别,省略参数)

    在第一步基础上,取消暂存的内容,相当于撤销了 commit 和 add 两次操作

    • --hard,第三级:更新工作目录

    危险 在第二步基础上,撤销了本地工作的更新内容,强制覆盖了本地目录的文件

    • git reset file.txt 是 git reset --mixed HEAD file.txt 的简写形式,本质是将 file.txt 复制到索引当中

    • git reset eb43f file.txt 将文件恢复到 commit eb43f 的版本

    • git status 推荐使用 git reset 来取消暂存

    git checkout

    与 git reset 一样,也操纵三棵树

    • 带路径参数

    危险

    • 不带路径参数

    git stash

    git diff

    显示本地与暂存区的区别,即尚未暂存的更新内容

    --cached 或 --staged 显示暂存区与 HEAD 内容的区别,即要被提交的更新内容

    git rm

    当文件已被暂存时无法直接 rm,-f 强制删除 使暂存区与本地同时删除,--cached 只删除暂存区的文件信息

    git commit

    --amend 修改提交信息 重新提交 覆盖上一次提交,用于遗落文件或描述信息补充等

    git log

    -p 显示每次提交的内容,

    -(n) 显示最近的 n 条日志,如 -p -2 显示最近两次提交的内容

    --stat 显示提交的统计信息,如加减或更改的文件数量

    --pretty= 以指定格式显示信息,可选值包括 online short full format 等,其中 format 通过自己指定格式来输出信息

    --graph 以 ASCII 图形展示分支 合并历史

    //组合使用实例1: git log --pretty=format:"%h %s" --graph

    --since= 和 --after= 限定起始时间

    --until= 和 --before= 限定截止时间

    时间有多种表现形式,如 2018.07.22 或 06-22 或 3.days 2.minute等

    //组合使用实例1: git log --since=2017.09.17 --until=07.23

    --author 指定作者,--committer 指定提交人,--grep 指定提交时 -m 信息中的关键字

    //当两者同时使用得到并集,再加 --all-match 得到交集

    -S 指定提交的文件中的文字内容中的字符串, 如方法名、类名、注释等字符串

    相关文章

      网友评论

          本文标题:Git

          本文链接:https://www.haomeiwen.com/subject/dmktfqtx.html