【发布时间】:2020-12-31 03:37:18
【问题描述】:
Git 非分支引用(不是分支、标签、远程和注释)在本地机器上工作得很好,但我有麻烦将它们推送到远程:
$ git update-ref refs/exp/ee01 6a534fb5f9aad615ebeeb9d01ebe558a679a3cd1
已成功创建:
$ cat .git/refs/exp/ee01
6a534fb5f9aad615ebeeb9d01ebe558a679a3cd1
$ git for-each-ref refs/exp
6a534fb5f9aad615ebeeb9d01ebe558a679a3cd1 commit refs/exp/ee01
推它:
$ git push origin exp/ee01
Total 0 (delta 0), reused 0 (delta 0)
To https://github.com/dmpetrov/example-get-started-exp.git
* [new branch] refs/exp/ee01 -> refs/exp/ee01
但是,当我克隆这个 repo 时我没有看到它:
$ git clone https://github.com/dmpetrov/example-get-started-exp.git
$ cd example-get-started-exp/
$ git for-each-ref refs/exp # it returns nothing
如何正确推送非分支引用?
编辑:我可以按名称将其提取到 FETCH_HEAD。理想情况下,我应该在不知道名称的情况下看到\获取所有新的引用。
$ git fetch origin exp/ee01
From https://github.com/dmpetrov/example-get-started-exp
* branch refs/exp/ee01 -> FETCH_HEAD
【问题讨论】:
-
如果你将引用推送到原点,当你在新的仓库中克隆它时,它将出现在
refs/remotes/origin下。 git-push 上有很多文档。也许有一些方法可以在推送时保留原始 ref 结构。
标签: git git-branch git-remote