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模式
參考資料:
![[C#] 檢查 Sql Injection 非法字元](https://static.coderbridge.com/images/covers/default-post-cover-1.jpg)

