Je suis novice en 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 je l'ai fait par erreur
git commit
donc les fichiers que j'ai modifiés ne font 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 revenir sur ce commit et je veux pousser ces fichiers pour examen plutôt que pour validation. Quelqu'un peut-il me dire comment je peux faire cela?
git reset HEAD^
Réponses:
Vous ne pouvez pas pousser quoi que ce soit qui n'a pas encore été commis. L'ordre des opérations est:
git add
- cela met en scène vos changements pour s'engagergit commit
- cela valide vos modifications par étapes localementgit push
- cela pousse vos changements engagés vers une télécommandeSi vous poussez sans vous engager, rien n'est poussé. Si vous vous engagez sans ajouter, rien n'est validé. Si vous ajoutez sans commettre, rien ne se passe du tout, git se souvient simplement que les changements que vous avez ajoutés doivent être pris en compte pour le commit suivant.
Le message que vous voyez (votre branche est en avance d'un commit) signifie que votre dépôt local a un commit qui n'a pas encore été poussé.
En d'autres termes:
add
etcommit
sont des opérations localespush
,pull
etfetch
sont des opérations qui interagissent avec une télécommande.Puisqu'il semble y avoir un workflow de contrôle de source officiel en place là où vous travaillez, vous devriez demander en interne comment cela doit être géré.
la source
origin
référentiel. Je recommanderais également de lire quelques-uns des tutoriels / intros à git sur git-scm.com/documentationgit reset HEAD^ --soft
(Sauvegardez vos modifications, retour au dernier commit)git reset HEAD^ --hard
(Annuler les modifications, retour au dernier commit)la source
Si vous souhaitez simplement annuler les modifications et revenir au dernier commit (celui que vous vouliez partager):
Vous voudrez peut-être vérifier pour être absolument sûr de vouloir cela (
git log
), car vous perdrez toutes les modifications.Une alternative plus sûre est de courir
la source
J'ai résolu ce problème en exécutant simplement un simple:
Rien de plus. Maintenant, il montre:
la source
git reset HEAD ^
alors les fichiers modifiés devraient apparaître.
Vous pouvez déplacer les fichiers modifiés dans une nouvelle branche
utilisation,
git checkout -b newbranch
git checkout commit -m "files modified"
git push origin newbranch
git checkout master
alors vous devriez être sur une branche propre et vos modifications devraient être stockées dans newbranch. Vous pourrez plus tard simplement fusionner cette modification dans la branche principale
la source
supprimer les fichiers spécifiés du prochain commit
la source