我有一个远程的git裸仓库,我已经从一台机器上推送了一个分支,并在另一台机器上拉取了它。
在另一台机器上进行了一些更改,试图将这些更改推回到远程裸仓库时,出现了“receive.denyCurrentBranch”错误。
发生了什么?
这不应该在裸仓库中发生——上面没有检出任何内容。
从第二台机器看到的分支是:
Fix
dev1
dev2
remotes/origin/HEAD -> origin/dev1
remotes/origin/Fix
remotes/origin/dev1
remotes/origin/dev2
remotes/origin/master
'Fix'是两台开发机上当前的分支。
当我最初在第二台机器上拉取该分支时,我执行了以下操作:
git pull
git checkout -b Fix origin/Fix
我对第一个'remotes'行持怀疑态度——似乎HEAD应该指向我的当前分支,但它没有。我觉得我漏掉了什么。
更新1: 我将“Fix”分支合并到dev1分支,然后推送了“dev1”分支,这个方法可以正常工作(反正我本来就要这样做)。
所以,这是一个解决方法,但我认为真正的问题是HEAD没有绑定到当前分支('Fix'),而是绑定到一个不活跃的分支('dev1')。我不确定如何更改远程仓库上的HEAD?
GIT_WORK_TREE
或Git选项--work-tree
告知Git它的位置,并使用环境变量GIT_DIR
或选项--git-dir
指定仓库的位置。 - Derek Maharfix/whatever
分支,在创建fix
分支时会与 origin 冲突? - eckes