前言
這好像是為了查 drone的自動部署,
為什麼tag跟 branch不能同時符合條件才做發佈的原理。
正文
git的主要架構其實都圍繞著 refs ,
branch 跟 tag 其實是一樣的東西,
直接去看 .git的資料夾,可以看到下面的架構。
tree .git/refs
├── heads
│ ├── apm2
│ └── testapmlog
├── remotes
│ └── origin
│ ├── HEAD
│ ├── apm2
│ ├── dev_spring20211027
└── tags
heads 目錄,描述在本機上的所有分支,每一個檔案對應相應的目錄。
開啟檔案的話,會看到一個commit的雜湊值,
而不管是branch 或 tag 都是根據此雜湊值,來決定你程式目前是哪個版本。
cat .git/refs/heads/apm2
git log -1 apm2
or
git show apm2
這兩個的雜湊值會一樣,
所以建立一個新的分支,對git來說,也只是將當下的雜湊值寫到一個檔案內。
ref.
0 意見:
張貼留言