Setup and Config
Getting and Creating Projects
Basic Snapshotting
Branching and Merging
Sharing and Updating Projects
Inspection and Comparison
Patching
Debugging
External Systems
Server Admin
Guides
- gitattributes
- Command-line interface conventions
- Everyday Git
- Frequently Asked Questions (FAQ)
- Glossary
- Hooks
- gitignore
- gitmodules
- Revisions
- Submodules
- Tutorial
- Workflows
- All guides...
Administration
Plumbing Commands
- 2.50.1 → 2.53.0 no changes
-
2.50.0
2025-06-16
- 2.43.1 → 2.49.1 no changes
-
2.43.0
2023-11-20
- 2.34.1 → 2.42.4 no changes
-
2.34.0
2021-11-15
- 2.32.1 → 2.33.8 no changes
-
2.32.0
2021-06-06
- 2.26.1 → 2.31.8 no changes
-
2.26.0
2020-03-22
- 2.16.6 → 2.25.5 no changes
-
2.15.4
2019-12-06
-
2.14.6
2019-12-06
-
2.13.7
2018-05-22
- 2.1.4 → 2.12.5 no changes
-
2.0.5
2014-12-17
SYNOPSIS
gitrm[-f|--force] [-n] [-r] [--cached] [--ignore-unmatch] [--quiet] [--pathspec-from-file=<fil> [--pathspec-file-nul]] [--] [<sökvägsspec>…]
BESKRIVNING
Ta bort filer som matchar sökvägsspec från indexet, eller från arbetskatalogen och indexet. git rm tar inte bort en fil bara från din arbetskatalog. (Det finns inget alternativ att bara ta bort en fil från arbetskatalogen och ändå behålla den i indexet; använd /bin/rm om du vill göra det.) Filerna som tas bort måste vara identiska med grenens topp, och inga uppdateringar av deras innehåll kan köas i indexet, även om det standardbeteendet kan åsidosättas med alternativet -f. När --cached anges måste det köade innehållet matcha antingen grenens spets eller filen på disken, vilket gör att filen kan tas bort bara från indexet. När sparse-checkouts används (se git-sparse-checkout[1]), kommer git rm bara att ta bort sökvägar inom sparse-checkout-mönstren.
ALTERNATIV
- <sökvägsspec>...
-
Filer att ta bort. Ett inledande katalognamn (t.ex.
katför att ta bortkat/fil1ochkat/fil2) kan anges för att ta bort alla filer i katalogen, och rekursivt alla underkataloger, men detta kräver att alternativet-ranges explicit.Kommandot tar bara bort de sökvägar som är kända för Git.
Filglobbing matchar över kataloggränser. Givet två kataloger
dochd2är det alltså skillnad mellan att användagitrmd*'ochgitrmd/*', eftersom den förra också tar bort hela katalogend2.För mer information, se <sökvägsspec>-posten i gitglossary[7].
-
-f -
--force -
Override the up-to-date check.
-
-n -
--dry-run -
Ta inte bort några filer. Istället, visa bara om de finns i indexet och annars skulle tas bort av kommandot.
-
-r -
Tillåt rekursiv borttagning när ett inledande katalognamn anges.
-
-- -
Det här alternativet kan användas för att separera kommandoradsalternativ från fillistan (användbart när filnamn kan misstas för kommandoradsalternativ).
-
--cached -
Använd det här alternativet för att avköa och endast ta bort sökvägar från indexet. Arbetskatalogs-filer, oavsett om de är ändrade eller inte, kommer att lämnas orörda.
-
--ignore-unmatch -
Avsluta med nollstatus även om inga filer matchades.
-
--sparse -
Allow updating index entries outside of the sparse-checkout cone. Normally,
gitrmrefuses to update index entries whose paths do not fit within the sparse-checkout cone. See git-sparse-checkout[1] for more. -
-q -
--quiet -
gitrmmatar normalt ut en rad (i form av ettrm-kommando) för varje fil som tas bort. Det här alternativet undertrycker den utmatningen. -
--pathspec-from-file=<fil> -
Pathspec skickas i <fil> istället för args. Om <fil> är exakt
-används standardindata. Sökvägsspec-element separeras med LF eller CR/LF. Sökvägsspec-element kan citeras enligt beskrivningen för konfigurationsvariabelncore.quotePath(se git-config[1]). Se även--pathspec-file-nuloch global--literal-pathspecs. -
--pathspec-file-nul -
Endast meningsfullt med
--pathspec-from-file. Pathspec-element separeras med tecknet NUL och alla andra tecken tolkas bokstavligt (inklusive radbrytningar och citattecken).
TA BORT FILER SOM HAR FÖRSVUNNIT FRÅN FILSYSTEMET
Det finns inget alternativ för git rm att ta bort från indexet endast de sökvägar som har försvunnit från filsystemet. Beroende på användningsfallet finns det dock flera sätt att göra detta.
Använda “git commit -a”
Om du avser att din nästa commit ska registrera alla ändringar av spårade filer i arbetskatalogen och registrera alla borttagningar av filer som har tagits bort från arbetskatalogen med rm (i motsats till git rm), använd git commit -a, eftersom det automatiskt kommer att märka och registrera alla borttagningar. Du kan också få en liknande effekt utan att committa genom att använda git add -u.
Använder “git add -A”
When accepting a new code drop for a vendor branch, you probably want to record both the removal of paths and additions of new paths as well as modifications of existing paths.
Vanligtvis tar du först bort alla spårade filer från arbetskatalogen med hjälp av det här kommandot:
git ls-files -z | xargs -0 rm -f
och sedan untar:ar den nya koden i arbetskatalogen. Alternativt kan du rsync ändringarna i arbetskatalogen.
Efter det är det enklaste sättet att registrera alla borttagningar, tillägg och ändringar i arbetskatalogen:
git add -A
Se git-add[1].
UNDERMODULER
Endast undermoduler som använder en gitfile (vilket innebär att de klonades med en Git-version 1.7.8 eller senare) kommer att tas bort från arbetsträdet, eftersom deras arkiv finns i superprojektets .git-katalog. Om en undermodul (eller en av de som är kapslade i den) fortfarande använder en .git-katalog, flyttar git rm undermodulernas git-katalog till superprojektens git-katalog för att skydda undermodulens historik. Om den existerar kommer även avsnittet submodule.<namn> i filen gitmodules[5] att tas bort och den filen kommer att köas (såvida inte --cached eller -n används).
En undermodul anses vara aktuell när HEAD är densamma som registrerats i indexet, inga spårade filer är modifierade och inga ospårade filer som inte ignoreras finns i undermodulens arbetsträd. Ignorerade filer anses vara förbrukningsbara och hindrar inte en undermoduls arbetsträd från att tas bort.
Om du bara vill ta bort den lokala utcheckningen för en undermodul från ditt arbetsträd utan att bekräfta borttagningen, använd git-submodule[1] deinit istället. Se även gitsubmodules[7] för detaljer om borttagning av undermoduler.
EXEMPEL
- git rm Dokumentation/\*.txt
-
Tar bort alla
*.txt-filer från indexet som finns under katalogenDokumentationoch alla dess underkataloger.Observera att asterisken
*citeras från skalet i det här exemplet; detta låter Git, och inte skalet, expandera sökvägarna till filer och underkataloger under katalogenDokumentation/. -
gitrm-fgit-*.sh -
Eftersom det här exemplet låter skalet expandera asterisken (dvs. du listar filerna explicit), tar det inte bort
subdir/git-foo.sh.
BUGGAR
Varje gång en superprojektuppdatering tar bort en ifylld undermodul (t.ex. när man växlar mellan incheckningar före och efter borttagningen) kommer en inaktuell undermodulutcheckning att finnas kvar på den gamla platsen. Att ta bort den gamla katalogen är bara säkert när den använder en gitfile, eftersom annars även undermodulens historik kommer att raderas. Detta steg kommer att vara föråldrat när rekursiv undermoduluppdatering har implementerats.
GIT
En del av git[1]-sviten