あるマシンからブランチをプッシュし、別のマシンにプルしたリモート git ベア リポジトリを用意します。
他のマシンでいくつかの変更を行い、それらの変更をリモートの裸のリポジトリにプッシュしようとすると、「receive.denyCurrentBranch」エラーが発生します。
どうしたの?
これは、何もチェックアウトされていない裸のレポでは発生しないはずです。
マシン 2 から見たブランチは次のとおりです。
Fix
dev1
dev2
remotes/origin/HEAD -> origin/dev1
remotes/origin/Fix
remotes/origin/dev1
remotes/origin/dev2
remotes/origin/master
「修正」は、両方の開発マシンの現在のブランチです。
最初にマシン 2 でそのブランチをプルしたとき、次のことを行いました。
git pull
git checkout -b Fix origin/Fix
最初の「remotes」行が疑わしい - HEAD が現在のブランチを指しているように見えるが、そうではない。ここで何かが足りないと思います..
更新 1 「修正」ブランチを dev1 ブランチにマージしてから、「dev1」ブランチをプッシュしました。
これは回避策でしたが、本当の問題は、HEAD が現在のブランチ ('Fix') ではなく、非アクティブなブランチ ('dev1') に関連付けられていたことだと思います。リモートリポジトリのヘッドを変更する方法がわかりませんか?