小姐姐用動畫圖解Git命令,一看就懂!

不管是開發、運維,仍是測試,你們都知道Git在平常工做中的地位。因此,也是你們的必學、必備技能之一。以前公衆號也發過不少git相關的文章:css

Git這些高級用法,喜歡就拿去用!
一文速查Git經常使用命令,搞定版本控制照作就ok
大牛總結的Git使用技巧,寫得太好了!
掌握這10條規範,輕鬆搞定Git!git

可是呢,民工哥,也常常在後臺看到讀者說,命令太多了很差記啊,時間長了不用又忘記了等等的吐槽。是啊,要學一門技術真難,況且如今技術更新、迭代這麼快.....segmentfault

因此,對於學習Git這門技術,要是有一個一看就懂,一學就會的入門資料就行了。前不久,國外的一位小姐姐寫了一篇這樣的文章《CS Visualized: Useful Git Commands》。做者是來自英屬哥倫比亞的小姐姐 Lydia Hallie,在這篇文章裏面,她經過生動形象的動畫,以更加直觀的方式,向開發者展現 Git 命令中的 merge、rebase、reset、revert、cherry-pick 等經常使用騷操做的具體原理。運維

下面就給你們帶來一些實例分享:學習

一、git merge測試

fast-forward模式fetch

640.gif

no-fast-forward模式動畫

640 (1).gif

合併衝突修復的過程 ,動畫演示以下:spa

640 (2).gif

二、git rebase翻譯

git rebase 指令會複製當前分支的全部最新提交,而後將這些提交添加到指定分支提交記錄之上。

640 (4).gif

git rebase還提供了 6 種操做模式:

  • reword:修改提交信息
  • edit:修改此提交
  • squash:將當前提交合併到以前的提交中
  • fixup:將當前提交合併到以前的提交中,不保留提交日誌消息
  • exec:在每個須要變基的提交上執行一條命令
  • drop:刪除提交

以 drop 爲例:
640 (5).gif

以 squash 爲例:

640 (7).gif

三、git reset

如下圖爲例:9e78i 提交添加了 style.css 文件,035cc 提交添加了 index.js 文件。使用軟重置,咱們能夠撤銷提交記錄,可是保留新建的 style.css 和 index.js 文件。

640 (6).gif

Hard reset硬重置

硬重置時:無需保留提交已有的修改,直接將當前分支的狀態恢復到某個特定提交下。須要注意的是,硬重置還會將當前工做目錄(working directory)中的文件、已暫存文件(staged files)所有移除!以下圖所示:

640 (8).gif

四、git revert

舉個例子,咱們在 ec5be 上添加了 index.js 文件。以後發現並不須要這個文件。那麼就可使用 git revert ec5be 指令還原以前的更改。以下圖所示:
640 (9).gif

五、git cherry-pick

舉個例子:dev 分支上的 76d12 提交添加了 index.js 文件,咱們須要將本次提交更改加入到 master 分支,那麼就可使用 git cherry-pick 76d12 單獨檢出這條記錄修改。以下圖所示:

640 (10).gif

六、git fetch

使用 git fetch 指令將遠程分支上的最新的修改下載下來。

640 (11).gif
七、git pull

git pull 指令實際作了兩件事:git fetch 和 git merge。

以下圖所示:

640 (12).gif
八、git reflog

git reflog 用於顯示全部已執行操做的日誌!包括合併、重置、還原,也就是記錄了對分支的一切更改行爲。

640 (13).gif

若是,你不想合併 origin/master 分支了。就須要執行 git reflog 命令,合併以前的倉庫狀態位於 HEAD@{1} 這個地方,因此咱們使用 git reset 指令將 HEAD 頭指向 HEAD@{1}就能夠了。
640 (14).gif

以上就是民工哥今天給你們帶來的分享,若是本文對你有所幫助,請點個在看與轉發分享支持一下,感謝你們。咱們一塊兒學習,共同進步!!!

原做者:莉迪亞·哈莉(Lydia Hallie)
原文:https://dev.to/lydiahallie/cs...
民工哥經過翻譯做者原文再加上一些我的理解總結而成,版權歸原做者全部,純屬技術分享,不做爲商業目的。
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息