Skip to main content

46 篇文章已被標記 與 "教學" 標籤有關的文章

瀏覽所有標籤

🔥 團隊協作最佳實踐

本文介紹多人協作中推送和合併分支的最佳實踐,整理自码农高天的影片,人家是微軟工程師,CPython core dev,不是網路上的半桶水。

Git Absorb 繁體中文唯一教學

我們常常會完成 A/B/C 提交後,推送前檢查發現每個提交都有些 typo 要修正,這時候有兩種解決方法,一種是 rebase -i 進去 edit,另一種是提交一個新的版本後再使用 rebase -i,然後修改順序並且改為 fixup,兩者都要手動進行重複操作非常麻煩。

Git Rebase Onto 全中文最完整教學

本文延續 使用變基 Rebase 合併分支 但是專注說明 onto 用法,也可以視為 rebase 的完整解析版本,完全遵照文檔說明沒有模糊地帶。本文會說明為何網路上的說法為何錯誤,同時包含實際範例展示,並且和上一篇相同,筆者保證本文絕對正確。

Git 各種日常問題集合 - 本地

介紹 Git 常見問題,包含清除reflog記錄、正確使用rebase、git mv、以及如何加速clone等進階技巧。還解釋了常見錯誤誤導,並提供正確的 Git 操作方法。

Git 各種日常問題集合 - 遠端

介紹 Git 常見的本地和遠端問題,包含清除reflog記錄、正確使用rebase、git mv、以及如何加速clone等進階技巧。還解釋了常見錯誤誤導,並提供正確的 Git 操作方法。

Git 命令行體驗優化:行前準備

Git 其實有很多設定可以客製化,連 git branch 顏色、git diff 工具都可以自訂,但是最常用且最實用的應該是別名系統,本文不是只教你使用別名,而是教你怎麼直接從難用的 CMD/PowerShell 中解脫,直接在 Windows 裡使用經過筆者大量優化的 Zsh。

Git 進階設定

上一篇文章說明如何優化終端機,這篇終於講到要怎麼優化 shell and Git,設定別名 (alias) 可以把我們從落落長的指令拯救出來,廢話不多說直接上我的設定,除了很多實用的 alias 之外,還有設定 delta、rebase autostash 以及顏色客製化。

Git 那些很少用到的知識

本文不廢話的記錄看到的資訊,如你所見我不是專家,我只是看到文章並且簡單記錄,本文有簡單的也有難的,但是共通點是 99.9\% 的人用不到這些知識。

Github Actions 自動化 CI/CD

Github Actions 是用於自動化操作的 CI/CD 平台,可以在上面自動執行單元測試、構建發布套件、定時執行任務等等,額度請參考文檔,簡單使用基本上用不完。

Github Pull Request

Pull request (PR) 不是 Git 的原生指令,是 Git 託管平台的加值服務,本身是分支的一種,目的是用於多人協作,把你的提交發給別人的 repo,又或者是避免在主分支提交也可以用 PR 工作流程。

Github 搜尋技巧

本文快速精練的說明如何在 Github 進行條件搜尋,一般大概也只會用本文列出的這些,而且 Github 搜尋功能不是非常完美,光是這些常用的選項有時候搜尋結果就不如預期了。

Vim 文字編輯器基礎操作

為何要學 Vim?因為編輯 Git 文件時預設使用 Vim。初學者請跳過這篇文章,需要時再回來看,Vim 要用到熟練的時間成本遠遠大於 Git 的數倍以上,一開始只要能修改和儲存就夠了。

一分鐘入門

本文介紹 Git 最基礎的指令,只會說明如何增加新的提交記錄。

使用 cherry-pick 揀選指定提交

Cherry-Pick 的意思是把指定提交複製過來,由於動作像是摘櫻桃所以取這個名字,不得不說外國人都是命名鬼才,和 force-with-lease 一樣非常有創意。開發社群通常不鼓勵使用此指令,詳情請見 Git Cherry Pick 的後遺症,我們不管這個問題只學如何使用。

使用 filter-repo 移除大型檔案

最近把網站圖片改為 CDN 部署以減小儲存庫容量,因此順便用了一下 filter-repo 功能來清除大型檔案,廢話不多說直接上步驟

使用 Git Bisect 找出錯誤提交

git bisect 指令幫助我們使用找出開始發生錯誤的提交位置,只要提供開頭結尾分別是正確和錯誤的提交,Git 就會自動幫我們在提交歷史中切換,不過哪個提交有問題當然還是要自己確認。

使用 Git Worktree 簡化分支切換

Git worktree 的目的是簡化在分支之間切換的指令步驟,甚至允許你同時修改兩個分支。舉例來說,以往我們在多個分支間來回切換的指令流程是

使用 Github Pages 架設網站

榨乾免費工具的功能是一定要的,Github 除了提供免費的 Actions 功能,也提供 Pages 功能免費架設靜態網站,一個帳號只能架設一個 帳號站點,但是 專案站點 可以有多個,簡單來說就是 YourName.github.io 只能有一個 repo,但是你可以開多個 repo 建立 pages 功能,他們的網站路徑必續在 YourName.github.io/path/ 之下。

使用互動式變基 Interactive Rebase 任意修改提交歷史

互動式變基是 Git 最強大的指令,包含移動提交、刪除提交、修改提交內容、修改提交訊息全部都可以做到。原理仍舊是基於變基,但是使用時完全不會感覺到分支操作。互動式變基常用的選項有五個:

使用變基 Rebase 合併分支

筆者認為初學者對變基 (rebase) 感到畏懼的原因不是指令複雜,反而是網路文章每篇講的都不一樣,所以撰寫時同時參考 Git 官方文檔以及 Pro Git Book,多方比對和驗證保證本文解釋方式能和指令實際用途能夠對應,講這麼多目的就是要讓你只要讀這篇文章就夠了,不需要再去網路上查其他文章,因為網路上的文章參差不齊容易被誤導。

分支操作

分支操作主要有以下五大指令,扣掉複雜的 rebase 以外其餘根本不需要每個寫成一篇文章來介紹。本文只會有本地不會有遠端操作,遠端操作的第一篇文章要從遠端儲存庫設定開始。

前言

啟發自码农高天的 Git 教學,被他淺顯易懂的說明驚訝到,並且深刻感受到繁體中文教學實在很差勁,於是決定自己寫,想解決我在學習 Git 時發現的問題:

同步 Git 提交時間與作者資訊

如何同步提交時間和作者時間?所謂的作者時間 (authordata) 是這個提交「被提交的當下」的時間,提交時間 (committerdata) 則是「被修改的提交時間」,其他的 committeremail, committername 也同理。

善用 Git LFS 功能減少儲存庫容量

Git 是快照系統,會Git 是快照Git 是快照系統,會藉由差異比較來壓縮空間,這個機制遇到二進制檔案就沒有優勢了,因為很少會有兩個二進制檔案能用簡單的差異來表達,導致檔案有十個版本就要儲存十份,當儲存庫容量過大開發者就要開始使用各種奇怪的 sparse-checkout 指令,所以我們平常在提交二進制檔案時都要小心,壓縮後才上傳也是基本的,最好是根本就不要上傳二進制檔案。

在本地執行 Github Action

延續上一篇文章 Github Actions 自動化 CI/CD,我們可以在本地執行 Github Actions 用於在本地先偵錯 Workflow 語法,也可以節省 Actions 額度。

基礎操作

一分鐘入門只說明如何提交檔案,但是在版本之間切換才是版本管理工具的精華,接下來的本文和下一篇文章分別為基礎操作(單一分支)和分支操作(多分支),快速檢索的方式是從右側目錄快速定位操作內容,例如提交錯誤時可以找到「還原提交」定位到 git reset。

基礎知識

本文介紹大的 picture 讓你可以宏觀的理解 Git 運作方式,先知道他在做什麼再學會怎麼操作他,網路很多教學文章都本末倒置,導致初學者指令貼上可以用,但是就是不清楚自己在做甚麼。

幫所有提交加上 GPG 簽名

起因是發現 gpg 認證失敗沒辦法 commit,腦袋一熱就想著藉此機會把所有以前設定錯誤的金鑰全部移除,移除完再新增金鑰所有操作都正常,除了以前所有的簽名資訊全部失敗以外...因為我把 Github 上面的金鑰也一起刪了導致舊 commit 在遠端上無法驗證。

幫重要版本打上標籤

用標籤標示重要版本,分為 lightweight 和 annotated 兩種,官方建議使用 annotated。lightweight 是簡單的 refs ,annotated 則是完整的物件對象,包含作者名稱、日期、email、GPG 簽名等資訊。

整個中文圈說明移除 Git 敏感訊息的文章方式都不正確

不小心把金鑰、API 鑰匙、密碼等敏感資訊提交甚至推送時,網路上的中文文章各顯神通每篇都有不同的清除方式,但是這麼多方式卻沒有任何一篇的方式正確,怎麼本站老是在說別人做錯?因為那些人連文檔都不看就上網寫文章了,該怎麼做文檔寫的一清二楚。

關於修改的動詞小抄

寫 commit message 發現自己永遠只會 edit/change/adjust/tune,這邊請 GPT 補一下英文,而且有些單字會腦袋抽風突然想不起來,這篇當作 cheatsheet 使用。