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.54.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ägsmönster>…]
BESKRIVNING
Ta bort filer som matchar sökvägsmönstret från indexet, eller från arbetsträdet och indexet. git rm tar inte bort en fil enbart från arbetskatalogen. (Det finns inget alternativ för att ta bort en fil endast från arbetsträdet 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 får vara köade i indexet, även om standardbeteendet kan åsidosättas med alternativet -f. När --cached anges måste det köade innehållet matcha antingen grenens topp eller filen på disken, vilket gör att filen kan tas bort enbart från indexet. När sparse-checkout används (se git-sparse-checkout[1]) tar git rm bara bort sökvägar inom sparse-checkout-mönstren.
ALTERNATIV
- <sökvägsmönster>...
-
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ägsmönster>-posten i gitglossary[7].
-
-f -
--force -
Åsidosätt den àjour-kontrollen.
-
-n -
--dry-run -
Ta inte bort några filer. I stället visas 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> -
Sökvägsmönster skickas i <fil> i stället för argument. Om <fil> är exakt
-används standardindata. Sökvägsmönsterposter separeras med LF eller CR/LF. Sökvägsmönsterposter kan citeras enligt beskrivningen för konfigurationsvariabelncore.quotePath(se git-config[1]). Se även--pathspec-file-nuloch globala--literal-pathspecs. -
--pathspec-file-nul -
Endast meningsfullt med
--pathspec-from-file. Sökvägsmönsterposter 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 vill att din nästa incheckning ska registrera alla ändringar i spårade filer i arbetsträdet och alla borttagningar av filer som har tagits bort från arbetsträdet med rm (i motsats till git rm), använd git commit -a, eftersom det automatiskt upptäcker och registrerar alla borttagningar. Du kan också få en liknande effekt utan att checka in 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 arbetsträdet med hjälp av det här kommandot:
git ls-files -z | xargs -0 rm -f
och sedan packar upp den nya koden i arbetsträdet. Alternativt kan du rsync ändringarna i arbetsträdet.
Efter det är det enklaste sättet att registrera alla borttagningar, tillägg och ändringar i arbetsträdet:
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 av en undermodul från ditt arbetsträd utan att checka in borttagningen, använd i stället git-submodule[1] deinit. 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 (d.v.s. 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