根據progit上的文檔操作的:http://git-scm.com/book/zh/v2/Git-%E4%B8%8E%E5%85%B6%E4%BB%96%E7%B3% BB%E7%BB%9F-%E8%BF%81%E7%A7%BB%E5%88%B0-Git
遇到兩個問題:
為了將標籤變為合適的 Git 標籤,運行
$ cp -Rf .git/refs/remotes/origin/tags/* .git/refs/tags/ $ rm -Rf .git/refs/remotes/origin/tags
這會讓原來在 remotes/origin/tags/ 裡的遠端分支參考變成真正的(輕量)標籤。
接下來,將 refs/remotes 下剩餘的引用移動為本地分支:$ cp -Rf .git/refs/remotes/* .git/refs/heads/ $ rm -Rf .git/refs/remotes
.git/refs/remotes 現在所有的舊分支都是真正的 Git 分支,並且所有的舊標籤都是真正的 Git 標籤。
最後一件要做的事情是,將你的新 Git 伺服器新增為遠端倉庫並推送到上面。
但是執行cp的時候發現這個目錄並不存在,git branch -r列出來很多原來的
$git branch -r
origin/v1.1
origin/tags/v1.1.2
origin/tags/v1.1.2@438
origin/tags/v1.2.1
origin/tags/v1.2.1@474
origin/tags/v1.2.3
origin/trunk
然而 .git/refs/remotes/origin/tags 下面並沒有文件
參考http://nowing.iteye.com/blog/844608的做法,使用標準指令將branch轉成tags
$ git tag tagname tags/tagname ----用指定的分支创建一个Git标签
$ git branch -r -d tags/tagname ----删除指定的远程分支
最後用git push origin --all
push到git伺服器,但是只有主幹,沒有分支
用git push origin master --tags
有主幹和tags,但是也沒有分支
最後的最後問題來了,怎麼把分支也移上去?