Comment résoudre ce problème? J'essaie de commettre mais j'obtiens l'erreur ci-dessous.
git Push Origine monty_svm_dev
To [email protected]: ! [rejected] monty_svm_dev -> monty_svm_dev
(non-fast-forward) error: failed to Push some refs to
'[email protected]:/mygit.git' To prevent you from losing history,
non-fast-forward updates were rejected Merge the remote changes before
pushing again. See the 'Note about fast-forwards' section of 'git
Push --help' for details. root@li409-202:~/mypath#
faire git pull Origin monty_svm_dev
en premier
Ce qui est arrivé, c’est que la télécommande a subi des modifications plus récentes que votre branche.
Par conséquent, avant de pouvoir Push
vos modifications, vous devez d'abord obtenir et fusionner les modifications sur la télécommande.
Vous pouvez le faire soit en faisant un git checkout your_branch
, puis:
git fetch Origin your_branch
puis ungit merge your_branch
ou
git pull Origin your_branch # fetch and merge in one operation
Où votre branche est-elle maîtresse ou son nom (semble-t-il être monty_svm_dev
dans votre cas, je pense)
Une fois que cela est fait (et tous les conflits résolus), vous pouvez faire un git Push Origin monty_svm_dev
C'est essentiellement parce que quand vous
git pull
depuis une branche, deux opérations ont lieu: chercher et fusionner. Désormais, si votre section locale a des modifications, alors git ne vous autorisera pas à la pousser avant de valider vos modifications.
De plus, ce problème apparaît si la télécommande a des modifications qui ne sont toujours pas extraites en local et fusionnées. Répondez si cela ne résout pas le problème
Faites un Git pull. Il apportera ensuite les modifications récentes du code de la branche distante dans votre section locale. alors vous êtes en mesure de pousser vos modifications.
Ce problème survient lorsque l'utilisateur oublie d'émettre la commande git Push
après la commande git commit
. Lorsque vous utilisez git, veillez toujours à suivre les étapes de base.
Dans un cycle idéal lorsque vous travaillez avec git, vérifiez toujours que les commandes git suivantes ont été utilisées de manière séquentielle dans l'ordre suivant:
git pull
git add
git commit
git Push
Personnellement, j’évite la majorité des problèmes publiés à propos de git on stack, car j’associe toujours mes activités de commande git à la séquence ci-dessus.
J'ai créé un acronyme pour m'assurer de ne pas oublier. J'espère que cela peut être utile au lecteur, à savoir:
pacp (le lire comme suit: pack Push où (p = git Push, a = ajout de git, ck = validation de git, push = git de push).
Ma façon de mémoriser le git Push, ajouter, commettre, tirer est:
get pack Push (ce qui signifie: git le pack puis Push).
En résumé, rappelez-vous de "git" le pack puis "Push".
Résoudre les problèmes: J'aimerais ajouter les commandes de récupération les plus utilisées:
git checkout -- path/to/file/fileName.something #undo changes in file
Ce qui précède annule les modifications apportées à un fichier ... similaire peut être appliqué à plusieurs fichiers en utilisant * pour le nom de fichier, de même peut être appliqué à plusieurs répertoires séparés par un espace.
git reset filename.txt
Ce qui précède supprime le fichier de l'étape ... après cette commande, nous pouvons git commit en toute sécurité et git ne commettra que les fichiers dans lesquels nous nous trouvons. stage qui signifie que le fichier "filname.txt" ne sera pas validé)
git pull Origin your_intended_branch
Les modifications sont fusionnées avec les dernières de your_intended_branch, ce qui fusionne les modifications que vous avez validées mais que vous n'avez pas envoyées. Une fois que tout va bien, il suffit de faire le Push:
git Push