安裝完 Git 之後,可以使用 git config CLI 取得 Git 設定組態參數,git config 是一個記錄了 git 操作的所有基本檔案資料。 比方說 :

  • git init 創建時預設的 branch 名稱
  • 寫 git commit 的顯示模板
  • 當 push github 時的使用者資料

等等設定都可以在 git config 中調整修改。而在不同專案中,可能需要使用不同的 Git username 和 email, 例如個人專案中想使用「私人 Email」 ; 而在公司專案中則需要使用「公司 Email」,若每次切換專案時都要手動更改 Git 配置會十分麻煩。 這時 Git Include 可以根據資料夾自動套用對應的用戶設定,而無需每次手動調整。

Continue reading

Git Worktree 筆記

軟體開發有許多的已經定義的管理工作流程,例如說 Git Flow、Github Flow、GitLab Flow 等等,而這些共通點是都以 Branch 來區分不同階段的開發狀態 ; 在研發過程中,也經常需要在不同的 Branch 之間切換來處理不同的任務。這時 git worktree 就很大程度派上了用場,它可以讓同一個 Git Repository 同時擁有多個工作目錄且每個目錄綁定不同 Branch,各個工作樹之間是互相獨立的。

這樣就不用在「 code 寫到一半 」時,遇到臨時需要切換到不同的分支作業,卻因為「 正在更動的檔案 」與「 目標分支上的檔案」有衝突而要另外處理,故 git worktree 很適合拿來處理緊急 hotfix 或者另外的 code-review。

Continue reading

GitHub Flow

雖然使用了 Git 作為版本管理工具,但每個人對於分支的認知可能不同,故造成每次 commit 到不同分支之後,要合併要回哪個分支可能會有歧義,這時就可參考一些已存在的 Workflow 規範,只要團隊遵守這樣的 branch 的 commit 和 merge 規則,就可以有一致性。

每個 Workflow 規範都不太一樣,常見有: Git Flow、GitHub Flow、GitLab flow ,主要都是希望就算 Project 越來越大協作人員越來越多,也能有效管理 Git Branch,那這邊會以 GitHub Flow 為主要說明,但也會筆記分析了解其他不同策略的優缺點。

Continue reading

軟體工程師每天都會用 Git 進行版控,雖然是經常使用,但有一些差異可能還真的沒有好好想過,所以前面有文章補充了一些名詞解釋和功能比較。Git 使用會遇到這是各樣的情形,雖然大部分都千篇一律,但有一些實際面對到的情況,是蠻值得記錄下來的! 所以這篇文章就筆記一下做一些 CLI 操作補充,另外也把一些踩坑的筆記統整。若以後有想到類似情境,就直接來參考這篇文章。

Continue reading

一般來說 Git 的操作會涉及到幾個區域

  • 硬碟區 disk : 檔案存放的一般資料夾,也會被稱為 workspace
  • 暫存區 staging : 保存 git add 紀錄的地方,也被稱為 index
  • 本地端 git local : 保存 git commit 紀錄的地方,也被稱為 repository
  • 遠端 git remote : git push 的倉儲,如 GithubGitlab 等等

而各個之間狀態變化的簡單關係如下圖所示 :

以上就是最基本的使用和定義。

Continue reading

SSH Key

SSH 是 Secure Shell 的縮寫,為一種通訊協定,會對裝置之間的連線進行驗證加密,安全地傳送 command。通常用於遠端控制伺服器、管理基礎架構和傳輸檔案。SSH 是在應用層和傳輸層上執行的,透過稱為公開金鑰加密,「public key 可供任何人使用」 ; 另一個金鑰為「private key 由其擁有者保密」,兩個 key 相互對應。此外傳輸的數據是經過壓縮的,所以可以加快傳輸的速度。並且許多作業系統,包含 macOS、Linux 都天然支援。

Continue reading

Author's picture

李昀陽 YunYang Lee

Welcome to my Tech Note. You can read some of the chapters below.

Software Engineer

Taiwan