【Git可視化】馬上入職騰訊的我瑟瑟發抖,惡補git知識就靠這個技巧!

git自linux之父發明以來,一直是很多互聯網企業組織團隊協作寫代碼的利器,所以,只要入職公司,無一不要求學會git。

做爲剛畢業的小松,已經脫離了畢業生身份,雖然做過一些項目,但是git用得很少,馬上入職了,對於git心裏沒底,碰巧看到一位知乎老哥推薦,點進去一看,立馬打開了新世界的大門!學得那叫一個酣暢淋漓,一起來學學吧。
進入這個網站,會看到以下目錄
在這裏插入圖片描述
可以看到這是一個闖關模式,分爲基礎,高級,移動提交記錄和雜項四個部分,我自己感覺學完基礎和高級的一部分就已經能夠解決工作中大部分需求了。

基礎篇

git commit

這個操作時提交新的版本,如圖。
git commit 前
在這裏插入圖片描述
執行

git commit

在這裏插入圖片描述
不僅僅爲了過關,這裏從圖中很清晰的看出,原來是c0,c1兩個提交,然後git commit之後就會多一個提交。

這個master什麼意思呢?就是所處分支的名字,無論你用git commit提交了多少次,c0,c1,c2,c3……都屬於一個名叫master的分支,而master旁邊的星號表示的是當前處於的分支。這樣可以實現不同分支的跳轉,也可以實現同一個分支不同提交記錄的轉換。
如果我們想回到c1,但是又不想撤銷c2的話,我們就可以通過命令讓master指向c1,如果我們有其他分支,我們就可以讓星號移動到其他分支

上面這一段很重要,是理解下面內容的基礎

也就是說,git的本質就是一棵提交的樹,可以反覆提交不斷修改,但是之前的提交記錄是可以找到的,每次是誰提交,內容是什麼,時間都可以看到!

git branch

在這裏插入圖片描述
執行

git branch newImage

執行完 git branch newImage後,顯然,將會出現一個新的分支,你猜猜這個新分支出現在哪裏呢?
在這裏插入圖片描述
是不是覺得有點奇怪?分支其實並不是真正的提交,僅僅只是一個名字,真正的提交記錄是c0,c1!而無論是master還是newImage都是爲這個分支命名而已,這裏僅僅是新建了分支,並沒有其他操作,所以他默認指向原來的提交記錄。
現在,我們不僅要有新分支,而且新分支指向不同的提交記錄,怎麼辦?當然是用git commit啦。
執行

git commit

在這裏插入圖片描述
這裏爲啥master前進了?
這是必須的,因爲*星號表示當前分支,我們雖然新建了分支,但是當前分支,也就是最下端我們能看到的還是master,所以newImage被放到了上面,所以,要想以後在newImage上提交東西,必須先進行切換。

git checkout <name>

這裏我們先不輸入 git commit,而是在這之前使用git checkout。

執行

git checkout newImage
git commit

在這裏插入圖片描述
可以看到,先切換到newImage後,星號落在了newImage上,然後再git commit,就可以完成新分支指向新提交記錄的創建,不會影響老分支和老提交記錄。
那如何讓兩個分支沒有關係,獨立發展呢?很簡單,只需要切回到master分支,然後再提交一次即可。

執行

git checkout master

在這裏插入圖片描述
可以看到 *號移動到master那裏了。

然後再次執行

git commit

在這裏插入圖片描述
發現兩個分支真正的完成了分離。
是不是覺得很nice,以後想要切換就可以用git checkout來回移動,左右橫跳啦!

git merge <name>

分支建立多了,自然需要合併,這裏的merge就是這個功能,兩個分支,合併後的名字屬於誰呢?一猜就知道,當前分支是哪個,合併後的分支就是哪個名字,也可以說在當前分支master上執行 git merge bugFix,就是將bugFix歸到master中,更好理解。

在這裏插入圖片描述
執行

git merge bugFix

在這裏插入圖片描述
爲了表示方便,將bugFix的顏色轉換一下,左邊的命令還沒有執行。
在這裏插入圖片描述
現在我們有兩個分支master和bugFix,我們希望兩個分支都擁有所有的修改的記錄,所以我們還要再執行一次git merge master,但是由於當前分支在master,我們還要先切換到bugFix中。
執行

git checkout bugFix
git merge master

在這裏插入圖片描述

這樣兩次合併,就使得兩個分支都擁有全部的提交記錄了,我們新建的兩個分支,最終又合爲一體。

小結

上面的東西雖然少,但是足夠完成很多工作,授人以魚不如授人以漁,網站如下:
learngitbranching
我曾在幾個月前試圖學習git,但是無論是博文還是視頻往往都有講述不清楚或者引起歧義的地方,只有真正的可視化才能讓人弄懂,致敬作者!
一起加油學習git吧,少年。

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