本週,我加深了對 Git 的理解,特別是使用 Git 遙控器。作為先決條件,在處理遠端時熟悉 Git 合併至關重要。上週,我分享了我第一次使用 Git merge 的經驗並討論了一些最佳實踐。本週,我在開發新功能時應用了這些知識,不是在我自己的儲存庫中,而是在合作者的儲存庫(我朋友 Mayank 的)中。同時,他在我的儲存庫中開發了一項功能,使我們能夠使用 Git 練習遠端協作。
目前,我過去幾週開發的工具使用溫度和模型等選項的預設值集,當使用者不提供特定參數時會套用這些值。此新功能的目標是透過新增從使用者主目錄中的 TOML 檔案讀取組態設定的支援來擴充該工具的功能。
例如,如果使用者在 C:\User\Anh\config.toml 中有一個設定文件,該工具現在將檢查使用者主目錄中是否存在 .toml 檔案。如果存在此類文件,該工具將讀取該文件並應用其值來設定預設配置,從而覆蓋內建預設值。但是,使用者仍然可以提供命令列參數,該參數將優先於 TOML 檔案值。
為了實現這個功能,我利用了toml套件來解析TOML設定檔的內容:
import * as toml from 'toml';
由於該工具將在用戶的主目錄中搜尋 .toml 文件,因此我使用 Node.js 的內建 os 模組來檢索主目錄路徑:
const os = require("os"); const homeDir = os.homedir();
從使用者的主目錄收集所有檔案後,我迭代它們以查找以 .toml 結尾的隱藏檔案(以點 . 開頭的檔案)。找到的第一個 .toml 檔案被用作該工具的配置來源。
如前所述,本週涉及練習 Git 遠距工作流程以及 Git 與 Mayank 合併。為了開發他的儲存庫中的功能,我按照以下步驟操作:
git push origin
一旦 Mayank 將他的變更推送到新分支並要求拉取請求 (PR),我想在合併之前測試他的程式碼。這就是 git Remote 變得至關重要的地方:
git remote add
git fetch
git checkout -b/
在測試過程中,我發現了 Mayank 分支中的兩個關鍵問題:
// Resolve the path to the configuration file const configPath = path.resolve(__dirname, "../.toml"); // Load configuration from config.toml const config = loadConfig(configPath);
確定這些問題後,我透過 Slack 與 Mayank 進行了討論,並合作尋找解決方案。我還直接就他的拉取請求提供了回饋。這個過程讓我感覺自己正在為一個現實世界的協作專案做出貢獻。一旦我對修復感到滿意,我將他的分支合併到主分支並將其推送到我的遠端儲存庫。
使用 Git 遠距和合併的過程非常具有教育意義。我現在對在共享程式碼庫上進行協作更有信心了。以前,我經常會因為不同開發人員的多次提交和貢獻而感到不知所措,但現在我對 Git 工作流程有了更好的控制和理解。
透過研究此功能並整合 Git 遙控器,我獲得了實務經驗,這對於未來的專案來說是非常寶貴的。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3