How can I delete a file from a Git repository?

后端 未结 24 2256
無奈伤痛
無奈伤痛 2020-11-22 13:41

I have added a file named \"file1.txt\" to a Git repository. After that, I committed it, added a couple of directories called dir1 and dir2

24条回答
  •  刺人心
    刺人心 (楼主)
    2020-11-22 13:59

    Note: if you want to delete file only from git use below:

    git rm --cached file1.txt
    

    If you want to delete also from hard disk:

    git rm file1.txt
    

    If you want to remove a folder(the folder may contain few files) so, you should remove using recursive command, as below:

    git rm -r foldername
    

    If you want to remove a folder inside another folder

    git rm -r parentFolder/childFolder
    

    Then, you can commit and push as usual. However, if you want to recover deleted folder, you can follow this: recover deleted files from git is possible.

    From doc:

    git rm [-f | --force] [-n] [-r] [--cached] [--ignore-unmatch] [--quiet] [--] …​
    

    OPTIONS

    …​

    Files to remove. Fileglobs (e.g. *.c) can be given to remove all matching files. If you want Git to expand file glob characters, you
    

    may need to shell-escape them. A leading directory name (e.g. dir to remove dir/file1 and dir/file2) can be given to remove all files in the directory, and recursively all sub-directories, but this requires the -r option to be explicitly given. -f --force

    Override the up-to-date check.
    

    -n --dry-run

    Don’t actually remove any file(s). Instead, just show if they exist in the index and would otherwise be removed by the command.
    

    -r

    Allow recursive removal when a leading directory name is given.
    

    --

    This option can be used to separate command-line options from the list of files, (useful when filenames might be mistaken for
    

    command-line options). --cached

    Use this option to unstage and remove paths only from the index. Working tree files, whether modified or not, will be left alone.
    

    --ignore-unmatch

    Exit with a zero status even if no files matched.
    

    -q --quiet

    git rm normally outputs one line (in the form of an rm command) for each file removed. This option suppresses that output.
    

    Read more on official doc.

提交回复
热议问题