git – Je branch loopt 1 commit voor op ‘origin/master’

Ik ben een beginner in git en werk aan git.

Ik heb enkele bestanden toegevoegd in git :

git add <file1>
git add <file2>

Toen wilde ik dat ter beoordeling doorsturen, maar ten onrechte deed ik dat

git commit

dus de bestanden die ik heb gewijzigd, worden niet beoordeeld.
Als ik nu het commando invoer:

git status

er staat

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

Ik wil die vastlegging terugdraaien en ik wil die bestanden doorsturen voor beoordeling in plaats van vast te leggen.
Kan iemand me vertellen hoe ik dat kan doen?


Antwoord 1, autoriteit 100%

Je kunt niets pushen dat nog niet is vastgelegd. De volgorde van bewerkingen is:

  1. Breng uw wijziging door.
  2. git add– dit faseert je wijzigingen om te committen
  3. git commit– hiermee worden je gefaseerde wijzigingen lokaal vastgelegd
  4. git push– hiermee worden uw vastgelegde wijzigingen naar een afstandsbediening gepusht

Als je pusht zonder te committen, wordt er niets gepusht. Als je commit zonder toe te voegen, wordt er niets vastgelegd. Als je toevoegt zonder te committen, gebeurt er helemaal niets, git onthoudt alleen dat de wijzigingen die je hebt toegevoegd moeten worden overwogen voor de volgende commit.

Het bericht dat je ziet (je branch loopt 1 commit voor) betekent dat je lokale repository één commit heeft die nog niet is gepusht.

Met andere woorden: adden commitzijn lokale bewerkingen, push, pullen fetchzijn bewerkingen die samenwerken met een afstandsbediening.

Aangezien er een officiële workflow voor broncontrole lijkt te zijn waar u werkt, moet u intern vragen hoe dit moet worden afgehandeld.


Antwoord 2, autoriteit 57%

git reset HEAD^ --soft(Sla je wijzigingen op, terug naar de laatste commit)

git reset HEAD^ --hard(Wijzigingen negeren, terug naar laatste commit)


Antwoord 3, autoriteit 24%

Als je de wijzigingen gewoon wilt weggooien en wilt terugkeren naar de laatste commit (degene die je wilde delen):

git reset --hard HEAD~

Misschien wil je dit controleren om er absoluut zeker van te zijn dat je dit wilt (git log), omdat je alle wijzigingen verliest.

Een veiliger alternatief is om

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 

Antwoord 4, autoriteit 16%

Ik heb dit opgelost door een simpele:

git pull 

Niets meer.
Nu wordt weergegeven:

# On branch master
nothing to commit, working directory clean

Antwoord 5, autoriteit 10%

git reset HEAD^

dan zouden de gewijzigde bestanden moeten verschijnen.

Je zou de gewijzigde bestanden naar een nieuwe branch kunnen verplaatsen

gebruik,

git checkout -b newbranch

git checkout commit -m "files modified"

git push origin newbranch

git checkout master

dan zou je op een schone branch moeten zitten, en je wijzigingen zouden in newbranch moeten worden opgeslagen. Je zou deze wijziging later gewoon kunnen mergen in de master branch


Antwoord 6, autoriteit 3%

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

verwijder de gespecificeerde bestanden van de volgende commit


Antwoord 7

eerste keer:

git pull 

en dan:

git push

en je bent klaar om te gaan.

Other episodes