Git Rebase Onto 全中文最完整教學
本文延續 使用變基 Rebase 合併分支 但是專注說明 onto 用法,也可以視為 rebase 的完整解析版本,完全遵照文檔說明沒有模糊地帶。本文會說明為何網路上的說法為何錯誤,同時包含實際範例展示,並且和上一篇相同,筆者保證本文絕對正確。
本文延續 使用變基 Rebase 合併分支 但是專注說明 onto 用法,也可以視為 rebase 的完整解析版本,完全遵照文檔說明沒有模糊地帶。本文會說明為何網路上的說法為何錯誤,同時包含實際範例展示,並且和上一篇相同,筆者保證本文絕對正確。
這篇文章介紹 Git 中的保留關鍵字,包含 HEAD, ^, ~ 等符號
介紹 Git 常見的本地和遠端問題,包含清除reflog記錄、正確使用rebase、git mv、以及如何加速clone等進階技巧。還解釋了常見錯誤誤導,並提供正確的 Git 操作方法。
本文介紹操作遠端儲存庫的指令。
網路上似乎沒有文章能簡潔的把 Github Actions 講清楚,所以又寫了一篇。Github Actions 是用於自動化操作的 CI/CD 平台,可以在上面自動執行單元測試、構建發布套件、執行 cron 任務等等,額度請參考文檔,簡單使用基本上用不完。
本文快速精練的說明如何在 Github 進行條件搜尋,一般大概也只會用本文列出的這些,而且 Github 搜尋功能不是非常完美,光是這些常用的選項有時候搜尋結果就不如預期了。
為何要學 Vim?因為編輯 Git 文件時預設使用 Vim。初學者請跳過這篇文章,需要時再回來看,Vim 要用到熟練的時間成本遠遠大於 Git 的數倍以上,一開始只要能修改和儲存就夠了。
本文介紹 Git 最基礎的指令,只會說明如何增加新的提交記錄。
Cherry-Pick 的意思是把指定提交像是摘櫻桃一樣取過來,開發社群通常不鼓勵使用此指令,詳情請見 Git Cherry Pick 的後遺症,我們不管這個問題只學如何使用。
使用 force-if-includes 安全的進行強制推送
找出錯誤最快的方式是使用二分法切一半找問題,git bisect 指令就幫助我們完成這件事,只要提供開頭結尾分別是正確和錯誤的提交,Git 就會自動幫我們在提交歷史中切換,不過哪個提交有問題當然還是要自己確認。
Clone 大型儲存庫耗時很長又佔空間,例如樹梅派原始碼高達一百二十萬次提交 clone 一次需要長達 15 分鐘,我們也不需要全部檔案和歷史,這時就可以使用 sparse-checkout 以排除指定檔案避免全部下載。
Git worktree 的目的是簡化在分支之間切換的指令步驟,甚至允許你同時修改兩個分支。舉例來說,以往我們在多個分支間來回切換的指令流程是
互動式變基是 Git 最強大的指令,包含移動提交、刪除提交、修改提交內容、修改提交訊息全部都可以做到。原理仍舊是基於變基,但是使用時完全不會感覺到分支操作。互動式變基常用的選項有五個:
筆者認為網路文章每篇講的都不一樣是初學者對變基 (rebase) 感到畏懼的原因,所以撰寫時同時參考 Git 官方文檔以及 Pro Git Book,多方比對和驗證保證本文解釋方式能和指令實際用途能夠對應,講這麼多目的就是要讓你只要讀這篇文章就夠了,不需要再去網路上查其他文章,因為網路上的文章參差不齊容易被誤導。
分支操作主要有以下五大指令,扣掉複雜的 rebase 以外其餘根本不需要每個寫成一篇文章來介紹。本文只會有本地不會有遠端操作,遠端操作的第一篇文章要從遠端儲存庫設定開始。
各種修改 commit 的情況和對應的解決方式。
本文介紹多人協作中推送和合併分支的最佳實踐,整理自码农高天的影片,人家是微軟工程師,CPython core dev,不是網路上的半桶水。
開啟網頁版進入 README 編輯頁面,把影片拖入就完成了@2024/12/28。
延續上一篇文章 Github Actions 自動化 CI/CD,我們可以在本地執行 Github Actions 用於在本地先偵錯 Workflow 語法設定或是節省 Actions 額度。首先需要安裝 act 套件以及 docker,並且手動打開 docker 才能執行,他不會自己打開。
一分鐘入門只說明如何提交檔案,但是在版本之間切換才是版本管理工具的精華,接下來的本文和下一篇文章分別為基礎操作(單一分支)和分支操作(多分支),快速檢索的方式是從右側目錄快速定位操作內容,例如提交錯誤時可以找到「清除提交」定位到 git reset。
本文介紹大的 picture 讓你可以宏觀的理解 Git 運作方式,先知道他在做什麼再學會怎麼操作他,網路很多教學文章都本末倒置,導致初學者指令貼上可以用,但是就是不清楚自己在做甚麼。
安裝
起因是發現 gpg 認證失敗沒辦法 commit,腦袋一熱就想著藉此機會把所有以前設定錯誤的金鑰全部移除,移除完再新增金鑰所有操作都正常,除了以前所有的簽名資訊全部失敗以外...因為我把 Github 上面的金鑰也一起刪了導致舊 commit 在遠端上無法驗證。
用標籤標示重要版本,分為 lightweight 和 annotated 兩種,官方建議使用 annotated。lightweight 是簡單的 refs ,annotated 則是完整的物件對象,包含作者名稱、日期、email、GPG 簽名等資訊。
寫好慣例式提交,讓提交訊息一目了然
你真的看得懂 Git 文檔嗎?似懂非懂不算懂喔。
解決 GPG 無法提交的錯誤
上傳到遠端儲存庫的必要前置設定。
寫 commit message 發現自己永遠只會 edit/change/adjust/tune,這邊請 GPT 補一下英文,而且有些單字會腦袋抽風突然想不起來,這篇當作 cheatsheet 使用。
啟發自码农高天的 Git 教學,被他淺顯易懂的說明驚訝到,並且深刻感受到繁體中文教學實在很差勁,於是決定自己寫,想解決我在學習 Git 時發現的問題: