这个标题其实有些让人费解,由于会想这个提交是动词仍是名称?html
提交动做是经过git commit命令来实现的,提交以后会在对象库中新增一个提交对象。提交过程当中会发生哪些变化,在上一篇笔记里面已经介绍过,看下那几张过程图就能够了。git
须要明确的是,在Git中,版本库的变动和提交是一一对应的关系,也就是说,提交是将变动引入到版本库的惟一方法。web
Git在提交时,会记录索引的快照并把快照存放到对象库中。下一次提交前,就会将当前索引中的状态与上一次生成的快照进行对比,派生出一个受影响的文件和目录列表。工具
每个提交都表明一个相对于以前的状态的单个原子变动集,提交时要么成功,要么所有拒绝。this
这一节主要介绍的是提交在Git中的表示方式,包括显式引用和隐式引用。好比,一个40位的SHA1码就是显式引用,HEAD就是一个隐式引用。spa
这里将要介绍各类引用的不一样书写方法。3d
[root@flower1 committest]# git log -1 --pretty=oneline HEAD 2a9b52785b94c45852276c4febb4e05d9e25de1f new data ty [root@flower1 committest]# git log -1 --pretty=oneline 2a9b 2a9b52785b94c45852276c4febb4e05d9e25de1f new data ty
[root@flower1 committest]# find .git/refs/ .git/refs/ .git/refs/tags .git/refs/heads .git/refs/heads/master
.git/refs/remotes/ref
.git/refs/remotes/ref/HEAD
相对提交名:看下面的例子就知道了。code
C^1:等同于C^,表示提交C的第一父提交。htm
C^2:表示提交C的第二父提交。对象
C~1:等同于C~,表示提交C的第一个父提交。
C~2:表示提交C的第一个祖父提交。
C~3:表示提交C的第一个曾祖父提交。
C~3^2^2^:表示提交C的第一个曾祖父提交--的--第二父提交--的--第二父提交--的--第一父提交。
这里会用到的git命令以下:
[root@flower1 my_website]# git rev-parse master e4db73549d3e9289b8ec9c5ec325e1a672942f28 [root@flower1 my_website]# git show-branch --more=35 | tail -10 [master] rename2 [master^] rename [master~2] test [master~3] remove [master~4] test [master~5] Remove a poem [master~6] this is poem, the second file added! [master~7] firsr change [master~8] Initial contents of public_html [root@flower1 my_website]# git rev-parse master~6 3df360e031a40a3c7e35856ed4f0b8f63551c89b
一、查看旧提交:
这里看几个示例命令就好了。
[root@flower1 my_website]# git log master
[root@flower1 my_website]# git log --pretty=short --abbrev-commit master~6 master~3
[root@flower1 my_website]# git log --pretty=short --stat master~6 master~4
二、提交图:
使用下列工具,暂不关注: