學新內容來自廖雪峰老師官方**:之前我們所建立的
learngit
資料夾就是乙個工作區(working directory),工作區里的隱藏目錄.git
屬於git的版本庫(repository),裡面存了很多東西,其中最重要的是stage(或者叫index)的暫存區,還有git為我們自動建立的第乙個分支master
,以及指向master的乙個指標叫head
。
簡單說就是通過git add
將檔案新增到「暫存區」(暫時儲存),通過git commit
把檔案提交更改(更改完成)。之後可以使用git status
檢視檔案情況。
·查詢過往版本
當我們使用git commit
完成檔案更改後,需要看檔案都改動過什麼地方的時候,只需要使用git log
命令檢視。這就是版本控制系統的核心,版本控制。
在使用git log
後我們可以到由近到遠的版本修改記錄,但是若我們對檔案進行改動次數過多,則會顯示非常多的繁瑣內容,讓我們難以抓住重點。這是只需要新增--pretty=oneline
引數,使用git log --pretty=oneline
命令,就可以簡化輸出資訊如:
$ git log --pretty=oneline
ea34578d5496d7dd233c827ed32a8cd576c5ee85 add distributed
cb926e7ea50ad11b8f9e909c05226233bf755030 wrote a readme file
前部大串數字字母的組合是commit id
(版本號),每次修改過的檔案都會有各自對應的版本號,用來以後查詢git歷史記錄。
·退回過往版本
如上,通過git log
找到了過往版本以及各版本的commit id
。在git中,用head
表示當前版本,也就是顯示版本中的最新版。那麼上乙個版本就是head^
,上上個版本就是head^^
,如果往上100個版本寫成head~100
。
現在把當前版本退回到上乙個版本,使用git reset
命令,舉例如下:
$ git reset --hard head^
head is now at ea34578 add distributed
追回後復原
若是對版本追回後還想要復原檔案,在視窗未關閉的前提下,可以向上翻找需要復原的版本號,例如需要復原的版本號前數字為「3628164...」,可以如下操作:
$ git reset --hard 3628164
若是關閉視窗又找不到版本號,則引入新的命令git reflog,用來記錄每一次命令,如:
$ git reflog
ea34578 head@: reset: moving to head^
ea34578 head@: commit: add distributed
cb926e7 head@: commit (initial): wrote a readme file
顯示內容前部出現版本號。
1.head
指向版本為當前版本,想要穿梭在個版本中,使用命令git reset --hard commit_id
2.git log
檢視提交歷史,以便退回。
3.git reflog
檢視命令歷史,以便重回未來。
Git系列2 版本庫 Repository
什麼是版本庫呢?版本庫又名倉庫,英文名repository,你可以簡單理解成乙個目錄,這個目錄裡面的所有檔案都可以被git管理起來,每個檔案的修改 刪除,git都能跟蹤,以便任何時刻都可以追蹤歷史,或者在將來某個時刻可以 還原 我們先要確定要把哪個資料夾裡的檔案進行管理.比如說我桌面上的乙個叫git...
Git學習筆記2 版本控制
1.版本回退 head 當前指標 head 表示向上一層 head n 表示向上n層 git reset hard head 返回到上乙個版本 git reset hard 94bf 返回到指定版本,94bf是指定版本的id穿梭前,用git log可以檢視提交歷史,以便確定要回退到哪個版本。要重返未...
Git(2) 版本控制工具高階
倉庫已經建立好了,接下來就應該去提交該專案中的 接下來只需要去思考是否需要將所有的檔案都加入到版本控制中。git提供了一種可配性很強的機制允許使用者將指定的檔案或目錄排除在版本控制之外,它會檢查 倉庫的目錄下是否存在乙個名為.gitignore的檔案,如果存在的話,就去一行行讀取這個檔案中的內容,並...