Avoir un git distant repo sur lequel j'ai poussé une branche d'une machine, et tiré sur une autre machine.Obtenir l'erreur 'receive.denyCurrentBranch' en poussant pour mettre à nu le repo Git
J'ai effectué des modifications sur l'autre machine, en essayant de repasser ces modifications sur le repo distant et je reçois l'erreur 'receive.denyCurrentBranch'.
Que se passe-t-il?
Ceci n'est pas supposé se produire sur un repo nu - il n'y a rien de vérifié.
Les branches comme on le voit de la machine 2 sont:
Fix
dev1
dev2
remotes/origin/HEAD -> origin/dev1
remotes/origin/Fix
remotes/origin/dev1
remotes/origin/dev2
remotes/origin/master
'Fix' est la branche en cours sur les deux machines de dev.
Quand j'ai tiré à l'origine de cette branche sur la machine 2, je l'ai:
git pull
git checkout -b Fix origin/Fix
Je me méfie de la première ligne « » Distants - semble que la tête doit pointer vers ma branche en cours, mais il n'est pas. Penser que je me manque quelque chose, ici ..
Update 1 J'ai fusionné la branche « Fix » vers le bas à la branche dev1, puis PUSHD la branche « dev1 » - qui marchait bien (j'allais faire ça, de toute façon). Donc, c'était une solution de contournement, mais je pense que le vrai problème était que le HEAD n'était pas lié à la branche actuelle ('Fix'), mais à une branche inactive ('dev1'). Je ne suis pas sûr de savoir comment changer la tête sur le repo à distance?
Quelqu'un s'il vous plaît me corriger si je me trompe, mais les dépôts nus ne sont pas censés avoir même * * une HEAD.Cela indiquerait qu'il existe un répertoire de travail, et que HEAD pointe vers le commit sur lequel il est basé ... Êtes-vous certain que le repo distant est vide? – Jonathan
Assez sûr. Il n'y a pas de projet extrait, et tous les fichiers 'git' se trouvent dans le répertoire de premier niveau du dépôt. – rickb
Jonathan, un référentiel Git nu a un HEAD, mais pas d'espace de travail par défaut. Un espace de travail peut toujours exister pour un dépôt nu, mais vous devez informer Git où il existe en utilisant la variable d'environnement 'GIT_WORK_TREE' ou l'option Git' --work-tree' et l'emplacement du référentiel en utilisant la variable d'environnement 'GIT_DIR' ou l'option' -git-dir'. –