前言
使用 Git 也有一段時間了,但是一直以來都很依賴使用 GUI 來幫忙做事情,甚少使用指令。 在一次 GUI 改版後因為使用 GUI 的回應速度真的是太慢了,所以才開始學習使用指令來做事,也是這時才發現原來使用指令沒有想像中麻煩,也如預期中的非常快速。 因此這邊就我自己的使用心得來分享,也因為我在使用 git 指令時有很多設定是已經在安裝 GUI 時就設定完畢的,所以這邊的常用指令其實是就我個人使用上而言。 像是有很多 remote repository 的設定我不是使用指令來完成的,這部分的指令就之後有機會再補上了。
- 安裝
下載路徑:https://git-for-windows.github.io/
GUI:https://git-scm.com/downloads/guis
下載安裝檔後基本上用預設值並一直按下下一步就好
[圖 Install-1]
[圖 Install-2]
[圖 Install-3]
在 Powershell 更輕易的使用 Git(posh-git):
使用 PsGet 安裝
PsGet => Powershell安裝套件的好幫手
posh-git => 在 powershell 使用 git 的好幫手
|
|
[圖 Install-4]
但若使用這種方式安裝,每次關掉 powershell 要再使用就需要先下個
|
|
才能使用。若不想這麼麻煩的話,打開一個新的 powershell prompt 直接輸入
|
|
這樣就可以免除每次關掉都要再 import module 的窘境。
- 產生 SSH Key (非 Windows 環境使用格式,適合用在 command line 環境中使用)
在 Windows下自產 SSH Key,而且不是 Windows 使用的格式我們需要使用剛剛安裝 Git for windows 時一起安裝的 Git Bash 環境來操作會比較方便。
若是產建 Github 所需要的 SSH Key 可以直接參考 Github 的說明
- 產生 key
|
|
C 這個參數只是給的 commant 可加可不加,只是加上去方便做辨識
b 則是密鑰長度,基本推薦 2048 或 4096
t 則是使用的加密算法,Github 使用的是 RSA 演算法
- 選擇存放位置與設定 passphrase
[圖 SSHKey-1]
執行完成後你應該就會看到指定路徑上面會有兩個檔案,副檔名帶有 pub 字樣的就是 public key,這兩個都是純文字檔案可以用 notepad 打開看看裡面的內容
- 常用指令
add [告訴git哪些檔案要列入追蹤]
常用指令之一,把指定的檔案放入 staged area中,因為 commit 只會把 staged area 的檔案遷入。
|
|
把所有有異動的檔案遷入
|
|
- commit [讓進入stage area的異動變簽入git]
常用指令之一,git 的 commit message 其實可以接受多行,只要不要打最後一個單引號,按下 enter 的話就會跳到下一行去,想要結束的話就把單引號補上去即可。
|
|
- branch [git的強大之處 branch超好開,開免錢]
可以把本機的branch都羅列出來,算是方便一次瀏覽目前該repository的branch狀態。
|
|
常指令之一,通常建議 branch 名稱前面會多帶一層方便做管理,這個範例中 feature 就是這個 branch 的上一層名稱,在 GUI (ex. SourceTree) 中通常會用資料夾來表示。
|
|
[圖 Branch-1]
- stash [保留做到一半的想法]
把該 repository 所有 stash 列出來
|
|
將所有未入 staged area 的異動存入 stash中
|
|
[圖 Stash-1]
- checkout [切換branch]
常用指令之一,將目前的 pointer 所在位置切換到指定的 branch 身上
|
|
常用指令之一,會做兩件事情,先產生一個新的branch,二是將pointer切換到該branch身上
|
|
- remote [設定遠端repository]
將遠端的 ref 資訊顯示出來,在圖示中因為這個 repository 是從 githubclone 來的所以會顯示 ref 來源
|
|
- push [將成果交付出去]
將 local branch develop 的異動推到 remote branch develop
指令型態: git push
|
|
- log [看看歷史過程]
將 branch 的 log 以單行印出
|
|
將 branch 的 log 以圖形印出
|
|
使用漂亮的格式印出
|
|
- 使用 GUI 介面
基本上到這個連結選一個自己喜歡的使用就好,只要懂 Git 的指令就不難理解那些介面的操作。
而個人在 GUI 的推薦上,就推薦 SourceTree 與 GitKraken 這兩套 GUI,其他不是不好用事這兩套太威了。
若是公司的流程有 Git-flow 的話則推薦 SourceTree,若不是使用 Git-flow 的話則推間使用 GitKraken 這套,這是因為 SourceTree 本身自帶 git flow 套件,與 Git -Flow 流程整合得很好。