Ik probeer alle wijzigingen sinds mijn laatste commit ongedaan te maken. Ik heb git reset --hard
en git reset --hard HEAD
geprobeerd na het bekijken van dit bericht. Ik antwoord met hoofd is nu op 18c3773… maar als ik naar mijn lokale bron kijk, zijn alle bestanden er nog steeds. Wat mis ik?
Antwoord 1, autoriteit 100%
-
Hiermee worden alle bestanden die je mogelijk hebt gestaged met
git add
, ongedaan gemaakt:git reset
-
Hiermee worden alle lokale niet-vastgelegde wijzigingen ongedaan gemaakt (moeten worden uitgevoerd in de repo-root):
git checkout .
U kunt ook niet-vastgelegde wijzigingen alleen terugzetten naar een bepaald bestand of een bepaalde map:
git checkout [some_dir|file.txt]
Nog een andere manier om alle niet-vastgelegde wijzigingen ongedaan te maken (langer om te typen, maar werkt vanuit elke submap):
git reset --hard HEAD
-
Hiermee worden alle lokale niet-getrackte bestanden verwijderd, dus alleendoor git getraceerde bestanden blijven:
git clean -fdx
WAARSCHUWING:
-x
verwijdert ook alle genegeerde bestanden, inclusief de bestanden die zijn gespecificeerd door.gitignore
! Misschien wilt u-n
gebruiken als voorbeeld van bestanden die moeten worden verwijderd.
Om het samen te vatten: het uitvoeren van onderstaande commando’s is in principe gelijk aan verse git clone
van de originele bron (maar het downloadt niets opnieuw, dus is veel sneller):
git reset
git checkout .
git clean -fdx
Typisch gebruik hiervoor is in build-scripts, wanneer u ervoor moet zorgen dat uw boom absoluut schoon is – geen wijzigingen of lokaal gemaakte objectbestanden of bouwartefacten heeft, en u wilt dat het heel snel werkt en niet elke keer de hele repository opnieuw klonen.
Antwoord 2, autoriteit 9%
Als u alle niet-vastgelegde wijzigingen wilt “ongedaan maken” uitvoeren, voert u gewoon uit:
git stash
git stash drop
Als je niet-getrackte bestanden hebt (controleer door git status
uit te voeren), deze kunnen worden verwijderd door het volgende uit te voeren:
git clean -fdx
git stash
maakt een nieuwe stash aan die stash@{0}wordt. Als je het eerst wilt controleren, kun je git stash list
uitvoeren om een lijst van je stashes te zien. Het ziet er ongeveer zo uit:
stash@{0}: WIP on rails-4: 66c8407 remove forem residuals
stash@{1}: WIP on master: 2b8f269 Map qualifications
stash@{2}: WIP on master: 27a7e54 Use non-dynamic finders
stash@{3}: WIP on blogit: c9bd270 some changes
Elke stash is vernoemd naar het vorige commit-bericht.
Antwoord 3
Wat ik doe is
git add . (adding everything)
git stash
git stash drop
Eén voering: git add . && git stash && git stash drop
Een kortere versie zoals aangegeven door M. Justin
git stash -u && git stash drop
Antwoord 4
er is ook git stash
– die uw lokale wijzigingen “stasht” en op een later tijdstip opnieuw kan worden toegepast of kan worden verwijderd als dit niet langer nodig is
meer info over stashing
Antwoord 5
Ik gebruik Source Tree …. Je kunt alle niet-gecommitteerde wijzigingen terugkeren met 2 eenvoudige stappen:
1) HOE NODIG NODIG DE STATUS VAN DE WERKSPAAAL BESTAAN
2) Selecteer alle UnSpagina-bestanden (opdracht + A), klik met de rechtermuisknop en selecteer Verwijderen
Het is zo eenvoudig: D
Antwoord 6
dit antwoord toevoegen omdat de vorige antwoorden permanent verwijderen uw wijzigingen
de veilige manier
git stash -u
Uitleg: Stash Local Changes inclusief Ontracked wijzigingen (-u
Vlag). De opdracht slaat uw lokale modificaties op weg en keert de werkdirectory terug die overeenkomt met het hoofd.
Wilt u de wijzigingen later herstellen?
git stash pop
Uitleg: de opdracht zal de wijzigingen in de bovenkant van de huidige werkboomstatus opnieuw toepassen.
Wilt u de wijzigingen permanent verwijderen?
git stash drop
Uitleg: de opdracht verwijdert de versterkte invoer
permanent
link naar git stash-documentatie
Antwoord 7
Voor degenen die hier hebben bereikt zoeken of ze git clean -f -d
ongedaan konden maken, waarmee een bestand is gemaakt in eclips is verwijderd,
U kunt hetzelfde doen vanuit de gebruikersinterface met behulp van “herstellen vanuit lokale geschiedenis” voor ref:Herstellen van lokale geschiedenis
Antwoord 8
Staten die overgaan van een vastlegging naar een nieuwe vastlegging
0. last commit,i.e. HEAD commit
1. Working tree changes, file/directory deletion,adding,modification.
2. The changes are staged in index
3. Staged changes are committed
Actie voor staatsovergang
0->1: manual file/directory operation
1->2: git add .
2->3: git commit -m "xxx"
Controleer verschil
0->1: git diff
0->2: git diff --cached
0->1, and 0->2: git diff HEAD
last last commit->last commit: git diff HEAD^ HEAD
Terug naar laatste commit
2->1: git reset
1->0: git checkout . #only for tracked files/directories(actions include modifying/deleting tracked files/directories)
1->0: git clean -fdx #only for untracked files/directories(action includes adding new files/directories)
2->1, and 1->0: git reset --hard HEAD
Equivalent van git clone, zonder iets opnieuw te downloaden
git reset && git checkout . && git clean -fdx
Antwoord 9
Een andere optie om wijzigingen ongedaan te maken die niet klaar waren voor vastlegging, is het volgende:
git restore <file>
Om wijzigingen in de werkmap te negeren.
Antwoord 10
Het volgende definieert een herbruikbare Git-opdrachtaliasom lokale wijzigingen te verwijderen, die vervolgens op elk moment in de toekomst kunnen worden gebruikt om niet-vastgelegde wijzigingen te verwijderen:
git config --global alias.remove-changes '!git stash push --include-untracked && git stash drop'
Het gebruik van de alias is eenvoudig:
git remove-changes
De alias pusht alle wijzigingen naar de stash (inclusief niet-vastgelegde) met behulp van git stash push --include-untracked
, en laat vervolgens het nieuw gemaakte stash-item vallen met behulp van git stash drop
.
Antwoord 11
Gebruik dit om ongewenste wijzigingen na de laatste vastlegging te verwijderen.
git reset --hard HEAD
Antwoord 12
git restore [filename_path]
Ik moet bijvoorbeeld mijn laatste wijzigingen in het bestand index.html
negeren:
git restore /usr/myPC/folder/index.html
Antwoord 13
als u alle niet-vastgelegde wijzigingen of lokale wijzigingen “ongedaan wilt maken”, voert u het volgende uit:
git add.
git stash
git stash drop
git clean -fdx
Antwoord 14
# Navigate to project root, `.` works too.
git restore *
git status
liet zien dat ik een aantal bestanden had die veranderd waren, maar ik wilde die kwijt en een nieuwe branch beginnen. Tot vandaag had ik de git reset-aanpak gebruikt, wat ik leuk vind om terug te springen naar andere specifieke commits.
https://www.git-tower.com/ Leer / Git / Commands / Git-Restore /