web-dev-qa-db-fra.com

git - Votre branche est en avance sur 'Origin / master' de 1 commit

Je suis débutant dans git et je travaille sur git.

J'ai ajouté quelques fichiers dans git:

git add <file1>
git add <file2>

alors je voulais pousser cela pour examen, mais par erreur je l'ai fait

git commit

les fichiers que j'ai modifiés ne font donc pas l'objet de critiques.
Maintenant, si j'entre la commande:

git status

ça dit

# On branch master
# Your branch is ahead of 'Origin/master' by 1 commit.
#
nothing to commit (working directory clean)

Je veux annuler cette validation et envoyer les fichiers à la révision plutôt que de les valider. Quelqu'un peut-il me dire comment je peux le faire?

92
sam

Vous ne pouvez pas pousser quelque chose qui n'a pas encore été commis. L'ordre des opérations est le suivant:

  1. Faites votre changement.
  2. git add - cela met en scène vos modifications pour vous engager
  3. git commit - cela valide vos modifications planifiées localement
  4. git Push - ceci transfère vos modifications validées vers une télécommande

Si vous poussez sans vous engager, rien ne sera poussé. Si vous commettez sans ajouter, rien ne sera commis. Si vous ajoutez sans engager, rien ne se passe, git se souvient simplement que les modifications que vous avez ajoutées doivent être prises en compte pour le commit suivant.

Le message que vous voyez (votre branche est en avance de 1 commit) signifie que votre référentiel local a un commit qui n'a pas encore été poussé.

En d'autres termes: add et commit sont des opérations locales, Push, pull et fetch sont des opérations qui interagissent avec une télécommande.

Dans la mesure où il semble exister un flux de travail de contrôle de source officiel en place, vous devez demander en interne comment procéder.

120
tdammers

git reset HEAD^ --soft (Sauvegarde vos modifications, retour à la dernière validation)

git reset HEAD^ --hard (Annuler les modifications, retour à la dernière validation)

51
Juanito Fatas

Si vous voulez juste jeter les modifications et revenir au dernier commit (celui que vous vouliez partager):

git reset --hard HEAD~

Vous voudrez peut-être vérifier pour vous assurer que vous voulez absolument ceci (git log), car vous perdrez toutes les modifications.

Une alternative plus sûre consiste à courir

git reset --soft HEAD~ # reset to the last commit
git stash              # stash all the changes in the working tree 
git Push               # Push changes 
git stash pop          # get your changes back 
29
Shep

J'ai résolu ceci en exécutant simplement un simple:

git pull

Rien de plus. Maintenant, il montre:

# On branch master
nothing to commit, working directory clean
18
karlingen

git réinitialiser HEAD ^

alors les fichiers modifiés devraient apparaître.

Vous pouvez déplacer les fichiers modifiés dans une nouvelle branche

utiliser, git checkout -b newbranch git checkout commettre -m "fichiers modifiés" git Push Origin newbranch

maître de caisse

alors vous devriez être sur une branche propre et vos modifications doivent être stockées dans newbranch. Vous pouvez ensuite fusionner ce changement dans la branche principale

9
OZI
git reset HEAD <file1> <file2> ...

supprime les fichiers spécifiés du prochain commit

4
Bnjmn