Så här återställer du helt ett Git -arkiv (inklusive ospårade filer)

0
211

Git -kommandon är komplicerade, och du kan ofta tänka dig att “ skruva det här, jag &# 8217; ska bara börja om igen! ” Lyckligtvis är Git byggd för att spåra alla versioner av dina ändringar, och om du störde dig ger den verktyg för att återställa ditt förråd till sitt gamla arbetsläge.

Spara dina ändringar (Git Stash)

Innan du avfyrar ett kommando för att återställa ditt arkiv bör du se till att du inte förlorar data som du vill spara.

Git tillhandahåller några olika typer av återställningar. Mjuka och blandade återställningar kommer att återställa förvaret till det tillstånd det var i vid ett visst åtagande (ofta huvudet på en filial), men kommer att behålla dina lokala förändringar som du ännu inte har begått. Hårda återställningar är å andra sidan destruktiva och kommer att kasta bort förändringar som ännu inte har gjorts.

Ofta krävs en hård återställning för att ordentligt rengöra förvaret. Om du vill kan du dock “ stoppa ” dina ändringar, vilket kommer att ta alla oändliga ändringar och lagra dem lokalt. Du kan öppna kassetten med “ stash Apply ” vid ett senare tillfälle.

git stash git stash gäller

Du kan också skapa en ny gren, göra ändringarna och sedan återställa till master. Detta skulle behålla dina ändringar i bindningshistoriken för alltid och kan också skickas till fjärrkontrollen för att delas med dina kollegor.

Utföra en återställning ( Git Reset)

Först måste du hämta det senaste tillståndet för fjärrförvaret, vanligtvis “ ursprung, ” och sedan checka ut huvudgrenen (eller vilken du än återställer till).

git hämta ursprung git checkout master Annonsering

Du kan också checka ut och återställa till en enskild åtagande med hjälp av dess ID, t.ex. git checkout 342c47a4.

Gör sedan en hård återställning (om du inte vill behålla ändringar med en mjuk återställning). Tänk på att den här åtgärden är destruktiv för alla ändringar som inte har sparats.

git reset –hard origin/master

Du kan återställa till ett lokalt engagemang istället för origin/master, men de flesta av tiden du kommer att återställa till fjärrkontrollens tillstånd.

Återställa ospårade filer (Git Clean)

Git -återställning är dock vanligtvis inte tillräckligt. Återställning i Git återställer bara filer som faktiskt spåras av Git. Detta inkluderar kod och resurser som tar emot ändringar.

Men det finns också filer som paket, lokal konfiguration, bygga artefakter/utdata, loggfiler och andra tillfälliga objekt som inte lagras i Git förvar (och ignoreras i .gitignore). För att städa upp dessa och föra din lokala repo till 100% paritet med fjärrkontrollens tillstånd kan du köra git clean:

git clean -d –force Advertisement

Du kan faktiskt köra det här kommandot utan att köra git reset, vilket faktiskt kan vara vad du vill. Om du inte vill skapa dina kodfiler, men vill rensa dina builds, loggar och paket för att börja om, kan git clean vara allt du behöver.

Att ge upp istället: Klona en ny repo

Även om ovanstående är det “ rena sättet ” för att göra det med officiella Git -kommandon är det inte långt ifrån att göra en fullständig återställning från att bara nuka din lokala arkivmapp och klona en helt ny. Det är ingen skam att göra det om du planerar att återställa allt ändå:

sudo rm -r git-repository git clone https://github.com/user/git-repository.git cd git-repository

Tänk på att detta bara kan återgå till tillståndet för ditt fjärrlager, inte till ett lokalt åtagande. Detta kommer att klona huvudgrenen som standard, men du kan växla till grenen av ditt val med git switch eller klona den från början med git clone -b & lt; branchname & gt ;.