当我试图在一个裸仓库中删除一个分支时,我被告知我不能,因为我“目前在它上面”。有点令人惊讶,因为我预计不会出现在裸仓库中的任何分支上。
哪个分支应该在用作中央存储库的裸存储库中处于活动状态以产生最小的副作用?活动分支仅仅是非裸回购的遗迹吗?
在裸仓库之前,我检查了一个“虚拟”分支,现在我想知道我是否应该在我的中央裸仓库上仍然有一个活跃的“虚拟”分支。
裸仓库有一个符号HEAD
引用,它指向默认分支,通常是master
. 无论指向哪个分支origin/HEAD
,都是为该裸仓库的任何克隆检出的默认分支。请参阅如何设置 origin/HEAD?.
此外,来自官方 Linux 内核文档git-remote
:
set-head
设置或删除命名远程的默认分支(即 symbolic-ref 的目标
refs/remotes/<name>/HEAD
)。不需要远程的默认分支,但允许指定远程的名称来代替特定的分支。
我想你的意思是裸回购上的 HEAD 分支?这只是为新克隆提供了一个线索,在第一次克隆时,哪个分支被认为是默认的检出。这是相当无关紧要的。
引用git clone
手册页:
--branch <name>
-b <name>
不要将新创建的指向
HEAD
克隆存储库指向的分支HEAD
,而是指向<name>
分支。在非裸存储库中,这是将被检出的分支。--branch
还可以在结果存储库中获取标签并分离该HEAD
提交。
所以基本上你保留HEAD
在远程仓库中指向你希望你的克隆作为默认分支的任何分支。无需保留虚拟分支。