git log 、git reflog 、git reset
git版本跳**
想實現版本跳轉,需要先了解git的版本的標記,也就是通過這個唯一的標記能定位乙個版本,也就是commit id。
這個commit id是個挺長的字串,因為它是通過sha-1計算出來。(這個字串就跟你硬碟裡的某些磁力鏈結挺像的,嘿嘿嘿!),因為git是分布式的,所以每個人電腦上都有完整**,如果你更新了別人檔案到本機上了,他提交的commit id是簡單的自增數字(1,2,3....),就有可能會和你本機上的commit id衝突,那麼就起不到定位的作用了哈。(對於想問「sha-1可以做到不會重複嗎?」的童鞋,你們去看看sha-1的原理,最好把數字簽名的原理也看了,都挺有意思的哈。再說,如果這個sha-1碼容易產生相同的話,你在使用那些個磁力鏈結時,就不就容易下錯檔案了嘛。)
言歸正傳,首先,我們先查出所有版本的commit id,輸入:git log(顯示所有提交日誌)
這樣看起來不方便,輸入:git log --pretty=oneline
前邊黃色的長字串就是commit id了。
版本跳**git reset
git reset 直接加 commit id 就可以實現版本跳轉(commit id不用全寫,寫到7位就可以了)
但是當開啟test2.txt檔案時,發現檔案根本沒改變。(一臉懵逼)
這個時候要相信程式,沒有報錯就說明操作沒有錯誤,查詢一下git的狀態:git status
這個時候就發現了,原來git內部記錄已經回滾到指定日期的記錄,只是檔案內部沒有回滾,檔案會作為已修改的檔案將與「記錄」不同的內容儲存下來。
如果想檔案內容也回滾:git reset --hard 加上commit id
檢視操作git reflog
如果,回滾之後突然發現這個版本不行,還是要退回剛剛那個版本,但是git log中已經不顯示剛剛那個版本的commit id了。
這個時候就要用到:git reflog
(我做了很多次reset操作,主要看紅箭頭的記錄就行。)
這個時候想回到add4,輸入:git reset b1ca470
git log 檢視版本資訊
git reflog檢視操作資訊
Git學習01 版本控制
版本控制是一種記錄乙個或若干檔案內容變化,以便將來查閱特定版本修訂情況的系統。主要可以分為以下三類 1.1 本地版本控制系統 許多人習慣用複製整個專案目錄的方式來儲存不同的版本,或許還會改名加上備份時間以示區別。這麼做唯一的好處就是簡單。不過壞處也不少 有時候會混淆所在的工作目錄,一旦弄錯檔案丟了資...
Git基礎入門四 版本回退(撤銷修改)
git基礎入門五 分支管理 git基礎入門四 版本回退 撤銷修改 git基礎入門三 建立版本庫和新增修改檔案基本命令 git基礎入門二 工作區和暫存區 git基礎入門一 起源與安裝 1 head指向的版本就是當前版本,上乙個版本就是head 上上乙個版本就是head 當然往上100個版本寫100個 ...
Git學習筆記2 版本控制
1.版本回退 head 當前指標 head 表示向上一層 head n 表示向上n層 git reset hard head 返回到上乙個版本 git reset hard 94bf 返回到指定版本,94bf是指定版本的id穿梭前,用git log可以檢視提交歷史,以便確定要回退到哪個版本。要重返未...