Problema durante l'invio del nuovo codice in Github


147

Ho creato un nuovo repository su Github che ora ha solo il file Readme.md.

Ho un progetto RoR appena creato che volevo spingere in questo repository. Di seguito sono riportati i comandi che ho dato nel mio Terminale per eseguire questo insieme all'errore che sto ricevendo.

git remote add origin https://github.com/aniruddhabarapatre/learn-rails.git

Dopo di che ho inserito il mio nome utente e password

git push -u origin master

Errore ---

To https://github.com/aniruddhabarapatre/learn-rails.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://github.com/aniruddhabarapatre/learn-rails.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first merge the remote changes (e.g.,
hint: 'git pull') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

Questa è la prima volta che spingo il mio codice in un repository Github e mi sono perso con gli errori. Ho cercato alcune altre domande che vengono poste qui, ma nessuno di loro ha avuto problemi la prima volta.


Risposte:


167

Quando hai creato il tuo repository su GitHub , hai creato un README.md , che è un nuovo commit .

Il tuo repository locale non è ancora a conoscenza di questo commit. Quindi:

Gli aggiornamenti sono stati rifiutati perché il telecomando contiene lavori che non sono presenti localmente.

Potresti voler trovare per seguire questo consiglio:

Potresti voler unire le modifiche remote (ad esempio, ' git pull') prima di premere nuovamente.

Questo è:

git pull
# Fix any merge conflicts, if you have a `README.md` locally
git push -u origin master

3
Quello che sto facendo è git pull origin master, quindi premere di nuovo.
Bagusflyer,

12
in alcuni casi potresti ottenere un fatal: refusing to merge unrelated historiescaso del genere, tu invii git pull --allow-unrelated-histories origin mastere poi spingi secondo la risposta sopra
TheLebDev

1
Non funziona per me. telecomando: push rifiutato. remote: remote: refs / heads / master: ...: nome del committer previsto xxx ma trovato yyy. Faccio una configurazione git --global user.email yyy e ancora non lo riconosce. Non posso forzare nulla. !!!
Baruch Atta,

284

Se questa è la tua prima spinta

basta cambiare il

git push **-u** origin master

cambiarlo in questo modo!

git push -f origin master

5
Questo ha cancellato il mio file Leggimi che ho creato prima su Github. Ora sembra che debba rifarlo di nuovo.
Jack

3
potresti semplicemente aggiungere un avvertimento che -f forza il push e potrebbe rovinare la sequenza temporale del codice
ericksho

Questo è un brutto modo, mi ha causato un problema, ha cancellato il file Leggimi, che non è stato creato da me, ora devo chiamare il manutentore per dirgli che sono stupido, mi spiace crearmi di nuovo. :(
Mohammad Elsayed

62

⚡️ FACILE: tutto ciò che serve è una spinta forzata. Perché potresti aver creato il readme.mdfile su Github e non l'hai ancora estratto.

git push -f origin master

Ed ecco una GIF.

git push -f origine master

⚠️ ATTENZIONE : l'utilizzo forcepuò modificare la cronologia di altre persone nello stesso progetto. Fondamentalmente, se non ti interessa che un file venga eliminato per tutti, vai avanti. Soprattutto se sei l'unico sviluppatore del progetto.


1
Si noti che questo approccio modifica la cronologia che altri utenti di questo repository hanno già recuperato. git push -f origin masternon è una grande abitudine formarsi.
Johnsyweb il

1
Questa soluzione può risolvere il push di commit ma rimuove anche tutti i commit passati !.
twenk11k,

2
Fai attenzione a Github noobs ... Se hai creato un file Leggimi.md tramite GitHub, questo comando LO RIMUOVERÀ mentre invia le tue nuove modifiche.
daCoda,

Questo è principalmente il motivo per cui la gente atterra qui. -ftag rimuove i file e dovrebbe essere usato con cura.
Ahmad Awais,

34

Emettere una spinta forzata con il comando:

git push -f origin master

10
Nota che questo può eliminare i commit passati, che possono essere o non essere desiderabili
Crashalot

8

Supponendo di aver aggiunto il file Readme.md tramite l'interfaccia fornita da github, il file Leggimi non è ancora nella cartella locale. Pertanto, quando si tenta di eseguire il push nel repository remoto, viene visualizzato un errore, poiché nel repository locale manca il file readme - è "dietro i tempi", per così dire. Quindi, come suggerito nel messaggio di errore, prova prima "git pull". Questo estrarrà il file Leggimi dal repository remoto e lo unirà con la tua directory locale. Successivamente, non dovresti avere problemi a inviare al repository remoto (i comandi che hai pubblicato sembrano validi per me).


6

Questo succede quando provi a spingere inizialmente, perché nel tuo repository GitHub hai readMe.md o qualsiasi altra cosa nuova che non è nel tuo repository locale. Per prima cosa devi unire la storia non correlata del tuo repository github

git pull origin master --allow-unrelated-histories

quindi è possibile ottenere gli altri file dal repository (readMe.md o qualsiasi) utilizzando questo

git pull origin master

Dopo di che

git push -u origin master

Ora spingi con successo tutte le modifiche nel repository Github. Non sono esperto di git ma ogni volta che questo passaggio funziona per me.


5

Considerando che se non hai eseguito il commit delle modifiche per un po ', forse farlo funzionerà per te.

git add files
git commit -m "Your Commit"
git push -u origin master

Ha funzionato per me, si spera lo faccia anche per te.


3

se usi git per mac nella GUI puoi scegliere Respository-> Pull o "comm + shift + p" per "git pull" prima, quindi pubblicare la fonte.


3

Questo errore si verifica quando si trasferiscono i dati dalla directory locale al repository git remoto mediante il comando git: git push -u origin master

Come directory locale e git i file della directory remota sono in conflitto.

Soluzione:

Dopo aver eseguito il commit di tutti i file nella gestione temporanea, seguire i passaggi seguenti.

  1. Recupera i file dal repository remoto come conflitto con la directory di lavoro locale.

    • git pull <remoter-url> <branch-name>
  2. Conferma nuovamente le modifiche.

    • git add -A
    • git commit -m ‘<comment>'
  3. Dopo aver eseguito il commit di unire i file con entrambe le directory è possibile utilizzare

    • git push -u origin master

Questo risolverà il problema. Grazie.


1

Ho avuto un problema simile ... L'ho risolto in questo modo (non sono un esperto di git quindi non so se è la soluzione giusta, ma ha funzionato per me):

git pull origin master --allow-unrelated-histories
git merge origin origin/master
git rm README.md
git commit -m 'removed readme.md'
git push origin master

0

Ho lottato con questo errore per più di un'ora! Di seguito è ciò che mi ha aiutato a risolverlo. Tutto questo mentre la mia directory di lavoro era il repository che avevo clonato sul mio sistema.

Se stai aggiungendo file al tuo repository esistente ** 1. Ho estratto tutto ciò che avevo aggiunto al mio repository nella mia cartella GitHub:

git pull


L'output è stato: alcuni file readme file1 file2

  1. Ho copiato (trascina e rilascia) i miei nuovi file (i file che volevo spingere) nel mio repository clonato (repository GitHub). Quando avrai questo repository dovresti vedere i tuoi vecchi e nuovi file.

per esempio. alcuni file readme file1 file2 newfile1 newfile2

  1. git aggiungi "newfile1" "newfile2"

  2. [opzionale] stato git questo ti assicurerà se i file che vuoi aggiungere sono messi in scena correttamente o no


Su filiale principale La filiale è aggiornata con "origine / master". Modifiche da impegnare: (utilizzare "git reset HEAD ..." per annullare la messa in scena)

    new file:   newfile1
    new file:   newfile2

5.git commit -m "qualunque sia la descrizione che vuoi dare" 6.git push

E tutti i miei nuovi file insieme a quelli più vecchi sono stati visti nel mio repository.


0

Una risposta più semplice è caricare manualmente il file README.MD dal tuo computer su GitHub. Ha funzionato molto bene per me.


0

Uso le opzioni Branches, quindi faccio clic con il pulsante destro del mouse sulla cartella "remote / origin" e quindi faccio clic su "elimina i rami da remoto", vedere l'immagine seguente:

l'immagine


0

Ho riscontrato questo errore su Azure Git e questo risolve il problema:

git fetch
git pull
git push --no-verify
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.