Je suis habitué à utiliser SVN et je suis récemment passé à GitHub.
J'essaie de mettre à jour certains fichiers dans un référentiel GitHub, mais je reçois ce message:
To https://github.com/.../
! [rejected] master -> master (non-fast-forward)
error: failed to Push some refs to 'https://github.com/.../'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git Push --help' for details.
J'ai essayé des commandes comme git fetch Origin
et git pull
, mais rien de tout cela ne fait que ma branche actuelle n'est pas en retard.
Dans SVN, je ferais juste svn update
puis valider mes modifications.
J'ai aussi essayé git pull Origin
, mais j'obtiens un message texte étrange et je ne sais pas comment interfacer avec lui: Mise à jour d'un référentiel local avec les modifications d'un référentiel Github
Vérifiez votre branche actuelle avec la commande:
branche git
Il affichera le nom de votre branche actuelle avec un astérisque (*) à côté du nom.
Mettez ensuite à jour votre branche locale avec la branche distante:
git pull Origin branchname (Ceci est le nom de la branche avec des astérisques)
Vous pouvez maintenant pousser votre code vers le référentiel distant si vous avez déjà validé vos modifications locales avec la commande:
git Push Origin branchname
Si vous ne vous êtes pas encore engagé, faites d'abord un commit puis faites un git pull et Push.
Il est normal que git ouvre un éditeur lorsque vous tirez. C'est parce que vous êtes fusionnant les modifications de la télécommande vers votre branche locale.
Lorsque vous tirez, git détecte s'il doit fusionner votre branche locale avec la branche distante. S'il doit fusionner, il le fera et vous offrira la possibilité d'écrire un message personnalisé pour la validation de la fusion. À ce stade, vous pouvez choisir de simplement fermer l'éditeur, et git terminera le processus.
Fondamentalement, tout ce que vous aviez à faire est fermez l'éditeur et vous auriez terminé.
Essentiellement, git fait ce qui suit:
#Download all the commits from the remote
git fetch Origin
# Merge in the commits from the remote to your local branch
# If anything needs merging, this will open a text editor
git merge Origin/master master