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:
- Breng uw wijziging door.
git add
– dit faseert je wijzigingen om te committengit commit
– hiermee worden je gefaseerde wijzigingen lokaal vastgelegdgit 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: add
en commit
zijn lokale bewerkingen, push
, pull
en fetch
zijn 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.