震驚 git分支和標籤重名竟會有如此後果!

2022-09-09 15:15:17 字數 716 閱讀 8839

目錄前端同事在向公司某專案倉庫推送**時,習慣使用vscode的圖形介面完成操作,過程中會從分支列表裡選擇要push到的分支。今天他照例操作推送完**後,該分支出現了奇怪的現象:

一開始看到分離頭指標的提示,以為這是關鍵問題。所以考慮把頭指標重新移動回分支的最新commit上以保持和分支的同步git branch -f v2.0.0 head && git checkout v2.0.0,再嘗試提交&推送,沒什麼卵用,所以頭指標分離並不是關鍵問題。

結合git log圖,想到git checkout v2.0.0除了能切換到名為v2.0.0的分支以外,還能切換到名為v2.0.0的tag,並且會提示頭指標分離。

此時現象就可以得到解釋了:

記下該標籤對應的commitid

在本地和遠端都刪除該tag

重新checkout到該同名分支,並建立正確的本地遠端關聯關係。驗證**可以正常push

重新打標籤

git最佳實踐又學到一條:分支和標籤最好不要重名

使用圖形介面推送選擇分支時需要注意,誤點可能破壞關聯關係

git 的tag和branch 如果重名了 怎麼處理 - segmentfault 思否

fixing git branch and tag name collisions - geedew - blogging about the web.

git標籤和分支命令

本編記錄git標籤和分支的基本命令 git 標籤基本命令 檢視總共有哪些標籤,l引數用於過濾,比如這裡是檢視以v開頭的所有分支 git tag l v 建立乙個臨時標籤,最簡單的建立標籤的方法 git tag v1 建立乙個附註標籤,可以帶一些基本資訊,後面也可以用於校驗的 git tag v2 a...

git分支 標籤操作

git分支類似於某乙個模組,等到所有模組開發完畢時,最後聚合在一起形成乙個專案。而分支之間一般是不會受影響的。git 分支的基本操作 git branch branchname 表示建立分支,新建分支的命令是基於當前所在分支建立的,建立新分支的內容和當前所在分支的內容是完全一樣的。git check...

Git倉庫release分支和標籤 Tag

標籤 tag 管理參照文章 git倉庫分支 branch 和標籤 tag 步驟 1 建立release分支 git checkout b release 2 提交分支到伺服器 git push origin release 3 拉取分支 git pull origin release 4 合併分支到...