無論是開發、運維,還是測驗,大家都知道Git在日常作業中的地位,所以,也是大家的必學、必備技能之一,之前公眾號也發過很多git相關的文章:
Git這些高級用法,喜歡就拿去用!
一文速查Git常用命令,搞定版本控制照做就ok
大牛總結的Git使用技巧,寫得太好了!
掌握這10條規范,輕松搞定Git!
但是呢,民工哥,也經常在后臺看到讀者說,命令太多了不好記啊,時間長了不用又忘記了等等的吐槽,是啊,要學一門技術真難,何況現在技術更新、迭代這么快.....
所以,對于學習Git這門技術,要是有一個一看就懂,一學就會的入門資料就好了,前不久,國外的一位小姐姐寫了一篇這樣的文章《CS Visualized: Useful Git Commands》,作者是來自英屬哥倫比亞的小姐姐 Lydia Hallie,在這篇文章里面,她通過生動形象的影片,以更加直觀的方式,向開發者展示 Git 命令中的 merge、rebase、reset、revert、cherry-pick 等常用騷操作的具體原理,
下面就給大家帶來一些實體分享:
1、git merge
fast-forward模式
no-fast-forward模式
合并沖突修復的程序 ,影片演示如下:
2、git rebase
git rebase 指令會復制當前分支的所有最新提交,然后將這些提交添加到指定分支提交記錄之上,
git rebase還提供了 6 種操作模式:
- reword:修改提交資訊
- edit:修改此提交
- squash:將當前提交合并到之前的提交中
- fixup:將當前提交合并到之前的提交中,不保留提交日志訊息
- exec:在每一個需要變基的提交上執行一條命令
- drop:洗掉提交
以 drop 為例:
以 squash 為例:
3、git reset
以下圖為例:9e78i 提交添加了 style.css 檔案,035cc 提交添加了 index.js 檔案,使用軟重置,我們可以撤銷提交記錄,但是保留新建的 style.css 和 index.js 檔案,
Hard reset硬重置
硬重置時:無需保留提交已有的修改,直接將當前分支的狀態恢復到某個特定提交下,需要注意的是,硬重置還會將當前作業目錄(working directory)中的檔案、已暫存檔案(staged files)全部移除!如下圖所示:
4、git revert
舉個例子,我們在 ec5be 上添加了 index.js 檔案,之后發現并不需要這個檔案,那么就可以使用 git revert ec5be 指令還原之前的更改,如下圖所示:
5、git cherry-pick
舉個例子:dev 分支上的 76d12 提交添加了 index.js 檔案,我們需要將本次提交更改加入到 master 分支,那么就可以使用 git cherry-pick 76d12 單獨檢出這條記錄修改,如下圖所示:
6、git fetch
使用 git fetch 指令將遠程分支上的最新的修改下載下來,
7、git pull
git pull 指令實際做了兩件事:git fetch 和 git merge,
如下圖所示:
8、git reflog
git reflog 用于顯示所有已執行操作的日志!包括合并、重置、還原,也就是記錄了對分支的一切更改行為,
如果,你不想合并 origin/master 分支了,就需要執行 git reflog 命令,合并之前的倉庫狀態位于 HEAD@{1} 這個地方,所以我們使用 git reset 指令將 HEAD 頭指向 HEAD@{1}就可以了,
以上就是民工哥今天給大家帶來的分享,如果本文對你有所幫助,請點個在看與轉發分享支持一下,感謝大家,我們一起學習,共同進步!!!
原作者:莉迪亞·哈莉(Lydia Hallie)
原文:https://dev.to/lydiahallie/cs...
民工哥通過翻譯作者原文再加上一些個人理解總結而成,著作權歸原作者所有,純屬技術分享,不作為商業目的,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/14128.html
標籤:其他
上一篇:【新】idea激活碼,jetbrains全系列最新2020激活碼和破解補丁(親測可用),可免費使用69年
下一篇:Ansible簡明教程
