git简单指令2

gitk 通过图形界面工具来查查版本历史

  • COMMIT_EDITMSG

  • config 当前 git 的配置文件

  • description (仓库的描述信息文件)

  • HEAD (指向当前所在的分支),例如当前在 develop 分支,实际指向地址是 refs/heads/develop

  • hooks [文件夹]

  • index

  • info [文件夹]

  • logs [文件夹]

  • objects [文件夹] (存放所有的 git 对象,对象哈希值前 2 位作为文件夹名称,后 38 位作为对象文件名, 可通过 git cat-file -p 命令,拼接文件夹名称+文件名查看)

  • ORIG_HEAD

  • refs [文件夹]
    - heads (存放当前项目的所有分支)
    - tags (存放的当前项目的所有标签,又叫做里程碑)

  • cat 命令, 功能:用来显示文件。 例如 cat text.md 显示 text.md 文件的内容

  • ls -al 命令, 表示列出当前目录下的所有文件(包括隐藏文件)

  • git cat-file -t 命令 , 查看 git 对象的类型

  • git cat-file -p 命令, 查看 git 对象的内容

  • git cat-file -s 命令, 查看 git 对象的大小

HEAD当前指向的分支信息.
cconfig,当前仓库的配置信息,core,用户,远程,分支等信息.(命令操作其实就是修改当前config文件)
refs
---heads,其实就是分支,里面包含所有的分支文件,文件存储了分支指向的指纹信息
---tags 叫做里程碑,或者版本发布用等记录重要版本.文件也存储了tag的指纹信息
---remotes,远程仓库信息
objects 核心文件,存储文件,git cat-file 查看文件类型等信息

HEAD 当我们执行切换分支的时候.git目录下的HEAD内容汇编 他会告诉我们再哪个分支下
config里面的地址可以通过git config --local --list 来查看信息 cat config 查看配置信息 vi config 修改config内容
git config --local user.email '' 直接进行修改
git cat-file 显示版本库对象的内容、类型及大小信息。-t 对象类型 (tree commit tag)-s 对象大小 -p对象内容
objects:存放对象 .git/objects/ 文件夹中的子文件夹都是以哈希值的前两位字符命名 通过打卡前两位和里面的子串连接可以通过git cat-file -t 查看对象类型

git cat-file -t 发现文件的对象是commit 我们可以使用 -p来打开文件对象
git cat-file -p 打开对象 对象里内容有blob是文件 可以直接进行打开 有tree 可以用-p打开文件夹进而进行下一步打开文件

commit作为根节点 tree作为分支节点 blob作为最终的叶子节点
-t查看对象类型 -p查看对象内容 对于commit的-t可以有blob有tree tree下面有tree或是blob blob直接打开文件内容
疑问:git commit -m'Add readme' 对改动进行提交的时候生成四个文件,打开文件最终都到hello,word,创建四个文件最后都返回一个文件,相同文件夹以及文件对应的哈希是一样的

git branch -av 查看当前分支内容
git checkout master 改变分支或添加新的分支
git branch fix_css a3f6f6b 给新产生的分支命名

HEAD的使用,以及PARENT符号^和~。
1 一个节点,可以包含多个子节点(checkout 出多个分支)
2 一个节点可以有多个父节点(多个分支合并)
3 是~都是父节点,区别是跟随数字时候,2 是第二个父节点,而~2是父节点的父节点
4 ^和~可以组合使用,例如 HEAD~2^2

What's the difference between HEAD^ and HEAD~ in Git?
git checkout -b fix_readme fix_css 创建一个新的分支并且直接进行切换到那个新的分支上去
cat .git/HEAD HEAD指向具体的commit上
git diff a3f6f6b8 3ece7f544d 比较两个commit的差异
"^"这个操作符代表父commit。
当一个commit有多个父commit时,可以通过在符号“^”后面跟上一个数字来表示第几个父commit。
比如,"A^" 等于 “A^1”(表示A这个commit的第1个父commit)。

连续的“^”符号依次沿着父commit进行定位,直到某个祖先commit。

~ 相当于连续n个符合“^”。

所以,HEAD^^ 等同于 HEAD~2 。

git branch -av 查看分支情况
git branch -D fix_readme 删除分支

git branch -d branch_name:使用-d 在删除前Git会判断在该分支上开发的功能是否被merge的其它分支。如果没有,不能删除。如果merge到其它分支,但之后又在其上做了开发,使用-d还是不能删除。-D会强制删除。

git commit --amend 对最近提交的一次message做变更

git rebase -i fbc948a3 对任意父节点的message做变更

posted @ 2020-04-18 19:33  insist钢  阅读(209)  评论(0编辑  收藏  举报