Git本地容器常用指令總結
1.背景
近日在拜讀廖雪峰大牛的git教程,確實猶如大家公認的是目前網上最為簡潔易懂而且全面的教程。由於校園網問題導致不能訪問github,因此就先整理一下從廖大牛那學來的一些本地容器常用的指令。
2.操作
1)安裝git
sudo apt-get install git
2)建立本地倉庫repository,為git表明“哥我要進行版本控制的檔案在這個檔案中哦“這意思。(這裡假設在GIT資料夾下建立倉庫。)
cd GIT
git init
執行後,GIT目錄下會生成一個隱藏的.git資料夾。
3)往倉庫中新增檔案,引用廖大牛的原話是
“首先明確一下,所有的版本控制系統,其實只能跟蹤文字檔案的改動,比如TXT檔案,網頁,所有的程式程式碼等等,Git也不例外。“
二進位制檔案(如圖片視訊等)是不行的,所以我們一般是用來對原始碼進行版本控制的。
先touch一個新檔案test.txt,內容任意。再執行
git add test.txt
告訴倉庫我新增一個要版本控制的檔案test.txt了。可以git add多個檔案,都會先提交給git的暫存區,等最後一併提交。
可以隨時執行
git status
檢視當前倉庫的資訊。
4)推送當前版本(最近add的版本)給倉庫。
git commit -m "do something"
-m 是附加訊息即這個版本是什麼或者修改者動了什麼。需要注意的是,它只會commit那些add後的檔案,假如你在add了一次test.txt,隨後又執行了修改,那麼它只會commit add時的text狀態,想要提交修改後的,再add一下即可。
5)如果你在本地對test.txt進行了自己的修改,內容一多就忘了修改了什麼,可以執行diff來檢視。
git diff test.txt
此命令會將本地當前的test.txt與倉庫中最新版本的test.txt進行對比,並將結果輸出。
6)版本回退。
先用git log
來檢視需要回退的版本,也就是之前commit的id號,亦即那條SHA1資訊。
git reset --hard commit_id
commit_id一般寫SHA1值的前幾個即可,git會自動查找出來。
7)從之前回到現在。
如果在版本回退後發現也不是想要的,就要從過去回到現在。此時執行git log
是沒有對應的版本資訊的。因此就要換一個命令了,執行git reflog
8)取消修改
如果在對一份檔案不小心進行了一些奇怪的操作,同時自己也忘了具體是什麼,也不要慌,可以撤銷相應的修改。
git checkout -- test.txt
git checkout有兩層作用,同樣這裡引用廖大牛的總結原話比較清楚一點:
一種是test.txt自修改後還沒有被放到暫存區,現在,撤銷修改就回到和版本庫一模一樣的狀態;
一種是test.txt已經新增到暫存區後,又作了修改,現在,撤銷修改就回到新增到暫存區後的狀態。
總之,就是讓這個檔案回到最近一次git commit或git add時的狀態。
9)刪除檔案
如果你執行了rm test.txt
即把test.txt給刪除了,同時又不想在倉庫中保留,那麼執行
git rm test.txt
git commit -m "remove the test.txt"
這就從倉庫中把它給刪了。而另外一種情況是你不小心誤刪的,那麼也別急,checkout一下即可恢復~
git checkout -- test.txt
你會發現test.txt又回來了:)