2013-06-03 12 views
10

Sono abbastanza nuovo da git, e ho lavorato a un piccolo progetto parallelo per gli ultimi 2 mesi e stavo spingendo roba su bitbucket senza problemi. Un paio di giorni fa, ho zippato la cartella del mio progetto (dal momento che dovevo reinstallare il mio sistema operativo Linux) e ora l'ho decompresso dopo la mia reinstallazione del SO Linux.git respinto push non-fast forward

Così, ora, sono andato alla mia cartella di progetto, continuava a lavorare felicemente e, infine, ha fatto:

git add -A && git commit -m "modified code" && git push origin master 

..che è quello che faccio di solito ..

e ottengo:

To https://[email protected]/johnsproject/proj.git 
! [rejected]  master -> master (non-fast-forward) 
error: failed to push some refs to 'https://[email protected]/johnsproject/proj.git' 
hint: Updates were rejected because the tip of your current branch is behind 
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull') 
hint: before pushing again. 
hint: See the 'Note about fast-forwards' in 'git push --help' for details. 

Ho dato un'occhiata ad alcune domande su SO in cui suggeriscono l'uso di una bandiera di forza -f - ma non sono sicuro se dovrei farlo.

p.s: Sono sul ramo principale - che è il ramo only sul mio repo.

Apprezzerei molto se qualcuno potesse indicarmi la giusta direzione qui.

Grazie.

+0

'Unisci le modifiche remote (ad esempio 'git pull') suggerimento: prima di spingere di nuovo. Hai provato a tirare? – Bob

+0

Ho provato questo, ma ottengo '* branch master -> FETCH_HEAD Aggiornamento 74f5f2e..06e5112 errore: le modifiche locali ai seguenti file verrebbero sovrascritte dall'unione: Per favore, commetti le modifiche o le memorizzi prima di poterle unire .' – JohnJ

+0

ok) quindi commetti le modifiche ed esegui 'git pull' di nuovo – Bob

risposta

14

Ci sono cambiamenti nel repository centrale che è necessario tirare prima di poter spingere. Do

git add -A 
git commit -m "my local changes" 
git pull 

Risolvere eventuali conflitti. Poi fare

git push 

In alternativa, se si dispone di nessuna modifica di valore a livello locale, è possibile creare un nuovo clone del pronti contro termine, e iniziare a lavorare da lì:

git clone https://[email protected]/johnsproject/proj.git new_repo_dir 
+0

Quando faccio git pull, mi sembra di ottenere' * branch master -> FETCH_HEAD Aggiornamento 74f5f2e..06e5112 errore: le tue modifiche locali ai seguenti file verrebbe sovrascritto dall'unione: Per favore, commetti le tue modifiche o mettile da parte prima di poterle unire. – JohnJ

+0

@JohnJ Ok, segui il consiglio. Impegnare prima le modifiche locali. Quindi 'git pull' e risolvi eventuali conflitti. –

8

Prova a fare

git pull origin master 
git add -A 
git commit -m "modified code" 
git push origin master 

È probabile che il repository locale non sia sincronizzato con il repository remoto.

+0

provando questo con egit - un po 'di incubo, ma essenzialmente lo schermo di sincronizzazione git di Eclipse continuava a visualizzare vecchi conflitti di unione obsoleti. Ho dovuto fermarmi e ricominciare e improvvisamente i miei problemi sono stati risolti. FWIW. – Adam

4

Ho avuto lo stesso problema. Ho risolto il problema utilizzando il comando git push -f che forza l'aggiornamento.

+0

Per quanto riguarda questa soluzione, nel caso in cui si abbiano nuovi file che non sono stati estratti localmente, questo processo li cancellerà. – zinon

+0

Non è una buona soluzione se non sei sicuro di ciò che stai spingendo. – skyrocker