Git版本控制管理學習筆記5-提交

    這個標題其實有些讓人費解,由於會想這個提交是動詞仍是名稱?html

    提交動做是經過git commit命令來實現的,提交以後會在對象庫中新增一個提交對象。提交過程當中會發生哪些變化,在上一篇筆記裏面已經介紹過,看下那幾張過程圖就能夠了。git

    須要明確的是,在Git中,版本庫的變動和提交是一一對應的關係,也就是說,提交是將變動引入到版本庫的惟一方法。web

    Git在提交時,會記錄索引的快照並把快照存放到對象庫中。下一次提交前,就會將當前索引中的狀態與上一次生成的快照進行對比,派生出一個受影響的文件和目錄列表。工具

1、原子變動集:

      每個提交都表明一個相對於以前的狀態的單個原子變動集,提交時要麼成功,要麼所有拒絕。this

2、識別提交:

     這一節主要介紹的是提交在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
  • 引用和符號引用:本地特徵分支名稱、遠程跟蹤分支名稱和標籤名都是引用。目錄中有3種不一樣的命名空間表示不一樣的引用:refs/heads/ref代碼本地分支, refs/remotes/ref表明遠程跟蹤分支,refs/tags/ref表明標籤。
[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

6.2多個父提交名

 

 

 

 

 

 

 

 

 

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

 

3、提交歷史記錄:

一、查看舊提交:

    這裏看幾個示例命令就好了。

[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

二、提交圖:

 

image

4、查找提交:

使用下列工具,暫不關注:

  • git bisect
  • git blame
  • Pickaxe
相關文章
相關標籤/搜索