首页 文章

如何从git存储库中删除目录?

提问于
浏览
977

我的GitHub存储库中有2个目录 . 我想删除其中一个 . 如果不删除并重新创建整个存储库,我怎么能这样做?

12 回答

  • 16

    仅从git存储库中删除文件夹/目录,而不是从本地try 3简单命令中删除 .


    Steps to remove directory

    git rm -r --cached FolderName
    git commit -m "Removed folder from repository"
    git push origin master
    

    Steps to ignore that folder in next commits

    要在下次提交时忽略该文件夹,请在根目录中创建一个名为.gitignore的文件,并将该文件夹名称放入其中 . 您可以根据需要添加任意数量

    .gitignore 文件将如下所示

    /FolderName
    

    remove directory

  • 20

    我通常使用 git add --all 从远程存储库中删除文件/文件夹

    rm -r folder_name
    git add --all
    git commit -m "some comment"
    git push origin master
    

    master 可以由存储库的任何其他分支替换 .

  • 6

    您可以使用Attlasian源树(Windows)(https://www.atlassian.com/software/sourcetree/overview) . 只需从树中选择文件,然后按下顶部的按钮"Remove"即可 . 文件将从本地存储库和本地git数据库中删除 . 然后提交,然后推送 .

  • 1

    转到您的git目录,然后键入以下命令: rm -rf <Directory Name>

    删除目录后提交更改: git commit -m "Your Commit Message"

    然后只需在远程GIT目录上推送更改: git push origin <Branch name>

  • 3

    我的一位同事提出了BFG Repo-Cleaner,我觉得这很有用 . 它不仅可以删除不需要的数据,还可以从任何相关的提交信息中清除存储库 .

  • 229

    从git和local中删除目录

    你可以用两个目录签出'master';

    git rm -r one-of-the-directories
    git commit -m "Remove duplicated directory"
    git push origin <your-git-branch> (typically 'master', but not always)
    

    从git中删除目录但不是本地的

    正如评论中所提到的,你通常要做的是从git中删除这个目录,但不要完全从文件系统中删除它(本地)

    在这种情况下使用:

    git rm -r --cached myFolder
    
  • 1896

    如果删除目录中的文件(其他答案解释为 git rm ),则就git而言,该目录不再存在 . 您不能提交空目录,也不能删除它 .

    这与subversion不同,你必须明确 svn rm emptyfolder/ ,顺便说一句,为什么git的 man 页面将自己描述为"the stupid content tracker"

    答案"How do I add an empty directory to a git repository"链接到FAQ on this subject

    目前git索引(临时区域)的设计只允许列出文件,没有人能够进行更改以允许空目录已经足够关注这种情况来弥补它 . 在其中添加文件时会自动添加目录 . 也就是说,目录永远不必添加到存储库,并且不会自己跟踪 . 你可以说“git add <dir>”,它会在那里添加文件 . 如果您确实需要在结帐中存在目录,则应在其中创建一个文件 . .gitignore很适合这个目的;您可以将其留空,或填写您希望在目录中显示的文件的名称 .

  • 4

    您可以在本地删除该文件夹,然后按,如下所示:

    git rm -r folder_name
    git commit -m "your commit"
    git push origin master
    
  • 2

    在删除任何内容之前,第一个git命令需要知道你是谁

    • git init

    • git config user.name "someone"

    • git config user.email "someone@someplace.com"

    • git rm -r

    • git commit -m "deleting dir"

    • git push origin master

  • 0

    你可以试试这个: git rm -rf <directory_name>

    它会强制删除目录 .

  • 65

    如果由于某种原因,karmakaze所说的不起作用,您可以尝试删除要删除的目录(通过文件系统浏览器),发出命令
    git add -A
    然后
    git commit -m 'deleting directory'
    然后
    git push origin master .

  • 1

    要添加新目录:

    mkdir <YOUR-DIRECTORY>
    

    但是现在Git并没有意识到这个新目录,因为Git保留了文件的跟踪而不是目录DIRECTORY

    git status
    

    Git赢了't be aware with the change we' ve,所以我们添加了隐藏的 .keep 文件,让Git意识到这个新的变化 .

    touch /YOUR-directory/.keep
    

    现在,如果你点击 git status ,Git会意识到这些变化 .

    如果要删除目录,则应使用此命令 .

    rm -r <YOUR-DIRECTORY>
    

    如果您使用 git status 进行了检查,则会看到该目录已被删除 .

相关问题