2011-11-02 11 views
63

Quando provo e spingere un cambiamento che ho commesso, ottengo il seguente errore ...errore Git quando si cerca di spingere - pre-ricevere gancio rifiutato

git.exe push -v --progress "origin" iteration1:iteration1 

remote: ********************************************************************* 
To ssh://[email protected]/cit_pplus.git 
! [remote rejected] iteration1 -> iteration1 (pre-receive hook declined) 
error: failed to push some refs to 'ssh://[email protected]/cit_pplus.git' 

cosa sta succedendo?

+7

Cosa c'è nel hooker di pre-ricezione mycogit? –

+0

Non avresti provato a inviare file di grandi dimensioni a github, vero? –

+0

FYI: oggi tutto il mio collega ha questo messaggio errato, alla fine abbiamo deciso di riavviare il nostro server di scorta e questo è stato risolto magicamente. Non abbiamo idea di cosa fosse in realtà il problema. –

risposta

46

Si dovrebbe chiedere chi mantiene il repo a [email protected]/cit_pplus.git.

vostri commit sono state respinte dal pre-receive hook di quel pronti contro termine (che è uno script configurabile dall'utente che è destinato per analizzare commit in entrata e decidere se sono abbastanza buono per essere accettati nel pronti contro termine).

E 'anche una buona idea di chiedere che la persona di aggiornare il gancio, quindi sarebbe stampare i motivi del rifiuto.

Se il manutentore si è te stesso, allora sembra che hai un problema con la configurazione sul lato server. Si prega di condividere più informazioni allora.

+0

Nel mio caso, BitBucket aveva una convalida del contenuto del messaggio di commit, confrontandolo con i ticket JIRA, che erano offline in quel momento. –

+1

quindi quando è diventato online è stato risolto? – shareef

+0

E se il repo è in heroku ??? –

42

Scommetto che stai provando una spinta non veloce e il gancio lo blocca. In tal caso, esegui semplicemente git pull --rebase prima di premere per rebase le modifiche locali sull'ultima base di codice.

5

Questo forse causato che si did't ha il diritto di spingere a commettere qualche ramo, come il master, è possibile chiedere al manutentore ti ha dato il diritto di spingere

+0

Penso che sia corretto, ma ciò che è interessante è che VS stia cercando di spingere sul ramo principale non il vero nome del ramo sul telecomando. Quindi, se il ramo genitore è protetto, sembra che stia succedendo, ma sembra che non ci sia comunque da correggere in VS e devi passare alla linea cmd. – Mark

4

ho avuto questo problema quando si cerca di unire le modifiche con file di dimensioni maggiori di quello repository remoto permesso (nel mio caso è stato GitHub)

+2

Nel mio caso, anche dopo aver cancellato il file, GitHub si è lamentato ancora ... ma questa risposta ha risolto il problema https://stackoverflow.com/questions/19573031/cant-push-to-github-because-of-large-file-which -i-già-cancellato – CodenameDuchess

17

dimensione del file è importante. C'è un limite di ~ 120 MB per un singolo file. Nel mio caso, .gitignore utilizzando Visual Studio aveva il file elencato, ma il file era ancora impegnato. Quando utilizzi il git cli, possiamo ottenere maggiori informazioni dettagliate sull'errore.

il gancio di pre-ricezione rifiutato era il risultato del file di grandi dimensioni. Convalida sostanzialmente la spinta.

Per risolverlo, ho rimosso l'ultimo commit utilizzando:

git reset --soft HEAD~1 

Ho quindi esclusi il file dal commit.

spero che sia d'aiuto.

+0

Questo ha aiutato come il mio problema era un file di dump SQL indesiderato (155mb nella dimensione del file) veniva spinto (per caso). –

+0

Il limite delle dimensioni del file dipende dal provider di hosting. GitHub ha un limite intorno a quella dimensione, per altri varia, e git self-hosted naturalmente non ha tali limiti. – 1615903

1

Ho ricevuto questo messaggio quando il server GitLab stava subendo alcune modifiche. Il giorno successivo, la spinta ha funzionato bene. In ogni caso, come altri hanno sottolineato, controlla con il tuo manutentore per essere sicuro.

2

Nel mio caso ho ricevuto questo messaggio perché il ramo è stato contrassegnato come "Protetto" in GitLab.

0

Ho ottenuto questo quando si tenta di passare a un'istanza di dokku. Risulta che il disco era pieno sul mio server.

Ran: du -f

e il risultato è stato:

Filesystem  Size Used Avail Use% Mounted on 
udev   476M  0 476M 0% /dev 
tmpfs   100M 4.4M 95M 5% /run 
/dev/xvda1  7.8G 7.4G 8.9M 100%/
0

Nel mio caso, abbiamo ganci per commettere i messaggi, il nostro script server accetta commit se hanno il formato speciale per il messaggio di commit "<JIRA ID><Message>".It (hook) rifiuta il commit se il rispettivo ticket Jira non esiste o se ci sono alcuni simboli speciali nel messaggio di commit. Affronto questo errore quando aggiungo /, [,> ecc. In un messaggio di commit, rimuovendo questi funziona bene.

+0

Questa risposta è improbabile per aiutare, in quanto il poster originale (e chiunque altro visiterà in futuro) avrà uno script diverso configurato come un gancio di pre-ricezione. – aronisstav

0

Ciò accade in realtà quando YACC è abilitato sul lato server in BitBucket. YACC è abilitato per i nomi dei problemi JIRA da menzionare nel messaggio di commit. Pertanto, ogni volta che si commette qualcosa, mantenere il proprio numero JIRA nel messaggio di commit e poi aggiungere il proprio messaggio.

Problemi correlati