The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

在高度網路管制的企業內部如何設定 Git 連接 Azure Repos 上的儲存庫

我每年都會有好幾場 Azure DevOps 的企業內訓,最近的一場是在一家金融業的企業,他們的網路管制非常嚴格,但是有特別開放 Azure DevOps Services 的雲端服務,所以基本上連線是正常的,唯獨 Git 連接 Azure Repos 上的儲存庫時,就會遇到連線問題。今天這篇文章我就來說說解決方案。

... 繼續閱讀 ...

如何以最小下載量的方式取得 Git Repo 中特定資料夾下的特定檔案類型

我在一小時 No-Code 打造可搜尋的 AI 知識庫系統 (RAG)課程中有準備一個知識庫範例,可以將整份 angular.dev 網站轉成知識庫所需的文字檔案。由於 angular.dev 網站內容都是開源的,放在 GitHub 的 angular/angular Repo 中的 adev 目錄下。但這個 Repo 有 30,486 個 Commits,檔案數與下載量都非常大,如果只想取得特定目錄下的檔案,就需要動用一些 Git 的進階技巧,今天我想來分享一下我是如何快速下載 Git Repo 中特定資料夾下的所有 *.md 檔案,並且批次轉成 *.txt 的過程。

... 繼續閱讀 ...

深入探討 Git 中的 Unreachable (無法到達的) 物件與清理方法

在使用 Git 進行版本控制時,我們只要使用 git rebasegit commit --amendgit reset 多多少少都會殘留一些無法到達的物件 (unreachable blob or commits)。這些無法到達的物件雖然不會直接影響我們的日常工作,但它們會佔用儲存空間,並可能在某些情況下引起混淆,例如明明檔案不多,但是卻佔用大量磁碟空間。今天我將深入探討什麼是 unreachable 物件,並詳細介紹如何有效地清理它們。

... 繼續閱讀 ...

介紹好用工具:CodeGPT (使用 GPT 自動化產生 Git 的 Commit Log 訊息)

各位可能已經知道 Visual Studio Code v1.84GitHub Copilot Chat 最近內建了一個 Commit message generation 功能,可以自動產生 Git Commit 需要的 Log,不過我覺得第一版功能相當殘缺,常常言不及義,也不能客製化提示內容(Prompts),不太好用。我自己則是找到一套 CodeGPT 工具來幫我做到一樣的事,用了一段時間覺得真的相當實用,所以打算透過這篇文章介紹給大家。

... 繼續閱讀 ...

使用 Git 的部分複製功能 (Partial Clones) 快速下載專案原始碼

由於 Git 分散式的特性,所以每個開發者都可以在自己的電腦上建立一個完整的 Git 儲存庫,這樣就可以在沒有網路的情況下進行開發,而且每個開發者都可以在自己的電腦上建立多個分支,這樣就可以在開發新功能時,不會影響到其他開發者的工作。不過,缺點就是在 git clone 的時候會大量的下載資料,尤其是專案很大的時候,這個問題就會特別明顯了!有沒有辦法可以解決呢?可以的,這篇文章我將分享 Git 的 Partial Clone (部分複製) 功能,讓你更有效率的下載專案原始碼!

... 繼續閱讀 ...

使用 git worktree 管理一個本地儲存庫下的多個工作目錄副本

不知道大家是否曾經有過這樣的需求:在一個 Git Repo 下有好幾個分支,但你在某些特殊情況下需要「同時」開啟不同分支的程式碼做開發,所以你並不想要經常的切換分支,因為當你要切換分支時,在執行 git checkout 之前都要先做一次 git stash 把尚未 commit 的變更先儲存起來,在另一個分支開發完成後又要切換回來,並透過 git stash pop 把暫存的變更復原,這樣的動作實在是太麻煩了。這個需求或許並不常見,但如果你遇到的話,那麼這篇文章應該就能幫助到你。

... 繼續閱讀 ...

使用 ChatGPT 學習 Git 版本控管

我最近又有一場企業內訓是關於 Git 教育訓練,大家應該都知道 Git 是一個非常知名的版本控制系統,它可以追蹤文件的更改、協調多人協作、還原過去的版本等等。學習 Git 可以幫助你更好地管理你的程式碼,並提高團隊協作的效率。雖然說 Git 是軟體開發行業中不可或缺的技能,但市場上永遠都有新進者,他們想學習 Git,但不知道從何入手。今天這篇文章我打算提供一系列學習 Git 版本控管的提示詞 (Prompt),幫助 Git 新手藉助 ChatGPT 快速瞭解 Git 版本控管。

... 繼續閱讀 ...

如何從 WSL 叫用 TortoiseGit 的 Show log 並在出現錯誤訊息視窗時複製訊息

因為我有些專案是在 WSL 環境下開發,我最近嘗試從 WSL 叫出 TortoiseGitShow log 視窗,但是卻頻繁的遇到 Failed to get UnRev file list 的問題 (如下圖示),解決方法其實很簡單,只要執行一下錯誤訊息中的命令就好,但這個視窗無法選取文字,我要怎麼複製呢?原來有個不在文件中的密技可以用!

... 繼續閱讀 ...