Git是什麼?
Git為現今業界最普遍的程式版本管理系統,所以一定要學Git!
Git基本指令
git init
:初始化
在專案資料夾的目錄輸入,git init
就會自動產生一個隱形資料夾.git
git init
git status
:查看add狀態
git status
隨時查看檔案的狀態有沒有被track。
git add
:把檔案加入Stage
git add //加入Stage
git rm --cached //取消Stage
git add .
與git add --all
的差異
- git add .:
- 只限於cd目錄底下的檔案會被add
- git add --all:
- 這個目錄的母層或子層裡的檔案都會被add
git commit
:把檔案加入local repository
假設編號是7ff8ec5。如果想取消剛剛的commit,可以使用7ff8ec5^代表退一回上一步,如果想退回前兩步就打7ff8ec5^^,以此類推。
git commit //會進入vim,需要寫入"更改的內容、地方"
git commit -m "更改的內容、地方" //直接跳過vim
git reset [編號]^ //取消commit
如果commit
後,版本後面有改動記得要先add
一次再commit
!
也可以使用git commit -a -m "更改的內容、地方"
,一次做到add
、commit
、輸入訊息,但此方法僅限於舊檔案(已經有被add過的檔案)。如果是新檔案(還沒被add的檔案)是無效的。
git log
:查看commit的資料
git log
git log --oneline //精簡版
git log --graph //多了路線圖
git branch
:支線
每個支線都有自己不同的任務,預設為master。
git branch //開新支線
git branch -v //查看支線
git checkout
:切換支線
git checkout [支線名字]
git merge
:合併支線
git checkout [主支線名稱] //merge前先checkout到主支線
git merge [副支線名稱] //再將new支線合併到master裡
git remote add
:添加遠端數據庫
假設自定義簡稱為test,之後我們要push時直接打test就代表了整個url。
git remote add [自定義簡稱][github的url]
git push
:添加遠端數據庫
假設剛剛remote add
自定義簡稱為test
,要push時則打成:git push test [支線名稱]
。
git push [自定義簡稱] [分支名稱]
git pull
:從遠端數據庫拉回到本地
git pull [自定義簡稱] [分支名稱]
git colone
:從遠端數據庫下載一份回本地
git clone [github的url]
git reset
:重新reset
- git reset
- --mixed:檔案退回working directory
- --soft:檔案退回staging area
- --hard:檔案直接掰掰
--soft:
--hard:
怎麼救被--hard的檔案?
reset回原本的檔案就可以了!
示範中輸入git reset --hard 47b4892
後,看看git log裡的資料的確47b4892
回來了!
Git的示意圖
畫了一張圖,可以更清楚git指令之間的關係:
VIM操作指令
- Nomal模式:
- :w 存檔
- :q 離開
- :wq 存檔離開
- Insert模式:
- i 進入insert模式
- o 跳行
- a append
- ESC 進入Nomal模式
參考資料: