Er det noen måte å tilbakestille eller angre git pull slik at kilden / reposene mine kommer til gammel tilstand som var før jeg gjorde git pull? Jeg vil gjøre dette fordi det slo sammen noen filer som jeg ikke ville gjøre det, men bare slå sammen andre gjenværende filer. Så jeg vil få disse filene tilbake, er det mulig? Takk :)
EDIT Jeg vil angre git-sammenslåing for avklaring. Etter å ha sett noen svar, gjorde jeg dette
git reflog
bb3139b... HEAD@{0}: pull : Fast forward
01b34fa... HEAD@{1}: clone: from ...name...
Nå, hva skal jeg gjøre? Å gjøre git reset --hard
er OK ? Jeg vil ikke skru det igjen, så ber om detaljerte trinn ?
Kjører git pull
utfører følgende oppgaver, i rekkefølge:
git fetch
(hent)git merge
(slå sammen)Sammenslåingstrinnet kombinerer grener som er konfigurert til å slås sammen i konfigurasjonen. Du vil angre merge trinnet, men sannsynligvis ikke fetch (gir ikke mye mening og burde ikke være nødvendig).
For å angre merge, bruk git reset --hard
for å tilbakestille det lokale depotet til en tidligere tilstand; bruk git-reflog for å finne SHA-1 for den forrige tilstanden og deretter tilbakestille til den.
**Advarsel
Kommandoene som er oppført i dette avsnittet, fjerner alle ukommitterte endringer, noe som potensielt kan føre til tap av arbeid:
git reset --hard
Alternativt kan du tilbakestille til et bestemt tidspunkt, for eksempel:
git reset --hard master@{"10 minutes ago"}
Hvis du har gitk (prøv å kjøre "gitk --all fra git-kommandolinjen"), er det enkelt. Bare kjør det, velg den commit du vil tilbakestille til (høyreklikk), og velg "Reset master branch to here". Hvis du ikke har noen ukommiterte endringer, velger du alternativet "hard".