git - Votre branche est en avance de 'origin/master' en 1 s'engager
Je suis novice dans git et je suis en train de travailler sur git.
J'ai ajouté quelques fichiers dans git :
git add <file1>
git add <file2>
ensuite, j'ai voulu pousser les que pour l'examen, mais à tort, je n'ai
git commit
de sorte que les fichiers que j'ai changé de ne pas aller pour des examens.
Maintenant, si je entrez la commande :
git status
il dit
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)
Je veux revenir qui s'engagent et je veux pousser ces fichiers à des fins d'examen, plutôt que de commettre.
Quelqu'un peut-il me dire comment je peut faire?
- Si vous souhaitez annuler votre engagement de prendre un coup d'oeil à la question similaire.
- Je ne sais pas ce que vous êtes en utilisant pour la révision du code. La réponse simple à la question simple de la façon dont l'onu-commit est
git reset HEAD^
- j'ai fait reset HEAD. mais alors, quand j'essaie de faire, puis il me dit D file1.py quand j'ai essayé de psuh puis de nouveau il me dit que votre direction est en avance sur origin/master 1 s'engager
- Que voulez-vous dire quand vous dites "je veux pousser les fichiers pour l'examen"? Voulez-vous d'autres personnes à voir votre livraison?
- mon code sera d'abord examiné et puis il va être obligé. alors d'abord je tiens à pousser la de la révision du code, mais par erreur j'ai commis
- ceci est source de confusion de la terminologie: vous devez vous engager votre code avant de le pousser. Que voulez-vous dire qu'il va être engagé après avoir examiné? Sans doute quelqu'un d'autre de le fusionner dans un repo?
- (Je suis sûr qu'il ya beaucoup de valides des flux de travail, donc ce que je vais dire peut ne pas être pertinents à la façon dont votre équipe intervient...) Le flux de travail, je suis familier avec est de valider vos modifications dans une "fonction" ou "dev" de la branche et de pousser vers le dépôt central. La "fonctionnalité" de la branche peuvent être fusionnés en master après la révision du code.
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas pousser ce qui n'a pas été commis encore. L'ordre des opérations est:
git add
- ce les étapes de vos modifications pour commettregit commit
- cela engage votre mise en scène changements localementgit push
- ce qui pousse votre commis des modifications à une distanceSi vous pousser sans s'engager, rien n'est poussé. Si vous vous engagez, sans ajouter, rien n'est engagé. Si vous ajoutez sans valider, rien ne se passe, git simplement se souvient que les modifications que vous avez ajoutés doivent être considérés pour la suite de la validation.
Le message que vous avez vu (votre branche est en avance de 1 commit) signifie que votre dépôt local a un commit qui n'a pas été poussé encore.
En d'autres termes:
add
etcommit
sont des opérations locales,push
,pull
etfetch
sont des opérations qui interagissent avec une télécommande.Puisqu'il semble être une source officielle, le contrôle de flux de travail dans le lieu où vous travaillez, vous devriez demander à l'intérieur comment cela devrait être géré.
origin
référentiel. Je recommande aussi la lecture de quelques-uns des tutoriel/intros git sur git-scm.com/documentationgit reset HEAD^ --soft
(Enregistrer vos modifications, retour à la dernière validation)git reset HEAD^ --hard
(Ignorer les modifications, retour à la dernière validation)Si vous voulez juste jeter les modifications et revenir à la dernière validation (celui que vous avez voulu partager):
Vous voudrez peut-être vérifier à faire absolument sûr que vous voulez ce (
git log
), parce que vous perdrez toutes les modifications.Une alternative plus sûre consiste à exécuter
J'ai résolu ce problème en exécutant simplement un simple:
Rien de plus.
Maintenant qu'il les montre:
git reset HEAD^
alors que les fichiers modifiés devrait s'afficher.
Vous pouvez déplacer les fichiers modifiés dans une nouvelle branche
utilisation, git checkout -b newbranch
git checkout commit-m "fichiers modifiés"
git push origin newbranch
git checkout master
alors vous devriez être sur une nouvelle branche, et vos modifications doivent être stockés dans newbranch. Plus tard, vous pourrez intégrer ce changement dans la branche master
supprimer les fichiers spécifiés à partir de la prochaine validation