都說git 命令難記且難懂,但是如果從立體的角度看待git與git管理的版本,那麼一切都會明朗許多。
大多數的學習教程為了理解git,會繪製幾個圓圈的串聯,每個圓圈代表乙個commit的版本,也就是從時間線上看git 是一串commit。大多數時候這樣的理解是足夠了,但是如果當使用git reset 命令的時候這樣的一串圓圈並不能幫助我們理解git reset 加上--hard、--soft和--mixed這三個引數究竟會發生什麼。
比如git reset commit b --soft, 我們的工作目錄是什麼樣子,stage裡面是什麼?
使用串聯起來的圓圈的模型會讓我們無所適從,而許多人應該都是通過記憶這個命令產生的效果來知道這個命令之後**處於什麼狀態,或者是用多了也就知道了,或者是搜尋一下。
使用git reset 命令的時候,頭腦裡面浮出, 然後想象自己手中拿著一把剪刀,當使用git reset --mixed commit x時,就是把commit x 的紅色的線剪掉,這時候我們就處在commit x的最下面,也就是我們的working dir相當於我們將要把版本x 進行add和commit的時候。
如果使用的是git reset --soft commit x, 就是用剪刀剪掉了commit x的黃色的線,我們這時候處於stage了**,將要把**commit 成x的階段。
如果使用了git reset --hard commit x,就是用剪刀剪掉了 commit x左邊的黑色線條,這時候我們處於commit x的前乙個commit 中,比如x等於b,那麼我們這時相當於剛剛commit了a。
原文首發於:
一把剪刀完成iphone4剪卡
一把剪刀,只有一把剪刀,其他什麼都不需要,尺子 鉛筆 剪卡器統統都是浮雲。作為程式設計師,我的學習心得就是明白原理,當原理明白後,很多東西的理解都是水到渠成。之前我做ios充值時,有一些細節問題問無線的ios開發程式設計師 比如蘋果是什麼時候完成信用卡扣款,我們應該什麼時候確認交易完成等等 結果問了...
一把一把撈大資料 釋放無限價值
電商平台對於傳統經濟是個怎樣的存在?是阻礙還是發展,全看你如何選擇。面對新環境還依然按照傳統模式發展必然會受到阻礙,經濟就是要在新的環境下適應新的發展,只故步自封不會有大發展。一把一把撈讓電子商務與大資料技術進一步融合,釋放無限價值。電商平台對於傳統經濟是個怎樣的存在?是阻礙還是發展,全看你如何選擇...
一把鼻涕一把淚 搭建公網ftp伺服器
至於為什麼要搭建公網ftp伺服器,就當我心血來潮吧。ftp開源工具很多,咱用的是filezilla伺服器。後來為了方便搭建web伺服器,就改成了整合工具xampp。客戶端工具也是filezilla client,用瀏覽器也行。首先內網使用者想搭建公網ftp伺服器第乙個要解決的問題是如何得到公網ip。...