Git 入門 (一):介紹和基本指令

致謝

最初一開始是想要把高見龍先生的「為你自己學 Git」讀完幫自己寫個筆記,還沒認真讀完前,就剛好搭上六角學院創辦人洧杰老師的【Git 特訓班】課程,才能在我無預期的時間內,快速認真地完成此筆記 (原本以為要半年後XD)。

Git 能吃嗎?

Git 是分散式的程式碼版本控制軟體,Git 本身關心檔案的整體性是否有改變,但多數的版本控制系統如 CVS 或 Subversion 系統則在乎檔案內容的差異。

Git 拒絕保持每個檔案的版本修訂關係。因此檢視一個檔案的歷史需要遍歷各個 history 快照;Git 隱式處理檔案更名,即同名檔案預設為其前身,如果沒有同名檔案則在前一個版本中搜尋具有類似內容的檔案。

因此可以看出和前一份檔案的差異,如下圖。

Git 軟體安裝和使用方法

Git 軟體安裝

  • 指令
  • GUI介面:SourceTree(較多人使用)GitHub Desktop

終端機指令

設定個人資料

  • 輸入姓名:git config --global user.name "gon"
  • 輸入個人的 email:git config --global user.email "gonsakon@gmail.com"
  • 查詢 git 個人資料:git config --list

基本指令架構



Git 常用指令

  • 初始化儲存庫: git init
  • 查詢當前狀態:git status
  • 將檔案加入到「索引/暫存區」:git add .
  • 將「索引/暫存區」檔案放入本地端儲存庫:git commit -m "修改內容"
  • 觀察 commit 歷史紀錄: git log
  • 更新遠端儲存庫: git push origin master

git push <遠端分支名稱>:上傳本地端分支修改內容到,標籤名為 origin 的遠端數據庫的 master 分支。

如果只輸入 git commit,會進入 vi
如果不在純文字編輯模式 (insert mode),可以輸入 i, I, o, O, a, A, r, R 其中一個進入 insert mode。
按下 esc 退出鍵,「編輯模式」會更改為「一般指令模式」。
在一般指令模式輸入 : 跳到最底下一列, wq 存檔 (write) 並離開 (quit)。

參考資料:
鳥哥的 Linux 私房菜 - 9.2 vi 的使用

常用環境設定

指令碼前面的 $ 不需要輸入
(其實我並不清楚指令碼前的 $ 表示什麼意思,完全查不到,但是我猜是在 shell 中輸入的意思,shell 就是外殼、介面、終端機,麻煩請知道的大神指證我或告訴我正確的解釋,謝謝!)
所以 $ 後面的指令才是重點,有些網站提到指令碼時並不會出現 $

更換 Git 編輯器:

1
$ git config --global core.editor "code --wait"

設定 Git 指令縮寫:

1
2
3
4
$ git config --global alias.co checkout
$ git config --global alias.br branch
$ git config --global alias.st status
$ git config --global alias.ci commit

參考資料:
六角學院 -「Git & GitHub 入門」線上講義
六角學院 -「Git 遠端 Repository 操作」線上講義

Git 入門 系列文

Git 入門 (一):介紹和基本指令 ← 你在這~
Git 入門 (二):遠端操作 (使用 GitHub 的伺服器)、檔案狀態與還原
Git 入門 (三):分支 (branch)、下載遠端儲存庫 (clone)
Git 入門 (四):取得遠端新檔案並合併 (fetch + merge = pull)、衝突 (conflict)