web-dev-qa-db-fra.com

erreur git

Pour une raison quelconque, je ne peux pas pousser maintenant, alors que je pourrais le faire hier . Peut-être que j'ai gâché avec des configs ou quelque chose.

C'est ce qui se passe:

Quand j'utilise le maître git Push Origin

gitbashscr

À quoi ressemblent mon répertoire de travail et mon référentiel distant:

enter image description here

228
hikki

Si le dépôt GitHub a vu de nouveaux commits lui être imposé, alors que vous travailliez localement, je vous conseillerais d'utiliser:

git pull --rebase
git Push

La syntaxe complète est la suivante:

git pull --rebase Origin master
git Push Origin master

Ainsi, vous pourrez rejouer (la partie --rebase) vos commits locaux en plus du Origin/master récemment mis à jour (ou Origin/yourBranch: git pull Origin yourBranch).

Voir un exemple plus complet au chapitre 6 Tirez avec rebase du Git Pocket Book .

Je recommanderais un:

git Push -u Origin master

Cela établirait une relation de suivi entre votre branche principale locale et sa branche en amont.
Après cela, tout Push futur pour cette branche peut être réalisé avec un simple:

git Push

Voir " Pourquoi dois-je explicitement pousser une nouvelle branche? ".


Puisque l'OP a déjà réinitialisé et refait son commit au-dessus de Origin/master:

git reset --mixed Origin/master
git add .
git commit -m "This is a new commit for what I originally planned to be amended"
git Push Origin master

Il n'y a pas besoin de pull --rebase.

Remarque: git reset --mixed Origin/master peut également être écrit git reset Origin/master, puisque l'option --mixed est celle par défaut lors de l'utilisation de git reset .

352
VonC

Est-ce que quelqu'un a essayé:

git Push -f Origin master

Cela devrait résoudre le problème.

EDIT: Basé sur le commentaire de @Mehdi ci-dessous, je dois clarifier quelque chose à propos de —force pushing. La commande git ci-dessus ne fonctionne en toute sécurité que pour le premier commit. S'il y avait déjà des commits, des demandes d'extraction ou des branches dans les versions précédentes, cela réinitialise tout et le règle à partir de zéro. Si tel est le cas, veuillez vous reporter à la réponse détaillée de @VonC pour une meilleure solution.

49
CagCak

Si vous venez d'utiliser git init et que vous avez ajouté vos fichiers avec git add . ou quelque chose de similaire et que vous avez ajouté votre branche distante, il se peut que vous n'ayez rien commis (git commit -m 'commit message') localement dans Push to the remote ... J'ai simplement eu cette erreur et c'était mon problème.

28
ironcladmvtm

J'ai eu le même problème. Je devenais ce problème parce que je n'avais fait aucun commit, même pas un commit initial et j'essayais toujours de pousser.

Une fois que j'ai fait git commit -m "your msg" et puis tout a bien fonctionné.

16
ppmakeitcount

Je trouve la solution à ce problème dans l'aide de github.

Vous pouvez le voir à partir de: Traitement des erreurs non-fast-forward

Ça dit:

Vous pouvez résoudre ce problème en récupérant et en fusionnant les modifications apportées sur la branche distante aux modifications apportées localement: 

$ git fetch Origin
# Fetches updates made to an online repository
$ git merge Origin branch
# Merges updates made online with your local work

Ou bien, vous pouvez simplement utiliser git pull pour exécuter les deux commandes à la fois:

$ git pull Origin branch
# Grabs online updates and merges them with your local work
11
Sealter

Renommez votre branche, puis Push, par exemple:

git branch -m new-name
git Push -u new-name

Cela a fonctionné pour moi.

6
p8ul

Le fait de ne pas valider les modifications initiales avant de pousser provoque également le problème

4
Claw

Si vous utilisez gerrit, cela pourrait être dû à un Change-id inapproprié dans le commit. Essayez de supprimer le Change-Id et voyez ce qui se passe.

4
Jim Sime

1) git init

2) git remote add Origin https://gitlab.com/crew-chief-systems/bot

3) git remote -v (pour vérifier le référentiel actuel)

4) git add -A (ajoute tous les fichiers)

5) git commit -m 'Ajouté mon projet'

6) git pull - master d'origine d'origine

7) Maître git push origin

3
James Siva

avant Push, vous devez ajouter et valider les modifications ou faire git Push -f Origin master

3
Kinnera Reddy

N'oubliez pas de valider vos modifications avant de passer au référentiel Github. Cela pourrait résoudre votre problème.

3
Alf Moh

J'avais rencontré le même problème, résolu avec les étapes ci-dessous.

  1. git init

  2. git add.

  3. git commit -m 'Ajoutez votre message de commit'
  4. git remote add Origin https: //[email protected]/nom_utilisateur/sample.git

    (Au-dessus de l'url https: //[email protected]/nom_utilisateur/sample.git fait référence à l'url de votre projet de compartiment à bits)

  5. git Push -u Origin master astuce: vérifiez si votre compte git hub est lié à votre compte git local à l'aide de: git config --global user.email "[email protected]"

    git config --global user.name "Your Name"

1
Divya

Pour moi, le problème était que je n’avais pas ajouté les fichiers avant la validation.

git add .

git commit -m "your msg"

1
Rohitsam

Vous devez donner un peu de force

Il suffit de pousser - force.

1
Ankit

Je ne sais pas si cela s'applique, mais le correctif pour moi était de commettre quelque chose localement après git init Puis j'ai poussé à distance en utilisant --set-upstream ...

1
user1889992

erreur git: échec de l'envoi de certaines références à lorsque le nom du référentiel local correspond au nom du référentiel distant correspondant. Assurez-vous que vous travaillez sur la bonne paire de référentiels avant d'extraire les modifications dans le référentiel distant. Si vous épelez mal et que vous souhaitez supprimer le référentiel local, suivez les étapes ci-dessous.

Supprimez le dépôt local de Windows 1. del/F/S/Q/A .git 2. rmdir .git 3. Corrigez le nom du dossier local (XXXX02-> XXXX20) ou supprimez-le s'il s'agit d'un référentiel créé, puis recréez le référentiel (le nom du référentiel XXXX02 a été remplacé par XXXX20). git init 5. Remappez avec le repo distant s'il n'est pas mappé . 6. git remote add Origine https://github.com/ / XXXX20.git 7. Maître git Push -u Origin

0

Vous pouvez également résoudre ce problème en modifiant le fichier de configuration git de votre projet:

Où est-ce?

.git/config

Ajoutez les lignes suivantes à la fin si elles ne le sont pas.

[branch "master"] remote = Origin merge = refs/heads/master

Cela a résolu mon problème

0
Edd
git Push Origin {your_local_branch}:{your_remote_branch}

Si votre branche locale et votre branche distante partagent le même nom, vous pouvez omettre le nom de votre branche locale, utilisez simplement git Push {your_remote_branch}. Sinon, cette erreur sera générée.

0
Yitong Feng

J'ai fait face à un problème similaire, et j'ai essayé la réponse acceptée . Le résultat est un peu différent. 

Lors de ma modification du référentiel local, j'ai modifié le fichier readme.md dans la page Web GitHub. Par conséquent, lorsque j'essaie la commande git pull --rebase Origin master, la ligne de commande me rappelle que

error: impossible de tirer avec rebase: vous avez des modifications non mises en scène.
erreur: veuillez les commettre ou les cacher. 

Donc, je dois d'abord exécuter la commande git stash pour stocker tous les fichiers modifiés, puis suivre la réponse acceptée. Après cela, les fichiers validés localement ont été placés dans le référentiel Github. Enfin, j'exécute le git stash pop pour récupérer ces fichiers avec des modifications non mises en scène.

En résumé, la séquence de commande pour moi est

git stash
git pull --rebase Origin master
git Push Origin master
git stash pop

Comme je ne peux actuellement pas commenter la réponse acceptée, j’ai ajouté une réponse à cette question.

0
Gary Wang

Dans mon cas, c’est mon paquetage husky qui interdit la diffusion.

> husky - pre-Push hook failed (add --no-verify to bypass)
> husky - to debug, use 'npm run prepush'
error: failed to Push some refs to 'https://[email protected]/username/my-api.git'

Pour le pousser avec force, lancez simplement git Push Origin master --no-verify

J'ai exécuté npm run prepush pour voir le débogage voir l'erreur, et c'était la cause:

npm ERR! code ELOCKVERIFY
npm ERR! Errors were found in your npm-shrinkwrap.json, run  npm install  to fix them.
npm ERR!     Invalid: lock file's [email protected] does not satisfy loopback-utils@^0.9.0

Exécutez npm install et validez-le. Le problème est résolu.

0
Jee Mok

Dans mon cas, la fermeture de l'éditeur (code Visual Studio) a résolu un problème.

0
Vasyl Gutnyk

Cela m’arrive alors que j’avais un tag identique à celui de la branche et que j’essayais de pousser la branche à distance.

0
Buminda

Si vous essayez d'initialiser un répertoire avec un référentiel GitHub existant, vous devez vous assurer que vous apportez les modifications.

Essayez de créer un fichier:

touch initial
git add initial
git commit -m "initial commit"
git Push -u Origin master

Cela placera un fichier nommé initial que vous pourrez supprimer plus tard.

J'espère que cette réponse aide! Bonne chance!

0
Andreas Bigger

Cela peut arriver lorsque vous n'avez aucun fichier. Essayez de créer un fichier texte puis suivez les commandes suivantes

git add .
git commit -m "first commit"
git Push --set-upstream Origin master
0
sushil suthar

Créer une nouvelle branche a été résolu pour moi:

git checkout -b <nameOfNewBranch>

Comme prévu, pas besoin de fusionner puisque la branche précédente était entièrement contenue dans la nouvelle.

0

Dans mon cas, cette erreur s’est produite parce que notre version de GitLab faisait l'objet de maintenance.

0
GreenGiant

Pour les utilisateurs sourcetree

Commencez par effectuer une validation initiale ou assurez-vous de ne pas avoir de modifications non validées. Puis, côté "arbre source", vous trouverez un "ÉTRANGERS", cliquez dessus avec le bouton droit de la souris, puis cliquez sur "Transférer vers l'origine". Voilà.

0
Bowie Chang

Eh bien, si aucune des réponses ci-dessus ne fonctionne et si vous avez récemment modifié quelque chose avec ssh-add Essayer

ssh-add -D
0
Abhisek