##說明
本篇文章是對pro git 7.1 git 工具 - 選擇修訂版本 章節中 祖先引用 的總結。
##git命令中head^和head~區別。
使用場景:如果想獲取乙個提交的第幾個父提交使用head+數字,想獲取乙個提交的上幾個提交使用head~。head和head或head^^和head
並沒有區別,只有head^+數字才和head有區別。
我們現在有個乙個master分支,我們通過在master分支執行這兩個命令了來了解一下他們之間的區別,當前master分支提交記錄如下:
administrator@user-20171018vx mingw64 /d/branch-test (master)
$ git log --oneline --graph
* ae64286 (head -> master) merge branch 'iss11'
|\| * 34af7c6 (iss11) 新增 run()
* | 247c954 新增 testrun()
|/* 79779c7 新增 main()
* d44c096 merge branch 'dev' 將dev分支內容合併到master分支
|\| * 89a6a5a (dev) 介紹你可以向檔案寫入什麼內容
* | bd61a96 新增介紹說明
|/* 01833f9 新增檔案型別說明
* 5f19dbf 新建檔案a.txt和b.txt
##1,head^
###1.1,最新一次提交的第乙個父提交。
administrator@user-20171018vx mingw64 /d/branch-test (master)
$ git show head^1
commit 247c954617cdcb457ced546bb7244ce61b3ccc2b
author: zhangxy <[email protected]>
date: 2018-08-30 10:33:26 +0800
新增 testrun()
diff --git a/b.txt b/b.txt
index 3473edf..5fe14d5 100644
--- a/b.txt
+++ b/b.txt
@@ -1 +1,4 @@
my name is b file
+public void testrun()
###1.2,最新一次提交的第二個父提交
administrator@user-20171018vx mingw64 /d/branch-test (master)
$ git show head^2
commit 34af7c6b386f5e09d24340e0f8a1b1f6b5bfd47d (iss11)
author: zhangxy <[email protected]>
date: 2018-08-30 10:30:19 +0800
新增 run()
diff --git a/a.txt b/a.txt
index d196d14..50e3bfc 100644
--- a/a.txt
+++ b/a.txt
@@ -5,3 +5,8 @@ my name is file a
public static void main(string args)
+ +public void run()
###1.3,最新一次提交的上兩個提交。
administrator@user-20171018vx mingw64 /d/branch-test (master)
$ git show head^^
commit 79779c75aeea6a4f514d1c77db5d86431011e117
author: zhangxy <[email protected]>
date: 2018-08-30 10:26:15 +0800
新增 main()
diff --git a/a.txt b/a.txt
index 759ac2f..d196d14 100644
--- a/a.txt
+++ b/a.txt
@@ -2,3 +2,6 @@ my name is file a
我是乙個txt型別檔案
你可以輸入漢子並不會出現亂碼
你可以向這裡寫入字元
+public static void main(string args)
##2,head~
###2.1,最新一次提交的上兩個提交。
administrator@user-20171018vx mingw64 /d/branch-test (master)
$ git show head~2
commit 79779c75aeea6a4f514d1c77db5d86431011e117
author: zhangxy <[email protected]>
date: 2018-08-30 10:26:15 +0800
新增 main()
diff --git a/a.txt b/a.txt
index 759ac2f..d196d14 100644
--- a/a.txt
+++ b/a.txt
@@ -2,3 +2,6 @@ my name is file a
我是乙個txt型別檔案
你可以輸入漢子並不會出現亂碼
你可以向這裡寫入字元
+public static void main(string args)
##3,head^和head~結合使用
###3.1,想獲取89a6a5a提交物件。
administrator@user-20171018vx mingw64 /d/branch-test (master)
$ git show head~3^2
commit 89a6a5a6f544ff74cc49341aab1484b084be7759 (dev)
author: zhangxy <[email protected]>
date: 2018-08-29 21:23:50 +0800
介紹你可以向檔案寫入什麼內容
diff --git a/a.txt b/a.txt
index e5f555c..0cde68b 100644
--- a/a.txt
+++ b/a.txt
@@ -1,2 +1,3 @@
my name is file a
我是乙個txt型別檔案
+你可以向這裡寫入字元
理解git中的head和master
在master分支上,head指向master,而master指向的是最近的一次提交。如下圖 當我們新建分支時,比如新建分支dev,dev會指向當前master分支的最近一次提交。當我們使用命令 git checkout dev切換到dev分支後,head就指向當前分支dev了。在dev上修改,比如...
理解Git中的HEAD和master
在master分支上,head指向master指標,而master指標指向的是最近的一次提交。如下圖 當我們新建分支時,比如新建dev分支,dev指標會指向當前master分支的最近一次提交。如下圖 切換到dev分支後,head指標就指向dev指標了。在dev分支上修改,然後提交,dev指標指向當前...
linux命令 head 命令
head 與 tail 就像它的名字一樣的淺顯易懂,它是用來顯示開頭或結尾某個數量的文字區塊,head 用來顯示檔案的開頭至標準輸出中,而 tail 想當然爾就是看檔案的結尾。1 命令格式 head 引數 檔案 2 命令功能 head 用來顯示檔案的開頭至標準輸出中,預設head命令列印其相應檔案的...