Git 版本控制教學

Git 版本控制教學 - submodule

Git 可以做到 repository 中嵌入其他 git repositories, 相當於版本控制原本的 repository 之外,也把內嵌的 repositories 也納入版本控制的範圍,這功能被稱為 submodule

不過 submodule 並不是將內嵌 repository 的所有檔案都做額外的版本控制,而是類似於做一個指標(pointer),將 submodule 的版本指向內嵌的 repository 的某 1 個 commit id 。

Posted on  Dec 26, 2022  in  Git 版本控制  by  Amo Chen  ‐ 4 min read

Git switch 指令教學

Git switch 指令是 Git 2.23 版本開始新增的一個指令,它用於切換分支(branch)。

因為以往使用 git checkout 不僅可以還原檔案,也可以用來切換分支,如果有檔案剛好跟分支名稱相同,就容易造成混淆⋯⋯。

所以 git switch 的出現,就是為了分擔 git checkout 的職責,讓切換分支的功能全權由 git switch 負責,也讓 git 的指令有明確的分工並增加易用性(不過 git checkout 依然有向下相容切換分支的功能)。

本文是關於 git switch 指令的簡單教學。

Posted on  Mar 2, 2023  in  Git 版本控制  by  Amo Chen  ‐ 2 min read

以 bfg 指令清除含密碼、金鑰的 Git commits

眾所周知,版本控制系統會將所有的變更都存起來,因此我們能夠隨意回溯到任一版本,這些變更也包含你不小心提交存有機密資料的檔案,或是帳號密碼等字串。

對於版本控制不熟的使用者來說,可能會以為再提交 1 個已經刪除機敏資料的 commit 就安全了,實則不然,有心人士依然可以透過回溯版本或者在 .git 版本控制系統的資料夾內用工具撈出各種疑似帳號密碼的字串,進而入侵你的系統。

實際上也確實有數起資安事故是由於版本控制系統中含有帳號密碼等資訊所造成。

所以要從清理機敏資料,一定要連版本控制系統內的變動紀錄都要一併清理才安全!

本文將教導如何以 bfg 指令安全地清除含有密碼、金鑰等機敏資料的 commits 。

Posted on  Nov 8, 2023  in  Git 版本控制  by  Amo Chen  ‐ 3 min read