XiWind 西風之劍
HomeTechProContactGitHub
  • About
  • Git
    • Windows Terminal、PowerShell 安裝
    • Git 開始使用
    • Branch 入門
    • 合併多個 Commit , 編輯
    • 額外功能
  • deep learning
    • Dilated Convolution
  • Python
    • GIL 【全域直譯器鎖】
    • PyPy 【JIT 編譯器】
    • Decorator 【修飾器】
      • Class Decorators
  • Python library
    • abc 【抽象 Class】
      • ABC, ABCMeta
      • __abstractmethods__, get_cache_token, update_abstractmethods
    • dataclasses 【數據 Class】
      • make_dataclass(), replace(), is_dataclass(), __post_init__
    • enum 【列舉 Class】
      • Flag, auto(), unique, verify()
      • 範例
    • concurrent.futures 【執行緒、程序】
      • Future, Module Functions
    • queue 【佇列、同步】
      • full(), empty(), qsize(), join(), task_done()
    • functools 【可調用物件】
      • ordering、wrapper、partial
      • Overloading
    • heapq 【堆積佇列】
      • heapify(), merge(), nlargest(), nsmallest()
    • time 【時間】
      • time(), monotonic(), perf_counter()...
      • sleep(), 範例...
    • logging 【日誌】
Powered by GitBook
On this page
  • Note
  • Tag
  • Alias
  • 進階 Log
  • Diff
  • Blame
  • Bisect
  • 參考資料

Was this helpful?

  1. Git

額外功能

Previous合併多個 Commit , 編輯NextDilated Convolution

Last updated 1 year ago

Was this helpful?

Note


Note(註釋)允許您附加額外訊息或註釋附加到 Git 物件(Commit, Tag, 或 Tree),用於提供解釋和參考。

  1. 新增 Note。

SHELL
git notes add <Git SHA-1 ID>
git notes add -m '<Note 註解>' <Git SHA-1 ID>

git notes add: 使用預設編輯器編輯 Note

git notes add -m: 直接編輯 Note

  1. 查看 Note。

SHELL
git notes show <Git SHA-1 ID>
SHELL
git log --show-notes

Tag


Tag (標籤)用於標記 Git Commit 歷史中重要的里程碑。例如:對外發布、版本變更或重要 Commit。

  1. 新增 Note。

SHELL
git tag <Tag 名稱> 
git tag <Tag 名稱> <Git SHA-1 ID>
  1. 查看 Tag。

SHELL
git log --oneline
  1. 新增含註解的 Tag。 (例如: 標籤製作者、電子郵件、日期、註解...)

SHELL
git tag -a <Tag 名稱> -m "<Tag 註解>"
git tag -a <Tag 名稱> <Git SHA-1 ID> -m "<Tag 註解>"
  1. 修改 Tag 指向。 (當設置錯誤的 Commit 時)

SHELL
git tag -f <Tag 名稱> <Git SHA-1 ID>
  1. 查看指定 Tag Commit。

SHELL
git show <Tag 名稱>
  1. 刪除Tag。

SHELL
git tag -d <Tag 名稱>

  1. 您使用將更改 Push 到 Remote repository 時,不會自動推送 Tag。您需要明確指定選項--tags。

SHELL
git push --tags

Alias


Alias(別名) 功能允許您為常用的 Git 命令建立自定義的縮寫,從而幫助您節時間。

無需鍵入整個命令,您只需使用別名即可獲得相同的結果。可讓您的 Git 體驗更高效並根據您的特定需求量身定制。

  1. 建立別名。 (同一命令可以建立多筆 Alias)

SHELL
git config --global alias.<別名> <git 指令>
git config --global alias.st status
git config --global alias.bc checkout -b
git config --global alias.cb checkout -b
git config --global alias.cam 'commit -a -m'
git config --global alias.nx 'log --name-only --oneline'

同一命令可以建立多筆 Alias。多個參數必須使用: " " or ' '。

  1. 開啟設定打查看或編輯。(使用預設編輯器打開)

SHELL
git config --edit --global

進階 Log


  1. 建立更好看的 log 別名。 紅色 Git SHA-1 ID,黃色 Tag 名稱, 綠色 Commit Time, Commit 作者

SHELL
git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset-%C(yellow)%d%Creset %s %Cgreen(%cr) %C(yellow)<%an>%Creset' --abbrev-commit"
SHELL
git lg
  1. 使用條件查找 Log 。(包含特定字串、Commit 作者...)

SHELL
git lg -S<字串>
git lg --committer="<Commit 作者>"
git lg --since='<時間> <時間單位>'

<時間單位>: minute, hour, day, week, month, year

Diff


  1. 比對尚未進入 Staging area 的檔案的差異。或是指定比對。

SHELL
git diff 
git diff <檔案名稱>
git diff <Git SHA-1 ID>
git diff <Git SHA-1 ID> <Git SHA-1 ID>
git diff <Branch 名稱> <Branch 名稱>

--cached: 比對已進入 Staging area 的檔案。

---stat: 僅顯示差異摘要。

>*.txt: 將比對結果輸出為文字檔。

-紅色標記: 刪除。 + 綠色標記: 新增。 黃色標記: 修改。

Blame

找出文件每一行的作者。它提供文件的逐行註釋,Commit 、作者姓名和每行的最後修改日期。

SHELL
git blame <檔案>

Bisect

bisect(二進制搜索) 可幫助您找到錯誤的(壞的) Commit,並回復未修改前的(好的) Commit。 它透過 Commit 歷史執行二進制搜索,縮小可能的 Commit 範圍來定位錯誤的 Commit。

在每個步驟中,會消除剩餘一半的 Commit,讓您可以高效地定位有問題的Commit。它自動縮小錯誤的 Commit 的範圍。

  1. 啟動 bisect。

SHELL
git bisect start
git bisect good <已知的壞的 Git SHA-1 ID> <已知的好的 Git SHA-1 ID>

  1. 此時,您需要檢查或運行程式碼並確定錯誤是否存在。 (Git 會自動 Checkout Commit 供您測試)

  2. 將當前 Commit 標記為好的或壞的。

SHELL
git bisect good
git bisect bad

  1. 找到問題壞的 Commit時,退出 bisect。

SHELL
git bisect reset

參考資料


利用git diff 來為版本控制專案找出差異
Who Broke My Test? A Git Bisect Tutorial | Sumo Logic
使用 Git Bisect 快速找到第一個有問題的 Commit | Puck's Blog
Puck's Blog
選擇 Commit
新增 Note
notes show
--show-notes
選擇 Commit
新增 Tag
新增 Tag
查看 Tag
修改 Tag
查看 Tag
原始 log
修改後的 log
Page cover image