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
À quoi ressemblent mon répertoire de travail et mon référentiel distant:
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
.
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.
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.
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é.
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
Renommez votre branche, puis Push, par exemple:
git branch -m new-name
git Push -u new-name
Cela a fonctionné pour moi.
Le fait de ne pas valider les modifications initiales avant de pousser provoque également le problème
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.
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
avant Push, vous devez ajouter et valider les modifications ou faire git Push -f Origin master
N'oubliez pas de valider vos modifications avant de passer au référentiel Github. Cela pourrait résoudre votre problème.
J'avais rencontré le même problème, résolu avec les étapes ci-dessous.
git init
git add.
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)
git config --global user.email "[email protected]"
git config --global user.name "Your Name"
Pour moi, le problème était que je n’avais pas ajouté les fichiers avant la validation.
git add .
git commit -m "your msg"
Vous devez donner un peu de force
Il suffit de pousser - force.
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 ...
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
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
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.
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.
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.
Dans mon cas, la fermeture de l'éditeur (code Visual Studio) a résolu un problème.
Cela m’arrive alors que j’avais un tag identique à celui de la branche et que j’essayais de pousser la branche à distance.
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!
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
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.
Dans mon cas, cette erreur s’est produite parce que notre version de GitLab faisait l'objet de maintenance.
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à.
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