在使用 Git 進行版本控制時,我們只要使用 git rebase
、git commit --amend
或 git reset
多多少少都會殘留一些無法到達的物件 (unreachable blob or commits)。這些無法到達的物件雖然不會直接影響我們的日常工作,但它們會佔用儲存空間,並可能在某些情況下引起混淆,例如明明檔案不多,但是卻佔用大量磁碟空間。今天我將深入探討什麼是 unreachable 物件,並詳細介紹如何有效地清理它們。
... 繼續閱讀 ...
各位可能已經知道 Visual Studio Code v1.84 與 GitHub Copilot Chat 最近內建了一個 Commit message generation 功能,可以自動產生 Git Commit 需要的 Log,不過我覺得第一版功能相當殘缺,常常言不及義,也不能客製化提示內容(Prompts),不太好用。我自己則是找到一套 CodeGPT 工具來幫我做到一樣的事,用了一段時間覺得真的相當實用,所以打算透過這篇文章介紹給大家。
... 繼續閱讀 ...
由於 Git 分散式的特性,所以每個開發者都可以在自己的電腦上建立一個完整的 Git 儲存庫,這樣就可以在沒有網路的情況下進行開發,而且每個開發者都可以在自己的電腦上建立多個分支,這樣就可以在開發新功能時,不會影響到其他開發者的工作。不過,缺點就是在 git clone
的時候會大量的下載資料,尤其是專案很大的時候,這個問題就會特別明顯了!有沒有辦法可以解決呢?可以的,這篇文章我將分享 Git 的 Partial Clone (部分複製) 功能,讓你更有效率的下載專案原始碼!
... 繼續閱讀 ...
不知道大家是否曾經有過這樣的需求:在一個 Git Repo 下有好幾個分支,但你在某些特殊情況下需要「同時」開啟不同分支的程式碼做開發,所以你並不想要經常的切換分支,因為當你要切換分支時,在執行 git checkout
之前都要先做一次 git stash
把尚未 commit 的變更先儲存起來,在另一個分支開發完成後又要切換回來,並透過 git stash pop
把暫存的變更復原,這樣的動作實在是太麻煩了。這個需求或許並不常見,但如果你遇到的話,那麼這篇文章應該就能幫助到你。
... 繼續閱讀 ...
我最近又有一場企業內訓是關於 Git 教育訓練,大家應該都知道 Git 是一個非常知名的版本控制系統,它可以追蹤文件的更改、協調多人協作、還原過去的版本等等。學習 Git 可以幫助你更好地管理你的程式碼,並提高團隊協作的效率。雖然說 Git 是軟體開發行業中不可或缺的技能,但市場上永遠都有新進者,他們想學習 Git,但不知道從何入手。今天這篇文章我打算提供一系列學習 Git 版本控管的提示詞 (Prompt),幫助 Git 新手藉助 ChatGPT 快速瞭解 Git 版本控管。
... 繼續閱讀 ...
現在資安意識抬頭,許多東西都開始採用「零信任」的基礎來進行規劃。今天這篇文章,主要針對在 CI/CD 的環境下,如何透過 Personal Access Token (PAT
) 來存取 Git 儲存庫。
... 繼續閱讀 ...
因為我過往建立了數十個不知道何時建立的 PAT
(Personal Access Token) 金鑰,為了避免有 PAT 不小心外洩,索性就把我個人在 Azure DevOps Services 上的 PAT
全部清除,然後所有自動化作業都壞了,還好很容易修理。除此之外,我也修改了個人密碼,結果導致本機要透過 git clone
下載 Azure Repos 上面的原始碼也都失效。但重點是,雖然認證失敗,卻不會跳出讓我重新登入,原因是「使用者認證」被快取了,這篇文章我要來說說清除「快取」的方法!
... 繼續閱讀 ...
我們現在有越來越多的專案都是前後端分離的架構,所以在一個 Git Repo 裡面同時放前後端程式碼是很常見的狀況。不過,問題來了,如果前後端分離的很乾淨,若是前端人員不想要看到「後端」的原始碼,那 Git 有辦法做到「部分取出」的功能嗎?是的,還真的有!這篇文章我就來說說這個好用的功能。
... 繼續閱讀 ...
今天被問到一個關於 Git 版控的問題,同事提到我們有個網站專案的 Repo 裡面有個 *.svg
檔案,之前 git commit 的時候使用 helloWorld.svg
這樣的檔名,但是部署的時候發生錯誤,客戶告知必須用英文小寫的檔名才能正常運作,所以他就來修改一下檔案名稱,結果卻發現 Git 怎樣都無法修改檔名大小寫部分,問我該怎麼辦。這篇文章我就來跟各位說明這個問題的來龍去脈與解決方法。
... 繼續閱讀 ...