jas0nhuang

[筆記] Git 基礎複習

昨天除了試著把 week1/hw1 完成,也看了一下 week2、week3 的作業,在做 hw1 的時候覺得自已 Git 的基礎還要再複習一下,所以今天就先把 Git 基礎複習一遍。

版本控制概念

  1. 保存不同版本的檔案
  2. 版本分支(例如新功能分支與除蟲分支),分支各別完成之後可以合併
  3. 記錄各版本之間的差異
  4. 排除不必被追蹤的檔案
  5. 協作功能

自建版本控制系統

  1. 每個版本新開資料夾
  2. 將不必被追蹤之檔案移出
  3. 各版本資料夾以亂數命名避免重複/衝突
  4. 建立一個歷史記錄檔,記錄各資料夾之時間順序

Git 基礎

其實可以參考我自已之前的筆記:猴子學 git (一) 基本概念與本地端操作,只是有些細節沒有寫到。

  • git init 初始化(其實就是在資料夾裡建立一個 .git/ 資料夾,讓 git 可以對整個資料夾的檔案進行版本控制,沒事可以進去看看 .git/ 裡面都存了些什麼東西)
  • git status 查詢版本控制狀態
  • git add 檔案加入版本控制
  • git rm –cached 檔案移除版本控制
    (tracked、stage、untracked……等狀態可以參考下面這張圖)git stats
  • git commit 提交新版本
    • 快速方法:git -am “XXXX”

下面這些是我之前比較沒用過的指令:

  • git log 查看(提交)歷史記錄(可以加 –oneline 只顯示簡短的提交記錄)

  • git checkout 切換提交版本

    • 加上 {commit id} 可以進去指定的 commit 版本
    • 加上 master 可以回到目前最新版本
  • .gitignore 檔案裡可以放入不想加入版本控制的檔名

Git 分支

為什使用分支

使用分支的場景其實很容易想像,無論是個人或是團隊專案,想要加上新功能或是修改內容而不影響穩定版本的運作,最好的方式就是開一個分支。

分支指令

git branch 不提供參數的話會列出所有分支名稱,並且顯示現在所在分支位置;提供參數「新分支名」則會建立一個新的分支
git checkout 加上分支名可以切換到所選分支

分支的運作原理

這部分比較複雜,Pro Git 書中有一整個章節在講分支(第三章),可能也要對 Git 底層的運作原理(Pro Git 這本書第十章的內容)有點概念才行。

今天花了點時間試著把 Git 的運作原理看了一下,明天再戰……