Avere un repository Git remoto su cui ho spinto un ramo da una macchina e tirato su un'altra macchina.Errore "receive.denyCurrentBranch" quando si preme per annullare il repository Git
Apportate alcune modifiche all'altra macchina, cercando di trasferire tali modifiche indietro al repository remoto, e ottengo l'errore 'receive.denyCurrentBranch'.
Cosa sta succedendo?
Questo non dovrebbe accadere in un repository nudo - non c'è nulla di verificato su di esso.
I rami come si vede dalla macchina 2 sono:
Fix
dev1
dev2
remotes/origin/HEAD -> origin/dev1
remotes/origin/Fix
remotes/origin/dev1
remotes/origin/dev2
remotes/origin/master
'Fix' è il ramo corrente su entrambe le macchine dev.
Quando ho tirato in origine quel ramo sulla macchina 2, ho fatto:
git pull
git checkout -b Fix origin/Fix
io sono sospettoso della prima linea 'telecomandi' - sembra che la testa deve essere rivolta al mio ramo corrente, ma non lo è. Pensa che mi manca qualcosa, qui ..
Update 1 ho fuso il ramo 'Fix' giù al ramo dev1, e quindi pushd il ramo 'dev1' - che ha funzionato bene (stavo per fare quello, comunque).
Quindi, questa era una soluzione, ma penso che il vero problema era che l'HEAD non era legato al ramo corrente ('Fix'), ma a un ramo inattivo ('dev1'). Non sono sicuro di come cambiare la testa sul repository remoto?
Qualcuno per favore mi corregga se sbaglio, ma nude repository non dovrebbero avere anche * * una testa.Ciò indicherebbe che esiste una directory di lavoro, e HEAD punta al commit su cui si basa ... Sei sicuro che il repository remoto sia scarno? – Jonathan
Piuttosto sicuro. Non esiste un progetto estratto e tutti i file 'git' si trovano nella directory di livello superiore del repository. – rickb
Jonathan, un semplice repository Git ha un HEAD, ma nessun workspace predefinito. Uno spazio di lavoro può ancora esistere per un repository nudo, ma devi informare Git dove esiste usando la variabile di ambiente 'GIT_WORK_TREE' o l'opzione Git' --work-tree' e la posizione del repository usando la variabile di ambiente 'GIT_DIR' o l'opzione' - -git-dir'. –