密碼或大檔不小心推上 Git?用 git-filter-repo 安全清掉歷史
把密碼、API 金鑰或一個幾百 MB 的檔案不小心 commit 進 Git、又推上遠端——這時候光 git rm 沒用,它還躺在歷史裡,任何人 clone 下來都翻得到。要真正清掉,得重寫 Git 歷史。 Git 內建的 filter-branch 能做,但它慢、容易出錯,官方文件自己都標示不建議用了。現在的標準工具是 git-filter-repo。 什麼是 git-filter-repo用 Python 寫的開源工具,專門重寫 Git 歷史,是 filter-branch 的官方推薦替代品。比起 filter-branch,它快上一個量級、命令更直覺,還會自動做安全檢查(例如要求你在乾淨的 clone 上操作)。 安裝123pip install git-filter-repo# 或 Ubuntu/Debiansudo apt install git-filter-repo 情境一:移除意外推送的敏感資料1234# 移除符合 glob 的檔案git filter-repo --path-glob '*config.json' --invert-path...
Git分支管理規範:提升團隊協作效率
引言光裝了 Git 不夠,沒有分支規範的團隊遲早會踩到「main 被直接推壞」或「三個人同時改同一支分支」的坑。這篇整理一套以 Gitflow 為基礎的分支模型,適合中小型專案直接套用。 1. 主要分支1.1 主分支 (main)主分支代表產品的穩定版本,任何時候都應該可以直接部署到正式環境。 用途:對應正式環境的可部署版本 規則:禁止直接在 main 分支上開發,所有變更必須經過 PR 審查 每次合併到 main 的程式碼都應該通過完整測試,不能引入未知的不穩定因素。 1.2 開發分支 (develop)develop 是日常開發的整合中心,從 main 建出來,最終穩定後再合回 main。 用途:整合各功能分支的開發成果 特點:包含最新的開發進度,相對不穩定 規則:功能與修復都先進 develop,確認穩定後才往 main 合 2. 支援性分支2.1 功能分支 (feature) 命名規則:feature/功能名稱(例如:feature/user-authentication) 來源:從 develop 建立 合併目標:完成後合回 develop 每個新功能都應該有...
Git基礎使用與實務流程
Git 基礎教學這篇文章帶你了解 Git 的基礎使用,包括版本控制的概念、安裝設定,以及日常會用到的指令。 Git 是什麼?Git 是一個開源的分散式版本控制系統,能有效率地處理大小不一的專案。它的許多概念和設計方式與其他版本控制系統不太一樣,值得花時間理解。 安裝 GitGit 可以在各種作業系統上執行: Windows:從 Git 官方網站 下載安裝檔。 macOS:透過 Homebrew 執行 brew install git。 Linux:用套件管理器安裝,例如 Ubuntu 的 sudo apt-get install git。 安裝過程中,預設選項就夠用了,一路 Next 到底即可。 設定 Git安裝完成後,打開終端機(Terminal 或 Command Prompt),先設定使用者名稱和電子郵件。每次提交都會帶上這些資訊: 12git config --global user.name "你的名字"git config --global user.email "you@example.com" 基本 Git 指令初始化...




