Git檢出(建立子版本庫更新並且合併到master)

Git檢出(建立子版本庫更新並且合併到master)

HEAD:
head可以理解爲“頭指針”,是當前工作區的“基礎版本”,當執行提交時,HEAD指向的提交將作爲新提交的父提交。看看當前HEAD指向。

$ cat .git/HEAD
ref: refs/heads/master

查看master 和 head

$ git rev-parse HEAD master
4b9bdcab95d15dd79e7d41c506c9e6e8b1f7c56e
4b9bdcab95d15dd79e7d41c506c9e6e8b1f7c56e

此時創建新分支
git checkout -b “myNewBranch”

$ git checkout -b "myNewBranch" 
Switched to a new branch 'myNewBranch'

# rock @ localhost in ~/IdeaProjects/webDemoTwo on git:myNewBranch o [20:34:49] 

會發現當前在分支 myNewBranch 上

$ cat .git/HEAD
ref: refs/heads/myNewBranch

此時修改文件並提交

# rock @ localhost in ~/IdeaProjects/webDemoTwo on git:myNewBranch o [20:34:49] 
$ git add .

# rock @ localhost in ~/IdeaProjects/webDemoTwo on git:myNewBranch x [20:36:39] 
$ git ci -m "new barnch"
[myNewBranch 870ee16] new barnch
 1 file changed, 3 insertions(+)

此時查看git 和 master 在哪個提交上

$ git rev-parse HEAD master
870ee16a02d07cfddb59d5906cafa48947aafe70
4b9bdcab95d15dd79e7d41c506c9e6e8b1f7c56e

當前head 在870ee16a02d07cfddb59d5906cafa48947aafe70上;注意將head切換到master上查看log

執行切換:

$ git checkout master
Switched to branch 'master'
Your branch is ahead of 'origin/master' by 4 commits.
  (use "git push" to publish your local commits)

查看log

commit 4b9bdcab95d15dd79e7d41c506c9e6e8b1f7c56e
Author: wangchengwei <wang1100@vip.qq.com>
Date:   Tue Nov 28 20:20:48 2017 +0800

    測試head和master不在一起的提交

commit 049723fa6f1ba44da79d2afd4727356b29bbaa3a
Author: wangchengwei <wang1100@vip.qq.com>
Date:   Tue Nov 28 20:17:02 2017 +0800

    test3

commit ec4dc0fd08a71f57177b298c8347a97ff646f1a7
Author: wangchengwei <wang1100@vip.qq.com>
Date:   Mon Nov 27 08:10:06 2017 +0800

    重置test2

commit 0bfd67bac8a3640bcc70041d7540644a1240cf3d
Author: wangchengwei <wang1100@vip.qq.com>
Date:   Mon Nov 27 08:09:20 2017 +0800

    重置test1

並未發現 870ee16a02d07cfddb59d5906cafa48947aafe70的提交。

查看版本庫中此id 的log發現在版本庫是有這個id的信息

git show 870ee16a02d07cfddb59d5906cafa48947aafe70


commit 870ee16a02d07cfddb59d5906cafa48947aafe70
Author: wangchengwei <wang1100@vip.qq.com>
Date:   Tue Nov 28 20:36:48 2017 +0800

    new barnch

diff --git a/firstweb/src/git/git7/TestTwo.java b/firstweb/src/git/git7/TestTwo.java
index fee886f..deea8b3 100644
--- a/firstweb/src/git/git7/TestTwo.java
+++ b/firstweb/src/git/git7/TestTwo.java
@@ -10,6 +10,9 @@ public class TestTwo {
          System.out.printf("重置test4 測試head頭");


+         System.out.printf("im in new branch");
+
+

而當前head和master在同一id下。此時需要執行merge將這一分支的信息合併到master下。

$ git merge 870ee16a02d07cfddb59d5906cafa48947aafe70
Updating 4b9bdca..870ee16
Fast-forward
 firstweb/src/git/git7/TestTwo.java | 3 +++
 1 file changed, 3 insertions(+)

再次查看 head 和master

$ git rev-parse head master
870ee16a02d07cfddb59d5906cafa48947aafe70
870ee16a02d07cfddb59d5906cafa48947aafe70

此時head和master都指向了這一個提交

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章