【題解】[JLOI2011] 飛行路線
git基礎操作
基礎知識
Git分為三種狀態,你的檔案可能處於其中之一:已修改(modified),已暫存(staged),已提交(committed)。分別對應三個邏輯區:工作區,暫存區,倉庫(資料目錄)。
操作演示
git init test
此命令初始化一個新本地倉庫,它在工作目錄下資料目錄生成一個名為.git的隱藏資料夾。git會將所有的檔案,目錄,提交等轉化為git物件,壓縮儲存在這個資料夾當中。
git init 命令後面不加引數表示把當前目錄變為倉庫,如下表示在當前目錄下建立test倉庫
git status
檢視當前git狀態
這裡表示的是暫存區沒有檔案,可以提交到暫存區的檔案有test1.txt和test2.txt
我們要用git add
來提交到暫存區(也可以理解為建立跟蹤)
git add
git commit
將檔案由暫存區提交到倉庫
-m 引數表示提交時的備註
可以看到儘管我們提交了test1.txt檔案,但是我們還是在跟蹤test1.txt檔案
這時我們再修改test1.txt檔案,在使用
git diff test1.txt
可以看到,當我們沒有修改test1.txt時,使用git diff
命令時,是不會有顯示的,當我們進行修改了之後,再diff就有顯示,git diff
表示工作區和暫存區的區別,這時侯我們還沒有把工作區修改的檔案提交到暫存區,自然有顯示,當提交了就沒有顯示了
git log
我們使用git log
檢視提交到倉庫區的記錄
檢視下歷史記錄,HEAD我的理解就是指標,指到最後提交的版本,提交的越早的在最低下。
這是同時修改個檔案的git diff效果
這是同時提交多個檔案到倉庫的效果,還是以最近一次提交為head指標,但是區分不出具體提交的檔名。
git reset --hard [版本號]
可以回退到之前一個版本,這時test1.txt的內容對應這個版本的內容
git reflog
當我們使用git reset
進入之前的版本號後,會看不到最先開始的版本號,這時我們可以通過git reflog
來進行檢視。